Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
FORMÁLIS MÓDSZEREK NGM_IN003_1
PETRI HÁLÓK
2
Történelmi áttekintés
Carl Adam Petri ( ) német matematikus a Petri hálók jelölésrendszerét 1939-ben találta ki a Petri hálók matematikai alapjait a doktori disszertációjában dolgozta ki 1962-ben eredetileg kémiai folyamatok leírására szánta
3
Alapok automataelmélet logika
4
Mire használhatók? konkurens: ha benne egyidejűleg működő, önálló egységek kommunikálnak egymással úgy, hogy ezen egységek egymáshoz képest tetszőleges működési fázisban vannak aszinkron: eseményvezérelt rendszer elosztott: egyes rendszerelemek között funkcionális tagolódás van párhuzamos: nagyon hasonlítanak a konkurensekre, lényeges különbség azonban, hogy párhuzamos esetben a rendszerelemek között szoros szinkronizáció áll fenn nemdeterminisztikus: egy-egy adott állapotából nem egyértelmű, melyik állapot lesz a következő és/vagy sztochasztikus rendszerek modellezésére.
5
Alapvető tulajdonságok
Egyidejűleg grafikai matematikai reprezentáció Struktúrával fejezi ki vezérlési struktúra adatmodell
6
Felépítése a Petri hálók építőelemeit 3 csoportba soroljuk
helyek élek átmenetek / tranzíció működésükhöz szükség van tokenekre is
7
Struktúrája Strukturálisan: irányított, súlyozott, páros gráf
Két típusú csomópont: hely: p ∈ P, jelölése: kör tranzíció: t ∈ T, jelölése: téglalap Élek e ∈ E = (P × T) ∪ (T × P) (páros gráf!): hely – tranzíció tranzíció – hely jelölése: nyíl
8
Petri háló állapota Állapotjelző: token Helyek állapota:
ezeket a helyek közepébe tett pontok jelölik Helyek állapota: a bennük található tokenek száma A rendszer állapota tokeneloszlás, az egyes helyek állapotainak összessége állapotvektor: a π = |P| komponensű M token eloszlás vektor
9
Példa Petri hálóra helyek
10
Példa Petri hálóra átmenet / tranzició
11
Példa Petri hálóra token token
12
Példa Petri hálóra Állapotvektor
Általánosan M = 𝑚1 ⋮ 𝑚𝜋 P2 P1 Jelen esetben P3 M = P1 P2 P3 A kezdőállapotot mindig az M0 állapotvektor jelöli
13
Matematikai reprezentáció
Petri-háló: PN=(P,T,E,W, M0) Helyek halmaza: P={p1, p2, …} Átmenetek halmaza: T={t1, t2, … } Élek halmaza: E⊆(PXT) ∪ (TXP) Súlyfüggvény: W:E→ N+ Tokeneloszlás: M:P → N+ Kezdeti tokeneloszlás: M0:P → N+ Ősök és utódok: ●t, t●, ●p, p●
14
Működés Nem más mint állapotváltozás
Állapot megváltozása: átmenetek „tüzelése” Mikor mehet végbe állapotváltozás? Engedélyezettség ellenőrzése Tüzelés Token elvétele a bemeneti helyről Token kirakása a kimeneti helyre Tokeneloszlás megváltozik új állapot -> új állapotvektor
15
Működés Engedélyezettség ellenőrzése
Bemeneti helyek / tokenek / bemenő élek Bemeneti helyeken van-e elég token?
16
Példa működésre
17
Példa működésre
18
Példa működésre
19
Példa működésre
20
Példa működésre
21
Példa működésre
22
Példa működésre
23
Példa működésre
24
Példa működésre
25
Példa működésre
26
Példa működésre
27
Példa működésre
28
Példa működésre
29
Példa működésre
30
Példa működésre
31
Példa működésre
32
Példa működésre
33
Jellemzők - Azonnali tüzelések
nem külön - külön vánszorognak a tokenek egyik tüzelési oldalról a másikra, hanem egyszerre – elemi (atomi) esemény
34
Jellemzők - Aszinkron tüzelések
egymással párhuzamos tüzelések lehetnek, azok sorrendje nem függ egymástól. Pakolás a bőröndbe Utazás külföldre Mozijegy vásárlás Film nézés
35
Jellemzők - Nem determinisztikus
nem hogy nem függ egymástól a sorrend, de fogalmunk sincs hogy úgy amúgy mi lesz az repülő hajtogatás papír firkálás toll
36
Jellemzők - Két tranzíció nem tüzel egyszerre
tej tejes kávé kávé Ír kávé whiskey
37
Jellemzők - Neminterpretált
nem feltétlenül kell nekünk a világmindenséget leírni, tudni, van amit csak megnevezünk, és nem mondjuk el, hogy mit is csinál pontosan alvás hibás hibátlan munka
38
Jellemzők - Absztrakció és finomítás
bármelyik tranzíció helyére berakhatunk egy fél világmindenséget leíró részt alvás késésben munka öltözés reggeli utazás
39
Jellemzők - Összefoglalás
Petri hálók jellemzők Modellezési tulajdonságok azonnali „tüzelések” elemi (atomi) esemény aszinkron tüzelések események szekvenciájának függetlensége nem determinisztikus konkurencia két tranzíció nem tüzel egyszerre konfliktus neminterpretált absztrakt tulajdonságok absztrakció és finomítás hierarchikus modellezés
40
Többszörös élek Bármely e E élhez rendelhető w*(e) N+ súlyt lehet rendelni A w*(e) súlyú e él ugyanaz, mint we darab párhuzamos él => nem rajzolunk párhuzamos éleket, élsúlyt használunk 3
42
Topológia példa Határozzuk a következő hálózat topológiáját!
43
Topológia példa megoldás
44
Szomszédossági mátrix
Súlyozott szomszédossági mátrix: W = ||w(t, p)|| Dimenziója: τ × π = |T| × |P| Ha t tüzel, mennyit változik a p-beli tokenszám w(t,p) = w+(t, p) − w−(p, t) ha (t, p) ∈ E ha (t, p) /∈ E Tipp írjuk fel külön w+ és w- majd vonjuk össze a kettőt
45
Szomszédossági mátrix
w+ azok a számok kerülnek, amiket egy átmenet „belebakol” a helybe w- azok, amiket egy átmenet kivesz a helyből W mátrix összeáll ha a w+ ból kivonjuk a w- mátrixot
46
Szomszédossági mátrix
Határozzuk meg az ábrán látható hálózat szomszédossági mátrixát!
47
Szomszédossági mátrix
48
Szomszédossági mátrix
Határozzuk meg az ábrán látható hálózat szomszédossági mátrixát!
49
Szomszédossági mátrix
50
Előző órán Mi is az a PETRI háló? Működése Jellemzői
Topológia meghatározás Szomszédossági mátrix
51
A továbbiakban Tüzelési szemantika módosítása Tulajdonság modellek
strukturális és dinamikus tulajdonságok Dinamikus tulajdonságok vizsgálata Speciális topológiájú Petri hálók
52
σ = 〈Mi0 ti1 Mi1 … tinMin 〉 → 〈ti1 … tin 〉
Tüzelési szekvencia Állapot átmeneti trajektória egymást követő tüzelések hatására felvett állapotok Tüzelési szekvencia σ = 〈Mi0 ti1 Mi1 … tinMin 〉 → 〈ti1 … tin 〉 Ha az összes tranzíció kielégíti a tüzelési szabályt: – Min állapot Mi0-ból elérhető a σ tüzelési szekvencia által: Mi0 [σ > Min
53
Tüzelési szemantika módosítása
Miért is lesz jó nekünk ha ez? Hogyan módosítunk tüzelési szemantikát?
54
Tüzelési szemantika módosítása
Korábbiakban volt szó a Petri hálók nemdeterminisztikus működéséről A nemdeterminisztikus működés nem előnyős, mert nem tudjuk megmondani melyik állapot következik Cél: ezen működés korlátozás
55
Tüzelési szemantika módosítása
Hogyan érhető ez el? Prioritás rendelése a tranzíciókhoz Tiltó élek bevezetése Kapacitás rendelése a helyekhez
56
Prioritás rendelés a tranzíciókhoz
Az engedélyezett tranzíciók közül egy alacsonyabb prioritású mindaddig nem tüzelhet, amíg van engedélyezett ÉS magasabb prioritású tranzíció Azonos prioritási szinten továbbra is nemdeterminisztikus választás! Prioritás bevezetése a formális definícióba Π:T→N
57
Tiltó élek bevezetése Klasszikus Petri hálónál: Tiltás
Ponált tüzelési feltételek Bemenő helyeken a feltételek megléte Tiltás Tiltó él bevezetése Ha a feltételek megfelelőek a tüzelés akkor se hajtódhat végre
58
Tiltó él Tiltó él használatakor a tüzelési szabályt a következő képen kell egészíthetjük ki: ha a t tranzícióhoz kapcsolódó bármely (p, t ) tiltó él p bemenő helyén a w− (p, t ) élsúlynál nagyobb vagy egyenlő számú token van ⇒a tüzelés nem hajtható végre
59
Helyek kapacitáskorlátja
Minden egyes p helyhez K(p) kapacitás hozzárendelése Ez a kapacitás lesz az adott helyre maximálisan betölthető tokenek száma A tüzelési szabály újabb kiegészítése: a tranzíció egyetlen kimenő p helyre sem tölthet a hely K(p) kapacitásánál több tokent
60
Tüzelés véges kapacitású Petri hálóban
Egy t ∈ T tranzíció tüzelése akkor engedélyezett, ha elegendő token van a bemeneti helyeken: ∀ p ∈ •t : mp ≥ w− (p, t ) Kapacitáskorlát (M[t > M’ tüzelés után): ∀ p ∈ t• : m’p = mp + w + (t, p) ≤ K(p) Engedélyezett tranzíció tetszés szerint tüzelhet A tüzelés után: ∀ p ∈ P : m’p = mp + w + (t, p) - w− (p, t )
61
A kapacitáskorlát kiküszöbölése
Hogyan szüntetjük meg a P2 kapacitáskorlátját? T1 2 P1 P2 K(P2)=4 T2
62
Kiegészítő helytranszformáció
Minden egyes korlátos véges kapacitású p helyhez rendeljünk hozzá egy járulékos p’ adminisztrációs helyet a p’ adminisztrációs hely kezdőállapota M0(p’) = K(p) - M0(p) azaz a p hely még kihasználatlan kapacitása.
63
Kiegészítő helytranszformáció
2 P’ P1 P2 K(P2)=4 T2
64
Kiegészítő helytranszformáció
A p’ hely és a t ∈ •p ∪ p• tranzíciók között kiegészítő éleket húzunk be Az élek iránya attól függ, hogy t tüzelése növeli vagy csökkenti-e a p helyen levő tokenek számát: a t tranzíció és p’ hely között (t, p’ ) élet húzunk be |w(t, p)| súllyal, ha w(t, p) < 0, azaz a tüzelés elvesz tokent a p helyről a p’ hely és a t tranzíció között (p', t) élet húzunk be w(t, p) súllyal, ha w(t, p) > 0, azaz a tüzelés berak tokent a p helyre
65
Kiegészítő helytranszformáció
2 2 P’ P1 P2 K(P2)=4 T2
66
Tulajdonság modellek Tulajdonság modellek két csoportra oszthatók:
strukturális tulajdonságok: ezek a kezdőállapottól függetlenek elemzése a hely-tranzíció, topológia, illetve tüzelési szabályok alapján dinamikus tulajdonságok: kezdőállapottól függenek elemzés egy adott állapotból
67
Strukturális tulajdonságok
Strukturális élőség Vezérelhetőség Strukturális korlátosság Konzervatívság Ismételhetőség Konzisztencia
68
Dinamikus tulajdonságok - általános tulajdonságok
Elérhetőség Adott állapot, ill. állapothalmaz elérhető-e? Korlátosság Létezik-e a tokenek számának felső korlátja? Élő tulajdonság A tüzelések engedélyezetté válnak-e? Holtpontmentesség vizsgálata.
69
Dinamikus tulajdonságok - ciklikus működés jellemzése
Megfordíthatóság, ill. visszatérő állapot Van-e a rendszer működése során ciklus? Fedhetőség Van-e a rendszer működése során egy korábbi állapotot magában foglaló állapot?
70
Dinamikus tulajdonságok - párhuzamos működés jellemzése
Perzisztencia Engedélyezett tranzíciók letiltják-e egymást? Párhuzamos működés vizsgálatára. Fair tulajdonság Tranzíciók tüzelése mennyire függ egymástól – hányszor tudnak egymás nélkül tüzelni. Párhozamos működés vizsgálatára. Típusai: Korlátozott fairség Globális fairség
71
Elérhetőség Jelölés (marking) = állapot Tokeneloszlás = állapotváltozó
Tüzelés = állapotátmenet Tüzelési sorozatok hatására M0, M1, …, Mn állapotsorozat Állapotsorozat: trajektória az állapottérben Mn állapot elérhető az M0 kiinduló állapotból: ∃σ :M0 [σ > Mn
72
Elérhetőségi analízis
Az M0 kiinduló állapotból az N Petri hálóban Elérhető állapotok Állapotra vonatkozó kérdések Végrehajtható tüzelési sorozatok Állapotátmenetekre (eseményekre) vonatkozó kérdések
73
Elérhetőségi probléma
Petri hálók elérhetőségi problémája: Mn állapot elérhető-e valamilyen M0 kiinduló állapotból Rész-tokeneloszlási probléma: helyek egy részhalmazára korlátozva elérhető-e Mn állapot az adott helyekre megadott tokeneloszlással?
74
Elérhetőségi probléma megoldhatósága
Az elérhetőségi probléma elvileg megoldható azonban (legalább) exponenciális az általános esetben Az egyenlőségi probléma megoldására nem létezik algoritmus feladat: két Petri-háló lehetséges tüzelési sorozatai azonosságának eldöntése Az egyenlőségi probléma eldönthető (exponenciális időben) 1-korlátos (tokenek száma a helyeken ≤ 1, ún. biztos) Petri hálókra
75
Korlátosság k -korlátosság (korlátosság)
bármely állapotban minden helyen maximum k token lehet (M0 kiinduló állapot függő!) Biztos Petri háló: korlátosság speciális esete (k = 1) végesség kifejezése korlátosság ⇔ véges állapottér erőforrás használat, illetve általános értelemben vett feladatkezelés modellezése
76
Élőség Holtpont (deadlock) -mentesség Élő tulajdonság
Minden állapotban legalább egy átmenet tüzelhető Élő tulajdonság Átmenet egyszer/többször/végtelenszer tüzelhet-e? Gyenge élő tulajdonságok egy t átmenetre: L0-élő (halott): t sohasem tüzelhető egyetlen L1-élő: t legalább egyszer tüzelhető valamely L2-élő: bármely adott k > 0 egészre t legalább k-szor tüzelhető valamely L3-élő: t végtelen sokszor tüzelhető valamely L4-élő: t L1-élő bármely állapotban állapot -trajektóriában
77
Élőség Egy (P, T, Mo) Petri háló Lk-élő
ha minden t ∈T átmenete Lk-élő L4-től L1-ig az élő tulajdonságok tartalmazzák egymást Egy (P, T, Mo) Petri háló élőnek nevezünk ha L4-élő, azaz minden t ∈T átmenete L4-élő Bejárási úttól függetlenül garantáltan holtpontmentes köztes állapottól függetlenül minden átmenet újra tüzelhető holtpontmentesség ⇐ élőség Bizonyítása költséges lehet szerencsés esetben nem (invariánsok!) ideális rendszert tételez fel
78
Élőség példa t0 L0 élő (halott) t1 L1 élő t2 L2 élő t3 L3 élő
79
Megfordíthatóság és visszatérő állapot
A kezdőállapot bármely követő állapotból elérhető Gyakran ciklikus működésű hálózat Visszatérő állapot: Van olyan, a kezdőállapotból elérhető állapot, amely bármely őt követő állapotból elérhető Gyakran ciklikus (rész)hálózat inicializáló szekvenciával
80
Fedhetőség Fedhetőség definíciója:
Létrejön-e korábbi működést magában foglaló állapot? M’ állapot fedi M állapotot, ha M állapot fedhető M’ állapottal M’ ≥ M jelentése: M a t átmenetet engedélyező minimális tokeneloszlás t akkor és csak akkor nem L1-élő, ha M nem fedhető le tehát M lefedhetősége garantálja t L1-élő voltát
81
Perzisztencia Perzisztencia elemzés:
Tüzelések kölcsönhatásának vizsgálata Két tetszőleges engedélyezett átmenet közül egyik tüzelése sem tiltja le a másik engedélyezettségét engedélyezett átmenet engedélyezve marad tüzelésig! Rendszerbeli funkcionális dekompozíció megmarad-e? Párhuzamos működések befolyásolják-e egymást?
82
Fair tulajdonság Fair tulajdonság:
Az irodalomban nem egységes a fairség definíciója Korlátozott fairség (B-fairség) egy tüzelési szekvencia korlátozottan fair, ha bármely átmenet maximum korlátos sokszor tüzelhet másik tüzelése nélkül Globális fairség egy tüzelési szekvencia globálisan fair, ha az összes átmenet végtelen sokszor szerepel benne, amennyiben nem véges Párhuzamos folyamatok nem tartják-e fel egymást? Valamennyi folyamat végbemegy-e (előbb-utóbb)?
83
Dinamikus tulajdonságok vizsgálata Lehetséges módszerek
Állapottér bejárása: elérhetőségi gráf analízise Algebrai megközelítés Gráf-redukciós algoritmusokra alapuló módszerek Szimuláció
84
Állapottér bejárása Elérhetőségi gráf:
M0 kezdőállapotból induló állapotgráf csomópontok: tokeneloszlások, állapotátmenetek: tüzelések legfeljebb annyi új csomópont, ahány engedélyezett átmenet Szélességi típusú bejárás az állapotból tüzelések mentén Nem korlátos Petri háló → végtelen sok állapot a térben Fedési gráf: végtelen állapottér esetére is Hasonló felépítés: M0 kezdőállapot, élek: tüzelések Kritikus részek: token „túlszaporodás” trajektória: M0 … M”… M’ és M” ≤ M’ → fedett állapot! speciális szimbólum: ω a végtelenség kifejezője
85
Fedési fa generálása Lvizsgálandó := { M0 } Amíg Lvizsgálandó ≠ ∅
1. A következő M ∈ Lvizsgálandó állapot kiválasztása 2. Ha M a gyökértől idáig vezető úton már szerepelt Akkor M -et „régi állapotként” jelöljük ↵ (ciklus) 3. Ha M-ben nincs engedélyezett tüzelés Akkor M -et „végállapotként” (halott állapot) jelöljük ↵ (ciklus)
86
Fedési fa generálása Egyébként, (van M -ben engedélyezett átmenet)
Minden egyes t engedélyezett átmenetre: Az M’ rákövetkező állapot meghatározása: Ha létezik az M0-tól M -ig vezető úton olyan M”, amelyet M’ fed Akkor M” fedett állapot M’ állapotot jelölő tokeneloszlásban a fedett helyek jelöléseit -val helyettesítjük M’ új állapot: Lvizsgálandó := Lvizsgálandó M’ M -ből M’ -höz egy t -vel jelölt élet húzunk (ciklus)
87
Példa Petri háló Petri háló fedési fája
88
Példa Petri háló Petri háló fedési gráfja
89
Fedési fa analízise Közvetlenül is leolvasható tulajdonságok:
Petri háló korlátos R (N, M0) elérhetőségi gráfja véges Fedési fában nem jelenik meg címkeként Petri háló biztonságos Csak 0 és 1 jelenik meg csomópont címkeként a fedési fában Petri háló egy átmenete halott átmenethez tartozó tüzelés nem jelenik meg élcímkeként a fedési fában
90
Redukció Redukció: Érthető modellből kompakt modell
redundancia eliminálása Modellezés: szempont a valósághűség és érthetőség Elemzés: szempont a tulajdonságok egyszerű és gyors kimutatása További egyszerűsítés: modell kifejezőereje csökken ellenőrzött változtatások, de a funkcionalitás megváltozik a kiválasztott tulajdonságokat megőrzi! eredeti modellt a tulajdonságok szerint „fedő” modell jön létre Sokféle tulajdonságmegőrző transzformáció létezik
91
Transzformációk Egyszerű tulajdonságmegőrző transzformációk:
soros helyek összevonása soros tranzíciók összevonása párhuzamos helyek összevonása párhuzamos tranzíciók összevonása önhurkot alkotó helyek törlése önhurkot alkotó tranzíciók törlése Megőrzik az élő, korlátos és biztos tulajdonságokat.
92
Soros összevonások Soros helyek összevonása (FSP)
Soros tranziciók összevonása (FSP)
93
Párhuzamos összevonások
Párhuzamos helyek összevonása (FPP) Párhuzamos tranziciók összevonása (FPT)
94
Önhurok törlése önhurkot alkotó helyek törlése (ESP)
önhurkot alkotó tranzíciók törlése (EST)
95
Példa t1 tüzel t1 és t2 összevonása, soros tranzíciók p1 -> t12
96
Példa (folyt.) t12 önhurok tranzíció törlése p4 önhurok hely törlés
97
Példa (folyt.)
98
Speciális topológiájú Petri hálók
Állapotgép (State Machine, SM) minden átmenetnek pontosan egy be és kimeneti helye van van konfliktus, nincs szinkronizáció
99
Speciális topológiájú Petri hálók
Jelölt gráf (Marked Graph, MG) minden helynek pontosan egy be- és kimeneti tüzelése van szinkronizáció, nincs konfliktus
100
Speciális topológiájú Petri hálók
Szabad választású háló (Free-Choice Net, FC) minden helyből kifelé mutató él vagy egyedüli kimenő él, vagy egyedüli bemenő él egy átmenetbe lehet konkurencia és konfliktus is, de nem egyszerre dekomponálható MG és SM komponensekre
101
Speciális topológiájú Petri hálók
Kiterjesztett szabad választású háló (EFC) többszörös szinkronizáció is lehetséges
102
Speciális topológiájú Petri hálók
Aszimmetrikus választású háló (AC) lehetséges az (aszimmetrikus) konfúzió is
103
Speciális topológiájú Petri hálók
Állapotgép (SM) nem enged meg szinkronizációt Jelölt gráf (MG) nem enged meg választást Szabad választású háló (FC) nem enged meg konfúziót Aszimmetrikus vál. háló (AC) megenged aszimmetrikus konfúziót, de nem enged meg szimmetrikus konfúziót
104
Invariánsok a Petri hálókban
Petri hálók különböző jellemzőiből számíthatók nagy segítség az elemzésben Két féle invariáns létezik T- (tranzíció-) P- (place-)
105
T-invariáns olyan tüzelési szekvencia, amely végrehajtása nem változtatja meg a Petri-háló tokeneloszlását bizonyítható a rendszer ciklikus működése ha létezik: rendszer élő holtpontmentes
106
P-invariáns általa kijelölt helyeken a tokenek súlyozott összege nem változik azaz a tokenek egy részhalmaza (vagy akár teljes halmaza) a helyek egy (rész)halmazában kering A P-invariánsok által meghatározott helyeken biztosan nem nő a tokenek száma - > a háló korlátos el sem veszik token -> a háló élő
107
Martinez-Silva algoritmus
Példa
108
Martinez-Silva algoritmus
109
Martinez-Silva algoritmus
110
Martinez-Silva algoritmus
111
Martinez-Silva algoritmus
112
Martinez-Silva algoritmus
113
Felhasznált irodalom Benyó Balázs – Formális módszerek (2008)
BME MIT (Pararicza, Gyapay, Bartha,… ) NetAcademia-tudástár – (Petri-hálók modellezése és analízise, Formális módszerek az informatikában (1), Formális módszerek az informatikában (2)
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.