Barvené Petriho sítě Barvené Petriho sítě p.1/34
Úvod do CPN Barvené Petriho sítě (Coloured Petri Nets CPNs): Kurt Jensen, Aarhus Uviversity, Dánsko, 1981. Monografie: K. Jensen: Coloured Petri Nets. Monographs in Theoretical Computer Science, Springer-Verlag, 1992-1997. Tří díly: základní koncepty, analýza a průmyslové případové studie. Řada úvodních článků, příkladů,... dostupná na. Eistují i alternativní koncepty CPN, všechny ale více méně v podobném duchu. Někdy se též hovoří o tzv. High-Level Petri Nets. CPN jsou motivovány snahou odstranit některé nevýhody klasických (P/T) Petriho sítí: Petriho sítě, poskytující primitiva pro popis synchronizace paralelních procesů, jsou rozšířeny o eplicitní popis datových typů a datových manipulací. Barvené Petriho sítě p.2/34
Nástroje: Design/CPN, CPN Tools (oba Aarhus University), dále např. ESpect,... (viz ). CPN byly aplikovány v řadě průmyslových případových studií: komunikační protokoly a sítě, software (části SW Nokia, bankovní transakce, distribuované algoritmy,...), hardware, řídící systémy, vojenské systémy,... Podobně jako u P/T Petriho sítí eistují různá rozšíření CPN o fyzický čas. CPN jsou základem pro další rozšíření: hierarchické CPN či různé objektově-orientované Petriho sítě (PNtalk, Renew,...). Barvené Petriho sítě p.3/34
Petriho sítě s individuálními značkami Individual Token Nets with Constant Arrow Labels: A B C D E A B 2 1 2 3 2 C D E A B A+B C+D+E AAA 2 A+B BB 2 C+3 D +2 E D EE A+B C+D+E C D E A B 2 A+B 2 C+3 D +2 E CC DDDD EEEE Barvené Petriho sítě p.4/34
Další jednoduchý příklad změna ročních období: Spring Summer Spring Winter Spring Summer Autumn season Winter Autumn Barvené Petriho sítě p.5/34
Individual Token Nets with Variable Arrow Labels: AB BC C y y y = B y = C A C y y y B C C binding (navázání) A y (,y) C a ac B T b bc TYPEOF(A) = { a, b } TYPEOF(B) = { c, d } TYPEOF(C) = { a, b } {c, d } = { (a,c), (a,d), (b,c), (b,d) } c d ad bd colour sets colours Barvené Petriho sítě p.6/34
Neformální zavedení CPN, Uvažujme příklad popisu systému přidělování prostředků (zdrojů). Systém je tvořen: 2 třídami procesů procesy, resp., 3 typy zdrojů,,, stavy procesů,,...,,,...,, počátečním stavem. Vlastní činnost systému lze popsat P/T Petriho sítí takto: Barvené Petriho sítě p.7/34
V CPN můžeme sloučit popis chování podobných procesů který průchod alokačním cyklem daný proces provádí. a. Budeme registrovat, Model ve tvaru CPN zahrnuje dvě složky: 1. grafickou část graf Petriho sítě a 2. popisy inskripci. Inskripce, vyjádřená inskripčním jazykem, obsahuje: deklaraci množin barev (coloured sets), tj. datových typů, specifikaci množin barev míst, popis hran, strážní podmínky přechodů, počáteční značení, (jména míst a přechodů). Náš systém sdílení zdrojů pak můžeme modelovat např. tak, jak je ukázáno na následujícím slajdu... Barvené Petriho sítě p.8/34
Barvené Petriho sítě p.9/34
Každý hranový výraz se vyhodnotí na multimnožinu značek: konstruktor multimnožiny: n 1 c 1 + n 2 c 2 +...n m c m, n 1,n 2,..., n m jsou konstanty, proměnné nebo funkce, které se vyhodnotí na kladná přirozená čísla, c 1,c 2,..., c m jsou konstanty, proměnné nebo funkce, které se vyhodnotí na barvy, příklady: varianta jednoduchého popisu změn ročních období: Spring suc() suc(spring)=summer suc(summer)=autumn suc(autumn)=winter suc(winter)=spring Po zavedení jiného systému barev a hranových výrazů můžeme náš systém sdílení zdrojů modelovat např. také tak, jak je ukázáno na následujícím slajdu... Barvené Petriho sítě p.10/34
Barvené Petriho sítě p.11/34
A konečně po zavedení ještě jiného systému barev a hranových výrazů můžeme náš systém sdílení zdrojů modelovat také takto: Výše uvedený příklad demonstruje mj. skutečnost, že při použití CPN máme volbu, které rysy systému popsat Petriho sítí a které výpočtem v použitém inskripčním jazyce. Barvené Petriho sítě p.12/34
Jiný příklad: databáze je distribuována do n míst (sites); každé místo obsahuje kopii všech dat, o kterou se stará systém správy databáze (DBM): DBM = {d 1,..., d n }, zprávy zasílané mezi DBM: MES = {(s, r) s, r DBM s r}, kde s sender, r receiver, Mes(s) = P r DBM\{s} 1 (s, r). SendMes Mes(s) Sent MES (s,r) RecMes DBM Waiting s E Active Update and Send Messages e e MES Unused MES Mes(s) Mes(s) e Passiv e E e e s Inactive r DBM DBM Receive a Message (s,r) Received (s,r) MES r Performing DBM val n = 4; color DBM = inde d with 1..n declare ms; color PR = product DBM * DBM declare mult; fun diff(,y) = (<>y); color MES = subset PR by diff declare ms; color E = with e; fun Mes(s) = mult PR(1 s,dbm--1 s); var s, r : DBM; s Receive all Acknowledgments s r Send an Acknowledgment r RecAck Mes(s) Acknowledged (s,r) SendAck MES Barvené Petriho sítě p.13/34
Formální definice multimnožiny Multimnožina m nad množinou S je funkce m : S N: m(s) značí počet výskytů prvku s v multimnožině m. Multimnožinu m obvykle reprezentujeme formální sumou P s S m(s) s. Symbolem S MS značíme množinu všech multimnožin nad S. Jestliže m(s) 0, pak říkáme, že s patří do m a píšeme s m. Pro multimnožiny je definována: operace sjednocení m 1 + m 2 = P s S (m 1(s) + m 2 (s)) s, skalární multiplikace, predikáty =,,, (např. m 1 m 2 s S : m 1 (s) m 2 (s)), kardinalita m = P s S m(s) a je-li m 1 m 2, pak také rozdíl m 2 m 1. Barvené Petriho sítě p.14/34
Formální definice syntae CPN Některé pomocné funkce a pojmy: Vycházíme z dané konečné množiny Σ konečných množin barev (Σ je tedy množina typů značek). Typ proměnné v budeme značit Type(v). Je-li V množina proměnných, pak Type(V ) = {Type(v) v V }. Typ výrazu epr budeme značit T ype(epr). Množinu proměnných výrazu epr budeme značit V ar(epr). Uzavřeným výrazem rozumíme výraz epr bez proměnných, tj. V ar(epr) =. Označme EXP R množinu všech výrazů přípustných ve zvoleném inskripčním jazyce. Označme CEXPR EXPR množinu všech uzavřených výrazů přípustných ve zvoleném inskripčním jazyce. Konečně označme B = {true, false}. Barvené Petriho sítě p.15/34
Nehierarchická barvená Petriho sít CPN je n-tice CPN = (Σ, P, T, A, N, C, G,E, I), kde: 1. Σ je konečná množina konečných, neprázdných typů nazývaných množinami barev. 2. P je konečná množina míst. 3. T je konečná množina přechodů taková, že P T =. 4. A je konečná množina hran taková, že A P = A T =. 5. N je uzlová funkce (node function) N : A P T T P. 6. C je funkce barev (colour function) C : P Σ. 7. G je funkce strážních podmínek (guard function) G : T EXPR taková, že t T : Type(G(t)) = B Type(V ar(g(t))) Σ. 8. E je funkce hranových výrazů (arc epression function) E : A EXP R taková, že a A : Type(E(a)) = C(p(a)) MS Type(V ar(e(a))) Σ, přičemž p(a) je místo v N(a). 9. I je inicializační funkce I : P CEXPR taková, že p P : Type(I(p)) = C(p) MS. Barvené Petriho sítě p.16/34
Naši první CPN verzi systému alokace sdílených zdrojů můžeme dle definice zapsat takto: Barvené Petriho sítě p.17/34
Formální definice sémantiky CPN Navázání množiny proměnných V přiřazuje každému v V prvek b(v) Type(v). Hodnotu získanou vyhodnocením epr při navázání b budeme značit epr b. Necht V ar(t) je množina všech proměnných vyskytujících se ve výrazech na hranách přilehlých k přechodu t, respektive ve stráži t. Navázání přechodu t je funkce b definovaná na V ar(t) tak, že: 1. v V ar(t) : b(v) Type(v). 2. G(t) b. B(t) pak značí množinu všech navázání přechodu t. Barvené Petriho sítě p.18/34
Element značení (token element) je dvojice (p, c), kde p P a c C(p). Množinu všech elementů značení značíme T E. Značení je pak multimnožina nad TE. Množinu všech značení značíme M. Počáteční značení M 0 je definováno vyhodnocením inicializační funkce: (p, c) TE : M 0 ((p, c)) = (I(p))(c). Element navázání (binding element) je dvojice (t,b), kde t T a b B(t). 1. Množinu všech elementů navázání značíme BE. 2. Krokem pak rozumíme neprázdnou a konečnou multimnožinu nad BE. 3. Množinu všech kroků značíme Y. Barvené Petriho sítě p.19/34
Krok Y Y je proveditelný (enabled) ve značení M M, jestliže platí následující: p P : X (t,b) Y E(p,t) b M(p) Je-li Y proveditelný, pak: Říkáme, že každý (t,b) Y je proveditelný, a také, že t je proveditelný (pro navázání b). Pro (t 1, b 1 ), (t 2, b 2 ) Y, (t 1,b 1 ) (t 2, b 2 ), říkáme, že (t 1, b 1 ), (t 2, b 2 ) jsou současně proveditelné (concurrently enabled). Je-li Y ((t,b)) 2, říkáme, že (t, b) je současně proveditelný sám se sebou. Podobně je-li Y (t) 2, říkáme, že t je současně proveditelný sám se sebou. Je-li Y Y proveditelný v M 1 M, může být proveden a změnit tak značení na M 2 M takové, že: p P : M 2 (p) = (M 1 (p) X E(p,t) b ) + X E(t,p) b ) (t,b) Y (t,b) Y Barvené Petriho sítě p.20/34
Hierarchické barvené Petriho sítě Barvené Petriho sítě p.21/34
Hierarchické strukturování v PN Proč strukturování? Modelování a návrh rozsáhlých systémů jsou nemyslitelné na úrovni jednoho, plochého modelu. Hierarchické strukturování v PN dle Huber, Jensen, Shapiro: substituce přechodů přechod staticky nahrazen podsítí (podobné rozvoji maker), substituce míst místo staticky nahrazeno podsítí, invokace přechodů přechod při provádění dynamicky nahrazen nově vytvořenou kopií příslušné podsítě, která eistuje, dokud se neobjeví značka ve zvlášt specifikovaném výstupním místě dané podsítě (analogie volání funkce), fúze míst několik míst je staticky spojeno do jednoho (nebo jedno místo je při návrhu rozděleno na několik, aby se předešlo přílišnému křížení hran). Barvené Petriho sítě p.22/34
Substituce přechodů T Net1 U Net2 Port Port Port P1 P2 P3 T A B C U A B C T1 T2 T1 T2 S Subst Net2 A->P1, B->P2, C->P3 D->P4, E->P5 P6 P6 D E T3 T3 V Port P4 Port P5 D E V Barvené Petriho sítě p.23/34
Substituce míst A B C Net1 A B C Port T1 Net2 Port T2 T U V W T U V W P1 P1 X S Subst Net2 T,U,V->T1, W->T2 X,Y->T3 Y P2 T4 P3 P2 T4 P3 D T3 Port X Y D Barvené Petriho sítě p.24/34
Invokace přechodů T Net1 U a fresh instance of Net2 Port Port Port P1 P2 P3 Net2 Port Port Port P1 P2 P3 A B C input tokens T1 T2 T1 T2 I Invoc Net2 A->P1, B->P2, C->P3 D->P4, E->P5 P6 P6 D E T3 T3 Eit V output tokens P4 P5 P4 P5 Port Port Port Port Barvené Petriho sítě p.25/34
Fúze míst T1 T1 T4 T4 A1 T2 B A2 A T2 B Fus A T3 T5 Fus A T3 T5 Při kombinaci fúze míst se substitucí přechodů či míst (či s invokací přechodů) je možné zavést různé typy fúze: lokální v rámci jedné instance sítě, napříč všemi instancemi dané sítě a napříč všemi instancemi všech sítí. Barvené Petriho sítě p.26/34
Příklad hierarchická CPN kruhové sítě Nejvyšší hierarchická úroveň model sítě, jejíž jednotlivé uzly jsou popsány dále podsítěmi: Barvené Petriho sítě p.27/34
Podsít modelující jeden uzel sítě (mezi instance sítě a u globální fúzi): a předpokládáme fúzi v rámci Barvené Petriho sítě p.28/34
Rozvinutím hierarchie dostaneme tuto CPN (fúze míst ještě není provedena): Barvené Petriho sítě p.29/34
Konečně po fúzi míst dostaneme tuto CPN: Barvené Petriho sítě p.30/34
Objektově orientované Petriho sítě Barvené Petriho sítě p.31/34
Eistují různé koncepty zavedení objektové orientace do Petriho sítí, které v zásadě staví na mechanismech podobných invokaci přechodů. OOPN/PNtalk vyvinutý na FIT ( pracuje s: třídami s dědičností, objektovými sítěmi v každé třídě popisují strukturu stavu jejích instancí a jejich případné aktivní chování, metodami mohou být vyvolány k asynchronní komunikaci s objekty, synchronními porty zvláštní forma přechodů aktivovaná voláním a umožňující synchronní komunikaci s objekty, objekty jako instancemi tříd a s běžícími instancemi metod, pozdní vazbou. ) Barvené Petriho sítě p.32/34
OOPN/PNtalk umíst uje výpočty do stráží a akcí přechodů (na rozdíl od dříve popsaného konceptu CPN) a používá inskripčním jazyk inspirovaný Smalltalkem (na rozdíl od SML), jak je vidět v níže uvedeném jednoduchém modelu systému s čítači: a class C1 is_a PN t2 t3 p2 p4 the message pattern the name of the class the superclass of the class o reset:. > 4. o (,y) o p1 o := C2 new o y := o resetwhen: 2, 3 (,#fail) 3 t4 p3 t1 a parameter the message selector C2 is_a PN resetwhen: < y tf #fail ts return a synchronous port a parameter place reset: 0 0 0 p y #succ y < 5 an object net y := + 1 t a method net the return place Barvené Petriho sítě p.33/34
Ukázka dědičnosti v OOPN/PNtalk: an inhereted method net C3 is_a C2 resetwhen: tf ts < y #succ #fail return a redefined synchronous port 0 y t reset: ~= 0 0 0 p y < 5 y := + c c 1 step setstep: s s a new method net s s t return an inhereted place a redefined transition a new place Barvené Petriho sítě p.34/34