Osnova přednášky Informační a řídicí systémy I. Úvod do Petriho sítí Pavel Balda ZČU v Plzni, FAV, KKY Úvod, historie Povolení (enabling) a provedení (firing) přechodu Příklady modelů Vlastnosti Metody analýzy Živost (Liveness), bezpečnost (safeness) a dosažitelnost (reachability) Doporučená literatura Úvod [] Tadao Murata. Petri nets: Properties, Analysis and Applications. Proc. of the IEEE, 77(4), 989. [] Zuravski, R; Zhou, M. Petri nets and industrial applications: A tutorial. IEEE Trans. on Industrial Electronics, 4(6), 994. Přednáška zpracována podle [] 3 Petriho sítě (PS) Vhodné pro popis: souběžně probíhajících dějů (concurrent), asynchronních, distribuovaných, paralelních, nedeterministických a/nebo stochastických systémů Grafický nástroj Usnadnění vizuální komunikace Podobnost s vývojovými diagramy a SFC (viz přednášky o normě IEC 63-3) Matematický nástroj Stavové rovnice, algebraické rovnice, a další modely popisující chování systémů Metodika pro usnadnění komunikace mezi teoretiky a praktiky 4
Historie Petriho sítí 96: Disertace: Carl Adam Petri (U. Darmstadt, Německo) 970: Konference projektu MAC na téma: Concurrent Systems and Parallel Computation (MIT, USA) 975: Konference k Petriho sítím a příbuzným metodám (MIT, USA) 979: Kurs k obecné teorii sítí procesů a systémů (Hamburg, Německo) 980: První evropský workshop na téma aplikace a teorie Petriho sítí (Štrasburk, Francie) 985: První mezinárodní workshop kčasovaným Petriho sítím (Turín, Itálie) a mnoho dalších Aplikace Petriho sítí Vyhodnocení výkonnosti (performance evaluation) počítatových systémů Komunikační protokoly Distribuované programové systémy Distribuované databázové systémy Souběžné (concurrent) and paralelní programování Průmyslové řídicí systémy Systémy diskrétních událostí multiprocessor memory systems Výpočetní systémy pro zpracování toků dat (dataflow-computing systems) Systémy odolné selháním (fault-tolerant systems) Atd., atd. 5 6 Definice Petriho sítě Formální definice Petriho sítě Orientovaný ohodnocený bipartitní graf Dva typy uzlů: Místa (places) ohodnocena nezáporným počtem značek (tokens) Přechody (transitions) Hrany (arcs) Spojují místa s přechody nebo přechody s místy Každá hrana je ohodnocena celočíselnou váhou udávající násobnost hrany Počáteční označkování Přiřazení a nezáporného celého čísla každému místu 7 Petriho síť je pětice PN = ( PT,, FW,, M0), kde: P= ( p, p,..., p m ) je konečná množina míst (places) T = (, t,..., t n ) je konečná množina přechodů (transitions) F ( P T) ( T P) je množina hran (arcs) W : F {,,3,...} je váhová funkce M : {0,,,3,...} je počáteční označkování 0 P T = a P T Petriho síť N = ( PTFW,,, ) bez daného počátečního označkování se označuje N Petriho síť s daným počátečním označkováním se značí ( NM, ) 0 8
Pravidlo (odpálení) přechodu Příklad odpálení (provedení) pravidla Pravidlo t je uschopněno (povoleno, enabled) pokud každé jeho vstupní místo (input place) p má alespoň w(p,t) značek (tokens), kde w(p,t) je váha hrany z p do t H + O H O Uschopněné pravidlo může, ale nemusí být odpáleno (provedeno, fired) Provedení povoleného pravidla t odstraňuje w(p,t) značek z každého vstupního místa p a přidává w(t,p ) značek do každého výstupního místa p, kde w(t,p ) je váha hrany z t do p H O t H O H O t H O 9 0 Další definice Věta o převodu sítě s omezenou kapacitou Source transition: nemá žádná vstupní místa vždy uschopněn (enabled) Sink transition: nemá žádná výstupní místa při provedení odebere příslušný počet značek (tokens), avšak žádné nevytvoří Smyčka (self-loop): dvojice (p,t) taková, že p je jak vstupním, tak i výstupním místem přechodu t Čistá (pure) Petriho síť: neobsahuje žádné smyčky Obyčejná Petriho síť: váha každé hrany je Síť s neomezenou kapacitou: místa mohou kumulovat neomezený počet značek (tokens) Síť s omezenou kapacitou: Každé místo p má maximální kapacitu K(p) Přísné pravidlo přechodu: Takové pravidlo, po jehož odpálení (firing) má každé výstupní místo nejvýše K(p) tokenů Slabé pravidlo přechodu: Každé pravidlo, které není přísné Věta: Každá čistá Petriho síť s omezenou kapacitou a s přísnými pravidly přechodu může být transformována na ekvivalentní síť s neomezenou kapacitou se slabými pravidly přechodu. Obě sítě jsou ekvivalentní v tom smyslu, že mají shodné množiny všech možných prováděcích posloupností (firing sequences). Důsledek: Stačí vyšetřovat sítě s neomezenou kapacitou 3
Příklad: Konečný automat Příklad: Konečný automat pomocí PS Automat na bonbóny možno používat jen mince Kč a Kč Nevrací zpět 0 Konečný automat = Finite-state machine Prodej bonbón za 3 Kč 3 4 Prodej bonbón za 4 Kč Konečný automat Každý přechod má právě jeden vstup a jeden výstup 0Kč Konflikt, rozhodování nebo volba Umožňuje reprezentaci rozhodování, ale ne synchronizaci paralelních činností Kč Kč Prodej bonbón za 3 Kč 3Kč 4Kč Prodej bonbón za 4 Kč 3 4 Příklad: Modelování paralelních činností Příklad: Modelování postupného výpočtu Paralelní běh Paralelní činnosti jsou prováděny odpálením přechodu až po odpálení přechodu t4 Paralelní běh, konkurence t t4 x = (a+b)/(a b) a kopíruj a + a+b / x Každé místo na obrázku má právě jednu příchozí a jednu odchozí hranu. Podmnožina Petriho sítí s touto vlastností se někdy nazývá označkovaný graf (marked graph) kopíruj b b a b 0 =0 NaN 5 6 4
Příklad: Jednoduchý komunikační protokol Příklad: synchronizace zápisu a čtení Pro modelování komunikačních protokolů se často používají pojmy živost a bezpečnost Petriho sítě (viz dále) Připraven k poslání Pošli Proces zprávu zprávu Proces Čekání na potvrzení Zpráva přijata Přijmi potvrzení Potvrzení přijato Buffer je naplněn Buffer je naplněn Připraven k přijetí ack. sent Přijmi Pošli potvrzení 7 Jeden proces zapisuje data do sdílené paměti reprezentované místem p 3 k procesů může tato data číst t t 4 p 4 k k zapisování k p 3 p čtení k p t t 3 8 Vlastnosti závislé na počátečním označkování (/3) V angl. literatuře se označují behavioral properties Dosažitelnost (reachability) Označkování M n jedosažitelné z M 0, pokud existuje posloupnost odpálení, která převádějí M 0 na M n Bylo dokázáno, že dosažitelnost je rozhodnutelná, avšak je zapotřebí alespoň exponenciální prostor a čas pro obecný případ! Označení: R(M 0 ) množina všech dosažitelných označkování z M 0. L(M 0 ) množina všech přípustných posloupností odpálení z M 0 Omezenost (boundedness) Petriho síť je k-omezená (nebo jen omezená), pokud počet tokenů v každém místě nepřekročí konečnou hodnotu k pro jakékoliv značkování dosažitelné zm 0 Petriho síť se nazývá bezpečná, je-li -omezená Vlastnosti závislé na počátečním označkování (/3) Živost (liveness) PS je živá (nebo ekvivalentně M 0 je živé označkování) pokud pro každé označkování M dosažitelné z M 0 existuje pro jakýkoliv přechod t značkování M dosažitelné z M, ze kterého lze t odpálit (t je uschopněný) Živost je ekvivalentní s neexistencí deadlocku (deadlock-free) Podrobněji je definováno: přechod t v PS (N, M 0 ) je: Mrtvý (L0-živý), když t nemůže být odpálen v žádné posloupnosti v L(M 0 ) L-živý (potenciálně odpalitelný), pokud t může být odpálen alespoň jednou L-živý, pokud pro dané celé kladné k může být t v nějaké posloupnosti odpálen alespoň k-krát L3-živý, pokud se t vyskytuje nekonečněkrát v nějaké posloupnosti v L(M 0 ) L4-živý nebo živý, je-li L-živý pro každé označkování M z R(M 0 ) Platí: L4-živost => L3-živost => L-živost => L-živost (=> je implikace) 9 0 5
Vlastnosti závislé na počátečním označkování (3/3) Obratitelnost (reversibility) PS je obratitelná, pokud pro každé označkování M dosažitelné z M0 je též M0 dosažitelnéz M Volnější podmínka domovský stav: označkování M je nazýváno domovským stavem (home state), pokud pro každé označkování M dosažitelné z M0, je M dosažitelnéz M Pokrytelnost (coverability) Označkování M je pokrytelné, pokud existuje M dosažitelné z M0 takové, že M (p) M(p) for všechna místa p Persistence PS je persistentní, pokud pro jakékoliv dva uschopněné přechody a odpálení jednoho z nich nezakáže ( nezneschopní ) odpálení toho druhého Tedy, pokud je jednou přechod uschopněn, zůstává uschopněn, dokud není odpálen Všechny označkované grafy (marked graphs) jsou persistentní Bezpečná persistentní PS může být transformována do označkovaného grafu Metody analýzy (/3) Strom pokrytelnosti (coverability tree) Stromová reprezentace všech přípustných označkování Kořen M 0 Uzly označkování dosažitelná z M 0 hrany odpálené přechody Je-li síť neomezená, je strom udržen konečný zavedením symbolu ω Vlastnosti PS is omezená, právě když se symbol ω nevyskytuje v žádném uzlu PS je bezpečnám, právě když se v uzlech vyskytují pouze nuly a jedničky Přechod je mrtvý, právě když se nevyskytuje v žádné hraně Je-li M dosažitelné z M 0, pak existuje uzel M, který pokrývá M Příklad: konstrukce stromu pokrytelnosti (/7) Příklad: konstrukce stromu pokrytelnosti (/7) M0=(00) M0=(00) p p p p M=(00) t t 3 4 6
Příklad: konstrukce stromu pokrytelnosti (3/7) Příklad: konstrukce stromu pokrytelnosti (4/7) M0=(00) M0=(00) p t p M=(00) M3=(w0) p t p M=(00) M4=(0w) M3=(w0) 5 6 Příklad: konstrukce stromu pokrytelnosti (5/7) Příklad: konstrukce stromu pokrytelnosti (6/7) M0=(00) M0=(00) p t p M=(00) M4=(0w) M3=(w0) M3=(w0) p t p M=(00) M4=(0w) t M3=(w0) M6=(w0) M5=(0w) 7 8 7
Příklad: konstrukce stromu pokrytelnosti (7/7) Metody analýzy (/3) Incidenční matice A 00 t 00 0w w0 M0=(00) M=(00) M4=(0w) t M3=(w0) M6=(w0) n přechodů, m míst, A je typu n x m a ij = a ij+ a ij, kde a ij + = w(i,j) je váha hrany z přechodu i na výstupní místo j a a ij = w(j,i) je váha hrany do přechodu i ze vstupního místa j a ij udává změnu počtu tokenů v místě j při jednom odpálení přechodu i Stavová rovnice (state equation) M k = M k + A T u k M5=(0w) u k = e i jednotkový vektor říkající, že je odpálen přechod i Graf pokrytelnosti Strom pokrytelnosti 9 30 Metody analýzy (3/3) Podtřídy Petriho sítí (/3) Pravidla pro redukci, která zachovávají živost, bezpečnost a omezenost Slučováníseriových míst (a) Slučování seriových přechodů (b) Slučováníparalelních míst (c) Slučováníparalelních přechodů (d) Eliminace míst se smyčkou (e) Eliminace přechodů se smyčkou (f) Pomáhají čelit složitosti problémů (a) (c) (b) (d) Obyčejná (ordinary) PS Všechny hrany mají váhu Mají stejnou výkonnost pro modelování jako obecné PS, rozdíl je pouze v efektivitě Stavový automat (state machine, SM) Každý přechod má právě jedno vstupní a právě jedno výstupní místo Označkovaný graf (marked graph, MG) Každé místo má právě jeden vstupní a právě jeden výstupní přechod (e) (f) 3 3 8
Podtřídy Petriho sítí (/3) Free-choice PS (FC) Každá výstupní hrana z místa je buď jediná (unique) hrana z daného místa nebo je jedinou vstupní hranou do nějakého přechodu Rozšířené free-choice PS (EFC) Mají-li dvě místa nějaký společný výstupní přechod, pak mají všechny výstupní přechody společné Asymmetric choice (simple) PS (AC) Mají-li dvě místa nějaký společný výstupní přechod, pak jedno z nich má všechny výstupní přechody toho druhého (a může jich mít více) Podtřídy Petriho sítí (3/3) PN AC EFC FC SM MG PN 33 34 Nutná podmínka dosažitelnosti Je-li M d dosažitelné z M 0 po d odpáleních, pak je M d = M 0 + A T (u +u +...+u d ), což lze přepsat na A T x = M, kde M = M d M 0 then M range(a T ) M null(a) B f M = 0 where the rows of B f span null(a) 35 9