FORMÁLIS MÓDSZEREK NGM_IN003_1 PETRI HÁLÓK
Történelmi áttekintés Carl Adam Petri (1926-2010) 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
Alapok automataelmélet logika
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.
Alapvető tulajdonságok Egyidejűleg grafikai matematikai reprezentáció Struktúrával fejezi ki vezérlési struktúra adatmodell
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
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
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
Példa Petri hálóra helyek
Példa Petri hálóra átmenet / tranzició
Példa Petri hálóra token token
Példa Petri hálóra Állapotvektor Általánosan M = 𝑚1 ⋮ 𝑚𝜋 P2 P1 Jelen esetben P3 M = 1 0 3 P1 P2 P3 A kezdőállapotot mindig az M0 állapotvektor jelöli
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●
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
Működés Engedélyezettség ellenőrzése Bemeneti helyek / tokenek / bemenő élek Bemeneti helyeken van-e elég token?
Példa működésre
Példa működésre
Példa működésre
Példa működésre
Példa működésre
Példa működésre
Példa működésre
Példa működésre
Példa működésre
Példa működésre
Példa működésre
Példa működésre
Példa működésre
Példa működésre
Példa működésre
Példa működésre
Példa működésre
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
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
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
Jellemzők - Két tranzíció nem tüzel egyszerre tej tejes kávé kávé Ír kávé whiskey
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
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
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
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
Topológia példa Határozzuk a következő hálózat topológiáját!
Topológia példa megoldás
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 0 ha (t, p) /∈ E Tipp írjuk fel külön w+ és w- majd vonjuk össze a kettőt
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
Szomszédossági mátrix Határozzuk meg az ábrán látható hálózat szomszédossági mátrixát!
Szomszédossági mátrix
Szomszédossági mátrix Határozzuk meg az ábrán látható hálózat szomszédossági mátrixát!
Szomszédossági mátrix
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
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
σ = 〈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
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?
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
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
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
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
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
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
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 )
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
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.
Kiegészítő helytranszformáció 2 P’ P1 P2 K(P2)=4 T2
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
Kiegészítő helytranszformáció 2 2 P’ P1 P2 K(P2)=4 T2
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
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
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.
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?
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
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
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
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?
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
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
É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
É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
Élőség példa t0 L0 élő (halott) t1 L1 élő t2 L2 élő t3 L3 élő
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
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
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?
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)?
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ó
Á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
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)
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)
Példa Petri háló Petri háló fedési fája
Példa Petri háló Petri háló fedési gráfja
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
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
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.
Soros összevonások Soros helyek összevonása (FSP) Soros tranziciók összevonása (FSP)
Párhuzamos összevonások Párhuzamos helyek összevonása (FPP) Párhuzamos tranziciók összevonása (FPT)
Önhurok törlése önhurkot alkotó helyek törlése (ESP) önhurkot alkotó tranzíciók törlése (EST)
Példa t1 tüzel t1 és t2 összevonása, soros tranzíciók p1 -> t12
Példa (folyt.) t12 önhurok tranzíció törlése p4 önhurok hely törlés
Példa (folyt.)
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ó
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
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
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
Speciális topológiájú Petri hálók Aszimmetrikus választású háló (AC) lehetséges az (aszimmetrikus) konfúzió is
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
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-)
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
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ő
Martinez-Silva algoritmus Példa
Martinez-Silva algoritmus
Martinez-Silva algoritmus
Martinez-Silva algoritmus
Martinez-Silva algoritmus
Martinez-Silva algoritmus
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)