Barvené Petriho sítě. Barvené Petriho sítě p.1/34

Podobné dokumenty
Úvod do Petriho sítí. TIN Úvod do Petriho sítí p.1/37

Strukturování Petriho Nadpis 2 Nadpis 3

Úvod do Petriho sítí. Ing. Michal Dorda, Ph.D.

MODELOVÁNÍ UZAVŘENÝCH OBSLUŽNÝCH LOGISTICKÝCH SYSTÉMŮ PETRIHO SÍTĚMI

Fakulta elektrotechniky a informatiky

PODPROGRAMY PROCEDURY A FUNKCE

Informační systémy 2008/2009. Radim Farana. Obsah. Nástroje business modelování. Business modelling, základní nástroje a metody business modelování.

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Programování II. Třídy a objekty (objektová orientovanost) 2018/19

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program

1 Nejkratší cesta grafem

Komunikace. Úrovová architektura protokol. Úrovová architektura protokol (2) Pednášky z distribuovaných systém

Tabulka symbolů. Vazba (binding) Vazba - příklad. Deklarace a definice. Miroslav Beneš Dušan Kolář

Maturitní otázky z předmětu PROGRAMOVÁNÍ

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů.

Programovací jazyk Pascal

Algoritmizace diskrétních. Ing. Michal Dorda, Ph.D.

ACTA UNIVERSITATIS AGRICULTURAE ET SILVICULTURAE MENDELIANAE BRUNENSIS SBORNÍK MENDELOVY ZEMĚDĚLSKÉ A LESNICKÉ UNIVERZITY V BRNĚ

Unifikovaný modelovací jazyk UML

Algoritmizace prostorových úloh

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Model Checking pro Timed Automata. Jiří Vyskočil 2011

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Automaty a gramatiky(bi-aag) Motivace. 1. Základní pojmy. 2 domácí úkoly po 6 bodech 3 testy za bodů celkem 40 bodů

Paralelní programování

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services

doplněk, zřetězení, Kleeneho operaci a reverzi. Ukážeme ještě další operace s jazyky, na které je

Algoritmizace prostorových úloh

Úvod do programovacích jazyků (Java)

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U

Softwarové komponenty a Internet

6 Objektově-orientovaný vývoj programového vybavení

Metody tvorby ontologií a sémantický web. Martin Malčík, Rostislav Miarka

Program a životní cyklus programu

Zpracování deklarací a přidělování paměti

Úvod do informatiky. Miroslav Kolařík. Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008.

GRAFY A GRAFOVÉ ALGORITMY

Manuál programu HPSim

Dynamicky vázané metody. Pozdní vazba, virtuální metody

Objektové programování

Profilová část maturitní zkoušky 2017/2018

IB111 Programování a algoritmizace. Objektově orientované programování (OOP)

Konzistentnost. Přednášky z distribuovaných systémů

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

CAL (CAN Application Layer) a CANopen

NAIVNÍ TEORIE MNOŽIN, okruh č. 5

Programování v C++ 2, 4. cvičení

Struktura programu v době běhu

4.2 Syntaxe predikátové logiky

Výroková a predikátová logika - II

UML. Unified Modeling Language. Součásti UML

Modely Herbrandovské interpretace

Modelování procesů (1) Procesní řízení 1

Jazyk C++ I. Šablony

Základní způsoby: -Statické (přidělění paměti v čase překladu) -Dynamické (přiděleno v run time) v zásobníku na haldě

Výroková a predikátová logika - II

Výroková a predikátová logika - III

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ

Definice uživatelského typu. Uživatelem definované typy. Součinové datové typy. Součtové datové typy. FLP - Uživatelem definované typy

Regulární výrazy. Definice Množina regulárních výrazů nad abecedou Σ, označovaná RE(Σ), je definována induktivně takto:

2. Modelovací jazyk UML 2.1 Struktura UML Diagram tříd Asociace OCL. 3. Smalltalk 3.1 Jazyk Pojmenování

Polymorfismus. Časová náročnost lekce: 3 hodiny Datum ukončení a splnění lekce: 30.března

Množinu všech slov nad abecedou Σ značíme Σ * Množinu všech neprázdných slov Σ + Jazyk nad abecedou Σ je libovolná množina slov nad Σ

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Jazyk C++, některá rozšíření oproti C

Základní způsoby: -Statické (přidělění paměti v čase překladu) -Dynamické (přiděleno v run time) v zásobníku na haldě

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Jazyk C++ I. Polymorfismus

Software602 Form Designer

Datové typy a struktury

IV113 Validace a verifikace. Převod LTL formule na Büchi automat. Jiří Barnat

Název předmětu: Školní rok: Forma studia: Studijní obory: Ročník: Semestr: Typ předmětu: Rozsah a zakončení předmětu:

3. přednáška. Obsah: Řídící struktury sekvence, if-else, switch, for, while, do-while. Zpracování posloupnosti

Dolování v objektových datech. Ivana Rudolfová

Cvičení ze statistiky - 5. Filip Děchtěrenko

Lekce 04 Řídící struktury

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Diferenciální rovnice a jejich aplikace. (Brkos 2011) Diferenciální rovnice a jejich aplikace 1 / 36

1. Dědičnost a polymorfismus

Algoritmizace prostorových úloh

Další (neklasické) logiky. Jiří Velebil: AD0B01LGR 2015 Predikátová logika 1/20

11 Diagram tříd, asociace, dědičnost, abstraktní třídy

Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i,

Algoritmy. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 15. dubna / 39

Vývoj IS - strukturované paradigma II

Klasické metodiky softwarového inženýrství I N G M A R T I N M O L H A N E C, C S C. Y 1 3 A N W

typová konverze typová inference

Operační výzkum. Síťová analýza. Metoda CPM.

Logické programování

Řídicí struktury. alg3 1

PREPROCESOR POKRAČOVÁNÍ

Základní datové struktury III: Stromy, haldy

LabView jako programovací jazyk II

Predikátová logika dokončení

Výroková a predikátová logika - VII

EKO-KOLONIE. Ústav informatiky, Filozoficko-přírodovědecká fakulta Slezské univerzity v Opavě 24.

Dynamické datové struktury I.

Algoritmizace a programování

Informační systémy 2008/2009. Radim Farana. Obsah. UML - charakteristika

Transkript:

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