108
3 1 ÚVOD .................................................................................................. 6 1.1 Historie ..................................................................................................... 6 1.2 Základní principy modelování................................................................... 7 1.2.1 Systémový koncept modelu ........................................................................ 7 1.3 Modelování diskrétních systémů .............................................................. 8 1.3.1 Konečný automat ........................................................................................ 8 1.4 Modelování diskrétních systémů Petriho sítěmi ....................................... 9 2 OBYČEJNÉ PETRIHO SÍTĚ .............................................................. 11 2.1 C/E Petriho sítě ...................................................................................... 11 2.2 P/T Petriho sítě....................................................................................... 14 2.2.1 Ohodnocení hran ...................................................................................... 14 2.2.2 Graf Petriho sítě ....................................................................................... 15 2.3 Struktura P/T Petriho sítí ........................................................................ 16 2.3.1 Značení Petriho sítě ................................................................................. 16 2.3.2 Incidenční funkce...................................................................................... 16 2.4 Metody lineární algebry pro analýzu P/T Petriho sítí ............................. 17 2.4.1 Incidenční matice...................................................................................... 17 2.4.2 Aktivní přechod, vektor přechodu ............................................................. 18 2.4.3 Výpočet značení po odpalu posloupnosti přechodu ................................. 19 2.4.4 Dosažitelné značení ................................................................................. 20 2.5 Vlastnosti Petriho sítí .............................................................................. 20 2.5.1 Ohraničená síť .......................................................................................... 21 2.5.2 Živá síť...................................................................................................... 21 2.5.3 Reverzibilní síť .......................................................................................... 21 2.5.4 Konzervativní síť ....................................................................................... 22 2.5.5 P-invarianty............................................................................................... 23 2.5.6 T-invarianty ............................................................................................... 23 2.5.7 Stavový prostor a přechodová funkce Petriho sítí .................................... 25 2.5.8 Stavový strom (reachability tree) .............................................................. 26 2.5.9 Konfliktní přechody ................................................................................... 28 2.6 Rozšíření P/T Petriho sítí ....................................................................... 29 2.6.1 Síť s omezenou kapacitou míst ................................................................ 29 2.6.2 Testovací hrany ........................................................................................ 30 2.7 Petriho sítě s inhibitory (P/T PN with inhibitors) ..................................... 31 2.8 Petriho sítě s prioritami (P/T PN with priorities) ..................................... 34 2.8.1 Booleova algebra...................................................................................... 35 2.8.2 Petriho sítě logických operátorů ............................................................... 36 3 PETRIHO SÍTĚ VYŠŠÍ ÚROVNĚ....................................................... 38 3.1 Barevné Petriho sítě ............................................................................... 38

šablona pro skripta - cvut.cz

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: šablona pro skripta - cvut.cz

3

1 ÚVOD .................................................................................................. 6

1.1 Historie ..................................................................................................... 6

1.2 Základní principy modelování................................................................... 7

1.2.1 Systémový koncept modelu ........................................................................ 7

1.3 Modelování diskrétních systémů .............................................................. 8

1.3.1 Konečný automat ........................................................................................ 8

1.4 Modelování diskrétních systémů Petriho sítěmi ....................................... 9

2 OBYČEJNÉ PETRIHO SÍTĚ .............................................................. 11

2.1 C/E Petriho sítě ...................................................................................... 11

2.2 P/T Petriho sítě ....................................................................................... 14

2.2.1 Ohodnocení hran ...................................................................................... 14

2.2.2 Graf Petriho sítě ....................................................................................... 15

2.3 Struktura P/T Petriho sítí ........................................................................ 16

2.3.1 Značení Petriho sítě ................................................................................. 16

2.3.2 Incidenční funkce ...................................................................................... 16

2.4 Metody lineární algebry pro analýzu P/T Petriho sítí ............................. 17

2.4.1 Incidenční matice ...................................................................................... 17

2.4.2 Aktivní přechod, vektor přechodu ............................................................. 18

2.4.3 Výpočet značení po odpalu posloupnosti přechodu ................................. 19

2.4.4 Dosažitelné značení ................................................................................. 20

2.5 Vlastnosti Petriho sítí .............................................................................. 20

2.5.1 Ohraničená síť .......................................................................................... 21

2.5.2 Živá síť...................................................................................................... 21

2.5.3 Reverzibilní síť .......................................................................................... 21

2.5.4 Konzervativní síť ....................................................................................... 22

2.5.5 P-invarianty............................................................................................... 23

2.5.6 T-invarianty ............................................................................................... 23

2.5.7 Stavový prostor a přechodová funkce Petriho sítí .................................... 25

2.5.8 Stavový strom (reachability tree) .............................................................. 26

2.5.9 Konfliktní přechody ................................................................................... 28

2.6 Rozšíření P/T Petriho sítí ....................................................................... 29

2.6.1 Síť s omezenou kapacitou míst ................................................................ 29

2.6.2 Testovací hrany ........................................................................................ 30

2.7 Petriho sítě s inhibitory (P/T PN with inhibitors) ..................................... 31

2.8 Petriho sítě s prioritami (P/T PN with priorities) ..................................... 34

2.8.1 Booleova algebra ...................................................................................... 35

2.8.2 Petriho sítě logických operátorů ............................................................... 36

3 PETRIHO SÍTĚ VYŠŠÍ ÚROVNĚ ....................................................... 38

3.1 Barevné Petriho sítě ............................................................................... 38

Page 2: šablona pro skripta - cvut.cz

4

3.1.1 Poznámky ................................................................................................. 43

3.2 Hiearchické Petriho sítě (Hiearchical PN) .............................................. 46

3.3 Objektové Petriho sítě (Object-Oriented PN) ......................................... 48

4 ČASOVANÉ PETRIHO SÍTĚ.............................................................. 50

4.1 Stochastické Petriho sítě ........................................................................ 51

4.2 Obecné stochastické sítě (GSPN-Generalized Stochastic Petri Net) ... 52

4.3 Frontové Petriho sítě .............................................................................. 53

5 MARKOVSKÉ ŘETĚZCE ................................................................... 55

5.1 Stochastické procesy ............................................................................. 55

5.2 Markovské řetězce s diskrétním časem DTMC – Discrete Time Markov Chain ............................................................................................................ 55

5.2.1 Definice markovského řetězce.................................................................. 56

5.2.2 Matice přechodu ....................................................................................... 57

5.2.3 Stabilizovaný stav systému ...................................................................... 59

5.3 Bodový proces ........................................................................................ 61

5.4 Markovovy procesy se spojitým časem CTMC – Continuous Time Markov Chain ............................................................................................... 64

5.4.1 Matice přechodu ....................................................................................... 65

5.4.2 Matice intenzit ........................................................................................... 66

5.4.3 Graf diferenciálních přechodů................................................................... 68

5.4.4 Kolmogorovovy diferenciální rovnice ........................................................ 68

5.4.5 Stabilizovaný stav ..................................................................................... 69

5.4.6 Vnořený markovský řetězec s diskrétním časem ...................................... 69

5.4.7 Postup při analýze CTMC ......................................................................... 70

5.5 Stochastické Petriho sítě (SPN) jako Markovovy řetězce ...................... 71

6 MODELOVÁNÍ SYSTÉMŮ HROMADNÉ OBSLUHY .......................... 75

6.1 Obslužný systém .................................................................................... 75

6.2 Kendallova klasifikace ............................................................................ 76

6.2.1 Vstupní tok ............................................................................................... 76

6.2.2 Délka obsluhy ........................................................................................... 77

6.2.3 Počet obslužných linek ............................................................................. 77

6.2.4 Kapacita zásobníku .................................................................................. 77

6.2.5 Frontový režim .......................................................................................... 77

6.3 Sledované charakteristiky systémů hromadné obsluhy ......................... 78

6.3.1 Vstupní parametry .................................................................................... 78

6.3.2 Výstupní parametry .................................................................................. 78

6.4 Systémy s poissonovským vstupem....................................................... 79

6.4.1 Littleho vztahy........................................................................................... 80

6.4.2 Vlastnost PASTA ( Poisson Arrivals See Time Averages) ........................ 80

6.5 Metody teorie hromadné obsluhy ........................................................... 80

Page 3: šablona pro skripta - cvut.cz

5

6.6 Analytické metody markovských systémů M/M/n/r ................................ 81

Vstup zákazníků do systému M/M/n/r ................................................................ 82

Výstup zákazníků ze systému M/M/n/r .............................................................. 82

6.6.1 M/M/1/0 – jednolinkový systém se ztrátami .............................................. 83

6.6.2 M/M/1/r ..................................................................................................... 85

6.6.3 M/M/1/ .................................................................................................... 87

6.6.4 M/M/2/ .................................................................................................... 89

6.6.5 M/M/n/ .................................................................................................... 91

6.7 Výpočetní nástroje markovských systémů ............................................. 94

6.8 Simulace systémů hromadné obsluhy Petriho sítěmi ............................ 95

6.8.1 Simulace SHO obecnými stochastickými Petriho sítěmi ........................... 95

7 VYBRANÉ NÁSTROJE PETRIHO SÍTÍ ........................................... 98

7.1 Manuál programu HPSim ................................................................... 99

7.1.1 Základní informace o programu HPSim .............................................. 99

7.1.2 Popis programu: .................................................................................. 99

7.1.3 Instalace .............................................................................................. 99

7.1.4 Spuštění HPSim .................................................................................. 99

7.1.5 Základy................................................................................................ 99

7.1.6 Práce s dokumenty ............................................................................. 99

7.1.7 Panely nástrojů ................................................................................. 100

7.1.8 Kreslení grafických objektů ............................................................... 101

7.1.9 Start simulace ................................................................................... 102

7.1.10 Rychlý začátek .................................................................................. 102

7.1.11 Krok 1: Nastavení vlastností dokumentu ........................................... 102

7.1.12 Krok 2: Vytváříme síť......................................................................... 103

7.1.13 Krok 3: Nastavení vlastností jednotlivým objektům ........................... 106

7.1.14 Krok 4: Grafické zvýraznění .............................................................. 106

7.1.15 Krok 5: Spuštění simulace................................................................. 108

8 SEZNAM POUŽITÉ LITERATURY ................................................ 109

Page 4: šablona pro skripta - cvut.cz

6

1 ÚVOD

All models are wrong, but some models are useful

Georgie E.P. Box

Petriho sítěmi je označována široká škála matematických modelů, které umožňují

grafický popis paralelismu informační závislosti a konfliktů moderních distributivních

systémů. V současné době jsou Petriho sítě nejčastěji spojovány s aplikacemi při návrhu,

analýze a modelování paralelních a distribuovaných systému a to v oblastech databázových

systémů, překladačů, v telekomunikacích nebo při popisu automatizovaných průmyslových

systémů.

Srozumitelnost a analyzovatelnost Petriho sítí je dána jejich jednoduchostí. Model je

popsán místy (places), která obsahují stavovou informaci ve formě žetonů (tokens) a přechody

(transitions), které představují možné změny stavů. Místa jsou s relevantními přechody

spojeny hranami (arcs). Významná výhoda tohoto modelovacího nástroje je možnost

grafického vyjádření a možnost simulovat graficky dynamické chování modelu. V současnosti

existuje celá řada programů, podporujících práci s Petriho sítěmi. Tyto softwary obvykle

obsahují grafický editor a simulátor pro analýzu síte. Jejich využití výrazně zefektivňuje

používání Petriho sítí v konkrétních aplikacích a je velmi výhodné i pro praktickou výuku.

1.1 Historie Petriho sítě poprvé představil C.A.Petri1v roce 1962 ve své disertační práci (Kommunikation

mit Automaten) . V sedmdesátých letech se velmi rychle ukázalo, že se jedná o jeden z

nejlepších a nejvhodnějších jazyků pro popis, modelování a analýzu systémů, ve kterých se

vyskytují synchronizační, komunikační a zdroje sdílející procesy. Nicméně pokusy

praktického použití Petriho sítí ukázaly jejich dvě vážné nevýhody. Prvním je chybějící

koncept práce s daty. Z tohoto důvodu se vznikající modely stávají nepřiměřeně velké,

protože veškerá manipulace s daty musí být prezentována přímo do struktury sítě. Druhou

nevýhodou je chybějící hierarchický koncept a proto není možno stavět velké modely z

množiny menších sub-modelů s dobře definovaným vzájemným rozhraním. Rozvoj vyšších

Petriho sítí v 70-tých letech 20. století a rozvoj hierarchických Petriho sítí v druhé polovině

80-tých let odstranily výše zmiňované nevýhody. Barevné Petriho sítě (označované jako CP

nebo CPN) jsou jedním ze dvou nejznámějších typů vyšších Petriho sítí. Barevné Petriho sítě

obsahují jak integraci datových struktur, tak možnost hierarchické dekompozice. Pojem

Petriho sítě byl tak postupně obohacován a zobecňován tak, aby jeho modelovací schopnost

vyhověla praktickým potřebám.

Obecně jde vždy o precizně definovanou matematickou strukturu, jejíž vlastnosti lze

dokazovat formálními metodami. Existence různých variant Petriho sítí souvisí se snahou

zvyšovat modelovací schopnosti a úroveň modelu a přitom současně zachovat jednoduchost

modelu, která je pro Petriho sítě příznačná. Obecně platí, že vyšší typy jsou hůře

analyzovatelné, ale poskytují vyšší komfort.

V následující kapitole shrneme základní termíny z teorie modelování diskrétních

systémů a procesů a ukážeme jejich souvislost s Petriho sítěmi. Petriho sítě budou definovány

1 Carl Adam Petri (*1926 v Leipzigu) německý matematik a počítačový vědec.

Page 5: šablona pro skripta - cvut.cz

7

jako matematická struktura vhodná pro modelování a teoretické zkoumání paralelních

systémů

1.2 Základní principy modelování

Model je nástrojem poznávání reality a účinným prostředkem řešení zejména složitých a

rozsáhlých problémů. Modelem může být jakákoliv myšlenková konstrukce v dostatečně

abstraktní podobě.

Pro hrubé rozlišení různých koncepcí modelování lze jako východisko uvažovat stupeň

abstrakce, jakož i směr, kterým je proces abstrakce veden [2]. Modely lze rozdělit do dvou

skupin:

1. Ikonické modely, které jsou jen proporcionálním zmenšením reálných objektů (systémů)

– např. přehrady, části toku řeky, letadla apod., kde fyzické vlastnosti objektů umožňují

jejich použití jako modelů.

2. Formální (symbolické, formalizované) nebo matematické modely, které jsou budovány

ze symbolů (znaků). I když jsou symboly vnímanými objekty, jejich fyzická podoba

nehraje podstatnou roli.

Model, jako výrazový prostředek vědomého a přípustného zjednodušení reálné

skutečnosti je obvykle chápán (např. [2], [3], [32], [34]) jako pracovní nástroj k uchopení a

řešení problémů objektivní reality a jako prostředek homogenizace heterogenních prvků a

jejich vlastností.

V modelové praxi však nebývá shoda objektu (originálu modelování) a modelu, resp.

objekt identifikujícího a modelujícího systému, dokonalá.

Modelová tvorba se neobejde bez ujasnění výchozích předpokladů. Ty jsou v každém

modelu a priori obsaženy, ať si toho je tvůrce či aplikátor modelu vědom nebo si to ani

neuvědomuje (skryté, výslovně nevyjádřené, implicitní předpoklady). K největším omylům

při používání modelových přístupů zvládání problémů dochází tehdy, jestliže při interpretaci

výsledků uživatel (aplikátor, implementátor) modelu zanedbá výchozí předpoklady, hypotézy

a teorie, z nichž vyšel tvůrce modelu.

Nutnou podmínkou úspěšného modelového řešení je dobrá znalost věcné problematiky

modelově uchopeného problému. Dále platí zkušenostně ověřený fakt, že úspěšná

implementace a interpretace modelového řešení předpokládá dostatečnou zkušenostní a

znalostní vybavenost aplikátora modelu.

Správná interpretace výsledků modelového řešení, je nezbytným předpokladem pro

definitivní posouzení výsledků modelu, případně pro jejich úpravu, před jejich implementací

do praxe.

1.2.1 Systémový koncept modelu

Obecná a matematické teorie systémů se tradičně zabývá systémy dobře popsanými

mechanikou, teorií obvodů, fyzikální chemií a dalšími vědami, jež pracují s veličinami jako je

rychlost, zrychlení, napětí, proud, tlak, teplota, průtok atd. Každá z těchto veličin je zpravidla

reprezentována spojitým stavem, jež je definován na oboru reálných čísel. Na tomto základě

byla vyvinuta řada nástrojů a technik pro modelování, analýzu a řízení systémů kolem nás.

Základní rámec tohoto oboru, zpravidla nazývaného spojité systémy, se opírá o obyčejné a

parciální diferenciální rovnice. Pro systémy, kde je vývoj stavů vzorkován v diskrétních

Page 6: šablona pro skripta - cvut.cz

8

(ekvidistantních) časových úsecích, potom zpravidla využíváme diferenční rovnice a

nazýváme je – poněkud nepřesně – jako diskrétní systémy. Nepřesnost spočívá ve slově

diskrétní, jelikož stavy těchto systémů jsou spojité a události se dějí v ekvidistantních

okamžicích (neboli v diskrétním čase).

Nicméně ve světě reálných systémů kolem nás, které jsou stále více závislé na

počítačích, si povšimneme dvou podstatných skutečností. Zaprvé, řada stavů má diskrétní

charakter (kolik je výrobků ve skladu, mám/nemám potvrdit zprávu apod.), vedoucích k

reprezentaci celými nezápornými čísly. Zadruhé, řada těchto systémů je řízena diskrétními

událostmi ve spojitém čase (příchod zprávy před time-outem, stisk tlačítka myši při dvojkliku,

příchod přerušení apod.). Proto se pro tyto systémy vžil název systémy diskrétních událostí

(DES, discrete event systems).

1.3 Modelování diskrétních systémů Chování dynamického systému2 můžeme charakterizovat stavovou proměnnou a

změnami její hodnoty v čase[14, 15]. U diskrétních systémů pozorujeme jen skokové změny

stavu, způsobené výskyty událostí. Při zkoumání diskrétních systémů můžeme posloupnost

okamžiků t1, t2,…,tn událostí nahradit aritmetickou posloupností 1, 2, ….,n. Systém

specifikujeme obvykle konečným předpisem, na jehož základě lze příslušnou posloupnost

stavů generovat.

Použitelným modelem je zde konečný automat. V následující kapitole stručně zavedeme

pojmy deterministický a nedeterministický automat. Pro podrobný výklad doporučujeme

čtenáři monografii [15].

1.3.1 Konečný automat

Konečné automaty jsou klasickým nástrojem používaným pro modelování diskrétních

událostí dynamických systémů. Popisuje velice jednoduchý počítač, který může být v jednom

z několika stavů, mezi kterými přechází na základě symbolů, které čte ze vstupu.

Základním prostředkem popisu změny v modelovaném systému při použití konečného

automatu je pojem stav a přechod mezi stavy. Automat přechází mezi stavy na základě

symbolů, které čte ze vstupu. Množina stavů je konečná, konečný automat nemá žádnou další

paměť kromě informace o aktuálním stavu.

Formálně je konečný automat definován jako uspořádaná pětice (S, Σ, σ, s, A), kde:

• S je konečná množina stavů.

• Σ je konečná množina vstupních symbolů, nazývaná abeceda.

• σ je tzv. přechodová funkce (též přechodová tabulka), popisující pravidla přechodů mezi

stavy. Může mít buď podobu S × Σ → S (deterministický automat), nebo S × {Σ ε} →

P(S) (nedeterministický automat), viz níže.

• s je počáteční stav, s S.

• A je množina přijímajících stavů, A S.

Na počátku se automat nachází v definovaném počátečním stavu. Dále v každém kroku

přečte jeden symbol ze vstupu a přejde do stavu, který je dán hodnotou, která v přechodové

tabulce odpovídá aktuálnímu stavu a přečtenému symbolu. Poté pokračuje čtením dalšího

2 Systém je část prostředí, kterou lze od jeho okolí oddělit prostřednictvím fyzické nebo myšlenkové hranice.

Systém je tvořen vzájemně propojenými částmi – podsystémy. Z hlediska popisu systému dále nedělitelné

podsystémy nazýváme elementárními prvky

Page 7: šablona pro skripta - cvut.cz

9

symbolu ze vstupního řetězce (slova), dalším přechodem podle přechodové tabulky atd. Podle

toho, zda automat skončí po přečtení slova ve stavu, který patří do množiny přijímajících

stavů, platí, že automat buď dané slovo přijal, nebo nepřijal. Množina všech řetězců, které

daný automat přijme, tvoří regulární jazyk.

Deterministický konečný automat obsahuje v každém místě přechodové tabulky právě

jeden cílový stav. Přechodovou funkci lze ale definovat také tak, že v každém aktuálním stavu

při daném vstupu není jeden cílový stav, ale nějaká množina stavů – prvek potenční množiny

P(S). Takový automat se nazývá nedeterministický konečný automat. Takový hypotetický

automat pak při přečtení jednoho symbolu ze vstupu přejde jakoby současně do všech stavů

této množiny a ze všech těchto stavů pokračuje čtením dalšího vstupu. Vstup pak

nedeterministický automat přijme tehdy, je-li alespoň jeden stav z těch, ve kterých automat

nakonec zůstane, prvkem množiny přijímajících stavů. V přechodové tabulce

nedeterministického automatu je také navíc sloupeček pro prázdný vstup, označovaný ε (ε

obecně v celé teorii formálních jazyků označuje prázdné slovo; musí platit, že ε ∉ Σ).

Obr. 1.1: Modelování změny stavu konečným automatem

Na Obr. 1.1 je např. modelována změna v určitém systému, která nastane vstupem u

. Automat přejde ze stavu s1S do stavu s2S.

1.4 Modelování diskrétních systémů Petriho sítěmi

Předpokládejme nyní, že daný systém rozložíme na subsystémy. Potom je ale nutné

popsat kombinaci stavů jednotlivých subsystémů zvláštními, tzv. parciálními stavy. Např.

nechť je účelné popsat stav s1 určitými podmínkami, či parciálními stavy s11, s12, s13 a stav

s2 je vhodné rozložit na parciální stavy s21 a s22. Pak situaci na Obr. 1.2 lze prostředky

Petriho sítě vyjádřit takto:

Obr. 1.2: Distribuce stavu na parciální stavy

Obr. 1.3: Odpálení přechodu v Petriho síti

Znázorněná distribuce stavů s1 a s2 na parciální stavy, které jsou vyjádřeny

doplňujícími vlastnostmi a podmínkami a spojení těchto podmínek s událostmi systému je

základní myšlenkou popisu diskrétního systému Petriho sítí. Parciální stavy, graficky

zobrazené jako malé kružnice, se nazývají místa (places). Vzory možných událostí jsou

modelovány spojením míst s přechody. Přechod označujeme v grafu obdélníkem. Aktuální

stav systému je definován umístěním žetonů (tokens) v místech, což graficky vyznačujeme

tečkami v kružnicích. Přítomnost značky v místě modeluje skutečnost, že daný aspekt stavu

(parciální stav) je v tomto okamžiku splněn.

Každý přechod má definovaná vstupní a výstupní místa, což je v grafu vyjádřeno

orientovanými hranami. Tím je deklarováno, které aspekty stavu podmiňují výskyt

Page 8: šablona pro skripta - cvut.cz

10

odpovídajících událostí (enabling rule) a které aspekty jsou výskytem této události ovlivněny

(firing rule). Událost může být uskutečněna jen v případě, že jsou všechny vstupní podmínky

splněny. Uskutečnitelné události odpovídají v Petriho sítích aktivním přechodu. Tedy přechod

může je aktivní jen pokud všechny vstupní místa obsahují značky. Uskutečněním události se

změní vstupní i výstupní aspekty, tj. provedením přechodu (firing rule) se odstraní žetony ze

vstupních míst (vstupní podmínky přestanou platit) a umístí se nové žetony do výstupních

míst (uplatní se výstupní podmínky).

Např. představme si, že událost u na Obr. 1.2 simuluje obsluhu zákazníka. K tomu, aby

byl zákazník obsloužen (přechod u) je nutné, aby nějaký zákazník obsluhu požadoval (místo

s11), aby byla obslužná linka volná (místo s12) a aby byl k dispozici potřebný materiál (místo

s13). Jsou-li všechny tyto podmínky splněny, obsluha bude uskutečněna, tj. přechod u bude

odpálen (Obr. 1.3). Přijetím zákazníka do obsluhy začne linka pracovat (místo s21) stejně jako

začne pracovat obslužný personál (místo s22). Událostí u se změní parciální stavy, které jsou

touto událostí ovlivněny. Zákazník obsluhu nepožaduje, linka obsluhuje zákazníka, tedy není

připravená pro příjem dalšího zákazníka a dostupný materiál byl právě spotřebován.

Odpálením přechodu u se tedy změní všechna vstupní i výstupní místa přechodu u.

Page 9: šablona pro skripta - cvut.cz

11

2 OBYČEJNÉ PETRIHO SÍTĚ

Existence různých variant Petriho sítí souvisí se snahou zvyšovat modelovací schopnosti a

úroveň modelu a přitom současně zachovat jednoduchost modelu.

V následující kapitole neformálním způsobem probereme několik typů Petriho sítí . Na

příkladech vysvětlíme, jak fungují a k čemu mohou sloužit. Postupovat budeme historicky od

dřívějšího k pozdějšímu, od jednoduchého k složitějšímu, od speciálního k obecnějšímu.

Postupně projdeme tyto typy Petriho sítí:

• C/E (Condition/Event) Petriho sítě,

• P/T (Place/Transitions) Petriho sítě,

• P/T Petriho sítě s inhibičními hranami,

• P/T Petriho sítě s prioritami,

Všechny typy Petriho sítí tvoří vždy precizně definovanou matematickou strukturu, jejíž

vlastnosti lze dokazovat formálními metodami. Obecně platí, že čím jednodušší je struktura

sítě, tím jednodušší je její analýza.

2.1 C/E Petriho sítě Interpretace míst jako logických (dvouhodnotových) podmínek je charakteristická pro

nejjednodušší sítě – Condition/Even Petri Nets. C/E Petriho síť je zadána následujícími údaji:

• podmínkami (conditions) zobrazovanými kroužky,

• událostmi (events) zobrazovanými obdélníky (případně úsečkami),

• šipkami vedoucími od podmínek k událostem,

• šipkami vedoucími od událostí k podmínkám,

• žetony (zobrazenými tečkami v kroužcích podmínek) indikujícími logický stav

(pravdivost) podmínek, jejich počáteční rozložení v síti nazýváme počátečním stavem

nebo počátečním značením (initial marking) sítě.

V C/E Petriho síti:

• podmínka c je vstupní podmínkou (precondition) události e, jestliže od podmínky c

vede šipka k události e,

• podmínka c je výstupní podmínkou (postcondition) události e, jestliže od události e

vede šipka podmínce c,

• každá podmínka je vždy buď splněna nebo nesplněna,

• každá splněná podmínka je indikována žetonem, tj. tečkou uvnitř kroužku

zobrazujícího podmínku,

• celkový (globální) stav sítě je zadán množinou podmínek, které jsou v daném

okamžiku splněny,

Ke změny stavů C/E Petriho sítě dochází uskutečňováním událostí. Událost může nastat, jsou-

li všechny její vstupní podmínky splněny a současně všechny její výstupní podmínky

nesplněny – takovou událost nazýváme proveditelnou. Po provedení proveditelné události

jsou všechny její výstupní podmínky splněny a všechny její vstupní podmínky nesplněny.

Poznamenejme, že provedena může být pouze proveditelná událost, avšak proveditelná

událost může také zůstat neprovedena.

Page 10: šablona pro skripta - cvut.cz

12

Příklad: Obr. 2.1 zobrazuje změnu stav před a po provedení proveditelné události.

Obr. 2.1: Změna stavu v C/E Petriho síti

Speciálním případem C/E Petriho sítě je částečný konečný automat. Je to síť vyznačující se

tím, že každá událost má právě jednu vstupní podmínku, a právě jednu výstupní podmínku. V

síti se pak pohybuje jediný žeton, který označuje podmínku definující aktuální stav automatu.

Speciálním případem C/E Petriho sítí jsou tzv. čisté sítě (pure nets), tj. C/E Petriho sítě, ve

kterých nejsou přípustné smyčky (self-loop) tvořené podmínkou c, událostí e a hranami (c,e),

(e,c). Podmínka c je současně vstupní i výstupní podmínkou události e a provedení události e

nemění stav podmínky c. Hrany (c,e), (e,c) elementární smyčky nazýváme také testovacími

hranami. Pomocí těchto hran událost e pouze testuje podmínku c, aniž by měnila její platnost.

Speciálním případem C/E Petriho sítí jsou tzv. elementární sítě (elementary nets), což jsou

C/E Petriho sítě, pro které platí současně:

• každá událost má alespoň jednu vstupní podmínku (událost, která by tuto vlastnost

neměla, by umožňovala vstup libovolného počtu žetonů do sítě),

• každá událost má alespoň jednu výstupní podmínku (událost, která by tuto vlastnost

neměla, by umožňovala výstup libovolného počtu žetonů ze sítě),

• žádná událost nemá žádnou podmínku, která by pro ni byla současně vstupní i výstupní

(tj. síť je čistá).

Poznámka: Je možná dvojí duální interpretace podmínek a událostí – statická a dynamická.

Zpravidla interpretujeme podmínku jako statický stav a událost jako dynamický děj. Je ale

možná i opačná interpretace: podmínka reprezentuje děj, který probíhá, pokud podmínka platí

a události představují bodové okamžiky, ve kterých se mění platnost podmínek.

Příklad: Obrázek vlevo zobrazuje pomocí C/E Petriho sítě

cyklický proces, který čas od času potřebuje využívat nějaký

zdroj. Může se jednat např. o výpočetní proces v počítači, který

čas od času tiskne výsledky na tiskárně.

Interpretace stavů p1,p2, p3, p4 a událostí t1,t2,t3:

p1: proces činný bez potřeby zdroje

p2: proces čeká na přidělení zdroje

p3: proces využívá zdroj

p4: zdroj není využíván

t1: vznik požadavku na zdroj

t2: počátek využívání zdroje

t3: ukončení využívání zdroje

Příklad: Obr. 2.2 vlevo reprezentuje pomocí C/E Petriho dva nekonečné cyklické procesy,

které čas od času potřebují využívat společný zdroj. Může se jednat o dva nezávislé výpočetní

Page 11: šablona pro skripta - cvut.cz

13

procesy ve dvou počítačích, které sdílejí společnou tiskárnu. Obr. 2.2 vpravo zobrazuje tutéž

situaci, ale poněkud úsporněji: místo dvou míst (podmínek) p4, p5 pro zobrazení stavu

využívání zdroje, je použito pouze místo jediné p4.

Obr. 2.2: Využívání sdíleného zdroje dvěma procesy

Příklad: Obr. 2.3 zobrazuje fragment Petriho sítě, ilustrující synchronizaci paralelních

procesů pomocí semaforu a pomocí tzv. rendes-vous. Proces 1. nastavuje semafor na "volno"

pro proces 2. (událost b2 nemůže nastat dříve než událost b1), který jej za sebou shazuje

(nastavuje na "stát"). Událost b představuje schůzku (rendes-vous) procesů 3.a 4., kterákoliv z

událostí c3,c4 může nastat až po uskutečnění obou dvou událostí a3,a4.

Obr. 2.3: Synchronizace procesů

Na následujících obrázkách jsou zobrazeny fragmenty Petriho sítí, ilustrující některé

další typické situace se kterými se setkáváme při modelování paralelních procesů a to:

a) vyloučení souběhu činnosti v tzv. kritické sekci na (Obr. 2.4). Události a, b procesů 1

a 2 nemohou nastat současně.

b) zabezpečení pravidelného střídání dvou činností (Obr. 2.5). Události c, d procesů 3 a 4

se musí pravidelně střídat.

c) triviální případ tzv. deadlocku neboli uzamčení (Obr. 2.8). Žádná z událostí e, f

nemůže nikdy nastat

Page 12: šablona pro skripta - cvut.cz

14

Obr. 2.4: Kritická sekce

Obr. 2.5: Střídání událostí

Obr. 2.6: Triviální deadlock

2.2 P/T Petriho sítě V P/T Petriho sítích (Place/Transition Petri Nets) místa zpravidla označují stavy

modelovaného systému a přechody změny stavu. Stav je charakterizován celým nezáporným

číslem daným značením daného místa (počtem žetonů v daném místě). Při modelování

počítačových dějů jedná se např. o počty jednotek volné nebo obsazené paměti o počty

jednotek disponibilních nebo využívaných zdrojů různého typu apod.

P/T Petriho síť je tvořena následujícími objekty:

• místy (places), graficky reprezentovanými kružnicemi,

• přechody (transitions), graficky reprezentovanými obdélníky,

• orientovanými hranami (arcs), graficky reprezentovanými šipkami směřujícími od míst

k přechodům nebo od přechodů k místům

• udáním váhy (weights) pro každou hranu sítě, tj. přirozeného čísla udávajícího

násobnost hrany,

• udáním počátečního značení (initial marking), určujícího počet žetonů pro každé místo

sítě.

2.2.1 Ohodnocení hran

V případě, že místo modeluje logickou podmínku, je stav místa binární. V případě, že

příslušná podmínka platí, místo žeton obsahuje, v opačném případě je místo prázdné.

V konkrétních příkladech je zbytečně komplikované reprezentovat model pouze binárními

parciálními stavy. Aktuální stav místa může reprezentovat např. počet osob, množství

materiálu apod., proto je účelné počet žetonů v místě reprezentovat nezáporným celým

číslem. V tom případě lze vstupní podmínku pro událost formulovat obecněji jako minimální

počet značek, které musí vstupní místo obsahovat. Každou orientovanou hranu pak můžeme

ohodnotit přirozeným číslem. Odpalem přechodu odebereme ze vstupního místa tolik žetonů,

kolik je hodnota hrany spojující místo s přechodem a analogicky do každého výstupního

místa přidáme tolik značek, kolik je hodnota příslušné hrany (Obr. 2.7). Toto zobecnění se

výhodně využívá při modelování požadavků na omezené zdroje systému.

Page 13: šablona pro skripta - cvut.cz

15

(a)

(b)

Obr. 2.7: Odpálení přechodu v Petriho síti s ohodnocenými hranami. Obrázek (a) znázorňuje stav před odpálení

přechodu u, obrázek (b) po odpálení přechodu u.

Zavedení vícenásobných hran nikterak nezvyšuje modelovací schopnosti Petriho sítí,

ale pouze umožňuje jejich jednodušší zápis. Každou síť s násobnými hranami lze převést na

ekvivalentní síť bez násobných hran, která modeluje stejný reálný problém.

V dalším textu budeme dodržovat konvenci, že hrana, která není v grafu sítě explicitně

ohodnocena má váhu jedna.

2.2.2 Graf Petriho sítě

Pro grafickou reprezentací Petriho sítě je orientovaný graf. Místa a přechody jsou uzly

grafu. Počet žetonů, potřebných pro odpal (produkovaných odpalem) je reprezentovány

orientovanou ohodnocenou hranou. Orientovaná hrana vede z místa k přechodu pro vstupní

podmínky přechodu, výstupní podmínky po uskutečnění přechodu jsou reprezentovány

orientovanými hranami z přechodu do výstupních míst. Není možné spojovat místa

navzájem., stejně tak by nemělo logické opodstatnění spojovat přechod s přechodem. Petriho

síť je tedy reprezentována orientovaným bipartitním multigrafem3.

Příklad: Obr. 2.8 ukazuje P/T Petriho síť zobrazující pět cyklických procesů (pět exemplářů

téhož procesu) využívajících dva zdroje (dva exempláře téhož zdroje). Např. se může jednat o

pět terminálů počítačové sítě společně využívající dvě tiskárny.

Obr. 2.8: Využívání dvou zdrojů pěti procesy

3 Bipartitní graf je takový graf, jehož množinu vrcholů je možné rozdělit na dvě disjunktní množiny tak, že

žádné dva vrcholy ze stejné množiny nejsou spojeny hranou

Page 14: šablona pro skripta - cvut.cz

16

2.3 Struktura P/T Petriho sítí

Petriho sítě jsou vždy přesně definovanou matematickou strukturou s jasně určenou syntaxí i

sémantikou. Přesná výstavba modelovacího aparátu je nezbytná pro verifikaci simulačního

modelu, především pro důkazy vět týkajících se vlastností formálního jazyka Petriho sítí.

Možností, jak definovat Petriho sítě je víc, důležité je, aby model, který deklarované axiomy

splňuje vyhovoval potřebám simulace paralelních diskrétních systémů, tedy měl všechny výše

popsané vlastnosti. Pro přehlednější formulace budeme v dalším textu používat následující

značení.

P={p1, p2,…,pn} je konečná neprázdná množina míst (places)

T={t1,t2,…,tm} je konečná, neprázdná množina přechodů (transitions)

2.3.1 Značení Petriho sítě

Aktuální stav systému, popsaného Petriho sítí je určen rozmístěním žetonů (tokens) v místech.

Aktuální počty žetonů v místech jsou zadávány formou tzv. vektoru značení.

Definice: Značení sítě je funkce, která každému místu přiřadí celé nezáporné číslo z: P→ N0.

Aktuální značení zapisujeme buďto jednotlivě, s argumentem určujícím místo, kterého

se značení týká, např. pro graf na Obr. 2.7(a) je aktuální značení: z(s11)=5, z(s12)=2, z(s13)=1,

z(s21)=1, z(s22)=0, nebo, pokud máme přesně určeno pořadí v jakém zapisujeme přechody,

jako uspořádanou n-tici, kde n je počet přechodů, tj. v našem příkladě z Obr. 2.7

( ) ( )1 2 3 1 2( 1 ), ( 1 ), ( 1 ), ( 2 ), ( 2 ) = 5,2,1,1,0z s z s z s z s z s .

Petriho sít je dynamická a s jednotlivými událostmi se její stavy mění, tedy se musí

měnit i značení sítě. U diskrétních systémů pozorujeme jen skokové změny stavu, způsobené

výskyty událostí. Při zkoumání diskrétních systémů můžeme posloupnost okamžiků změn t1,

t2,…,tn nahradit aritmetickou posloupností 1, 2, ….,n a jednotlivá značení od sebe navzájem

odlišit indexy. Pro počáteční značení sítě budeme používat symbol z0. Nechť Petriho síť na

Obr. 2.7(a) reprezentuje počáteční stav systému. Pak při určeném pořadí míst

1 2 3 1 21 , 1 , 1 , 2 , 2s s s s s je ( )0z = 5,2,1,1,0 , ( )1z = 2,0,0,2,2 .

2.3.2 Incidenční funkce

Dynamika Petriho sítě spočívá v provádění přechodů. Vliv značení sítě na

proveditelnost přechodů a vliv odpálení přechodu na značení sítě jsou určeny tzv.

incidenčními funkcemi.

Počet vstupních podmínek v místech nutných pro odpálení daného přechodu je dán

hodnotou hrany vstupující do uzlu. Tuto hodnotu označujeme jako zpětnou incidenční funkci.

Hodnota hrany vstupující do uzlu určuje současně počet žetonů, které budou z daného místa

odebrány, bude-li přechod odpálen.

Definice: Počet žetonů odebraných z místa p odpálením přechodu t je zpětná incidenční

funkce ( ),I p t− . Podobně počet žetonů, které odpálením přechodu přidáme do výstupního

místa přechodu nazýváme dopředná incidenční funkce ( ),I p t+.

Např. zpětné incidenční funkce Petriho sítě na Obr. 2.7 jsou nenulové pro

( )11 , 3I s u− = , ( )21 , 2I s u− = , ( )31 , 1I s u− = . Dopředné incidenční funkce mají hodnoty

( )12 , 1I s u+ = , ( )22 , 2I s u+ = .

Page 15: šablona pro skripta - cvut.cz

17

Definice: Petriho síť je uspořádaná pětice (P,T, I-, I+, z0)

o P = {p1,p2,…pn} je konečná neprázdná množina míst

o T ={t1,t2,…tm} je konečná neprázdná množina přechodů

o množiny P, T jsou disjunktní PT = 0

o I-, I+, jsou incidenční funkce P x T → N0

o z0: P → N0 je počáteční značení

Právě jsme definovali Petriho síť jako stroj, který odpalováním přechodů postupně mění

označení sítě. Pokud stroj rozpozná v reprezentaci aktuální stavu systému, že jsou splněny

podmínky pro odpal nějakého přechodu, nahradí aktuální značení jiným, odpovídajícím

incidenčním funkcím daného přechodu. Přechod se projevuje pouze lokálně, zbytek

reprezentace stavu systému zůstává nezměněn. Následující kapitola popíše metodu pro

rozpoznání aktivních přechodů a přepočet aktuálního značení po odpalu.

2.4 Metody lineární algebry pro analýzu P/T Petriho sítí

Zásadní význam při určování aktivních přechodů má zadání Petriho sítě pomocí

incidenčních funkcí. Pro analýzu vlastností a chování Petriho sítí je výhodné využití metod

lineární algebry. Problémy Petriho sítí převedeme na problémy lineární algebry pomocí

jednoduchého aparátu. V dalším textu budeme používat operaci pro porovnání dvou vektorů.

Definice pokrytí vektoru: Řekneme, že vektor u = (u1, u2,…, un) pokrývá vektor v = (v1,

v2,…, vn), pokud pro všechny složky platí ; 1...i iu v i n = . Relaci budeme označovat u>v.

2.4.1 Incidenční matice

Pro další zkoumání je účelné zapsat incidenční funkce ve formě tabulky do tzv.

incidenčních matic. Do řádků píšeme hodnoty vztahující se k jednomu místu, záhlaví sloupců

je určeno všemi přechody. Prvky zpětné incidenční matice jsou všechny zpětné incidenční

funkce a analogicky dopředná incidenční matice je tvořena hodnotami dopředných

incidenčních funkcí.

Definice: Nechť má Petriho síť n míst P={p1, p2,…pn} a m přechodů T={t1, t2,..tn}. Zpětná

incidenční matice C- typu n x m je určena

( ), , ,ij i j i jc I p t p P t T− −=

Dopředná incidenční matice C+ typu n x m je tvořena

( ), , ,ij i j i jc I p t p P t T+ +=

Incidenční matice C je definována jako rozdíl C=C+-C-.

Pokud žádné místo sítě není současně vstupním i výstupním místem téhož přechodu, tj.

pokud síť neobsahuje smyčku (self loop), pak zpětná a dopředná incidenční matice mají

nenulové prvky na vzájemně různých pozicích a pro jednoznačný popis Petriho sítě stačí znát

jen incidenční matici a počáteční značení. Podmínka neexistence smyček přitom není

teoreticky nijak omezující, protože v případě potřeby můžeme vlastní cyklus rozbít přidáním

místa, které nijak nenaruší chování sítě - Obr. 2.9.

Page 16: šablona pro skripta - cvut.cz

18

2.4.2 Aktivní přechod, vektor přechodu

Přechod je aktivní v aktuálním značení, pokud jsou všechny vstupní podmínky splněny.

Např. na Obr. 2.10 jsou v aktuálním značení aktivní přechody T1 a T3. Je zřejmé, že pokud

( ), 0I p t− vede orientovaná hrana z místa p do přechodu t. Přechod je v daném značení

uskutečněn jen pokud jsou vstupní hrany nasyceny, tj. pokud není počet značek ve vstupních

místech daného přechodu menší než váhy příslušných hran

Definice: Přechod t je aktivní (proveditelný) v aktuálním značení z, pokud pro všechna místa

sítě platí ( ) ( ), ; 1...i iz p I p t i n− = .

Pro určení aktivních přechodů v daném ohodnocení použijeme zpětnou incidenční

matici. Hodnoty zpětných incidenčních funkcí daného přechodu jsou zapsány pod sebe do

příslušného sloupce. Porovnáním složek vektoru aktuálního ohodnocení z a vektoru sloupce

zpětné incidenční matice příslušejícího k přechodu t zjistíme, zda ( ) ( ), ; 1...i iz p I p t i n− = .

Pokud modelovaná síť nemá vlastní cykly, pak můžeme k určení aktivních přechodů využít

přímo incidenční matici. Záporné prvky se vztahují ke zpětné incidenční matici, určují počet

žetonů nutných k odpalu, kladné představují dopředné incidenční funkce a určují počet

žetonů, které do míst přidáme. Protože pro analýzu Petriho sítě často pracujeme s příslušnými

sloupci přechodů je účelné zavést vektor přechodu.

Definice vektoru přechodu: Nechť tj je přechod Petriho sítě s incidenční maticí C. Sloupec

incidenční matice příslušející danému přechodu, tzn. j-tý sloupec nazveme vektorem

přechodu. ( )1 2, ,...,j j j njt c c c= .

Předcházející definice aktivního přechodu se nám v novém značení zjednoduší. Záporné

prvky určují počet žetonů nutných k odpalu, tedy součet aktuálního značení a vektoru

přechodu musí být v každé složce nezáporný.

Definice aktivního přechodu: Nechť je dána Petriho síť bez vlastních smyček. Přechod t je

aktivní v aktuálním značení z, pokud součet vektoru přechodu a vektoru značení pokrývá

nulový vektor, tj. t + z>o.

Obr. 2.9: Modelování logického součinu Petriho sítí (a) - s vlastním cyklem, (b) s cyklem roztaženým přidáním

pomocného místa Bc a přechodu Tc.

Page 17: šablona pro skripta - cvut.cz

19

Příklad: Na Obr. 2.10 je graficky zadána

Petriho síť s aktuálním označením. Určete

všechny incidenční matice a vektor

počátečního ohodnocení.

Řešení: Pořadí míst i přechodu

ponecháme tak, jak je určeno jejich

jménem. V záhlaví řádků jsou místa P0,

P1, P2, P3, v záhlaví sloupců jsou

všechny přechody T0, T1, T2, T3, T4, T5.

Hodnoty hran vedoucích z míst

k přechodům tvoří zpětnou incidenční

matici C-. Dopředná incidenční matice C+

je tvořena hodnotami hran vycházejících

z přechodů.

Obr. 2.10: P/T Petriho síť

2 0 0 0 0 0

0 1 0 1 0 0

0 0 0 0 1 1

0 0 2 0 0 0

C−

=

,

0 0 0 0 1 0

2 0 0 0 0 0

0 1 1 0 0 1

0 0 0 2 0 0

C+

=

2 0 0 0 1 0

2 1 0 1 0 0

0 1 1 0 1 0

0 0 2 2 0 0

C

− − = −

Vektor počátečního ohodnocení je tvořen počty žetonů v místech při stejném pořadí míst

z0=(1,2,0,0). V počátečním ohodnocení z0=(1,2,0,0) Petriho sítě na Obr. 2.10. je přechod T1

aktivní, protože druhý sloupec zpětné incidenční matice má všechny složky menší než

příslušné složky z0. ( ) ( ) ( ) ( )( ) ( )0, 1 , 1, 1 , 2, 1 , 3, 1 0,1,0,0I P T I P T I P T I P T− − − − = . Síť obsahuje

vlastní smyčku mezi přechodem T5 a místem P2, proto pro určení zda je přechod T5 aktivní

nemůžeme použít vektor přechod. Vektor přechodu T5 je nulový (poslední sloupec C), což by

znamenalo, že je aktivní v každém značení. Pro přechod s vlastní smyčkou musíme použít

zpětný vektor přechodu – sloupec ve zpětné incidenční matici C-. U zbývajících přechodů

můžeme použít podmínku t + z>o, tj zjistit zda všechny složky součtu vektoru přechodu a

aktuálního značení jsou kladné. Dostáváme, že v počátečním ohodnocení z0=(1,2,0,0) jsou

aktivní přechody T1 a T3.

2.4.3 Výpočet značení po odpalu posloupnosti přechodu

Pro přepočítání nového značení po uskutečnění přechodu použijeme Incidenční matici

C, která představuje celkovou bilanci změn žetonů při daném odpalu. Přesněji z incidenční

matice použijeme jen sloupec odpalovaného přechodu. To algebraicky zařídíme tak, že matici

C násobíme vektorem ei. Tento vektor má na i-tém místě 1, všechny ostatní složky jsou 0.

Věta: Uskutečněním přechodu ti přejde značení z v nové značení: iz z Ce = + , kde ei je i-tý

ortonormální kanonický bázový vektor Rn.

Matematickou indukcí lze větu zobecnit pro libovolnou posloupnost odpalů přechodů.

Věta:Předpokládejme posloupnost k odpalů přechodů ti1, ti2, …, tik. Pak výsledné značení zk

je dáno vzorcem

1

k

k ij

j

z z C e=

= + (1)

Page 18: šablona pro skripta - cvut.cz

20

Definice: Součet všech bázových vektorů přechodů v posloupnosti k odpalů 1

k

ij

j

e=

se

označuje jako Parikův obraz posloupnosti přechodů. Je to vektor ( )1 2, ,..., n = , kde je

počet výskytů přechodu ti v posloupnosti přechodů.

Pro přepočítání nového značení z´dosaženého se značení z používáme příslušný sloupec

incidenční matice C. Má tedy smysl každému přechodu jednoznačně přiřadit vektor- příslušný

sloupec incidenční matice: iti Ce= . Po zavedení pojmu vektoru přechodu můžeme přepsat

vzorec pro značení z´dosažené ze značení z odpalem přechodu ti do tvaru

z z ti = +

a vzorec pro nové značení zk po posloupnosti k odpalů přechodů ti1, ti2, …, tik. je tvaru

1

k

k j

j

z z ti=

= + .

Např. u Petriho sítě na Obr. 2.10 přejde uskutečněním přechodu T1 původní počáteční

značení ve značení ( )1 0

1 0 1

2 1 10,1,0,0,0,0

0 1 1

0 0 0

Tz z C

− = + = + = +

.

2.4.4 Dosažitelné značení

Pokud je Petriho síť daná incidenční maticí a počátečním značením umíme rozhodnout o

aktivních přechodech a vypočítat nové značení sítě po uskutečnění libovolné posloupnosti

odpalů přechodů. Často ale musíme řešit opačnou otázku, zda je nějaké značení dosažitelné

určitou posloupností odpalů. Přitom je důležité počáteční značení sítě.

Definice: Nechť je daná Petriho síť s počátečním značením z0. Říkáme, že značení z je

dosažitelné, jestliže existuje posloupnost odpalů přechodu, která převádí počáteční značení z0

ve značení z.

Dosažitelné značení, v němž neexistuje žádný aktivní přechod se nazývá mrtvé značení.

Reprezentuje zablokování systému (dead-lock).

Z rovnice (1) přímo vyplývá nutná podmínka pro to, aby dané značení z´ bylo

dosažitelné ze značení z. Pokud dosažitelné je, pak musí existovat posloupnost přechodů, aby

platila rovnice (1).

Nutná podmínka dosažitelnosti: Nechť (P,T, I-, I+, z0) je Petriho síť s počátečním značením

z0. Je-li z´značení dosažitelné ze značení z0, potom existuje řešení X rovnice

0z z CX = + .

Řešením rovnice je Parikův obraz posloupnosti vektorů.

2.5 Vlastnosti Petriho sítí

V následující kapitole se budeme zabývat analýzou vlastností Petriho sítí. Formální analýza je

důležitá pro návrh kritických aplikací, kde se nelze spokojit s pouhým experimentováním, ale

je potřeba popsat všechny dosažitelné stavy. Na úrovni abstraktního modelu máme navíc

Page 19: šablona pro skripta - cvut.cz

21

možnost prokázat funkčnost a bezchybnost systému ještě před jeho praktickou realizací. Poté,

co vytvoříme grafickou reprezentaci Petriho sítě a z ní odvodíme maticový popis struktury

systému mámo možnost prokázat, jaké má systém vlastnosti..

2.5.1 Ohraničená síť

Důležitou otázkou při specifikaci chování diskrétních systémů je, zda má daný systém

konečnou množinu stavů.

Definice: Místo p Petriho sítě nazýváme ohraničené, jestliže existuje přirozené číslo h takové,

že v každém dosažitelném značení je počet žetonů v místě p nejvýše h.

( );iz z p h

Petriho síť je ohraničená (omezená), pokud jsou ohraničená všechna její místa.

Někdy je výhodné zmínit horní odhad počtu žetonů, pak mluvíme o h-ohraničeném

místu a h-ohraničené síti. Petriho síť je ohraničená právě tehdy když je množina dosažitelných

značení konečná.

1-ohraničené sítě nazýváme bezpečné sítě. Bezpečnost (safeness) sítě zaručuje, že počet

značek žádného místa v libovolném značení nepřevýší 1. Tato vlastnost je důležitá např. při

modelování logických obvodů. Značení bezpečné sítě nabývá pouze hodnot 0,1, proto se tyto

sítě označují také jako binární.

2.5.2 Živá síť

Pro zkoumání modelu systému je podstatné vědět, zda v sobě daná síť potencionálně skrývá

možnost mrtvého stavu (deadlock). Mrtvý stav je dosažitelné značení, ve kterém žádný

přechod není aktivní. Nejprve definujme vlastnost lokálně, tj. kdy živý přechod.

Definice Nechť je dána Petriho síť, z0 je její počáteční značení. Přechod t nazveme

1. živý na úrovni 0, nebo-li mrtvý, jestliže neexistuje dosažitelné značení ve kterém by byl

přechod aktivní.

2. živý na úrovni 1, jestliže existuje posloupnost odpálených přechodů, ve které bude

alespoň jednou aktivní

3. živý na úrovni 2, jestliže existuje posloupnost odpálených přechodů, ve které bude

alespoň k krát aktivní

4. živý na úrovni 3, jestliže existuje posloupnost odpálených přechodů, ve které bude počet

výskytů přechodu t neomezený.

5. živý na úrovni 4, nebo-li živý jestliže z každého dosažitelné značení sestrojíme

posloupnost odpálených přechodů, ve které bude t alespoň jednou aktivní.

Vlastnost se přenáší na Petriho síť přirozeně: Pokud jsou všechny přechody živé alespoň

na úrovni L, pak celá síť je živá na úrovni L. Pokud je Petriho síť živá, pak se nikdy nedostane

do mrtvého stavu

2.5.3 Reverzibilní síť

Mnohé systémy obsahují procesy s cyklickým charakterem, např. výrobní proces, obsluha

zákazníka, apod. se opakují cyklicky.

Definice Petriho síť nazveme reverzibilní, pokud ke každému dosažitelnému značení existuje

posloupnost odpálených přechodů, ve které je počáteční značení aktivní.

Page 20: šablona pro skripta - cvut.cz

22

Pozn: Vlastnost ohraničenosti, živosti a reverzibility jsou vzájemně nezávislé, žádná

z nich neimplikuje platnost jiné.

2.5.4 Konzervativní síť

Pokud žetony v našem modelu představují skutečné objekty (zákazník, součástka,…) a

síť neobsahuje zdroj ani ústí, pak většinou musí platit „zákon zachování žetonů“.Jinak řečeno

součet žetonů ve všech místech sítě musí být konstantní. Takto formulovaný požadavek je ale

příliš přísný a i ve výše zmíněných aplikacích bývá porušen. Pokud nahradíme v subsystému

jedno místo více parciálními stavy, pak lokálně pro simulaci subsystému se jeden žeton

„rozmnoží“.

Definice:Síť ve které je v každém dosažitelném značení konstantní součet počtu žetonů

nazýváme striktně konzervativní.

( );k k i

i

z z p konst =

Striktně konzervativní síť poznáme přímo z matice incidence.Při každém odpalu musí

vzniknout tolik značek, kolik jich odpal spotřeboval. Žetonová bilance žetonu je určená jeho

vektorem sloupcem incidenční matice. Platí tedy, že Incidenční matice konzervativní sítě

musí mít všechny sloupcové součty rovny 0.

Příklad striktně konzervativní sítě je na Obr. 2.12. Pokud místo P2 představuje nějaký

podsystém, který chceme modelovat detailněji, rozdělíme místo na dvě parciální místa P21 a

P22 (Obr. 2.11). Síť stále může sloužit pro modelování reálných objektů ale už není striktně

konzervativní. Množina dosažitelných značení při pořadí míst P1, P21, P22, P3:

Z={z0=(1,0,0,0), z1= (0,0,0,1) , z2= (0,1,1,0)}. Pokud místům přidáme váhu, tj.budeme počet

žetonů v jednotlivých místech násobit příslušnou konstantou, bude pak tento vážený součet

konstantní. V našem příkladě 2.P1+1.P21+1.P22+2.P3 =2 pro všechna značení. Říkáme, že

síť je konzervativní vzhledem k váhovému vektoru iP=(2,1,1,2).

Obr. 2.11: Petriho síť konzervativní vzhledem k váhovému vektoru (2,1,1,2).

Definice: Množina míst {p1, p2, …, pk} je konzervativní komponenta právě když celočíselná

pozitivní lineární kombinace počtu žetonů obsažených v místech je konstantní. Celočíselná

kombinace je dána vektorem ip, pro všechna dosažitelná značení zk.

( ) ( ) ( ) ( )0p i k i p i i

i i

i p z p i p z p=

Pozn. O Petriho síti, která má konzervativní komponentu říkáme, že je konzervativní

vzhledem k vektoru ip. Nenulové prvky vektoru určují prvky konzervativní komponenty.

Page 21: šablona pro skripta - cvut.cz

23

2.5.5 P-invarianty

Definice: Nechť je dána Petriho síť s n místy a m přechody. C nechť je incidenční matice.

Nenulový vektor iPNn se nazývá P-invariant Petriho sítě, jestliže je řešením homogenní

soustavy lineárních rovnic

T

PC i o=

Pokud je hodnost matice C menší než počet míst, pak všechna reálná řešení tvoří

vektorový podprostor. My ale hledáme řešení nad Nn.

P-invariant má zásadní význam pro analýzu konzervativních komponent. Platí věta

Věta: Petriho síť má konzervativní komponentu právě tehdy, existuje-li nenulový P-invariant.

Důkaz: Ukážeme důkaz jedné implikace, obrácená věta by se dokazovala podobně. Nechť iP

je P-invariant, tj. dle definice T

PC i o= . Nechť zk je libovolné dosažitelné značení, pak

existuje posloupnost odpálených přechodů a 0

1

k

k ij

j

z z C e=

= + , vektor 1

k

ij

j

v e=

= je Parikův

obraz posloupnosti, jeho i-tá složka určuje kolikrát je přechod obsažen v posloupnosti.

( )

0

0

0

0

0

k

k

T T T

k

T T T

k P P

T T

k P P

z z Cv

z z Cv

z z vC

z z i vC i

z i z i

= +

− =

− =

− =

=

Rovnice vyjadřuje, že počet žetonů v místech vynásobený vektorem iP je pro všechna

dosažitelná značení stejný. P-invariant iP určuje lineární kombinaci, nenulové prvky určují

konzervativní komponentu.

2.5.6 T-invarianty

Definice: Nechť je dána Petriho síť s n místy a m přechody. C nechť je incidenční matice.

Nenulový vektor iTNm se nazývá T-invariant Petriho sítě, jestliže je řešením homogenní

soustavy lineárních rovnic

TCi o=

Pokud je hodnost matice C menší než počet míst, pak všechna reálná řešení tvoří

vektorový podprostor.

Věta: Petriho síť je reverzibilní právě tehdy když existuje nenulový T-invariant.

Nechť síť má T invariant, tj existuje netriviální řešení TCi o= . Petriho síť je

reverzibilní, pokud pro každé dosažitelné značení je reprodukovatelné, tj existuje posloupnost

uskutečněných přechodů, které se vrátí k původnímu značení 1

k

k k ij

j

z z C e=

= + . Musí tedy

existovat netriviální řešení homogenní soustavy rovni 1

k

ij

j

C e o=

= . Hledané řešení je T-

invariant. T-invariant je Parikův obraz posloupnosti, která přechody reprodukuje, tj. udává

kolikrát je třeba provést každý přechod, abychom se vrátili k původnímu značení.

Page 22: šablona pro skripta - cvut.cz

24

Poznámka: I když je právě dokázaná věta formulovaná jako ekvivalence, prakticky platí

jen jedním směrem. I když teoreticky T-invariant vypočítáme, tak ne každý invariant je

realizovatelný, tj. ne vždy existuje posloupnost odpálení přechodu pro niž je iT Parikovým

obrazem.

Příklad: Na Obr. 2.12 je zobrazena striktně konzervativní binární sít. Ve všech dosažitelných

značeních z0=(1,0,0), z1=(01,0), z2=(0,0,1) je součet žetonů ve všech třech místech jedna.

Matice incidence je tvaru

1 1 1 1

0 1 1 0

1 0 0 1

C

− −

= − −

Součet prvků ve všech sloupcích matice je 0 protože síť je striktně konzervativní.

Vypočítejme P-invariant. Řešíme homogenní soustavu T

PC i o= čtyř rovnic pro tři neznámé.

1

2

3

1 0 1 0

1 1 0 0

1 1 0 0

1 0 1 0

i

i

i

− = −

Roznásobením dostaneme jednoduché podmínky pro neznámý P-invariant: i1=i2=i3. Reálným

řešením je jednodimenzionální podprostor generovaný např. vektorem (1,1,1). Nás zajímají

jen vektory, jejichž složky jsou přirozená čísla. P-invariantem je každý přirozený násobek

( ) 1,1,1 ;Pi k k N= .

To je výsledek, který jsme očekávali, protože síť je velmi jednoduchá a na první pohled je

z grafické reprezentace zřejmé, že síť je striktně konzervativní. Každá striktně konzervativní

síť je konzervativní vzhledem k vektoru (1,1,1), tj. váhy všech míst jsou stejné.

Vypočtěme T-invariant. Řešíme homogenní soustavu TCi o= tří rovnic o čtyř

neznámých

1

2

3

4

1 1 1 1 0

0 1 1 0 0

1 0 0 1 0

i

i

i

i

− −

− = −

.

Hodnost matice C je 2, tj řešením je dvou parametrický systém. Prostým roznásobením

rovnice získáme dvě podmínky pro T-invariant: i2=i3, i1=i4. Bázové vektory řešení jsou

např. iT1=(1,0,0,1), iT2=(0,1,1,0). Řešením je každá přirozená kombinace

( ) ( ) 1,0,0,1 0,1,1,0 ; ,Ti k l k l N= + .

Síť je reverzibilní, tj po jisté posloupnosti odpálených přechodů se vždy vrátí

k výchozímu značení. Na tomto jednoduchém příkladě je vidět role bázových vektorů T

invariantu. Síť se skládá ze dvou nezávislých částí, buď žeton postupuje horní větví,

odpálením přechodů T2, T3 se vrací do počátečního značení, nebo žeton postupuje spodní

větví a odpálením přechodu T1, T4 se zase vrátí do výchozího stavu. Horní větvi odpovídá

Page 23: šablona pro skripta - cvut.cz

25

bázový vektor T-invariantu (0,1,1,0), zatímco bázový vektor (1,0,0,1) je Parikův obraz

posloupnosti odpálených přechodů dolní větve

Příklad: Vypočtěme P-invariant sítě konzervativní vzhledem k vektoru na Obr. 2.11. Matice

incidence je tvaru

1 1 1 1

0 1 1 0

0 1 1 0

1 0 0 1

C

− −

− = −

.

Řešíme homogenní soustavu T

PC i o= čtyř rovnic o čtyř neznámých. Naštěstí hodnost

incidenční matice a tedy i matice transponované je 2 a soustava má nekonečně mnoho řešení

závislých na dvou parametrech. Pro vyřešení nemusíme používat Gaussovu eliminaci, protože

struktura matice soustavy je velmi jednoduchá, pouhým roznásobením dostáváme pro řešení

( )1 2 3 4, , ,Pi i i i i= podmínky i4=i1, i2=i1-i3 . Za i1 a i3 dosadíme volitelné přirozené parametry u,

v a dostáváme systém řešení ve tvaru iP = (u,u-v,v,u). V tomto tvaru se nám popis P-invariantu

ale příliš nehodí, protože P-invariant musí mít všechny složky z N. To bude splněno,

doplníme-li k řešení podmínku u>v. Pohodlnější ale bude zapsat řešení pomocí jiných

bázových vektorů, které tuto podmínku splňují. Volíme-li např. u=1, v=0 dostáváme

iP1=(1,1,0,1), podobně volbou . u=2, v=1 dostáváme iP2=(2,1,1,2), což jsou nejmenší váhové

vektory pro konzervativnost sítě. Celkově pak zapíšeme výsledek ve tvaru.

( ) ( ) 1,1,0,1 2,1,1,2 ; ,Pi k l k l N= +

Volíme-li jakýkoliv vektor z takto popsané množiny P-invariantů, dostáváme pro

jakékoliv dosažitelné značení konstantní váhový součet počtu žetonů.

Vypočtěme T-invariant. Řešíme homogenní soustavu TCi o= čtyř rovnic o čtyř

neznámých. T-invariant této sítě je shodný s T-invariantem striktně konzervativní sítě

z předchozího příkladu, protože incidenční matice těchto dvou sítí jsou vzájemně

ekvivalentní. Bázové vektory řešení jsou např. iT1=(1,0,0,1), iT2=(0,1,1,0). Řešením je každá

přirozená kombinace

( ) ( ) 1,0,0,1 0,1,1,0 ; ,Ti k l k l N= +

Síť je reverzibilní stejným způsobem jako striktně síť z předcházejícího příkladu,

rozdělení místa P2 na dvě parciální místa nemá na reverzibilnost žádný cvliv. Horní větvi

odpovídá bázový vektor T-invariantu (0,1,1,0), zatímco bázový vektor (1,0,0,1) je Parikův

obraz posloupnosti odpálených přechodů dolní větve.

Poznámka: P-invariant je charakteristika nezávislá na značení, stejně jako T-invariant. Odtud

také název invariant. Termín invariant obecně používáme vždy když vlastnost je vzhledem

k nějaké transformaci neměnná.

2.5.7 Stavový prostor a přechodová funkce Petriho sítí

V úvodu jsme ukázali příbuznost Petriho sítí a konečných automatů. V souladu s terminologií

konečných automatů můžeme zavést stavový prostor a přechodovou funkci.

Množina všech možných značení Petriho sítě se nazývá stavový prostor. Na této množině je

definovaná přechodová funkce, určující na základě přítomného stavu a aktivního přechodu

Page 24: šablona pro skripta - cvut.cz

26

příští stav sítě. Tato přechodová funkce může být zadána buď tabulkou, nebo orientovaným

grafem.

Definice: Stavový prostor Z (množina dosažitelných značení) Petriho sítě je nejmenší

množina definovaná induktivně.

1. Počáteční značení náleží stavovému prostoru z0 Z.

2. Je-li nějaké značení zk dosažitelné a přechod tr je v tomto značení aktivní, pak značení

přímo dostupné ze značení zk odpálením přechodu tr je také dosažitelné.

Příklad: Na Obr. 2.12 je dána Petriho síť s počátečním

značením z0=(1,0,0). Odpálením přechodu T2 přejde z0 ve

stav z1=(01,0), odpalem T1 ve stav z2=(0,0,1). Žádný jiný

stav není pro tuto síť dosažitelný. Přechodová funkce může

být zadána tabulkou 3x3, nebo formou diagramu Obr. 2.13.

V aktuálním značení jsou současně dva přechody aktivní.

V našem případě odpálení přechodu T1 způsobí, že přechod

T2 přestane být aktivní. Takové přechody nazýváme

konfliktní.

Obr. 2.12-Konzervativní síť

Obr. 2.13:Přechodová funkce Petriho sítě

Na rozdíl od konečného automatu Petriho síť

může mít neomezený počet stavů, v takovém

případě je mnohdy nemožné zadat přechodovou

funkci pomocí diagramu, nebo tabulky..

2.5.8 Stavový strom (reachability tree)

Stavový strom je abstrakcí přechodové funkce Petriho sítě. Z původní přechodové funkce,

která existuje na obecně nekonečném stavovém prostoru vytvoříme novou, která má již

konečný stavový prostor. Základní myšlenku převedení nekonečného stavového prostoru na

konečný je rozpoznání jistých nekonečných podmnožin značení a jejich nahrazení novým

stavem. Diagram modifikované přechodové funkce vyjadřujeme ve tvaru orientovaného

kořenového stromu, jehož kořenem je počáteční značení Petriho sítě. Jestliže v průběhu

konstrukce stromu zjistíme, že jistá složka značení neomezeně roste, pak tuto složku

označíme ∞ a nový vektor reprezentuje nekonečnou množinu značení, pro které tato složka

nabývá libovolné nezáporné celočíselné hodnoty.

Algoritmus: Každý vrchol stromu je ohodnocen vektorem značení. Začneme zakreslením

kořene stromu – počátečním značením z0. Budeme rozlišovat 4 typy vrcholů stromu. Čelní

vrcholy jsou ty, které jsou právě zpracovávány. Jsou přeměněny na koncové, pokud je síť

v tomto značení zablokovaná (dead-lock), duplikované, pokud vrchol se stejným značením se

stavovém stromu již existuje, nebo na vnitřní vrcholy, které se v dalším kroku stanou vrcholy

čelními. Algoritmus pracuje tak dlouho, dokud budeme mít nějaké čelní vrcholy.

Nechť V je právě vyšetřovaný čelní vrchol se značením zv

1. Pokud ve značení vrcholu není žádný přechod aktivní, vrchol je koncový vrchol stromu.

2. Pokud existuje jiný (již zpracovaný) vrchol stromu, který není čelním vrcholem a má

stejné značení jako náš vrchol V, pak V je duplikovaný vrchol stromu.

3. Pokud vrchol není duplikovaný a ve značení vrcholu V je nějaký přechod aktivní, je náš

vrchol vnitřním vrcholem a vytvoříme nový čelní vrchol V´. Hrana vedená z vrcholu V do

nového čelního vrcholu V´bude označena odpáleným přechodem a pro nový vrchol V´

Page 25: šablona pro skripta - cvut.cz

27

přepočítáme nové značení zv´. Zvlášť počítáme souřadnice které mají, nebo budou mít

hodnotu ∞.

a) Pokud je nějaká složka značení vrcholu V rovna ∞, zůstane symbol ∞ na stejné pozici i

pro značení nového vektoru V´.

b) Existuje-li na cestě z kořene do vrcholu V jiný vrchol W takový, že značení zv´ pokrývá4

značení vrcholu W a jestliže některá složka vektoru značení vrcholu W je menší než pro

vektor V´, pak tuto složku nahradíme symbolem ∞.

Pozn: Právě popsaný algoritmus nedává jednoznačný výsledek, jedna Petriho síť může

mít více stavových stromů, ale vlastnosti Petriho sítě, které se dají ze stavového stromu

odvodit mají všechny stavové grafy jedné Petriho sítě společné. Nejednoznačnost algoritmu je

dána nejednoznačným výběrem čelního vrcholu V.

Na Obr. 2.14 je zobrazen stavový strom Petriho sítě z příkladu

na Obr. 2.12. Kořen stromu je dán počátečním značením

z0=(1,0,0). K témuž značení dojdeme po odpalu přechodu t3,

resp. t4, oba dva vrcholy jsou duplikované a algoritmus končí.

Petriho síť je omezená, což se ve stavovém grafu projeví

absencí symbolu ∞.

Naproti tomu Petriho síť na Obr. 2.15 je neomezená, počet

žetonů v místě P2 roste nade všechny meze, proto bude druhá

souřadnice v duplikovaném vrcholu stavového stromu ∞.

Obr. 2.14: Stavový strom

.

Obr. 2.15: Neomezená síť

Kořen stromu je dán počátečním značením (1,0), to

odpalem přechodu T2 přejde ve značení (0,2), to přejde

odpalem T1 ve značení (1,1), ale toto značení je

pokrytím kořene (1,0), druhá souřadnice je větší než u

kořene, proto ji nahradíme ∞ a tak pokračujeme až

dojdeme k nejnižším vrcholům stromu-duplicitním

vrcholům se symbolem ∞ pro počet žetonů v místě

P2.(Obr. 2.16)

Obr. 2.16: Stavový strom

Poznámka: Pojem Stavový strom není přesný. Pro neohraničenou síť Stavový graf

reprezentuje nekonečný stavový prostor značení pomocí konečného počtu značení, které

pokrývají všechny dosažené značení. Proto v literatuře někdy najdeme pojem Graf pokrytí.

Množina pokrytí dané Petriho sítě je konečná množina značení, rozšířených o ∞, které

pokrývají všechny dosažitelné značení dané Petriho sítě.

Díky stavovému stromu můžeme rozhodnout ohraničenost, či bezpečnost sítě:

Věta: Petriho síť je omezená, jestliže žádný vrchol stavového stromu neobsahuje ∞.

4 Říkáme, že vektor značení z pokrývá značení z´jestliže žádná ze složek z´není větší než odpovídající složka z.

Označujeme z z´

(1,0) (0,2) (1,∞)

(1,∞)

(0,∞) (1,∞)

t1 t2

t2

t1

Page 26: šablona pro skripta - cvut.cz

28

V případě omezené Petriho sítě je Stavový strom v podstatě stromovým vyjádřením

přechodové funkce konečného automatu

2.5.9 Konfliktní přechody

Je běžné, že v aktuálním stavu bude víc přechodů aktivních. Pokud se tyto přechody navzájem

neovlivňují, pak mohou být odpáleny v libovolném pořadí (paralelně). Pokud ale odpal

jednoho z aktivních přechodů způsobí, že druhý přechod přestane být aktivní, pak se systém

může dostat do několika různých stavů v závislosti na pořadí odpálených přechodů, mluvíme

o tzv. konfliktních přechodech. (Obr. 2.17)

Definice: Říkáme, že dva přechody Petriho sítě jsou konfliktní, jestliže existuje značení sítě zk,

při němž jsou oba přechody aktivní a množiny jejich vstupních míst mají neprázdný průnik.

přechody, které nejsou konfliktní nazýváme nezávislé.

Obr. 2.17: Vlevo nezávislé přechody, vpravo konfliktní přechody

Konfliktní přechody modelují soupeření o zdroje a vzájemnou výlučnost přístupu ke

zdrojům. Nezávislé přechody modelují asynchronnost a paralelismus. Petriho sítě

s konfliktními přechody představují nedeterministický stroj, neboť v daném značení může být

provedeno více přechodů současně a stroj se může dostat potencionálně do několika dalších

stavů. Množina všech možných posloupností změn stavu reprezentuje chování systému.

V kapitole 2.4.2 jsme popsali jak z vektorové reprezentace rozpoznáme, který přechod

je v daném značení aktivní. Jednoduchým a rychlým způsobem jsme rovněž schopni

rozhodnou, zda jsou přechody nezávislé, nebo konfliktní. Nechť jsou v daném značení

z aktivní přechody t1,t2,…,tk. Počet žetonů potřebných k odpálení všech přechodů je dán

součtem zpětných incidenčních vektorů přechodu, tedy pro sítě bez vlastních smyček součet

vektorů aktivních přechodů sečtený se značením z musí být vektor s nezápornými složkami.

Věta o nezávislých přechodech: Nechť je dána Petriho síť bez smyček a nechť jsou v daném

dosažitelném značení z aktivní přechody t1,t2,…,tk. Pak tyto přechody tvoří množinu

navzájem nezávislých přechodů.pokud platí

i

i

z t o+

Problém konfliktních přechodů úzce souvisí s problémem určení pořadí odpalování

současně aktivních přechodů. Pokud jsou přechody nezávislé, pak na pořadí odpalu nezáleží,

ve vstupních místech je dostatečné množství žetonů pro alespoň jeden odpal všech aktivních

přechodů.

Příklad: Vraťme se k příkladu na Obr. 2.12. Síť žádné vlastní smyčky nemá, k analýze

konfliktních přechodů použijeme vektory přechodů. Incidenční matice má tvar

Page 27: šablona pro skripta - cvut.cz

29

1 1 1 1

0 1 1 0

1 0 0 1

C

− −

= − −

V počátečním značení z0=(1,0,0) jsou aktivní přechody T1 a T2, protože platí T1+z0>o,

T2+z0>o. Přitom platí, že T1+T2+z0 = (-1,1,1), což je vektor, který nepokrývá nulový vektor,

tedy přechody jsou konfliktní.

2.6 Rozšíření P/T Petriho sítí

2.6.1 Síť s omezenou kapacitou míst

Značení místa může být neomezené, tj. může nabývat libovolné celočíselné hodnoty, nebo

může být omezeno kapacitou místa – celým kladným číslem udávajícím maximální možný

počet značek v místě. Kapacitní omezení se využívá při modelování situací, kdy chceme

nastavit kapacitu zásobníku, tj. maximální délku fronty. V takovém případě je pravidlo pro

uskutečnění přechodu doplněno o podmínku na značení výstupních míst přechodu: přechod

může být proveden, jestliže nebude překročena kapacita některého výstupního místa.

Příklad: Obr. 2.18 ukazuje P/T síť zobrazující pohyb návštěvníků ve výstavní síni. Platí

následující pravidla:

1. počet návštěvníků ve výstavní

síni nesmí v žádném okamžiku

překročit hodnotu K=50,

2. do výstavní síně vstupují

návštěvníci po skupinách

w=10 osob (např. vždy spolu

s průvodcem),

3. návštěvníci mohou odcházet

jednotlivě.

Obr. 2.18: Pohyb návštěvníků ve výstavní síni

Rozšíření Petriho sítě o možnost specifikace kapacity míst nepředstavuje pro analýzu

Petriho sítě žádnou komplikaci, protože místa s omezenými kapacitami lze nahradit přidáním

komplementárního místa, které omezenou kapacitu zajistí.

Příklad: Na Obr. 2.19 je část Petriho sítě pro simulaci jedné obslužné linky s omezenou

kapacitou zásobníku. Přechodem „vstup“ zákazníci vstupují do zásobníku „fronta“. Kapacita

zásobníku je nastavena parametrem c=4. Pokud budou v zásobníku čekat na obsluhu 4

zákazníci, nebude přechod „vstup“ odpálen. V obslužné lince „obsluha“ může být najednou

obsluhován jen jeden zákazník, kapacita místa „obsluha“ je nastavena c=1. Přechodem

„výstup“ zákazníci postupují do dalších částí systému.

Obr. 2.19: Obslužná linka s nastavenou kapacitou zásobníku

Page 28: šablona pro skripta - cvut.cz

30

Na Obr. 2.20 je táž Petriho síť s tím rozdílem, že omezené kapacity míst „fronta“ a „obsluha“

jsou zajištěny přidáním komplementárních míst P1 a P2. Počáteční nastavení žetonů v síti

musí splňovat podmínku, že součet žetonů „fronta“ + P1 musí být roven kapacitě zásobníku,

podobně součet žetonů „obsluha“+ P2 musí být 1.

Obr. 2.20: Obslužná linka s omezenou kapacitou zásobníku řešenou přidáním komplementárního místa

Příklad: Obr. 2.21 zobrazuje fragment P/T Petriho sítě modelující vyrovnávací paměť

(buffer) pro předávání dat produkovaných procesem 1 procesu 2. Ve variantě a) je buffer

modelován místem p5 s kapacitou K(p5)=8. Ve variantě b) je buffer modelován dvěma místy

p5, p6 a to oběma s neomezenou kapacitou. Počet tokenů v místě p5 signalizuje počet

volných pozic v bufferu a počet tokenů v místě p6 počet obsazených pozic. Celkový počet

pozic (kapacita vyrovnávací paměti) je opět 8. Obě varianty a), b) jsou rovnocenné a ilustrují

skutečnost, že pojem kapacity místa umožňuje sice zjednodušit síť, ale v principu je možné se

bez něj obejít. Síť na obr. c) vylučuje současný přístup k bufferu pro oba procesy: nelze

současně vkládat i vybírat.

Obr. 2.21: Buffer pro předávání zpráv mezi procesy

2.6.2 Testovací hrany

Podobným ne příliš zásadním zjednodušením je možnost použití testovacích hran. Testovací

hranu používáme pro vstupní podmínky a to v případě že pro odpal přechodu testovaná

podmínka musí být splněna, ale odpalem přechodu se platnost podmínky nezmění.Na Obr.

2.22 je znázorněna část Petriho sítě, která ovlivňuje odpálení přechodu T. Tato část může

např. představovat průjezd vozidla semaforem. V místě P1 je vozidlo, které chce projet,

binární místo P0 indikuje, že na semaforu svítí signál volno. Podmínky pro průjezd vozidla

jsou splněny, přechod je odpálen, vozidlo dále pokračuje do místa P2, ale svým průjezdem

vozidlo semafor neovlivní. Po uskutečnění přechodu T se aktuální značení z1=(1,1,0) změní

na značení z2=(1,0,1).

Page 29: šablona pro skripta - cvut.cz

31

.

(a) (b)

Obr. 2.22: Petriho síť s testovací hranou (a) a nahrazení testovací hrany obyčejnou hranou (b)

Testovací hranu graficky znázorňujeme čárkovanou čarou. Podobně jako obyčejná

hrana může být i testovací hrana ohodnocená. Pro to, aby byl přechod v aktuálním značení

aktivní je nutné, aby počet žetonů v místě byl alespoň roven hodnotě testovací hrany.

Odpálením přechodu se počet žetonů v místě, spojeném s přechodem testovací hranou

nezmění.

Síť s testovací hranou není tzv. čistá síť (pure net), protože po převedení testovací hrany

na obyčejné hrany Obr. 2.22 obsahuje tato síť vlastní cyklus (self-loop) tj. dvě hrany

s identickými vrcholy ale opačnou orientací.

Použití testovacích hran nepředstavuje žádné rozšíření simulačních možností Petriho

sítí, ani žádné větší zjednodušení, protože testovací hranu můžeme nahradit přidáním hrany

s opačnou orientací. Výhodou jejich použití je jen o něco přehlednější grafická reprezentace.

2.7 Petriho sítě s inhibitory (P/T PN with inhibitors)

Inhibitor je dodatečná speciální podmínka přechodu reprezentovaná dodatečnou

speciální vstupní hranou přechodu. Je-li místo spojeno s přechodem inhibitorem, pak přechod

je aktivní jen pokud bude ve vstupním místě méně značek než je ohodnocení inhibitoru.

V grafické reprezentaci jsou inhibitory znázorněny jako vstupní hrany, zakončené kolečkem,

namísto šipky. Inhibiční hrana směřuje výhradně od míst k přechodům!

Na rozdíl od „obyčejných“ hran se po inhibičních hranách „nepřesouvají“ žetony.

Inhibiční hrany jsou vlastně jen negativně pojatými testovacími hranami. Modelovací síla

(expresivita) Petriho sítí s inhibičními hranami je stejná jako modelovací síla Turingových

strojů a tedy podstatně větší než obyčejných P/T sítí.

Enabling rule: přechod t je proveditelný (enabled), jestliže současně:

• přechod t je proveditelný v příslušné P/T síti (tj. síti, která vznikne z dané sítě

odstraněním inhibičních hran),

• pro každé místo p vstupní inhibiční množiny přechodu t platí, že obsahuje méně (<)

žetonů než kolik činí násobnost hrany vedoucí z místa p do přechodu t.

Firing rule: při odpalu (firing) proveditelného přechodu t se změní stav (marking) sítě

stejným způsobem jako u příslušné P/T sítě (sítě, která vznikle odstraněním inhibičních hran).

Příklad: Obr. 2.23 znázorňuje změnu stavu Petriho sítě před a po provedení proveditelného

přechodu. Kdyby hrana (p2,t) měla násobnost menší nebo rovnou 3, nebo kdyby značení

místa p2 bylo větší nebo rovno 4, pak by přechod nebyl proveditelný.

Page 30: šablona pro skripta - cvut.cz

32

Obr. 2.23: Změna značení v Petriho síti s inhibičními hranami

Příklad: Obr. 2.24 ilustruje zjednodušený model připojovacího pruhu na dálnici. Vozidla na

hlavní silnici jsou generována přechodem vstup A, vozidla připojovacího pruhu přijíždějí ze

vstupu B. Abychom zajistili, že vozidla z připojovacího pruhu vjedou do místa “pripoj“ jen

v případě, že bude na hlavní silnici (místo P1) volno, je spojeno místo P1 z přechodem T2

inhibitorem.

Obr. 2.24: Připojovací pruh. Vozidla přijíždějící ze vstupu B musí dát přednost vozidlům ze vstupu A

Příklad: Obr. 2.25 modeluje pomocí P/T sítě systém zahrnující osm procesů, které čas od

času čtou údaje z dané databáze a jeden proces, který čas od času do dané databáze údaje

zapisuje (aktualizuje databázi). Přitom platí, že současně může z databáze číst nejvýše pět

procesů a pokud je do databáze zapisováno, pak z ní nemůže číst ani jeden proces. Systém je

implementován pomocí tzv. klíčů, kterých je v systému celkem 5. K tomu, aby proces mohl

číst z databáze musí získat jeden klíč a k tomu, aby mohl zapisovat do databáze musí získat

všech pět klíčů. Obr. 2.25 a). zobrazuje tuto situaci jako uzavřenou sít. Obr. 2.25 b) zobrazuje

stejnou situaci pomocí otevřené sítě – zapisující procesy vstupují do sítě přechodem t1 a

čtoucí procesy přechodem t4 (počty zapisujících a čtoucích procesů nejsou předem dány).

Při uspořádání podle obrázků a) a b) může dojít k tomu, že zapisující proces se nikdy

nedostane ke slovu (pět klíčů nebude nikdy k dispozici). Abychom zabránili této situaci lze

požadovat přednost procesu zapisování před procesem čtení, jakmile vznikne požadavek na

zápis (objeví se token v místě p2) zakáže se vstup dalšího čtenáře do databáze (znemožní se

provedení přechodu t5). To lze zařídit pomocí tzv. inhibiční hrany vedené z místa p2 do

přechodu t5 (zobrazeno na obrázku c) a d)), anebo přirazením vyšší priority přechodu t2 ve

srovnání s přechodem t5 – viz dále kapitola 2.8 o Petriho sítích s prioritami.

Page 31: šablona pro skripta - cvut.cz

33

Obr. 2.25: Osm čtecích a jeden zapisovací proces

Význam míst a přechodů:

• p1: žeton označuje neexistenci potřeby zápisu

• p2:: žeton označuje čekání na povolení zápisu (čekání na pět klíčů)

• p3: žeton označuje, že probíhá zápis do databáze

• p4: počet procesů nemající potřebu čtení

• p5: počet procesů čekajících na povolení čtení (čekání na jeden klíč)

• p6: počet procesů čtoucích v databázi

• p7: počet disponibilních klíčů (poukázek ke vstupu do databáze)

• t1: vznik potřeby zápisu

• t2: získání povolení zápisu

• t3: ukončení zápisu (vrácení pěti klíčů)

• t4: vznik potřeby čtení

• t5: získání povolení čtení

• t6: ukončení čtení (vrácení klíče)

Příklad: Obr. 2.26 pomocí Petriho sítě (s inhibitory) zobrazuje jednoduchý systém

komunikace v kruhově organizované počítačové síti (Token Ring LAN). Právo ovládat

komunikaci v síti je cyklicky nabízeno každému terminálu sítě. Má-li terminál nějakou zprávu

k odeslání, pak svého práva využije a zprávu odešle. Nemá-li žádnou zprávu k odeslání, pak

právo ovládání komunikace v síti ihned předá dalšímu (sousednímu) terminálu.

Obr. 2.26: Komunikace v kruhové počítačové síti

Význam míst a přechodů (i=1,2,...,N):

• p1i: stav i-tého terminálu: bez zprávy k odeslání

• t1i: vznik zprávy v i-tém terminálu

• p2i: zpráva je vyhotovena a i-tý terminál čeká na příchod žetonu v síti (až se terminál

dostane na řadu)

Page 32: šablona pro skripta - cvut.cz

34

• t2i: i-tý terminál přebírá kontrolu nad komunikací v síti

• p3i: zpráva od i-tého terminálu je předávána v síti

• t3i: zpráva byla předána, i-tý terminál vrací kontrolu

• pi’: i-tý terminál je na řadě, má-li zprávu, může ji předat

• ti’: i-tý terminál rezignuje na kontrolu sítě

• pi“: i-tý terminál skončil kontrolu sítě

• ti“: kontrola je předávána následujícímu (i+1)-tému terminálu

2.8 Petriho sítě s prioritami (P/T PN with priorities) Petriho síť s prioritami je P/T síť ve které je navíc ke každému přechodu sítě přiřazeno celé

nezáporné číslo udávající tzv. prioritu přechodu.

V Petriho síti s prioritami je přechod t je povolen (has concession), je-li proveditelný v

odpovídající P/T síti bez priorit. Přechod t je proveditelný (enabled), jestliže současně:

• je povolen,

• žádný jiný povolený přechod nemá vyšší prioritu.

Při provedení (firing) proveditelného přechodu t se změní stav sítě stejným způsobem

jako u P/T sítí bez priorit. Současně mohou být provedeny pouze přechody se stejnou

prioritou. Jsou-li přechody se stejnou prioritou v konfliktu, pak výběr přechodu k provedení je

nedeterministický.

Petriho sítě s prioritami mají stejnou modelovací sílu jako Petriho sítě s inhibičními

hranami, tj. modelovací sílu Turingových strojů. Porovnání modelovací síly dosud

zmiňovaných typů Petriho sítí ukazuje diagram na Obr. 2.27.

Obr. 2.27: Vennův diagram

Příklad: Petriho sítě s inhibičními hranami (a bez priorit) mohou být převedeny na

ekvivalentní sítě s prioritami (a bez inhibičním hran). Obr. 2.28 ukazuje proces čtení a zápis

do databáze, kdy požadavek zápisu do databáze má přednost před požadavkem čtení

z databáze. Vlevo je zobrazeno řešení s inhibičními hranami, vpravo je zobrazeno řešení

s prioritami.

Page 33: šablona pro skripta - cvut.cz

35

Obr. 2.28: Čtení a zápis do databáze s prioritami

Příklad: Obr. 2.29 ukazuje Petriho síť s prioritami zobrazující systém komunikace v kruhově

organizované počítačové síti. Znázorněná Petriho síť je ekvivalentní (popisuje tentýž

komunikační systém) s Petriho sítí s inhibičními hranami (viz. Obr. 2.26)

Obr. 2.29: Komunikace v kruhové počítačové síti s prioritami

2.8.1 Booleova algebra

Inhibitor přináší do struktury Petriho sítě další vlastnost, tzv. „test na nulu“, která výrazně

rozšiřuje modelovací schopnosti sítě. V následující kapitole ukážeme, že Petriho sítě

s inhibitory mají stejné výpočetní možnosti jako abstraktní číslicový počítač. Stačí, pokud

ukážeme, že Petriho sítěmi namodelujeme všechny základní logické funkce Booleovy

(binární) algebry5.

Binární Booleova algebra je algebraická struktura nad množinou {0,1}, spolu

s operacemi (tzv. logickými funkcemi) definovanými nad touto množinou. Funkce jsou

jednoznačně určeny tabulkou pravdivostních hodnot, která určí výstup všem kombinacím

možných hodnot, vstupujících do operací.

5 V roce 1937 Claudie E. Shannon ukázal, že funkci libovolného kombinačního obvodu lze popsat formulí

Booleovy algebry, a naopak libovolnou formuli Booleovy algebry lze implementovat ve formě kombinačního

obvodu.

Page 34: šablona pro skripta - cvut.cz

36

Tabulka 1: Tabulka pravdivostních hodnot základních logických funkcí Booleovy binární algebry

neg.A AND OR NAND NOR

A B A AB AB (AB) (AB)

0 0 1 0 0 1 1

0 1 1 0 1 1 0

1 0 0 0 1 1 0

1 1 0 1 1 0 0

Z teorie Booleovy algebry víme, že jakákoliv logická funkce může být zapsána pomocí

operátorů NOT, AND, OR. Říkáme, tyto tři operátory tvoří úplný systém logických funkcí.

V praxi to znamená, že stačí zkonstruovat 3 logické členy (mechanické, elektrické, atd.), které

realizují tyto tři funkce. Z těchto předpokladů není těžké dokázat, že operátory NAND a

NOR, tvoří každý sám o sobě úplný systém logických funkcí.

Věta: NAND – negace logického součinu (AB) tvoří úplný systém logických funkcí

Důkaz: Ukážeme, že operátory , , je možné vyjádřit pomocí binárního operátoru NAND:

4. A=(AA) = NAND(A,A)

5. AB= (AB)=( (AB) (AB))=NAND(NAND(A,B), NAND(A,B))

6. AB= (AB)= ( (AA) (BB))=NAND(NAND(A,A), NAND(B,B))

Věta: NOR – negace logického součtu (AB) tvoří úplný systém logických funkcí

Důkaz: Ukážeme, že operátory , , je možné vyjádřit pomocí binárního operátoru NOR:

1. A=(AA) = NOR(A,A)

2. AB= (AB)=( AB))= ( (AA) (BB))=NOR(NOR(A,A), NOR(B,B))

3. AB= (AB)= ( (AB) (AB))=NOR(NOR(A,B), NOR(A,B))

Pozn. Oba důkazy lze provést také výpočtem pravdivostních hodnot

Ukázali jsme, že pokud máme k dispozici binární operaci NOR, nebo NAND, můžeme

sestavit libovolnou formuli v Booleově algebře. Vzhledem k paralele s kombinačními obvody

toto znamená, že i pro sestavení libovolného kombinačního obvodu stačí mít k dispozici v

dostatečném množství jen jediný druh "součástky".

2.8.2 Petriho sítě logických operátorů

Zbývá ukázat, že Petriho sítí umíme namodelovat některý úplný systém logických funkcí.

Pokud namodelujeme jeden úplný systém, pak jsme schopni sestavit všechny logické funkce

Povolného počtu proměnných. Obr. 2.30 představuje části Petriho sítě, modelující negaci,

logický součin a operace NOR a NAND. Díky inhibitorům máme k dispozici elegantní

grafickou reprezentaci negace a pak už není těžké vymyslet i zbývající základní operace.

Page 35: šablona pro skripta - cvut.cz

37

Obr. 2.30: Petriho sítě modelující po řadě logické operace A, AB, AB, (AB), (AB)

Ukázali jsme, že díky inhibitorům mají Petriho sítě stejné výpočetní možnosti jako

Turingův stroj6. Problematickou otázkou zůstává analýza takovýchto sítí. Petriho sítě

s inhibitovanou hranou nelze formalizovat za pomocí lineární algebry a obecně nelze každou

Petriho síť s inhibitory převést na obecnou Petriho síť. Převod ohraničené Petriho sítě na

obecnou Petriho síť bez inhibitorů je založen na přidání komplementárního místa, podobně

jak tomu bylo u míst s omezenou kapacitou.

Nechť je místo A spojeno inhibitorem s přechodem T. Přidáme komplementární místo

Ac s počátečním značením daným kapacitou A zmenšenou o počátečním značení místa A.

Původní značení A ponecháme. Komplementární místo Ac spojíme s přechodem T testovací

hranou (nebo ekvivalentně dvojicí hran self-loop ). Obr. 2.31 (a) ilustruje použití inhibitoru

pro logickou operaci negace. Na obrázku je jen nejbližší okolí místa A, spojení se zbytkem

modelu je tu naznačeno přechody „vstup“ a „výstup“. Předpokládejme, že místo A je binární,

tj. ohraničené. Místo „neg A“ dává negaci počtu žetonů v místě A. Na Obr. 2.31(b) je inhibitor

nahrazen přidáním komplementárního místa Ac, počáteční značení musí být takové, aby

součet žetonů v místech A a Ac nepřekročil kapacitu A, tj 1.

Obr. 2.31: Část Petriho sítě modelující negaci binárního místa A. (a)-Negace je řešená pomocí inhibitoru,

(b)-nahrazení inhibitoru komplementárním místem Ac. a testovací hranou.

6 Turingův stroj (Turing machine), navrhl anglický matematik Alan M. Turing v roce 1936 jako abstraktní

model číslicového počítače. Turingův stroj je podobný konečnému automatu, ale má k dispozici nekonečně

velkou paměť díky níž je schopen namodelovat jakýkoliv výpočet (Churchova teze). Přestože Churchovu tezi

nikdy nebude možné dokázat, je všeobecně považována za platnou.

Page 36: šablona pro skripta - cvut.cz

38

3 PETRIHO SÍTĚ VYŠŠÍ ÚROVNĚ

Petriho sítě tak, jak byly zatím studované jsou efektivním nástrojem pro modelování a návrh

řízení dynamických diskrétních systémů. Vlastnosti Petriho sítí se zkoumají a testují různými

metodami analýzy za účelem ověření správné funkce systému za předpokladu,že petriho síť je

korektním modelem systému. Často je však model vytvořený základními Petriho sítěmi

nepřehledný a nesrozumitelný.Proto je potřeba obohatit strukturu Petriho sítí dalšími

parametry.

Rozšíření klasických Petriho sítí o možnost popisu časových vztahů či datových typů

poskytují tzv Petriho sítě vyšší úrovně (High-level Petri net). Pro Petriho sítě vyšší úrovně

existují metody analýzy analogické základním Petriho sítím. Využíváme při nich především

teorii grafů, maticovou reprezentaci a teorii stochastických procesů. Velkou výhodou použití

Petriho sítě vyšší úrovně je značná redukce sítě. Výhody Petriho sítě vyšší úrovně oproti

základním Petriho sítím jsou často porovnávány s výhodami a možnostmi vyšších

programovacích jazyků ve srovnání s jazyky symbolických instrukcí.

3.1 Barevné Petriho sítě Pokud jsou vztahy mezi jednotlivými stavy systémů komplikované a systém se skládá

z různých identických podsystémů, potom model základními Petriho sítěmi je složitý a těžko

čitelný. Hlavním problémem je, že máme k dispozici jen jeden typ žetonů a je komplikované

modelovat systémy s různorodými požadavky, či událostmi.

V současné době je používána celá řada typů Petriho sítí s rozlišením žetonů,

nejrozšířenější jsou barevné Petriho sítě CPN (Coloured Petri Nets), které si v této kapitole

stručně popíšeme. Základní ideou je, že značky v barevných Petriho sítích mají svoji vlastní

individualitu, reprezentovanou údaji určitého typu, nazývaného barva. Barva reprezentuje

přiřazení určité hodnoty nejrůznějších datových typů. Místa, přechody a hrany barevných

Petriho sítí můžou být opatřeny logickými podmínkami týkajícími se barev jednotlivých

žetonů.

Obr. 3.1 Barevná Petriho síť

Na Obr. 3.1 je zobrazena část Petriho sítě, ve které je místo p1 obsazeno žetony s barvami a,

b, c a v místě p2 jsou žetony barvy a a b. Zbývá popsat chování přechodu t. Předpokládejme,

že je přechod aktivní, tj. jsou splněny podmínky pro jeho odpálení. Jednou z možností, jak

odpálit přechod je že budou zničeny žetony barvy a obou místech p1, p2 a v místě p3 vznikne

žeton barvy d. Jinou možností chování přechodu t je, že zničí žetony barvy b a vytvoří v místě

p3 žeton barvy c. Tyto dva různé typy chování přechodu t nazýváme různými módy chování

přechodu t. Tyto různé módy chování jsou graficky také rozlišeny barvou, tentokrát

přiřazenou přechodům. Říkáme potom, že přechod bude odpálen podle barvy a´, nebo podle

barvy b´.

Page 37: šablona pro skripta - cvut.cz

39

Barevné Petriho sítě popíšeme podobným způsobem jako klasické Petriho sítě. Vztah mezi

místy a přechody charakterizuje dopředná ( ),I p t+ a zpětnᡠ( ),I p t− incidenční funkce.

Připomeňme, že Pokud je ( ), 0I p t− , vede orientovaná hrana z místa p do přechodu t. Počet

odebraných žetonů v místě p uskutečněním přechodu t je roven ( ),I p t− .

Pokud je ( ), 0I p t+ , vede orientovaná hrana z přechodu t do místa p. Počet přidaných

žetonů v místě p uskutečněním přechodu t je roven ( ),I p t+ . Pro barvené sítě je definováno

tolik incidenčních funkcí, kolik je různých módů odpálení přechodu. Pro jednoznačný zápis

musíme ke každé incidenční funkci přidat index módu odpálení přechodu. Nejjednodušší

bude ukázat si to na našem příkladě na Obr. 3.1.

Mód chování přechodu a´: budou zničeny žetony barvy a v místech p1 a p2 a na výstupu p3

vznikne žeton barvy d:. ( ) 1,a

I p t a−

= , ( ) 2,

aI p t a−

= , ( ) 3,

aI p t d+

= .

Mód chování přechodu b´: budou zničeny žetony barvy b v místech p1 a p2 a na výstupu p3

vznikne žeton barvy c:. ( ) 1,b

I p t b−

= , ( ) 2,

bI p t b−

= , ( ) 3,

bI p t c+

= .

Poznámka: Při této formě zápisu se dopouštíme malé nepřesnosti při použití složených

závorek. Složené závorky se používají pro vyjmenování prvků množiny, kde každý prvek má

své jméno, tj. přidáme-li do množiny , ,a b c prvek a, dostaneme opět množinu , ,a b c .

Složená závorka v popisu incidenčních funkcí označuje množinu žetonů, ale v daném zápise

nejsou jména jednotlivých žetonů, ale barvy žetonů. Např: zničí-li se v p1 odpálením

přechodu t v módu a´ dva žetony barvy a a jeden žeton barvy b píšeme: ( ) 1, , ,a

I p t a a b−

= .

Hodnoty incidenčních funkcí sestavíme do incidenčních matic vzhledem k danému módu.

Nechť má Petriho síť n míst p1,p2,..pn a m přechodů t1,t2,..tn. Zpětná incidenční matice

v módu a´ aC −

i dopředná incidenční matice aC +

jsou typu n x m .

( ) ( )

( ) ( )

; , , ,

; , , ,

a ij ij i j i ja

a ij ij i j i ja

C c c I p t p P t T

C c c I p t p P t T

− − − −

+ + + +

= =

= =

Všechny vlastnosti Petriho sítě můžeme rozumně rozšířit i pro barevné Petriho sítě.

Ohodnocení z aktuálního stavu sítě popisuje počet žetonů jednotlivých barev v jednotlivých

přechodech. Aktuální ohodnocení na Obr. 3.1 popíšeme:

( 1) , , ; ( 2) , ; ( 3)z p a b c z p a b z p= = =

Přechod t je v ohodnocení z vzhledem k módu a´ aktivní, je-li v každém vstupním místě

dostatečný počet žetonů příslušné barvy, přesněji řečeno, je-li hodnota zpětné incidenční

funkce podmnožinou ohodnocení z všech přechodů sítě.

( ) ( ); ,a

p I p t z p−

.

Barevná Petriho síť je ohraničená, je-li konečná množina všech stavů sítě, tj. jestliže počet

žetonů ve všech místech sítě je omezený

( )0; , ;k N z p z p k

kde ( )z p značí počet prvků množiny z(p). Stejně jako u klasických Petriho sítích mluvíme

o živé síti, jestliže v každém z možných stavů sítě existuje alespoň jeden aktivní přechod.

Analýza barevných Petriho sítí se v ničem neliší od klasických Petriho sítí, protože všechny

objekty a jejich vlastnosti jsou konzistentní. Platí, že každou barevnou Petriho síť můžeme

jednoznačným způsobem rozepsat do základní Petriho sítě. Algoritmus přepsání barevné

Petriho sítě do základní Petriho sítě popisují následující kroky.

Page 38: šablona pro skripta - cvut.cz

40

1. Pro umístění různých barevných typů žetonů vytvoř zvláštní místa. Nechť např.v místě

p je možný výskyt barev a, b, c. Pak z jednoho místa p vytvoříme tři místa pa,pb,pc.

2. Pro každý mód odpálení přechodu vytvoř zvláštní přechod. Je-li např.možné odpálit

přechod t v módu x a y, vytvoříme dva přechody tx, ty.

3. Vytvoř nové incidenční funkce tak aby odpovídaly původním módům.

( ) ( ) ( ) ( ) ( ) ( ), , ; , ,a x a xx xI p t I p t a I p t I p t a− − + += =

Nechť v našem příkladu mód odpalu x spálí všechny tři barvy, zatímco palivem pro

mód y bude jen barva c. Pak v rozepsané petriho sítí budou nenulové zpětné

incidenční funkce ( ) ( ) ( ) ( ), 1, , 1, , 1, , 1,a x b x c x c yI p t I p t I p t I p t− − − −= = = =

4. Nastav počáteční ohodnocení sítě.

Obr. 3.2 Převod barevné sítě na P/T Petriho síť

Příklad barevné a identické rozepsané Petriho sítě je i na Obr. 3.3 a Obr. 3.4.

Příklad: Uvažujme systém se dvěma procesory, každý z procesorů má přístup ke společnému

zásobníku (ne současně). Obr. 3.3 zobrazuje Petriho síť takového jednoduchého systému.

Místa p1, p2, p3 představují stavy prvního procesoru, místa p5, p6, p7 představují stavy

druhého procesoru. Schéma se zjednoduší, označíme-li procesory různou barvou - Obr. 3.4.

Společně s žetonem indikujícím volný zásobník máme tři typy obarvení žetonů a, b, ⚫ .

Incidenční funkce seřadíme do incidenčních matic v módu a´ pro první procesor a v módu b´

pro druhý procesor.

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0; ; ;

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

a a b b

a a b b

a a b bC C C C

a a b b

− + − +

= = = =

• • • •

Obr. 3.3 Systém se dvěma procesory

Obr. 3.4 Systém se dvěma procesory popsaný

barevnou Petriho sítí

Je zřejmé, že barevné Petriho sítě jsou jen zjednodušenou grafickou reprezentací základních

Petriho sítí. Zatím nám jednoduchý grafický zápis kazí nepřehledné zadávání incidenčních

Page 39: šablona pro skripta - cvut.cz

41

funkci. V grafu základních Petriho sítí píšeme hodnotu incidenčních funkcí přímo k šipce; pro

zpětnou incidenční funkci k šipce z místa k přechodu, pro dopřednou incidenční funkci

k šipce z přechodu k místu. Našim cílem je podobný zápis i pro barvené Petriho sítě. Vyjdeme

z praktických aplikací barevných Petriho sítí. Většinou se používají tam, kde jednotlivé

žetony představují fyzické objekty, nebo požadavky k zpracování a přestože přechody mohou

být odpalovány v různých módech, vyžadujeme, aby se tyto módy chovali v jistém smyslu

podobně. Podíváme-li se na náš příklad na Obr. 3.4, tak např. přechod t1 v módu a´ přemístí

žeton barvy a z místa p1 do místa p2, zatímco v módu b´ stejným způsobem přemístí žeton

barvy b. Stejné chování v módech a´,b´ je vidět i ze stejné struktury incidenčních matic. Této

vlastnosti využijeme pro zjednodušený zápis incidenčních funkcí. Pro každý přechod a jeho

zpětné i dopředné incidenční funkce definujeme lokální proměnné. Za ty potom dosadíme

jednotlivé typy barev žetonů.

Obr. 3.5 Hranové výrazy popisující incidenční funkce v barevných Petriho sítích

Ohodnocení hran na Obr. 3.5 znamená, že za lokální proměnné přechodu x,y můžeme

dosadit dvě barvy, ne nutně různé. Nutnou podmínkou k tomu, aby byl přechod aktivní je, aby

v místě p1 byly alespoň dva žetony a v místě p2 jeden žeton, jehož barva je stejná jako barva

žetonu v místě p1. Jsou-li žetony naší sítě obarveny barvami a,b,c,d, pak za výraz x+y

můžeme dosadit barvy a+a, a+b, a+c, a+d, b + b, atd. Pokud chceme odlišit mód odpalu

přechodu pro některé barvy, pak je třeba zapsat toto speciální chování ve tvaru podmínky, if –

then.

Příklad. Modelujeme dopravní tok aut, které projíždějí jistou rizikovou oblastí, např.

objížďka části komunikace, nebo průjezd městem. Dopravní tok rozdělíme dle typu aut, na

osobní a nákladní dopravu. grafické znázornění je na Obr. 3.6.

Obr. 3.6 Rozdělení žetonů dle datového typu

Barevné Petriho sítě mají široké uplatnění v nejrůznějších průmyslových oblastech jako

návrh systému řízení, komunikačních protokolů, operačních systémů, či návrh architektury

softwarových systémů. Barevné sítě představují mocný modelovací jazyk, který je korektně

definovaný, a přitom dostatečně univerzální, aby mohl být užíván v nejrozmanitějších

oblastech. CPN kombinují výhody Petriho sítí s možnostmi programovacího jazyka. Petriho

sítě umožňují modelovat paralelismus a konflikty, zatímco programovací jazyky poskytují

nástroje k definování datových typů a manipulování s daty.

Třídy barev můžeme chápat jako datové typy, které mohou být konečné (např. výčtové

typy, …) nebo nekonečné (např. typ přirozené číslo, …), elementární (např. den, měsíc, rok,

reálné číslo, …) nebo složené (např. datum, vektor reálných čísel, …); datový typ je dán

Page 40: šablona pro skripta - cvut.cz

42

množinou hodnot a s datovými typy jsou spojeny rozmanité operace (např. logické operace s

booleovským datovým typem, číselné operace s číselnými datovými typy, …). Každému

místu je přiřazen je typ žetonů (třída barev), které se mohou v daném místě nacházet; aktuální

značení (stav) každého místa je dán konkrétní multimnožinou žetonů toho typu, který místu

náleží.

Každému přechodu je přiřazena podmínka přechodu (guard) reprezentovaná výrazem

utvořeným z konstant a proměnných, který po vyhodnocení (tj. po dosazení konkrétních

hodnot za proměnné a provedení výpočtu) dává booleovskou (pravdivostní) hodnotu.

Každé hraně je přiřazen tzv. hranový výraz (arc expression) utvořený z konstant a

proměnných, který po vyhodnocení představuje multimnožinu tokenů toho typu, který náleží

místu jež je s hranou incidentní.

Počáteční značení (initial marking) sítě je dáno počátečním značením všech míst sítě: ke

každému místu je přiřazena konkrétní multimnožina tokenů z té třídy, která je místu

přiřazena.

Změny stavů (značení) barevné Petriho sítě jsou charakterizovány následujícími

pravidly:

Enabling rule: přechod t je proveditelný , jestliže:

• multimnožina žetonů obsažená v každém vstupním místě p přechodu t je větší nebo

rovná mutlimnožině, která byla vypočtena při vyhodnocení hranového výrazu, který

přísluší hraně vedoucí z místa p do přechodu t,

• je splněná podmínka přechodu t, tj. vyhodnocení booleovského výrazu přiřazeného

přechodu t dává hodnotu true.

Jestliže v hranových výrazech hran incidentních s přechodem t nebo v podmínce

přechodu t se nachází nějaké proměnné je třeba těmto proměnným přiřadit konkrétní hodnoty.

Různým přiřazením pak odpovídají různé způsoby (módy) provedení přechodu. Přechod

může být proveditelný při všech, některých nebo žádném přiřazení.

Firing rule: při provedení proveditelného přechodu t se změní stav (značení) sítě takto:

• multimnožina žetonů v každém místě vstupní množiny přechodu t se zmenší o

multimnožinu, která vznikne vyhodnocením hrany spojující toto místo s přechodem t,

• multimonožina žetonů v každém výstupním místě přechodu t se zvětší o multimnožinu,

která vznikne vyhodnocením výrazu přiřazeného hraně spojující přechod t s tímto

místem.

Vyhodnocení hranových výrazů všech vstupních i výstupních hran prováděného

přechodu musí být uskutečněno ve stejném módu, tj. při stejných přiřazeních konkrétních

hodnot stejným proměnným.

Obr. 3.7 ilustruje pojem proveditelnosti přechodu a změnu značení po jeho provedení.

Místa p1, p3 mají přidělen výčtový datový typ {p,q,u,v} (prvky p,q,u,v mohou představovat

např. různé druhy procesů), tj. v těchto místech se mohou vyskytovat libovolné multimnožiny

žetonů nad množinou {p,q,u,v}. Proměnná x je téhož datového typu, tj. může nabývat

libovolné hodnoty z množiny {p,q,u,v,}. Místo p2 má přidělen datový typ {r,s,w} (prvky r,s,w

mohou označovat např. různé druhy zdrojů), tj. v místě p2 se mohou nacházet rozmanité

multimnožiny žetonů nad množinou {r,s,w}. Na obrázcích jsou vyznačeny aktuální značení

všech tří míst, hranové výrazy všech tří hran a podmínka spojená s přechodem (uvedená v

hranatých závorkách, zápis "not x=u" znamená ¬x=u, neboli x≠u). Na Obr a) je zobrazen stav

sítě před provedením přechodu t, na Obr. b) stav sítě po provedení přechodu v módu x=p a na

Obr. c) stav sítě po provedení přechodu v módu x=q. V dalších dvou možných módech x=u a

Page 41: šablona pro skripta - cvut.cz

43

x=v je přechod neproveditelný: v prvém případě proto, že není splněna podmínka přechodu a

v druhém případě proto, že při výchozím značení se v místě p1 žádný exemplář žetonu v

nevyskytuje.

Obr. 3.7: Proveditelnost a provedení přechodu v barevných Petriho sítích

3.1.1 Poznámky

1. P/T Petriho sítě jsou speciálním případem CPN, která pracuje s jedním datovým

typem a to výčtovým datovým typem s jednou hodnotou {●}. Značení míst se pak

vyjadřuje multimnožinami nad {●}, např. 3’●.

2. CPN nepotřebuje násobné hrany, omezené kapacity míst, inhibiční hrany, priority.

Všechny tyto konstrukty z P/T PN mohou být plně nahrazeny obecnějšími

konstrukcemi CPN: hranové výrazy, podmínky přechodů, …

3. Podobně jako místo může mít různé značení (reprezentovat různý lokální stav), tak i

přechod – v případě CPN – může být prováděn různými způsoby. V jednom a téže

místě mohou být různé multimnožiny žetonů a podobně jeden a tentýž přechod může

provádět různé transformace vstupních multimnožin žetonů (na vstupních hranách

přechodu) na výstupní multimnožiny (na výstupních hranách přechodu).

Page 42: šablona pro skripta - cvut.cz

44

Příklad: Obr. 3.8 znázorňuje systém procesů, které využívají v různých fázích své cyklické

činnosti různé zdroje. Jedná se o dva procesy typu p a tři procesy typu q a dva zdroje typu r a

tři zdroje typu s. Procesy různých typů se liší požadavky na přidělování zdrojů (co do typu i

množství) během cyklu, procesy téhož typu mají požadavky identické.

Na obrázku a) je systém zobrazen pomocí obyčejné P/T Petriho sítě a na obrázku b) je

tentýž systém reprezentován kompaktněji barevnou Petriho sítí. Zatímco P/T PN pracuje

pouze žetony jediné barvy, CPN pracuje se čtyřmi barvami žetonů (r, q, r, s). Tyto čtyři barvy

jsou rozděleny do dvou datových (barevných) tříd: proces={p,q} a zdroj={r,s}. V každém

místě v CPN se může vyskytovat libovolný počet žetonů, ale vždy jen téhož typu, tj. patřících

do téže datové třídy (třídy barev). V místech A, B, C, D je dáno multimnožinami nad {p,q} a

aktuální značení místa RES multimnožinou {r,s}. Počáteční značení je zakresleno na

obrázcích. Počáteční značení CPN na obr.b) jest: v místech B,C,D jsou prázdné multimnožiny

žetonů (tj. tato místa neobsahují žádné procesy), v místě A se nachází multimnožina 2’p+3‘q,

(tj. v místě A se nachází dva exempláře procesu p a tři exempláře procesu q) a v místě RES se

nachází multimnožina 3‘r+2‘s (tj. tři exempláře zdroje r a dva exempláře zdroje s). Hranám v

CPN jsou přiřazeny hranové výrazy obsahující konstanty p, q, r, s a proměnou x, která je typu

proces, tj. probíhá množinu {p, q}. Po volbě hodnoty proměnné x lze hranové výrazy

vyhodnotit, tj. hranové výrazy pak představují multimnožinu tokenů nad datovým typem

příslušným místu se kterým je hrana incidentní.

Obrázky b), c) a d) představují různé varianty CPN pro P/T PN z obrázku a). Dosud

diskutovaná varianta b) pracuje s elementárními výčtovými datovými typy {p,q} a {r,s},

varianta c) pracuje s elementárními výčtovými datovými typy {p,q}, {r} a {s}.

Varianta d) vychází z elementárních výčtových datových typů {p,q}, {r,s} a {a,b,c,d} , kde

a,b,c,d jsou hodnoty dalšího výčtového datového typu (typu fáze={a,b,c,d}), vyjadřující v

jaké fázi se ten či onen proces nachází (tj. v kterém z míst A,B,C,D se nachází žeton

zobrazující příslušný proces). Na základě elementárních datových typů {p,q} a {a,b,c,d} lze

konstruovat složený datový typ stav s osmi hodnotami

{p,q}×{a,b,c,d}={(p,a),(p,b),(p,c),(p,d),(q,a),(q,b),(q,c),(q,d)}.

CPN pracuje se dvěma elementárními proměnnými x typu proces a y typu fáze, hodnota

proměnné (x,y) udává, že proces typu x je ve fázi y. CPN ve variantě d) je tvořena dvěma

místy: ZDROJE (obsahuje multimnožinu aktuálně disponibilních zdrojů) a STAVY (obsahuje

multimnožinu stavů všech procesů) a jedním přechodem DALŠÍ (jeho provedením se mění

stav jednoho procesu (a tím i multimnožiny stavů všech procesů) a multimnožiny

disponibilních zdrojů). Hranové výrazy mají následující význam:

(x,y) ........... elementární stav (proces typu x ve fázi y), který je předmětem změny

res(x,y)........ multimnožina zdrojů potřebná k uskutečnění změny (res ... reserve)

rel(x,y) ........ multimnožina zdrojů uvolněná po uskutečnění změny (rel ... release)

next(x,y) ..... nový elementární stav nahrazující stav (x,y)

Tabulka ukazuje podrobné definice funkcí res(x,y), rel(x,y) a next( x,y), přímé uvedení v

obrázku d) by tento obrázek příliš zatížilo.

Page 43: šablona pro skripta - cvut.cz

45

Obr. 3.8: Sdílení zdrojů v CPN

Tabulka podrobné definice funkcí

Upozorňujeme, že sítě a)-d) z tohoto příkladu (Obr. 3.8) obsahují deadlocky. Např.

posloupnost přechodů t1”, t1”, t1”, t2” vede k uzamčenému (deadlockovému) stavu sítě a také

některé další posloupnosti přechodů. Deadlockům je možné se vyhnout změnou počátečního

značení sítě (zmenšením počtu procesů, zvětšením počtu zdrojů a někdy překvapivě i

zmenšením počtu zdrojů) a u CPN verzí také využitím podmínek přechodů.

Příklad: Klasický problém mutiprocesorové synchronizace, známý pod anglickým názvem

„Dining Philosophers“ (večeřící nebo jedící filozofové), budeme reprezentovat pomocí OPN

(obyčejné P/T Petriho sítě) a CPN (barevné Petriho sítě).

Problém spočívá v následujícím: Několik filosofů (v našem případě 4) sedí okolo

kulatého stolu a nemají nic jiného na práci než přemýšlet a jíst. Mezi každými dvěma

Page 44: šablona pro skripta - cvut.cz

46

sousedními filosofy je na stole položena jedna jídelní hůlka. K tomu, aby filosof byl schopen

jíst musí mít dvě jídelní hůlky, hůlku z levé i pravé strany. Problém nastane tehdy, když

každý filosof chopí hůlku po levici a čeká až se uvolní hůlka po pravici. V tomto případě

nastane deadlock a všichni filosofové zahynou hladem. Tomu se lze vyhnout např. tím, že

žádný filosof nesmí zdvihat hůlky jednotlivě, ale vždy jen současně (to dále také

předpokládáme). Často se požaduje také spravedlnost (fairness): každý filosof má mít

možnost se najíst tolikrát jako ostatní (tento požadavek v našem případě zabezpečen není).

Obr. 3.9a) modeluje problém pomocí obyčejné P/T Periho sítě. Žeton v místech hi

znamená, že hůlka je neuchopena na stole, žeton v místě fi značí, že i-tý filosof přemýšlí

(filosofuje) a žeton v místě ji indikuje, že i-tý filozof se věnuje jídlu (i=1,2,3,4). Na obrázku je

zobrazeno počáteční značení sítě, kdy všichni filosofové přemýšlí, žádný nejí a všechny hůlky

jsou položeny na svém místě na stole, tj. 1.filosof mezi 1. a 2. hůlkou, 2.filosof mezi 2. a 3.

hůlkou. 3. filosof mezi 3. a 4. hůlkou a konečně 4.filosof mezi 4. a 1. hůlkou.

Obr. 3.9: Dining Philosophers

Obr. 3.9b) modeluje uvažovanou variantu „Dining Philosophers“ problému pomocí

ekvivalentní barevné Petriho sítě. CPN pracuje s:

• datovým typem hůlka={h1, h2, h3, h4},

• datovým typem filosof={f1, f2, f3, f4},

• proměnnou x typu filosof, tj. proměnnou nabývající hodnot z množiny {f1,f2,f3,f4},

• funkcí hl(x) přiřazující každému filozofovi dvojici (multimnožinu, množinu) hůlek, jež

jsou sousední,

tj. hl(f1) = 1’h1+1‘h2 = h1+h2, hl(f2) = h2+h3, hl(f3) = h3+h4, hl(f4) = h4+h1.

Místo h sítě CPN je vlastně sjednocením míst h1, h2, h3, h4 sítě OPN, místo f představuje

sjednocení míst f1, f2, f3, f4 a místo j je sjednocením míst j1, j2, j3, j4. Počátečním značením

míst h, f, j jsou postupně (multi)množiny h1+h2+h3+h4, f1+f2+f3+f4 a ∅.

V počátečním značení je proveditelný přechod vezmi a to ve všech čtyřech módech:

x=f1, f2, f3, f4. Přechod vrať je proveditelný vždy, obsahuje-li místo j aspoň jeden žeton.

3.2 Hiearchické Petriho sítě (Hiearchical PN)

K nejvíce rozšířeným třídám Petriho sítí vyšší úrovně patří hierarchické barvené Petriho

sítě, které umožňují modulově strukturovat graf Petriho sítí. Model systému ve tvaru

hierarchické barvené Petriho sítě se skládá ze dvou složek: grafické síťové struktury a jejího

Page 45: šablona pro skripta - cvut.cz

47

formálního popisu. Popis zahrnuje množiny barev specifikující typy žetonů, hranové výrazy

specifikující množiny vstupních a výstupních žetonů a procedury spojené s přechody sítě, jež

mohou provádět složité výpočty s datovými objekty reprezentovanými barevnými žetony.

Hierarchická struktura sítě, podporující modulární výstavbu modelu je dosažena

možností definice podsítí a algoritmů jejich náhrady za uzly nadřazené sítě. Tyto algoritmy

zahrnují substituci míst a přechodů a sloučení míst, které umožňuje ztotožnit vícenásobné

výskyty téhož místa do jednoho místa.

Jednoúrovňový způsob navrhování a modelování systémů má řadu známých nevýhod:

• ztráta přehledu, záběr příliš mnoha detailů v jednom okamžiku,

• žádné nebo nedostatečné zobrazení vnitřní struktury systému,

• pracný návrh, malá spolehlivost navrženého systému, obtížná údržba systému.

Hierarchický způsob návrhu a modelování tyto nedostatky překonává a vyznačuje se

následujícími přednostmi:

• rozdělení systému do dobře definovaných komponent,

• zakrytí vnitřní struktury komponent při práci s komponentami,

• možnost vícenásobného užití komponent při návrhu systému,

• možnost návrhu systému metodou "shora dolů" i "zdola nahoru",

• možnost paralelní práce při návrhu systému,

• snadná údržba systému.

Hierarchická Petriho síť je částečně uspořádaná množina nehierarchických Petriho sítí (které

všechny mohou být libovolného, ale i téhož typu: C/E, P/T, barevné, ...), tzv. stránek (pages).

V tomto uspořádání je stránka A pod stránkou stránky B jestliže síť na stránce A rozvíjí

(definuje pomocí Petriho sítě) některý prvek ( přechod nebo místo) ze sítě na stránce B.

Při tomto rozvíjení lze používat různé hierarchizační konstrukty (hierarchy constructs):

• substituce přechodů (substitutions of transitions),

• substituce míst (substitution of places),

• volání přechodů (invocation of transitions),

• slučování přechodů (fusion of transitions),

• slučování míst (fusion of places).

Při substituci přechodu je daný přechod v dané síti nahrazen substituující sítí, která poskytuje

podrobnější popis aktivity, kterou reprezentuje substituovaný přechod. Podobně při substituci

místa je dané místo v dané síti nahrazeno substituující sítí, která poskytuje podrobnější popis

stavu, který reprezentuje substituované místo. Poznamenejme, že stav může mít dynamického

charakter, tj. může vyjadřovat skutečnost, že probíhá jistý proces.

Substituce je hierarchizační konstrukce, která se uplatňuje pouze při návrhu Petriho sítě, ale

nikoliv při jejím provozování. Interpretace (exekuce) sítě se uskutečňuje v základní

(hierarchicky nejnižší úrovni) ve které již neexistují žádné substituční přechody nebo místa

(tj. všechna dosazení byla již provedena). Z tohoto důvodu není možné, aby v substituující síti

byl přímo nebo zprostředkovaně použit substituovaný přechod (nebo místo), který je touto sítí

definován (zákaz rekurze).

Při volání přechodu je tomu jinak. Zatímco substituci přechodu můžeme přirovnat k dosazení

makra, volání přechodu představuje volání podprogramu. Substituující síť je v prvém případě

Page 46: šablona pro skripta - cvut.cz

48

kódem makra (kód musí být dosazen všude tam, kde je makro použito), zatímco v druhém

případě je kódem podprogramu (který je z různých míst programu volán, ale v programu se

vyskytuje pouze jednou). Konstrukce volání přechodu umožňuje rekurzi, tj. v definiční síti

volaného přechodu může být definovaný přechod použit (přímo nebo zprostředkovaně). Při

interpretaci se definiční síť volaného přechodu vytvoří teprve tehdy, až je přechod volán a po

návratu do hierarchicky vyšší úrovně se tato síť opět zruší. Počet exemplářů definiční sítě se v

průběhu interpretace mění (zejména v případě rekurzivního volání). Rozsah kódu a potřebná

paměť se dynamicky mění. Tím se liší použití konstruktu volání od konstruktu substituce, kdy

jsou rozsah kódu a potřebná paměť konstantní, ale zpravidla podstatně větší.

Konstrukce slučování (fúzování) míst nebo přechodů nejsou hierarchizačními konstrukcemi

v pravém slova smyslu; jsou to spíše technické prostředky, které ulehčují a zpřehledňují

vazby mezi jednotlivými stránkami hierarchické Petriho sítě. Jedná se o to, aby jeden a tentýž

reálný prvek (místo nebo přechod) mohl být podle potřeby a pro pohodlí projektanta zobrazen

současně na různých stránkách hierarchické sítě (a případně i také několikrát na téže stránce).

Představujeme si, že všechny takto zobrazené fiktivní prvky fúzují v jediný reálný prvek.

V případě slučování míst musí mít všechna místa, patřící do téže množiny fúzovaných míst,

vždy totéž značení, tj. přibude-li token do jednoho z fúzovaných míst, přibude i do všech

ostatních míst a je-li odebrán token z jednoho místa je současně odebrán i ze všech ostatních

míst fúzované množiny. Fakticky se totiž jedná o místo jediné.

V případě slučování přechodů musí všechny fúzované přechody být vždy současně

proveditelné nebo neproveditelné a je-li proveden kterýkoliv z fúzovaných přechodů znamená

to, že jsou provedeny všechny přechody fúzované množiny. Z obsahového hlediska se totiž

jedná o přechod jediný.

3.3 Objektové Petriho sítě (Object-Oriented PN) Petriho sítě vysoké úrovně (HLPN – High-level Petri Nets), tj. Petriho sítě, které jsou

současně barevné i hierarchické, mají řadu cenných vlastností:

• jsou intuitivně velmi dobře srozumitelné,

• mají názornou grafickou reprezentaci,

• mohou sloužit jako specifikační jazyk (programovací jazyk vysoké úrovně),

• jsou exaktně definovány a mohou být traktovány jako formální matematická teorie.

Objektově-orientované přístupy představují zavedenou metodologii tvorby programů, která:

• výrazně ulehčuje a urychluje vývoj kvalitního softwaru,

• podstatně zlepšuje udržovatelnost, modifikovatelnost a opětné užití již vytvořeného

softwaru.

Objektově-orientovaná metodologie byla vytvořena z pragmatických důvodů a její hlavní

nevýhodnou je neexistence exaktního formálního základu.

V posledních letech sílí snaha o integraci obou dvou metodologií (Petriho sítí a objektově-

orientované přístupů). Nejjednodušší a nejvíce se nabízející cestu této integrace (tzv. "Objects

inside Petri net" paradigma) lze zhruba charakterizovat takto:

• Žetony kolující v Petriho síti jsou považovány za instance objektových tříd popsaných

v nějakém objektově orientovaném programovacím jazyku.

• Přechody Petriho sítě představují metody aplikované na objekty reprezentované

vstupujícími žetony.

• Provedení přechodu nemusí nutně znamenat zničení vstupních a stvoření výstupních

žetonů. Většinou žetony skrze přechody pouze procházejí s tím, že metoda

Page 47: šablona pro skripta - cvut.cz

49

představovaná přechodem mění hodnoty některých jejich atributů. Provedení přechodu

může také znamenat vytvoření nového objektu nebo zničení starého.

• Hrany Petriho sítě popisují možné toky objektů v systému.

• Struktura Petriho sítě vyjadřuje řídicí strukturu modelovaného systému, zatímco

hierarchie žetonových typů vyjadřuje datovou strukturu modelovaného systému.

• Systém může být modelován jedinou rozsáhlou Petriho sítí anebo může být

hierarchicky strukturován.

Jiný způsob spojení objekt.-orientované metodologie s formalismem Petriho sítí je

založen na modelování vnitřního chování objektů Petriho sítěmi (tzv. "Petri net inside

objects" paradigma). Tento způsob vychází z následujících myšlenek:

• Každý objekt systému má svou vlastní Petriho síť. Značení sítě reprezentuje vnitřní

stav objektu.

• Přechody sítě reprezentují provádění metod objektem. Některé přechody reprezentují

vnitřní spontánní chování objektů, zatímco jiné nabízejí služby jiným objektům.

Petriho síť objektu tak modeluje: dostupnost metod pro objekt, možné posloupnosti

provádění metod, možná paralelní provádění metod.

• Komunikace mezi objekty (komunikační protokol) je rovněž modelována pomocí

Petriho sítě. Aparát Petriho sítí je tak použit jak k modelování vnitřního chování

objektů, tak i k modelování meziobjektové komunikace.

Oba výše charakterizované přístupy "objects inside Petri net" and "Petri net inside

objects" jsou spíše objektově založené ("object-based") než objektově orientované ("object-

oriented"). Vlastnosti dědičnosti, polymorfismu a dynamického vytváření objektů nejsou zde

zpravidla uvažovány. Tyto vlastnosti však mohou být zakomponovány do formalismu

"object-based" Petriho sítí, dovolíme-li, aby tokeny mohly představovat nejenom datové

hodnoty rozmanitých typů, ale také odkazy (směrníky, ukazatele) na jiné objekty, tj. na jiné

sítě.

Page 48: šablona pro skripta - cvut.cz

50

4 ČASOVANÉ PETRIHO SÍTĚ Základní Petriho sítě nejsou vhodné pro analýzu stochastických systému, protože důležitým

systémovým parametrem je čas. Je podstatné modelovat čas, kdy daná událost nastane, nebo

čas setrvání systému v daném stavu. Ačkoliv je při modelování systémů a procesů čas

nezanedbatelnou veličinou, původní Petriho koncept časový aspekt nezahrnoval a věnoval se

jen diskrétním systémům. Je to proto, že zavedení času do Petriho sítí zcela zásadně změní

jejich chování.

Existuje několik způsobů, jak obohatit aparát Petriho sítí pojmem času a uvažovat

změny stavů (provádění přechodů) jako děje trvající, tj. spotřebovávající více či méně času. Je

zřejmé, že tímto obohacením významně rozšíříme možnosti Petriho sítí. Trvání dějů může být

charakterizováno:

• deterministicky (přiřazené časy jsou konstanty),

• stochasticky (přiřazené časy jsou náhodné, zpravidla s exponenciálním rozdělením).

• kombinovaným způsobem (přiřazené časy jsou pro některé přechody konstanty a pro

jiné realizacemi náhodných veličin)

V prvém případě hovoříme jednoduše o časovaných Petriho sítích (bez přívlastku), v

druhém případě o stochastických Petriho sítích (SPN – Stochastic Petri Nets) a ve třetím

případě o zobecněných stochastických Petriho sítích (GSPN – Generalized Stochastic Petri

Nets).

Časové charakteristiky mohou být spojeny s různými stavebními prvky Petriho sítí:

• přechody (t-timed PN),

• místy (p-timed PN),

• hranami (a-timed PN),

• tokeny (token timed PN).

V případě časování přechodů si představujeme, že tokeny pobývají po jistý čas (po dobu

trvání uvnitř přechodu.

V případě časování míst si představujeme, že tokeny pobývají po jistý čas (po dobu

trvání přechodu), který má být proveden. Tato doba se začíná počítat od okamžiku uschopnění

(enabling) přechodu a vyjadřuje dobu trvání přechodu.

V případě časování hran si představujeme, že tokeny se pohybují po hranách konečnou

rychlostí, např. tak, že doba cesty ze vstupních míst do přechodu, který má být proveden, je

rovna trvání přechodu.

V případě časování tokenů předpokládáme, že provádění přechodů je sice okamžité, ale

tokeny opouštějící provedený přechod jsou opatřeny tzv. časovým razítkem (time stamp),

které zaznamenává okamžik, počínaje kterým mohou být tokeny znovu použity. Hodnota

časového razítka je rovna aktuální hodnotě globálního času zvětšeného v okamžiku provedení

přechodu o stanovenou dobu trvání přechodu.

Lze ukázat, že všechny výše uvedené modely jsou navzájem ekvivalentní. Prvý model

se zdá být nejpřirozenější, je však nejméně výhodný z pohledu použití formálních metod

analýzy Petriho sítí. Vede totiž k zavedení přechodných značení, kdy některé tokeny jsou

„schovány“ v probíhajících přechodech. Tato skutečnost komplikuje použití dobře

propracovaných metod analýzy nečasovaných sítí k analýze časovaných sítí, které vzniknou z

nečasovaných časovým ohodnocením přechodů.

V základních Petriho sítích s místy a přechody je přechod okamžitě odpálen, jakmile

jsou splněny jeho vstupní podmínky – je aktivní. Pokud ale některý z přechodů představuje

konkrétní akci, jejíž trvání má nenulovou délku, pak i odpalování přechodu musí trvat jistý

Page 49: šablona pro skripta - cvut.cz

51

čas. Modelujeme-li příchody zákazníků do nějakého systému, pak intervaly mezi příchody

jsou většinou náhodné veličiny. Přiřadíme-li k některým přechodům spojitou náhodnou

veličinu, jež představuje zpoždění odpálení přechodu od okamžiku splnění vstupních

podmínek pak jsme vytvořily obecnou stochastickou Petriho síť (GSPN-Generalized

Stochastic Petri Net). Z hlediska teoretického zkoumání patří k nejdůležitějším, protože je

můžeme využít pro modelování jakýchkoliv reálných systémů, zatímco nečasované Petriho

sítě jsou vhodné jen pro modelování logických vazeb. Pro praktické využití mají stochastické

Petriho sítě příliš jednoduchou strukturu a model reálného systému je většinou příliš

komplikovaný a nepřehledný. Proto jsou vytvořeny bohatší struktury, jako jsou barevné

stochastické sítě, frontové, či objektově orientované Petriho sítě.

Dříve, než se budeme věnovat třídě GSPN prozkoumáme jednoduché stochastické

Petriho sítě. Ty mají přímou souvislost s markovskými řetězci se spojitým časem (CTMC) a

můžeme tedy při jejich analýze využít výsledky známé z teorie markovských řetězců.

4.1 Stochastické Petriho sítě

Nechť je dána základní Petriho síť s množinou míst 1, 2,P p p= množinou přechodů

1, 2,T t t= a incidenčními funkcemi ( ), 0I p t− , ( ), 0I p t+ . Připomeňme, že Pokud je

( ), 0I p t− , vede orientovaná hrana z místa p do přechodu t. Počet odebraných žetonů v

místě p uskutečněním přechodu t je roven ( ),I p t− . Přiřadíme-li každému přechodu

exponenciální náhodnou veličinu, představující zpoždění od aktivizace přechodu k jeho

odpálení, pak mluvíme o stochastických Petriho sítích. Přitom platí, že všechny vlastnosti

půvadní základní Petriho sítě automaticky dědí i na ní vystavěná stochastická síť.

Distribuční funkce exponenciální náhodné veličiny ( ) 1 tF t e −= − . Průměrná doba zpoždění

T je nepřímo úměrná parametru .1

T

= .

Příklad: Sledujeme využívání telefonního aparátu. Systém (telefon) ohodnotíme dvěma stavy

– buď telefon v provozu, nebo není. Na Obr. 4.1 je nakreslena síť systému. Je-li přístroj

používán, je místo P1 obsazeno žetonem. Délka telefonního hovoru je exponenciální náhodná

veličina s parametrem 2 ( )2 exp 2X . Ta je přiřazena přechodu T2. Od doby aktivizace

přechodu T2 – zvednutí sluchátka do doby odpalu – položení sluchátka uplyne doba X2 . Po

odpalu přechodu T2 se žeton přesune do místa P2 , tedy do stavu nepoužívaného telefonu.

Délka intervalu mezi příchozími telefonními hovory je ( )1 exp 1X .

Obr. 4.1 Stochastická Petriho síť

Page 50: šablona pro skripta - cvut.cz

52

4.2 Obecné stochastické sítě

(GSPN-Generalized Stochastic Petri Net) Ačkoliv by se zdálo, že SPN poskytují dostatečně bohatý aparát pro modelování reálných

systémů, přičemž při jejich analýze můžeme využít vlastností základních Petriho sítí,

obohacené o teorii markovských řetězců, mají SPN jednu zásadní nevýhodu. Kvantitativní

analýza stabilizovaného stavu je obtížná pro velký rozptyl různých hodnot intenzit přechodů.

Z toho důvodu naši strukturu ještě obohatíme o další typ přechodů.

Obecné stochastické Petriho sítě mají dva typy přechodů:

Okamžité– přechod je uskutečněn v okamžiku splnění podmínek (enabling rule)

časované – zpoždění odpálení přechodu je exponenciální náhodná veličina ( )expX .

Tak jako o základních sítí, i v GSPN je možné. že odpal několika aktivních přechodů se

vzájemně vylučuje-tzv. konfliktní přechody. Protože máme dva typy přechodů, musíme

definovat konfliktní chování pro jejich vzájemné kombinace Obr. 4.2. Každému přechodu

přiřadíme jeho tzv. váhu.

4. Konfliktní okamžité přechody – odpálení přechodu je diskrétní náhodná veličina.

Každému z konfliktních přechodů přiřadíme pst, se kterou bude odpálen

5. Konfliktní časovaný a okamžitý přechod- uskuteční se vždy okamžitý přechod

6. Konfliktní časované přechody – Jsou-li Tj konfliktní přechody s parametry j, pak

pravděpodobnost, že bude odpálen přechod k je dána podílem k

j

j

.

Obr. 4.2 Okamžité a časované přechody

Souhrně, GSPN jsou popsány jako struktura (P, T, I-, I+, G, z0), kde

(P, T, I-, I+, z0 ) je základní Petriho síť

W funkce přiřazené přechodům

1T T okamžité přechody

2T T časované přechody, 1 2 1 20;T T T T T = =

z0 vektor počátečního značení (počty značek v místech)

Pro časované přechody je hodnota funkce W parametrem exponenciálního rozdělení, pro

okamžité přechody je to váha odpalu, z níž je odvozena pravděpodobností funkce odpalu

okamžitých přechodů.

Např, pokud jsou v jistém ohodnocení aktivní právě jen okamžité přechody T0 a T1 Obr. 4.2

s vahami w0, w1, pak pravděpodobnost, že bude odpálen první přechod T0 je dána podílem

0

0 1

w

w w+. Odvození takové pravděpodobnostní funkce z vah odpalu vyžaduje předchozí

analýzu sítě, protože pro správný výpočet psti odpalu musíme vědět, které přechody jsou

právě aktivní.

Některé stavy GSPN systém okamžitě opustí, takže náhodný pozorovatel je nikdy

nezaznamená, i když těmito stavy systém prošel. Stavy ohodnocení rozdělujeme na skutečné

a fiktivní. Skutečné ohodnocení je takové ohodnocení, ve kterém jsou aktivní jen časové

Page 51: šablona pro skripta - cvut.cz

53

přechody, při fiktivním ohodnocení existuje aktivní okamžitý přechod a jeho odpálením síť

tento stav okamžitě opustí.

Příklad: Na Obr. 4.3 je GSPN klasického příkladu modelu výrobce-spotřebitel. Okamžité a

časované přechody jsou graficky odlišeny okamžité přechody t1, t2, t4, t5 jsou s černou výplní,

časované přechody t3, t6 jsou označeny prázdnými obdélníky. Počáteční ohodnocení patří

mezi fiktivní ohodnocení.

Při navrhování GSPN je třeba vyvarovat se toho, aby vznikla tzv. časová past. Pokud

v Petriho síti existuje silně souvislá podsíť(kružnice) tvořena jen okamžitými přechody, pak

se chod simulace v této časové pasti zacyklí. Na Obr. 4.4 je vytvořena taková časová past.

Obr. 4.3 GSPN modelu výrobce-spotřebitel

Obr. 4.4 GSPN modelu s vlastní smyčkou

4.3 Frontové Petriho sítě

Pro modelování jednoduchých systémů hromadné obsluhy zcela postačí používat

strukturu GSPN, ale při složitějších víceparametrických systémech je obecná stochastická

Petriho síť komplikovaná a nepřehledná. I jednoduchou organizaci fronty FIFO může být

obtížné reprezentovat strukturou obecných Petriho sítí.

Příklad: Simulace systému M/M/1/3 FIFO, tj. zákazníci přicházejí v Poissonovském

toku k jedné obslužné lince. Do fronty se řadí postupně, délka fronty je omezená na 3 místa.

Nechť do fronty přicházejí dva typy zákazníků, oba dva v Poissonovském toku a naším cílem

je sledovat, jaké pořadí ve frontě zákazníci zaujímají.

Obr. 4.5 Simulace systému M/M/1/3 FIFO

Přechod T0 generuje Poissonovský vstup zákazníků prvního typu, T5 generuje vstup

druhého typu. Kapacita zásobníku je tři, zákazníci prvního typu se řadí do horní řady P11,

P21, P31, zákazníci druhého typu se řadí do spodní řady P12, P22, P32. Prostřední řada

Page 52: šablona pro skripta - cvut.cz

54

indikuje volné pozice a zajišťuje, aby na jednom pořadí ve frontě byl nejvýš jeden zákazník.

Časované přechody T4 a T9 modelují čas potřebný k obsluze zákazníka.

Právě popsaný model organizace řady je možné použít, pokud dopředu známe kapacitu

zásobníku. Při změně parametrů, např pro neomezenou frontu, pro více druhů zákazníků či

předepsané rozdělení délky obsluhy je simulace Stochastickými Petriho sítěmi téměř

nemožná. Uvědomíme-li si, že model na Obr. 4.5 je jen malá část modelu, bude výsledný graf

rozsáhlý a nepřehledný. Řešením může být využívání bohatší struktury Frontových Petriho

sítí. Frontové Petriho sítě jsou obarvené GSPN se dvěma typy míst – obyčejnými a

frontovými místy. Frontová místa mají dvě části – frontu a zásobník obsloužených zákazníků

Obr. 4.6. Zákaznící přicházejí podle hodnot dopředných incidenčních funkcí do první, frontové

části, kde jsou řazeni dle předepsaného frontového režimu. Zákazníci (žetony) z fronty

nemohou být použity pro odpal následujících přechodů. Nejprve musí proběhnou obsluha

podle předepsaného rozdělení délky obsluhy, žeton je přemístěn z frontové části do

zásobníku a teprve žetony ze zásobníku mohou být použity pro odpal výstupních přechodů

dle zpětných incidenčních funkcí. Graficky frontová místa značíme svislou čarou, která

rozděluje místo na dvě části. Frontové místo popíšeme symboly Kendallové klasifikace

systémů hromadné obsluhy. První znak, označující typ přicházejících zákazníků

vynecháváme, protože ten je určen předcházejícími přechody a nemůže být parametrem

frontového místa. Modelování systému z Obr. 4.5 pomocí frontových Petriho sítí je na Obr.

4.7.

Obr. 4.6

Obr. 4.7

Page 53: šablona pro skripta - cvut.cz

55

5 MARKOVSKÉ ŘETĚZCE

V této kapitole shrneme základní definice a výsledky teorie stochastických procesů

které je možné využít při analýze obecných stochastických Petriho sítí i jejich rozšíření,

nejpoužívanější třídy zobecněných stochastických Petriho sítí (GSPN). Markovovské procesy

se také využívají při analýze systémů hromadné obsluhy. Vyšetřování frontových systémů je

v podstatě vyšetřováním stavů stochastických procesů. Pokud zákazníci vstupují

v Poissonovském toku a délka obsluhy je exponenciální náhodná veličina, pak takovýto

systém hromadné obsluhy je markovským řetězcem. Cílem není podrobný popis

matematického aparátu stochastických procesů, ale spíše jen vysvětlení základních pojmů a

intuitivní popis struktury markovských řetězců. Zájemce o podrobněji zpracovaný text k této

problematice odkazuji na literaturu [4,9]

5.1 Stochastické procesy

Zkoumáme-li jak se mění náhodná veličina v čase, mluvíme o stochastickém procesu,

přesněji:

Definice:Stochastickým procesem {X(t), tR} je množina náhodných veličin X(t)

definovaných nad stejným pravděpodobnostním prostorem.

Příkladem stochastického procesu může být intenzita provozu měřená v průběhu dne,

počet studentů v posluchárně, nebo vývoj hodnot cen akcií. Klasifikace stochastických

procesů je závislá na třech faktorech: stavovém prostoru, parametrickém prostoru a statistické

závislosti náhodných veličin X(t) pro různé hodnoty parametru t.

Definice: Stavový prostor S je množina možných hodnot X(t). Jednotlivé stavy procesu

označme ei, pak S={e1,e2,...,en, …}. Stavový prostor může být spojitý, nebo diskrétní. Pro

stochastický proces s diskrétním stavovým prostorem používáme termín stochastický řetězec.

Parametrický prostor : množina hodnot (časového) parametru t. Stochastický proces

můžeme zkoumat v průběhu spojitého časového úseku, nebo v diskrétních okamžicích.

Obr. 5.1

Příkladem stochastického procesu se spojitým stavovým

prostorem je teplota měřená během dne, nebo rychlost

vozidel projíždějících daným místem. Příkladem

stochastického procesu s diskrétním stavovým

prostorem Obr. 5.1 je počet aut před křižovatkou, počet

zákazníků v obchodě, či počet žetonů v jednom místě.

Procesy s diskrétním stavovým prostorem se někdy

nazývají náhodné řetězce. V dalším textu se budeme

zabývat jen náhodnými řetězci. V reálných aplikacích

vždy můžeme spojitý stavový prostor převést na

diskrétní už jenom tím, že měříme s jistou přesností.

5.2 Markovské řetězce s diskrétním časem

DTMC – Discrete Time Markov Chain

Uvažujme nyní stochastický proces diskrétní v čase i v úrovni. Daný systém se v

každém okamžiku nachází právě v jednom z dané množiny stavů. Bez újmy na obecnosti

můžeme předpokládat, že okamžiky změn tvoří aritmetickou posloupnost 0,1,2,3,... .

Page 54: šablona pro skripta - cvut.cz

56

Odečítáme-li např. počet aut v tunelu každých 10 minut, bude začátek pozorování označen

jako stav v nultém kroku, po 10 minutách budeme mít stav 1, počet aut za 20 minut bude stav

po 2 krocích atd..

Proces je popsán posloupností náhodných veličin X1, X2, ..., Xn. Nechť S={e1,e2,...,en, …} je

stavový prostor, pak skutečnost, že v i-tém kroku je systém ve stavu e2 zapíšeme 2iX e= .

5.2.1 Definice markovského řetězce

Říkáme, že řetězec je markovský7, jestliže pravděpodobnosti, s nimiž nastávají

jednotlivé změny – přechody mezi dvěma stavy – nejsou ovlivňovány předchozí historií

procesu.

( )2 01 2 0 1( / , , , ) ( / )

nn j n i n i i n j n i ijP X e X e X e X e P X e X e p n−− − −= = = = = = = =

Pravděpodobnost pij(n) nazveme pravděpodobností přechodu ze stavu ei do stavu ej.

Jinými slovy: Pravděpodobnost přechodu systému ze stavu ei do stavu ej není nijak

závislá na tom, jak se systém do stavu ej dostal. markovské řetězce jsou velmi dobře popsány,

existuje celá řada jejich vlastností, které můžeme s výhodou využívat při analýze systémů,

proto se Markovovy řetězce používají všude tam, kde lze podmínku procesu „bez paměti“

přijmout, nebo alespoň přijmout částečně, za jistých omezení.

V následujících úvahách se omezíme jen na homogenní Markovovy řetězce.

Definice: Stochastický proces nazýváme homogenní, jestliže Pro jakékoliv stavy ei, ej

pravděpodobnosti přechodu pij(n) nezávisí na okamžiku n, v němž se přechod uskutečňuje, tj.

pij(0) = pij(1) = pij(2) =…

Argument n při zápisu pravděpodobností přechodu můžeme vynechat, protože na něm

hodnota psti nezáleží. pij(n)=pij

Markovovy procesy používáme v mnohých praktických aplikacích a pokud je to jen

trochu možné, přijímáme předpoklad, že je proces homogenní. Hlavním významem přijmutí

předpokladu homogenity je fakt, že se analýza takovýchto systémů podstatně zjednoduší.

Příklad: Sledujeme intenzitu cyklistické dopravy na daném úseku komunikace. Intenzita

dopravy je vyjádřena počtem cyklistů na určitém profilu pozemní komunikace za jednotku

času. Intenzita dopravy se mění spojitě v průběhu celého zkoumaného intervalu-vznikají tak

variace intenzit dopravy. Používaný je denní, týdenní i roční cyklus variací intenzit dopravy.

Na Obr. 5.2 je zobrazení denní variace relativních intenzit cyklistické dopravy v pracovní den.

Stav systému je aktuální počet cyklistů v měřených lokalitách. Ke změně stavu dojde, když

cyklista opustí monitorovací prostor, nebo naopak, když do něj přijede.

Je zřejmé, že pravděpodobnosti změny stavu se během dne výrazně mění, není tedy

takovýto proces možné považovat za homogenní. Abychom mohli, s jistou dávkou

velkorysosti, předpoklad homogenity přijmout je zapotřebí rozdělit zkoumaný časový úsek na

kratší intervaly a v nich nahradit funkci Variace intenzity za konstantní funkci. V případě

cyklistické dopravy zřejmě můžeme přijmout předpoklad, že je daná intenzita konstantní

v průběhu 30 minut.

7 Třídu stochastických procesů bez paměti popsal v roce 1907 ruský matematik A. A. Markov

Page 55: šablona pro skripta - cvut.cz

57

Obr. 5.2: Denní variace intenzit cyklistické dopravy-průměr ze 120 stanovišť v ČR naměřený v květnu 2007

Intenzita se mění spojitě, my ji ale spojitě zkoumat nemusíme. Předpokládejme např. že

intenzitu naměříme každých 5 minut. Intenzita dopravy tak může být chápána jako

stochastický řetězec diskrétní v čase i v úrovni. Jednotlivé stavy v daném kroku zkoumání

jsou vyjádřeny nezáporným číslem představujícím intenzitu provozu. Pokud pravděpodobnost

změny stavu (příjezdu/odjezdu cyklistů) nejsou závislá na historii procesu, pak můžeme

proces zkoumat jako markovský řetězec s diskrétním časem (DTMC). Otázkou zůstává, jak

takovýto systém přehledně popsat.

5.2.2 Matice přechodu

Pravděpodobnosti přechodu pij sestavíme do tzv. matice přechodu P = ( pij). Matice

přechodu je čtvercová, její rozměr je rovný počtu stavů systému.

( )

11 12 1

21 22 2

1 2

n

n

ij

n n nn

p p p

p p pP p

p p p

= =

Z podstaty hodnot pij má matice přechodu homogenního DTMC speciální strukturu:

1. všechny prvky matice jsou čísla v intervalu [0,1]

2. řádkové součty jsou rovny jedné 1ij

j

p = .

Mluvíme o tzv. stochastických maticích.

. Tyto pravděpodobnosti sestavíme do tzv. stavového vektoru rozdělení pravděpodobnosti.

Stavový vektor v n-tém kroku označíme

( ) ( ) ( ) ( )( )1 2, , , ,na n a n a n a n=

Vektor má tolik složek, kolik je možných stavů systému. i-tá složka vektoru představuje pst,

že se systém nachází ve stavu ei. ( ) ( )i n ia n P X e= = .

Page 56: šablona pro skripta - cvut.cz

58

Pokud matice přechodu poskytuje dokonalý popis procesu, pak jsme schopni jednoznačně

určit pravděpodobnosti, že se systém v daném kroku nachází v daném stavu.

Známe-li stavový vektor v n-tém kroku, umíme pomocí matice přechodu vypočítat stavový

vektor v n+1 kroku. Ze vzorce úplné pravděpodobnosti

( ) ( )1j i ij

i

a n a n p+ = .

Přepíšeme-li tento zápis do maticové formy dostáváme hezký rekurentní vztah

( ) ( )1a n a n P+ =

Známe-li tedy počáteční rozdělení pravděpodobnosti a matici přechodu, umíme

vypočítat stavové vektory rozdělení pravděpodobnosti pro všechny další kroku – můžeme

vyšetřovat dynamiku procesu.

( ) ( )

( ) ( ) ( )

( ) ( )

2

1 0

2 1 0

0 n

a a P

a a P a P

a n a P

=

= =

=

Důsledkem těchto vzorců a nezávislosti pravděpodobností na historii procesu i na aktuálním

kroku dostáváme Chapman-Kolmogorovovu rovnost.

Příklad: Sledujeme aktuální pozici studentů během dne. Výuka probíhá ve třech budovách:

Florenc, Konvikt a Horská. Rozvrh studentů neznáme, migrace studentů se nám jeví jako

stochastický proces. Na základě relativních četností odhadneme pravděpodobnosti přejíždění.

Proces sledujeme v diskrétních časových okamžicích, vždy po dvou vyučovacích hodinách.

Matice přechodu při pořadí míst „Florenc, Konvikt, Horská“ nechť má tvar:

0,6 0,2 0,2

0,5 0,25 0,25

0,4 0,4 0,2

P

=

Pravděpodobnosti zakreslíme pomocí orientovaného grafu. Vrcholy grafu jsou stavy procesu

– budovy, hrany grafu jsou ohodnoceny pravděpodobnostmi přechodu. Protože součet

pravděpodobností všech přechodů z jednoho daného stavu je jedna, jsou řádkové součty

matice přechodu 1 a ze stejného důvodu musí být u stavového grafu součet hodnot hran

vycházejících z jednoho uzlu také jedna.

Page 57: šablona pro skripta - cvut.cz

59

Obr. 5.3:Stavový graf markovského řetězce

Jestliže víme, že na začátku dne v 8:00 je student v Konviktu, známe počáteční stavový vektor

rozložení pravděpodobnosti. S jistotou víme, že na začátku je systém(student) ve stavu

„Konvikt“. Při daném pořadí míst „Florenc, Konvikt, Horská“ je ( )0 (0,1,0)a = .

Pravděpodobnosti , pozice studenta o příští přednášce,tj v dalším kroku je dána

( ) ( ) ( )1 0 0,5; 0,25;0,25a a P= = . Z rovnice ( ) ( )0 na n a P= můžeme vypočítat stavový

vektor pro obecný n-tý krok. Výpočet n-té mocniny matice je možný provést různými

způsoby, např. pokud má matice jednoduchou strukturu můžeme využít diagonální matici.

Chapman-Kolmogorovova rovnost

Označme pij(2) pravděpodobnost, že systém, který byl v určitém okamžiku ve stavu ei

bude po 2 přechodech ve stavu ej (Nezávisle na tom, jakým mezikrokem systém prošel).

Potom (2)

ij ik kj

k

p p p= , tj. ( )2 2P P= . Obecněji ( ) ( 1) ( ) ( )n n m n m

ij ik kj ik kj

k k

p p p p p− −= = , tedy

můžeme psát ( )n m n mP P P

+= .

5.2.3 Stabilizovaný stav systému

Rozložení pravděpodobností stavů systému se může po delší době ustálit, tj. všechny složky

stavového vektoru mohou konvergovat ( )lim k kn

a n a→

= .

( )1 2lim ( ) lim ( ), lim ( ), , lim ( ),kn n n n

a a n a n a n a n→ → → →

= =

Dynamika systému je závislá na konstantní matici přechodu a na počátečním stavu, tedy

obecně i limitní chování může být na počátečním stavu závislé

lim ( ) (0) lim n

n na n a P

→ →=

Pokud tomu tak není a limitní rozdělení stavového vektoru jsou identická pro všechny

počáteční stavy, pak mluvíme o stabilizovaném systému.

Definice: Pokud je limitní rozložení lim ( ) (0) lim n

n na n a P

→ →= nezávislé na počátečním

rozložení ( )0a , pak říkáme, že je systém stabilizován.

Zamysleme se nyní nad tím, jak určit, zda je systém stabilizován. Je zřejmé, že nutnou

podmínkou stabilizace systému je, aby pro n → konvergovaly pravděpodobnosti pik(n).

Page 58: šablona pro skripta - cvut.cz

60

( )lim ( ) (0) lim n

k i ikn n

i

a n a p→ →

=

Pokud budou pro všechna i ( )lim n

ikn

p→

identické, pak je můžeme vytknout před sumu a využitím

vlastnosti vektoru rozdělení psti (0) 1i

i

a = ,dostáváme

( )lim ( ) (0) lim (0)n

k i ik i k kn n

i i

a n a p a a a→ →

= = = .

Tedy, pokud jsou prvky ve sloupcích matice lim nP identické, systém je stabilizovaný.

Právě dokázaná věta nemá při řešení praktických příkladů příliš velký význam, protože

je většinou velmi obtížné určit obecnou mocninu matice nP .Uvědomme si, že matice P má

rozměr rovný počtu stavů, přitom je většinou velmi řídká – má velké množství nul. V teorii

markovských procesů existuje celá řada nutných či postačujících podmínek pro stabilizaci

systému, založených na klasifikaci stavů, tato teorie ale překračuje rámec skript a nebudeme ji

zde rozepisovat.

Pokud máme zjištěno, že je systém stabilizovaný, pak můžeme vypočítat stabilizovaný

stav a přímo, řešením homogenní soustavy lineárních rovnic

a a P=

Rovnice vyplývá přímo ze vztahu ( ) ( )1a n a n P+ = . Za předpokladu že je systém

stabilizovaný,můžeme psát ( ) ( )lim 1 limn n

a n a n a→ →

+ = = .

Příklad: Vraťme se k příkladu stěhování studentů Fakulty dopravní. Matice přechodu byla

zadána ve tvaru.

0,6 0,2 0,2

0,5 0,25 0,25

0,4 0,4 0,2

P

=

Platí, že pokud je stavový graf procesu s konečnou množinou stavů silně souvislý, pak je

systém stabilizovaný. Vypočítejme vektor rozložení pravděpodobnosti stavu. Rovnici

a a P= můžeme přepsat do tvaru ( )TI P a o− = , kde I je jednotková matice. Dále

postupujeme Gaussovou eliminací. Hodnost matice soustavy ( )TI P− je dva, řešení je

jednoparametrický systém ( ) 25,12,10 ,Ra t t R= . Vektor rozložení pravděpodobnosti má

součet všech složek roven jedné, tedy výsledný stabilizovaný stav má pravděpodobnosti

25 12 10, ,

47 47 47a

=

V našem konkrétním příkladě je výpočet stabilizovaného řešení nesmyslný, protože prakticky

tento stochastický proces trvá jen několik kroků, délka zkoumané posloupnosti stěhování je

omezena koncem vyučování v 20:00. Za tak krátkou dobu se proces zřejmě nestačí

stabilizovat. Existuje ale celá řada aplikací, pro které je výpočet stabilizovaného stavu

podstatný a v mnohém případě i postačující pro další analýzu. Klasickým příkladem jsou

dopravní systémy či komunikační protokoly. Obecně jsou to všechny aplikace, kde pracujeme

s vzájemně nezávislými entitami a nezajímá nás dynamika procesu.

Page 59: šablona pro skripta - cvut.cz

61

Prozatím jsme zkoumali Markovské řetězce v diskrétních časových okamžicích, tzv.

krocích. Abychom mohli stochastický proces X(t) zkoumat jako množinu se spojitým

parametrickým prostorem tR musíme uvažovat posloupnost změn stavu jako bodový proces.

Proto, dříve než přistoupíme ke studiu stochastického řetězce se spojitým časem vysvětlíme

základní metody analýzy bodového procesu.

5.3 Bodový proces

Představme si posloupnost nějakých událostí, které nastávají náhodně v čase. Příkladem

mohou být příjezdy vozidel k celnici, příchody cestujících do stanice metra, nebo porucha

nějakého zařízení, která vyžaduje opravu.

Zápis procesu

Okamžiky změny stavu stochastického procesu (v našem případě okamžiky vstupu zákazníků

do systému) můžeme zapsat různými způsoby Obr. 5.4.

1. posloupnost časových okamžiků t1, t2, ..., tn

2. posloupnost intervalů 1, 2, ..., n

3. počet událostí během časového intervalu [s, s+t] - funkce N(s,t)

Obr. 5.4

Tyto zápisy jsou vzájemně ekvivalentními a podle potřeby zvolíme, který je pro nás v danou

chvíli nejvýhodnější. Některé vlastnosti a definice je možné přehledněji zapsat v jednom

zápise, pro jiné je výhodnější volit jiný typ zápisu. Přechod mezi jednotlivými zápisy je

triviální:

1

1

1

0

; 0,1, 2,

; 1, 2,

( , )

k k k

n

n k

k

n n

t t k

t n

N s t n st tt

+

=

+

= − =

= =

= +

Pro každé k je k – délka intervalu mezi k-tou a k+1 událostí spojitá náhodná veličina, její

distribuční funkci označme ( )kA t . Dle definice

( ) { }, 0,1,2,k kA t P t k= =

Funkce N(s,t) je po částech konstantní funkce, body nespojitosti jsou okamžiky příchodu t1,

t2, ..., tn.

Pro pevné s,t je počet událostí N(s,t) diskrétní náhodná veličina. Označme její

pravděpodobnostní funkci

( ) ( ) , , , 0,1,nv s t P N s t n n= = = 0

0; 0, ( , ) 1n

n

t s v s t

=

=

Střední počet událostí v časovém intervalu [s, s+t] pak vypočítáme z definice střední hodnoty

Page 60: šablona pro skripta - cvut.cz

62

0

[ ( , )] ( , )n

n

E N s t n v s t

=

=

Jednotlivé požadavky se mohou vzájemně ovlivňovat, proces se může dynamicky měnit,

intervaly mezi jednotlivými událostmi mohou mít dokonce i jiné rozdělení. Je tedy účelné

rozlišovat mezi jednotlivými typy procesů. Uveďme si zde definice jen několik základních

typů

Proces s nezávislými přírůstky

pro libovolnou k-tici vzájemně disjunktních intervalů [s1, s1+t1]; [s2, s2+t2]; ...; [sk,

sk+tk]; … je {N(s1, s1+t1), N(s2, s2+t2), ... , N(sk, sk+tk); ...} posloupnost nezávislých

náhodných veličin.

Regenerativní proces (proces obnovy)

n je posloupnost nezávislých náhodných veličin.

Rekurentní proces

n je posloupnost nezávislých náhodných veličin se stejným rozdělením

pravděpodobnosti.

Homogenní proces

pravděpodobnosti, že během intervalu [s, s+t] nastane n událostí

( , ) ( ( , ) ); 0,1, 2nv s t P N s t n n= = = jsou závislé pouze na délce intervalu t a ne na jeho

počátku s, tedy N(s,t) má pro libovolné s vždy stejný zákon rozložení jako N(0, t).

[ ( )] [ ( )] [ ( )] [ ( )] [ (1)]E N t u E N t E N u E N t t E N t + = + = =

a pro homogenní procesy má smysl definovat intenzitu procesu

Definice: Intenzitou homogenního procesu nazveme střední počet událostí za časovou

jednotku

[ (1)]E N = .

Ordinární proces

ve velmi krátkém časovém okamžiku nastane více než jedna událost jen se

zanedbatelnou pravděpodobností, řádově menší než je délka tohoto intervalu. Nedochází ke

kumulování událostí.

( ) ( )0 1

0

1lim 0t

v t v t

t→

− −=

Při praktických aplikacích většinou pojmy procesu s nezávislými přírůstky a

regenerativního procesu splývají, obecně ale mezi nimi je rozdíl. Tak například průjezdy

motorových vozidel určitým místem tvoří proces s nezávislými přírůstky, protože řidiči se

rozhodují většinou vzájemně nezávisle, zda daným místem pojedou, ale už tento tok nebývá

regenerativní, protože se auta, která jedou za sebou vzájemně ovlivňují. Pokud je ale proces

ordinální, pak proces s nezávislými přírůstky je současně regenerativní. Pro ordinární

homogenní proces podmínky regenerativnosti a rekurence splývají.

Poissonovský tok

ordinární homogenní proces s nezávislými přírůstky

Page 61: šablona pro skripta - cvut.cz

63

Pro ordinární beznásledný homogenní vstupní tok událostí pravděpodobnost, že za

časový interval délky t nastane právě k událostí, je

( )( ( , ) ) ( , )

!

k

t

k

tP N s t k v s t e

k

= = =

Poissonův tok je až na konstantu jednoznačně určen. Z definice střední hodnoty

ukážeme, že parametr je intenzitou procesu

( ) ( )

( )

( )1

0 0 0

[ ( )]! 1 ! !

k k k

t t t

k k k

t t tE N t ke e t e t t

k k k

− − −

= = =

= = = =−

Poissonovský tok patří mezi nejdůležitější toky, je ze všech stochastických procesů

nejjednodušší, protože pro jeho matematický popis můžeme použít aparát markovských

procesů. Intervaly mezi událostmi Poissonovského toku jsou vzájemně nezávislé veličiny s

exponenciálním rozdělením. Dosazením do předchozího vztahu dostaneme distribuční funkci

exponenciálního rozdělení.

( ) ( )0( ) 1 , 1 tA t P t v s t e −= = − = −

Tedy pro hustotu pravděpodobnosti náhodné veličiny představující délku intervalu mezi

vstupy

( ) ( ) ta t A t e −= = .

Obr. 5.5:Hustota pravděpodobnosti délky intervalu mezi událostmi

Z grafu exponenciální náhodné veličiny Obr. 5.5 je zřejmé, že pravděpodobnost

krátkých intervalů mezi událostmi je větší než psti delších časových rozestupů. V

elementárním toku se nejčastěji vyskytují krátké intervaly mezi událostmi, tj změny stavů se

realizují v sériích krátkých sledů Obr. 5.6. To je vlastnost všeobecně známá např. ze rčení

„Do třetice všeho dobrého a zlého“, které používáme pro vyjádření toho, že na sobě navzájem

nezávislé události, které se nestávají příliš často přicházejí ve shlucích oddělených delším

časovým rozestupem.

Obr. 5.6:Zobrazení posloupnosti okamžiků událostí v poissonovském procesu – události se stávají ve shlucích

Page 62: šablona pro skripta - cvut.cz

64

Díky vlastnosti exponenciální náhodné veličiny je poissonovský tok markovský proces

ryzího množení. Exponenciální náhodná veličina je jediná spojitá náhodná veličina bez

paměti, tj. pravděpodobnosti změny stavu jsou nezávislé na historii procesu. Přesněji,

pravděpodobnost, že v elementárním toku nenastane v intervalu délky T žádná událost, víme-

li že od vstupu předešlého požadavku už uplynul čas t<T je nezávislá na tomto čase t.

( )

( )

( )0

0

P( ) eP( / ) = = = e = P( )

P( ) e

t u

u

t

v t ut ut u t u

t v t

− +

+ + + =

Pro poissonovský tok platí vlastnosti, která nám při analýze systémů výrazně usnadňují

výpočty. Při analýze stochastických Petriho sítí využíváme vlastností superpozice a

náhodného výběru.

1. Superpozice: Složením dvou poissonovských procesů o intenzitách 1 a 2 vznikne opět

Poissonův proces s intenzitou =1+2 (Obr. 5.7).

2. Náhodný výběr: Vybíráme-li s pstí p z daného poissonovského procesu s intenzitou , pak

výsledný proces je poissonovský s intenzitou p.

Obr. 5.7: Složením dvou poissonovských procesů je Poissonův proces s intenzitou rovnou součtu intenzit

vstupujících poissonovských procesů.

5.4 Markovovy procesy se spojitým časem

CTMC – Continuous Time Markov Chain

Nyní spojíme znalosti získané z předchozích dvou kapitol. Většinu základních pojmů

CTMC získáme analogií z diskrétního časového prostoru. Budeme nyní zkoumat stochastický

řetězec s diskrétním stavovým prostorem a spojitým časem. Příkladem může být sledování

počtu aut v jistém úseku komunikace.

Definice: Proces je markovský (CTMC), jestliže znalost několika minulých hodnot funkce X

nepřináší o rozložení pravděpodobnosti její současné hodnoty X(t) více informace nežli

znalost jediné – té poslední z nich.

1 1 0 0( ( ) / ( ) , ( ) , , ( ) ) ( ( ) / ( ) )i n n n n i n nP X t e X t e X t e X t e P X t e X t e− −= = = = = = =

Označme ( , ) ( ( ) / ( ) )ij j ip s t P X s t e X s e= + = = pravděpodobnosti přechodu.

Stejně jakou diskrétních markovských řetězců budeme se nadále zabývat jen

homogenními procesy. Daný proces je homogenní, jsou-li pravděpodobnosti pij(s,t) závislé

pouze na délce časového úseku t, nikoliv na jeho počátku s. Budeme nadále považovat psti

přechodu jen za funkce času t a budeme zapisovat pij(t)

Zvolme pevně jeden stav systému. Nechť se systém v tomto stavu právě teď nachází.

Označme spojitou náhodnou veličinu doby setrvání stavu v systému. Pravděpodobnost

změny systému v příštím, krátkém časovém úseku t musí být z definice markovského

Page 63: šablona pro skripta - cvut.cz

65

procesu nezávislá na historii procesu, tj musí být exponenciální náhodná veličina.

Uvažujeme-li jen dvě možnosti, buď systém ve stavu setrvá, nebo jej opustí, pak dostáváme

analogii DTMC a CTMC Obr. 5.8.

Obr. 5.8

Pst. setrvání systému ve stavu ( ) ( )1 tP t e t o t − = − = +

Pst., že během intervalu t systém stav opustí ( ) ( )1tP t e t o t − = = − +

5.4.1 Matice přechodu

Všechny funkce přechodu ze stavu ei do stavu ej sestavíme do matice časových funkcí

P(t)=(pij(t)). Matice přechodu má speciální strukturu.

1. obor hodnot funkcí přechodu je interval [0,1]

2. řádkové součty jsou rovny jedné ( ) 1ij

j

p t = .

3. diagonální funkce jsou klesající, nediagonální funkce jsou rostoucí

4. ( )0P E=

Příklad grafů prvků matice přechodu je na (Obr. 5.9).

Uvědomme si, že prvky matice přechodu pij(t) nejsou určeny jen délkou intervalu

přechodu ze stavu ei do stavu ej. Situace je poněkud složitější, protože za čas t může systém

projít mnoha změnami. Prvky matice přechody je třeba chápat v následujícím smyslu. Nechť

je v čase t0 systém ve stavu ei. Pak pravděpodobnost, že v čase t0+t je systém ve stavu ej je

dána pravděpodobností pij(t). Naše úvahy jsou omezeny jen na homogenní procesy, kdy se

chování systému v průběhu intervalu zkoumání neměnní, tedy pravděpodobnosti přechodu

nejsou závislé na počátku pozorování t0 a proto argument t0 a při zápisu pij(t). nepoužíváme.

Pro popis markovských řetězců s diskrétním časem se využívá matice přechodu, která je

stochastickou konstantní maticí. Pro daný okamžik t je matice přechodu také stochastickou

maticí, ale zadání řetězce se spojitým časem pomocí matice, jejíž prvky jsou funkce času je

prakticky nerealizovatelné. Stěží si představíme statistický průzkum v terénu, jehož výstupem

bude takováto matice. Proto pro zadávání systému využíváme jiných charakteristik, které je

možné odhadnout na základě reálných dat získaných ze statistického průzkumu. Zavádíme

intenzity přechodu mezi stavy a intenzity výstupu ze stavu. Matice intenzit sestavená z těchto

hodnot bude používána podobně, jako matice přechodu pro procesy s diskrétním časem.

Page 64: šablona pro skripta - cvut.cz

66

5.4.2 Matice intenzit

Matice přechodu pro diskrétní čas je tvořena pravděpodobnostmi přechodu v jednom kroku,

podobně matice intenzit bude tvořena infinitezimálními intenzitami pro nekonečně krátký

interval t

Intenzity přechodu ze stavu ei do stavu ej. i j . 0

( )lim

ij

ijt

p tq

t →

=

Intenzity výstupu ze stavu ei ( )

0

1lim

ii

iit

p tq

t →

−=

Q = (qij) – matice intenzit (infinitesimální generátor)

Pro homogenní procesy intenzity přechodu nezávisí na délce intervalu, ale jen na čase

pozorování, vyjadřují počet přechodů za časovou jednotku, proto je matice intenzit

homogenních procesů konstantní.

Zkoumáme li chování procesu lokálně, rozlišujeme pro jeden aktuální stav jen dvě

možnosti. Buď systém ve stavu zůstane, nebo jej opustí. Doba setrvání homogenního

Markovova procesu X(t) ve stavu ei má exponenciální rozdělení s parametrem - . Parametr

exponenciálního rozdělení je až na znaménko rovna intenzitě výstupu.

( )0 0 0

1 1lim lim lim

1

t tii

iit t t

p t e eq

t t

− −

→ → →

− − − = = = = −

Věta: Vztah mezi maticí intenzit a přechodu popisují následující vzorce:

1. ( )0dP

t Qdt

= =

Důkaz:

( ) ( )

( ) ( ) ( )

0

0 0

( ) lim

0(0) lim lim

ij ij

ijt

ij ij ij

ijt t

p t t p tp t

t

p t p p tp

t t

→ →

+ − =

− = =

(0)ij ijp q =

Analogicky bychom dokázali, že (0)ii iip q = . Právě dokázaná vlastnost říká, že matice

intenzit je sestavena se směrnic tečen grafu funkcí pij(t) v bodě t=0.

2. t+E P Q , Řádkové součty matice intenzit jsou 0. Nediagonální prvky jsou kladné,

prvek na diagonále je záporný

Důkaz: nejprve pro nediagonální prvky

0

( )lim 0

ij ij

t

p t tq

t t →

− =

tj ( ) ( )ij ijp t tq o t − =

( ) ( )ij ijp t tq o t = +

pro diagonální prvky

( ) ( ) ( )1 ii ij ij

j i j i

p t p t q t o t

− = = +

Page 65: šablona pro skripta - cvut.cz

67

( )( )

0 0

1lim lim

ij

i jii

ii ijt t

i j

q t o tp t

q qt t

→ →

− + −

= = = −

Z předchozích dvou vztahů

( ) 1 ( )ii iip t tq o t = + +

Matice intenzit může být jakákoliv čtvercová matice, jejíž všechny nediagonální prvky

jsou nezáporné a řádkové součty jsou 0. Pro homogenní proces je matice intenzit konstantní.

Lineární aproximací t+E P Q prakticky zdiskretizujeme CTMC, změnu stavů

zkoumáme jen pro dostatečně malé intervaly t

Příklad: CTMC je dán maticí přechodu

( )

2 2

2 2

1 1

2 2 2 2

1 1

2 2 2 2

t t

t t

e e

P te e

− −

− −

+ −

=

− +

Grafy funkcí pravděpodobností přechodu jsou znázorněny na Obr. 5.9. Řádkový součet musí

dávat konstantní funkci 1, obory hodnot všech funkcí v matici přechodu musí být [0, 1].

Z matice přechodu určíme matici intenzit ( )0dP

Q tdt

= = = 1 1

1 1Q

− =

− . Matice

intenzit je sestavena se směrnic tečen grafu funkcí pij(t) v bodě t=0.

Obr. 5.9-Grafy pravděpodobností přechodu

Systém je stabilizovaný ( )

1 1

1 12 2lim

1 1 2 2

2 2

tP t a

= =

.

Page 66: šablona pro skripta - cvut.cz

68

5.4.3 Graf diferenciálních přechodů

Podobně, jako jsme graficky znázornily vztahy mezi stavy markovského řetězce

s diskrétním časem pomocí stavového grafu, používáme pro řetězec se spojitým časem graf

diferenciálních přechodů. Uzlu představují stavy procesu, pokud existuje nenulová intenzita

přechodu qij, pak vede orientovaná hrana ze stavu ei do stavu ej. Hranu ohodnotíme intenzitou

přechodu. Pro pořádek můžeme všem vrcholům dodat smyčky ohodnocené intenzitou

výstupu. Intenzita výstupu je jednoznačně určena intenzitami přechodu

ii ij

i j

q q

= − ,

tedy součet všech hran vycházejících z daného uzlu musí být nula. Graf diferenciálních

přechodů z předcházejícího příkladu je na Obr. 5.10. Systém má dva stavu, označme je „O“ a

„1“. Obě intenzity přechodu jsou jedna.

Obr. 5.10: Graf diferenciálních přechodů dvoustavového procesu

5.4.4 Kolmogorovovy diferenciální rovnice

Struktura matice přechodu je pro řetězce se spojitým časem komplikovaná, v praxi

postupujeme obráceně, nejprve empiricky určíme intenzity přechodu qij jako odhad středního

počtu změny i je e→ za časovou jednotku, poté dopočítáme intenzity výstupu z podmínky

0ij

j

q = .

Pokud známe matici intenzit Q můžeme určit matici přechodu ze systému přímých

(zpětných ) Kolmogorových rovnic.

( ) ( )P t P t Q = , ( )0P E=

Soustava lineárních diferenciálních rovnic s konstantními koeficienty má řešení ve tvaru

( ) (0) QtP t P e= . P(t) je určena až na násobek konstantní maticí ( ) ( )P t V t C= . Konstantní

matici C vypočítáme z podmínky ( )0P E= . Platí: ( ) ( ) ( )10 0 0P V C C V −= = .

Shrňme: Nechť Q je matice intenzit, pak matice přechodu CTMC je ve tvaru

( ) ( ) ( )1 0P t V t V −= ,

( ) ( )1 2 1

1 2; ; ;t t t

nV t e v e v e v = ,

kde ( )1 2, , , n jsou vlastní čísla matice Q a ( )1 2, , , nv v v jsou vlastní vektory k

příslušným vlastním číslům, psané do sloupce.

Page 67: šablona pro skripta - cvut.cz

69

5.4.5 Stabilizovaný stav

Pravděpodobnosti stavů e1,e2,e3, …sestavíme do stavového vektoru

( ) ( )( )1 2( ) ( ( ), ( ), , ( ), );k i ia t a t a t a t a t P X t e= = =

Podobně jako u markovských řetězců s diskrétním časem, stavový vektor vypočítáme

z počátečního rozdělení a s matice přechodu

( ) (0) ( )a t a P t= (5.1)

Konvergují-li složky stavového vektoru nezávisle na počátečním rozložení lim ( )j jt

a a t→

= ,

pak říkáme, že je systém stabilizovaný. Podobně jako u DTMC je možné rozhodnout o

stabilizaci systému ze struktury matice ( )limt

P t→

. Jsou-li limitní pravděpodobnosti nezávislé

na indexu i, pak můžeme psát.

lim ( ) lim (0) ( ) lim ( )j j i ij ijt t t

i

a a t a p t p t→ → →

= = =

V praxi je výpočet matice P(t) komplikovaný a většinou i nemožný, o stabilizaci systému

rozhodneme jinými metodami, např. pomocí klasifikace stavů vnořeného DTMC a metodami

teorie grafů.

Věta: Stabilizovaný vektor rozdělení pravděpodobností stabilizovaného markovského řetězce

se spojitým časem vypočítáme ze soustavy homogenních lineárních rovnic.

a Q o = (5.2)

Důkaz: Derivací (5.1) získáme rovnici ( ) ( ) ( )0a t a P t = . Dosadíme vztah

z Kolmogorovových rovnic ( ) ( ) ( )0a t a P t Q = . Limitním přechodem dostáváme

( ) ( )lim limt t

a t a t Q→ →

=

Protože předpokládáme, že proces je stabilizovaný ( )limt

a t a→

= , musí pro všechny

složky vektoru ( )a t existovat horizontální asymptota ( )lim 0t

a t→

= . Dosazením limit

dostáváme přímo dokazovaný vztah. 0 a Q= .

5.4.6 Vnořený markovský řetězec s diskrétním časem

Markovský řetězec se spojitým časem můžeme převést na proces s diskrétním časem (DTMC)

a metody analýzy DTMC využijeme pro zkoumání vlastností řetězce se spojitým časem

CTMC. Některé z výrazných vlastnost, jako např. stabilitu mají tyto dva procesy společné.

Přechod ke vnořenému řetězci s diskrétním časem realizujeme tak, že neuvažujeme čas

strávený v nějakým stavu a registrujeme jen přechody.

Matice přechodu vnořeného DTMC:

( ) ; pro

0 pro

ij

ij ij

ij

i j

ij

qS s s i j

q

s i j

= =

= =

Page 68: šablona pro skripta - cvut.cz

70

1

DS E Q Q−

= − , QD je matice tvořená intenzitami výstupu – diagonálními prvky

matice intenzit. ( )DQ diag Q=

CTMC je ireducibilní právě tehdy, je-li ireducibilní vnořený DTMC.

Je-li ã stabilizovaný stav vnořeného DTMC, pak je stabilizovaný i původní CTMC a

pro jeho stabilizovaný stav platí:

( )

( )

1

1

D

D

a Qa

a Q

=

5.4.7 Postup při analýze CTMC

Pokud stojíme před úkolem analyzovat reálný stochastický proces, je vždy příjemné,

pokud zkoumaný proces je markovský. Abychom aparát markovských řetězců mohli použít,

musíme nejprve verifikovat metodami matematické statistiky, že se skutečně jedná o

markovský řetězec. Pokud se naše hypotézy potvrdí, resp. nevyvrátí na základě naměřeného

souboru dat, můžeme odhadnout intenzity přechodu a na základě nich vypočítat požadované

charakteristiky. Postup můžeme shrnout do následujících kroků.

1. Sestrojení grafu diferenciálních přechodů na základě dané formulace problému

2. Sestavení matice pravděpodobnosti přechodů, resp. matice intenzity přechodů (Sestavení

soustavy diferenciálních rovnic na základě matice intenzit a její vyřešení)

3. Nalezení stacionárního řešení

4. Výpočet požadovaných charakteristik

Příklad: Sledujeme stav datového projektoru. Označme T1 náhodnou veličinu představující

délku setrvání projektoru v bezvadném stavu. Za časovou jednotku zvolíme měsíc. Pst, že je

přístroj po uplynutí času t[měsíc] od poslední opravy stále v bezvadném stavu P(T1>t) = e-2t.

Označme T2 náhodnou veličinu představující délku setrvání projektoru v bezvadném stavu.

Je-li přístroj pokažený, pak pst, že za čas t nedošlo k opravě P(T2>t)=e-20t. Určete

stabilizovaný stav.

Řešení: Proces má dva stavy: „OK“-přístroj je v pořádku a „KO“ – přístroj potřebuje opravu.

Protože délky setrvání systému v obou stavech jsou náhodné veličiny s exponenciálním

rozdělením, je popsaný proces markovský. Parametry exponenciálního rozdělení jsou

intenzitami výstupu. Při pořadí stavů , např. „přístroj je v pořádku, přístroj potřebuje opravu“.

2 2

20 20Q

− =

Obr. 5.11- Graf diferenciálních přechodů pro stav projektoru

Systém má konečnou množinu stavů, graf diferenciálních přechodů je silně souvislý, tedy,

podobně jako pro DTMC, platí, že systém je stabilizovaný. Stabilizovaný vektor získáme

řešením rovnice (5.2). Matice Q má hodnost 1, řešením je jednoparametrický systém

Page 69: šablona pro skripta - cvut.cz

71

( )1 2 1 2, ; 2 20 0a a a a a= − = . Normalizační podmínku a1+a2=1 splňuje vektor 10 1

;11 11

a

=

.

Výsledek nám říká, že po nějakém čase, když už je systém ustálený, je pravděpodobnost, že je

přístroj v pořádku rovna 1

10

11a = , pravděpodobnost, že datový přístroj potřebuje opravu je

2

1

11a = .

5.5 Stochastické Petriho sítě (SPN) jako Markovovy řetězce Ukažme si nyní souvislost stochastických Petriho sítí s markovskými řetězci se spojitým

časem. Pro pochopení této kapitoly je nezbytné, aby čtenář nejprve prostudoval kapitolu 4 –

Časované Petriho sítě.

Aby stochastický proces byl markovský, musí být pravděpodobnost změny stavu

nezávislá na době, po jakou systém v daném stavu setrvával. Jediná spojitá náhodná veličina

s touto vlastností je ale veličina s exponenciálním rozdělením.

Stavem systému Petriho sítě rozumíme jednotlivá jeho ohodnocení, stačí tedy ukázat, že

doba setrvání Petriho sítě v libovolném ohodnocení je exponenciální náhodná veličina.

Namísto precizního důkazu naznačme tyto myšlenky na příkladě:

Příklad: V SPN na Obr. 5.12 je každému přechodu

Ti přiřazena hodnota parametru exponenciálního

zpoždění i (intenzita). V počátečním ohodnocení

M0=(1,0,0,0,0) je aktivní přechod T1, po jeho

odpálení přejdeme do stavu M1=(0,1,1,0,0). V M1

jsou aktivní přechody T2 a T3. Teoreticky není

možné, aby se oba tyto přechody odpálily ve stejný

okamžik. Pokud se odpálí první T2, budou ve stavu

M2=(0,0,1,1,0) aktivní přechody T4 a T3 a další stav

záleží na tom, který se dříve odpálí. Vraťme se ale

na začátek. Pravděpodobnost, že přechod T2 bude

odpálen dříve než T3 v M1

( ) 32 22 3 2 3

2 30 0

x

yyP X X e e dydx

−− = =

+

Pravděpodobnost, že bude odpálen dřív

přechod T3 je doplněk jevu, tedy rovněž výraz

nezávislý na čase t.

Obr. 5.12 Paralelní přechody SPN

Doba setrvání ve stavu M1 je dána minimem z časů prodlev přechodů T2 a T3.

( )( ) ( ) ( ) ( ) ( )

( )( ) ( ) ( )

( )( )

32

2 3

2 3 2 3 2 3 2 3

2 3 2 3 2 3

( )

2 3

min ,

min , 1 1

min , 1

yy

y

P X X x P X x X x P X x P X x P X x X x

P X X x P X x X x P X x X x e e

P X X x e

−−

− +

= = + −

= = − = −

= −

je to tedy exponenciální náhodná veličina s parametrem 1 2 + , což je v terminologii

markovských řetězců intenzita výstupu q1. Intenzita přechodu ze stavu M1 do stavu M2 je

( )2 2

2

2 3 2 3 2 3

2 3

1 1

1min ,E X X

= =+ +

+

Obecně lze formulovat následující větu:

Page 70: šablona pro skripta - cvut.cz

72

Věta: Stochastické Petriho sítě (tj. takové sítě, jejichž všechny přechody jsou časované

s exponenciálním rozdělením) popisují Markovovy řetězce se spojitým časem. Stavový

prostor je dán množinou všech možných ohodnocení SPN. Stavový graf SPN je izomorfní

s grafem diferenciálních přechodů Markovova řetězce.

Intenzity přechodu qij jsou určeny parametry exponenciálního rozdělení. Pokud je

možné přejít ze stavu Mi do stavu Mj několika přechody, pak intenzita přechodu qij je součet

všech jejich intenzit. Intenzitu výstupu každého stavu určíme ze vztahu 0ij

j

q = . Pokud je

systém stabilizovaný, pak ze stacionárního vektoru pravděpodobností

( ) ( )1 2, , , ;n i ia a a a a P M= = můžeme určit základní statistické charakteristiky, jako

průměrný počet žetonů v místě, pravděpodobnost odpalu, nebo průchodnost přechodu.

Stacionární vektor pravděpodobností ohodnocení vypočítáme z matice intenzit Q

markovského řetězce 0aQ = .

Průměrný počet žetonů v místě P :

Označme Bi množinu všech ohodnocení, pro něž je počet žetonů ve sledovaném místě i.

Protože jednotlivé jevy jsou neslučitelné, počítáme pravděpodobnost, že SPN je v některém

ze stavů z Bi jako součet

( )j i

i j

M B

P B a

= .

Pak střední hodnota počtu žetonů ve sledovaném místě E(P) je přímo z definice

( ) ( )1

i

i

E P i P B

=

=

Pravděpodobnost odpálení přechodu T:

I když většinou simulujeme spojité stochastické procesy, na simulaci Petriho sítěmi se

můžeme dívat jako na zdiskretizovaný proces, kdy stav systému zkoumáme po pevně daných

(malých) intervalech. U omezených SPN má smysl vypočítat pravděpodobnost, že v příštím

okamžiku bude odpálen sledovaný přechod.

Označme C množinu všech ohodnocení, ve kterých je sledovaný přechod aktivní. Pak

pravděpodobnost, že náhodný pozorovatel sítě uvidí v příštím z diskrétních okamžiků

odpálení přechodu T.

( )j

j

M C jj

P odpaluT aq

= ,

kde je parametr přechodu T.

Průchodnost přechodu T:

Průchodnost časovaného přechodu E(T) je dána průměrným počtem odpalu T za časovou

jednotku.

( )j

j

M C

E T a

=

Page 71: šablona pro skripta - cvut.cz

73

Příklad: Graf diferenciálních přechodů markovského řetězce SPN z Obr. 5.12 je totožný se

stavovým grafem

Obr. 5.13 Stavový graf SPN na Obr. 5.12 je konečný, silně souvislý

Matice intenzit markovského řetězce Obr. 5.13 Q=(qij).

( )

( )

1 1

2 3 2 3

3 3

2 2

5 4 4 5

0 0 0

0 0

0 0 0

0 0 0

0 0

Q

− + −=

− − +

Doplníme-li zadání příkladu Obr. 5.12 o parametry přechodů 1 22, 1 = = , 3 1 = , 4 3 = ,

5 2 = vyřešením homogenní soustavy lineárních rovnic 0aQ = dostáváme

pravděpodobnosti stabilizovaného stavu:

( ) ( )0

51,0,0,0,0

43P M P= =

( ) ( )1

80,1,1,0,0

43P M P= =

( ) ( )2

20,0,1,1,0

43P M P= =

( ) ( )3

230,1,0,0,1

43P M P= =

( ) ( )4

50,0,0,1,1

43P M P= =

Ze získaných pravděpodobností jednotlivých ohodnocení získáme pravděpodobnosti počtu

žetonů v jednotlivých místech. Např: pravděpodobnost, že je v místě P1 jeden žeton je

( )0

5

43P M = , pst, že je v místě P2 jeden žeton ( )1 3

31

43P M M+ = , atd.

Průměrný počet žetonů v místě P1:

( )38 5 5

1 0 143 43 43

E P = + =

V našem příkladě je v každém místě vždy buď jeden, nebo žádný žeton, tedy průměrný počet

žetonů v místě je roven pravděpodobnosti, že je v tomto místě jeden žeton.

Pravděpodobnost, odpálení přechodu a průchodnost přechodů po dosazení dává:

Page 72: šablona pro skripta - cvut.cz

74

( ) ( ) ( ) ( )

( ) ( ) ( ) ( )( )

( ) ( ) ( ) ( )( )

( ) ( ) ( ) ( )( )

( ) ( )

10 0 1

1

21 3 1 3 2

2 3

31 2 1 2 3

3

42 4 2 4 4

2

54

4

5 101 1

43 43

31 312 ) ( 2 ) (

43 43

10 103 ) ( 3 ) (

43 43

15 214 ) ( 4 ) (

43 43

5

P odpaluT P M E T P M

P odpaluT P M P M E T P M P M

P odpaluT P M P M E T P M P M

P odpaluT P M P M E T P M P M

P odpaluT P M

= = = =

= + = = + =+

= + = = + =

= + = = + =

=+

( ) ( )4 5

5

2 105

43 43E T P M

= = =

Na tomto místě je třeba poukázat na jednu zásadní komplikaci při studiu SPN aparátem

markovských řetězců. Pokud změníme počáteční ohodnocení, změníme zásadně i markovský

řetězec. Čím více žetonů je v systému, tím více stavů řetězec má. Při jednom počátečním

žetonu měl řetězec 5 stavů, pokud začneme se dvěma žetonu, bude mít řetězec 14 stavů a při 3

žetonech v místě jedna bude mít množina ohodnocení 30 prvků.

Page 73: šablona pro skripta - cvut.cz

75

6 MODELOVÁNÍ SYSTÉMŮ HROMADNÉ OBSLUHY

Teorie hromadné obsluhy je odvětví aplikované matematiky, které zkoumá činnost systémů, v

nichž se opakovaně vyskytují požadavky vykonat posloupnost operací, které jsou co do

vzniku a okamžiku výskytu zpravidla náhodné

Cílem teorie hromadné obsluhy je návrh a optimalizace systému nebo sítí systémů

hromadné obsluhy a v neposlední řadě analýza stávajících systémů a návrh jejich

optimalizace. Analytickými, nebo simulačními metodami získáme sledované charakteristiky,

jako např. průměrná délka fronty, ztracený čas zákazníků, kteří čekají ve frontě, průměrná

doba setrvání zákazníka v systému, vytíženost linky atd.

Obslužný systém je klasickým příkladem procesu, ve kterém se vyskytují

synchronizační komunikační a zdroje sdílející procesy, které je možné elegantně modelovat

nástroji Petřino sítí. Pro simulaci systému hromadné obsluhy lze s výhodou využít zobecněné

stochastické Petřino sítě (GSPN), nebo přímo frontové Petřino sítě (QPN).

6.1 Obslužný systém

Systémy hromadné obsluhy jsou schematicky znázorněny na Obr. 6.1. Do systému

přicházejí zákazníci opakovaně v čase (tedy ne nutně titíž) a buď jsou přijati do obslužného

systému a zařazeny do fronty, nebo jsou odmítnuti z důvodu naplnění kapacity zásobníku.

Systém obsahuje jednu či několik paralelních obslužných linek, ve kterých je obsluhováno

vždy pouze určité množství zákazníků. Způsob řazení do fronty a výběr zákazníků

k obsluze(tzv. frontový režim) může být různý.

Obr. 6.1:Schéma obslužného systému

Teorie hromadné obsluhy vychází především ze statistiky a teorie pravděpodobnosti.

Patří do odvětví operačního výzkumu, matematického modelování a optimalizace. Základní

jednotkou systémů hromadné obsluhy je obslužný systém. Ten je složen z trojice zákazník-

linka-obsluha.

• zákazník je subjekt, který požaduje vyřízení svého požadavku

• obslužná linka je místo, osoba, nebo zařízení, kde se zakázky zpracovávají

• obsluha je činnost vedoucí k uspokojení zakázky

Page 74: šablona pro skripta - cvut.cz

76

zákazník linka obsluha

letadlo přistávací dráha přistání

kupující pokladna placení nákupu

telefonní účastník centrála spojení

stroj seřizovač seřízení

cestující autobus doprava

počítač tiskárna vytisknutí úlohy

automobil SSZ průjezd křižovatkou

6.2 Kendallova klasifikace

Pro roztřídění a jednotný systematický popis systémů hromadné obsluhy byla v roce 1951

vytvořena D.G. Kendallem8 klasifikace, která má ve zkratce zakódované základní informace o

systému hromadné obsluhy. Původně byla používaná ve formě tří uspořádaných znaků ale

postupně se ukázalo, že je to nedostatečné a klasifikace byla rozšířena na pět znaků.

A. Popis zákonitostí vzniku a příchodu požadavku do systému (vstupní tok)

B. Délka obsluhy zákazníka – délka obsluhy je většinou náhodná veličina zadaná distribuční

funkcí

C. Počet obslužných linek – počet zákazníků, kteří můžou být obsluhováni současně

D. Kapacita zásobníků – omezení délky fronty

E. Frontový režim

Při popisu reálných systémů mnohdy není třeba určovat všech pět charakteristik.

Zkoumáme-li např. systém z pohledu provozovatele a nezajímá-li nás pravděpodobnostní

funkce ztrátového času zákazníků, nemusíme specifikovat frontový režim. Můžeme tedy dle

konkrétní potřeby vynechat pátý, někdy i čtvrtý znak Kendallovy klasifikace.

6.2.1 Vstupní tok

Zákazníci přicházejí se svými požadavky do systému opakovaně. Okamžiky příchodu

zákazníků do systému mohou být deterministické nebo náhodné, závislé, či nezávislé, se

známým rozdělením pravděpodobnosti, nebo s rozdělením, které neznáme. Navíc zakázky

mohou být děleny do několika typů, lišících se jak v rozložení doby příchodů, tak i v dalších

parametrech. Okamžiky příchodů zákazníků tvoří posloupnost událostí, které nastávají

8 David Georgie Kendall (1918-2007) – britský statistik, jeden z průkopníků stochastické geometrie

Page 75: šablona pro skripta - cvut.cz

77

náhodně v čase – tvoří stochastický proces. Příkladem mohou být příjezdy vozidel k celnici,

příchody cestujících do stanice metra, nebo porucha nějakého zařízení, která vyžaduje opravu.

Rozdělení intervalů mezi příchody označujeme jedním písmenem tabulka 2.

6.2.2 Délka obsluhy

Většinou předpokládáme, že trvání obsluhy jsou nezávislé náhodné proměnné, se stejným

rozdělením. Stejně jako u vstupního toku, rozdělení intervalů mezi příchody označujeme

jedním písmenem tabulka 2

A – Vstupní tok požadavků B – Hustota rozdělení délky obsluhy

M Poissonův proces příchodů Exponenciální rozložení doby obsluhy

Ek Erlangovo rozložení intervalů mezi příchody Erlangovo rozložení doby obsluhy (s

parametry a k)

Kn rozložení 2n intervalů mezi příchody rozložení 2

n doby obsluhy

D pravidelné deterministické příchody konstantní doba obsluhy

G obecné rozložení (žádné předpoklady o

procesu příchodů)

obecné, tj. jakékoliv rozložení doby

obsluhy

GI rekurentní proces příchodů

tabulka 2: Symboly používané v Kendallovu klasifikaci

6.2.3 Počet obslužných linek

Maximální počet požadavků, které se mohou v systému vyskytovat současně určuje třetí znak

Kendallovy notace. Většinou je určen přirozeným číslem udávající maximální počet

dostupných linek systému, ale obecně může nabývat i hodnoty ∞ pro neomezený počet

současně obsluhovaných zákazníků, nebo může být zadán pravděpodobnostní funkcí.

6.2.4 Kapacita zásobníku

Čtvrtým znakem je přirozené číslo udávající maximální počet zákazníků ve frontě.

V některých publikacích čtvrtý parametr udává celkovou kapacitu systému, tj maximální

počet zákazníku ve frontě sečtený s počtem obslužných linek.

Pokud jsou všechny linky obsazeny, jsou zákazníci řazeni dle frontového režimu do

fronty. Při naplnění kapacity fronty jsou další zákazníci odmítnuti a odcházejí ze systému

neobslouženi. Pokud je zásobník neomezen, tj. jeho kapacita je nekonečná, napíšeme na čtvrté

místo Kendallovy klasifikace znak .

6.2.5 Frontový režim

Frontový režim určuje popis osudu vstoupivších zákazníků v případě, že nemohou být hned

obslouženi. Frontový režim značíme zkratkou anglického názvu. V praxi mezi

nejpoužívanější frontové režimy patří:

• FIFO (First In – First Out) – Zákazníci se řadí do fronty v tom pořadí, v jakém do fronty

přišli a dle tohoto pořadí jsou i obslouženi.

Page 76: šablona pro skripta - cvut.cz

78

• P-FIFO – frontový režim s předností. Zákazníky dělíme na dva, nebo více typů. Zákazníci

s prioritou se řadí na začátek fronty, obyčejní zákazníci přijdou na řadu jen v případě, že

je fronta zákazníků s vyšší prioritou prázdná

• LIFO (Last In – First Out) – Zákazníci jsou obsluhováni v opačném pořadí, než v jakém

do systému přicházeli. Praktické uplatnění má tento režim v teorii zásob

• SIRO (Search in Random Order) – Zákazníci jsou vybíráni náhodně. Tento režim je také

někdy označován zkratkou RS (Random Selection)

• SJF (Shortest Job First) – Nejdříve je obsluhován požadavek, jehož obsluha je

nejrychlejší.

I když označení systému pětiznakovou Kendallovou klasifikací poskytuje všechny

základní informace o systému, nepopisuje systém jednoznačně. Nejsou v něm zahrnuty

systémy s nastavitelnou trpělivostí zákazníků, systém s předbíhajícími zákazníky, systém

s proměnnou dostupností obsluhy, režim obsazování linek apod.

6.3 Sledované charakteristiky systémů hromadné obsluhy

Cílem teorie hromadné obsluhy je určit vztah mezi známými parametry systému a

charakteristikami ovlivňujícími kvantitu a kvalitu systému. Na základě těchto funkcí potom

můžeme systém analyzovat a navrhnout optimální řešení. Je účelné používat pro parametry

systémů jednotné značení. V následujících dvou kapitolách zavedeme značení běžně

používané (s mírnými odchylkami) ve většině českých i zahraničních publikací.

6.3.1 Vstupní parametry

Předpokládejme, že vstupní i výstupní tok požadavků je homogenní proces, intervaly mezi

příchody tvoří posloupnost náhodných veličin se stejným rozdělením pravděpodobnosti.

Trvání obsluhy, nechť jsou nezávislé náhodné proměnné se stejným rozdělením

pravděpodobnosti.

intenzita vstupního toku – střední hodnota počtu vstupujících zákazníků za

časovou jednotku

intenzita obsluhy – střední počet zákazníků obsloužených jednou linkou (pokud je

linka plně vytížená)

= intenzita provozu (Service utilization)

Zdá se, že zavedení další značky pro poměr intenzit je zbytečné plýtvání, ale když se

zamyslíme nad chováním systému, nahlédneme, že je toto označení velmi užitečné. Ve

skutečnosti nejsou důležité samotné hodnoty intenzit vstupu a obsluhy, ale jejich vzájemný

poměr. To, jestli obsluha průměrně zvládá nápor zákazníků, s jakou pravděpodobností se tvoří

fronty, nebo naopak je systém prázdný, to vše je určeno poměrem / = . Jak se později

ukáže, u většiny systémů má tento poměr velký význam, určuje totiž vytíženost systému.

6.3.2 Výstupní parametry

Stav systém hromadné obsluhy ohodnotíme aktuálním počtem zákazníků v systému. Počet

zákazníků v systému je součtem počtu zákazníků ve frontě a všech právě obsluhovaných

zákazníků. Zákazníci přicházejí většinou náhodně, délka intervalu mezi příchody je spojitá

Page 77: šablona pro skripta - cvut.cz

79

náhodná veličina, stejně jako délka obsluhy. Jedná se tedy o stochastický proces spojitý v čase

a diskrétní v úrovni.

Obecně zkoumáme dynamiku procesu, tj. všechny náhodné veličiny jsou funkcí času t,

ale pro většinu praktických aplikací se spokojíme s výstupními hodnotami stabilizovaného

stavu (za předpokladu, že systém stabilizovaný je). Charakteristiky ve stabilizovaném

(ustáleném) stavu označíme stejným písmenem, jen s tím rozdílem, že je nebudeme psát jako

funkci času t. Zkoumání dynamiky je výpočetně náročné, pro rozsáhlé množiny stavů

většinou nemožné. My ji předvedeme v jediném příkladě, pro frontu M/M/1/0.

X(t) počet zákazníků v systému

pi(t) pst, že v čase t je v systému i zákazníků

pi pst , že v systému je i zákazníků – stabilizovaný stav lim ( )i it

p p t→

=

F(t) délka fronty v čase t

S(t) počet obsazených linek v čase t

WF doba čekání náhodného požadavku ve frontě

WX doba strávená náhodným požadavkem v systému

U všech systémů bude našim cílem určit ustálené rozdělení pravděpodobnosti počtu

zákazníků v systému pi. Samozřejmě musí platit, že součet pravděpodobností všech možných

stavů je 1.

1i

i

p = .

Většina sledovaných výstupních charakteristik se snadno odvozuje z ustáleného

rozdělení pi. Zajímá-li nás průměrný počet zákazníků v systému, určíme střední hodnotu

teoretického rozdělení pi přímo z definice.

[ ] i

i

E X i p=

Z rozdělení X odvodíme rozdělení náhodné veličiny F pro délku fronty (nepočítáme

zákazníka v lince) a náhodné veličiny S pro průměrný počet pracujících linek. Průměrné

ztrátové časy WX a WF získáme použitím Littleho vztahů.

Důležitými charakteristikami pro provozovatele obslužné linky je pravděpodobnost, že

linka nepracuje p0 vytíženost systému. Protože u většiny systémů je to přímo poměr intenzit

/ = , není třeba zavádět novou značku.

U jednolinkových systému je vytíženost dána pravděpodobností, že linka pracuje, u

vícelinkových je to průměrný počet pracujících linek vydělený celkovým počtem linek n.

[ ]Vytíženost

E S

n=

6.4 Systémy s poissonovským vstupem

Je zřejmé, že čím více informací o systému máme, tím konkrétnější a kvalitnější popis

zkoumaných charakteristik získáme. Jak je zjevné z tabulka 2, je možné zkoumat i systémy

hromadné obsluhy, u nichž neznáme hustotu pravděpodobnosti délky obsluhy ani intervalů

mezi vstupy.

Pro speciální třídy procesů můžeme s výhodou využít speciální vztahy mezi parametry

systému, které výrazně usnadní analýzu takovýchto procesů. Je třeba ale mít na paměti

předpoklady, za jakých je možné takovéto vztahy použít. V praxi lze většinou přijmout, za

jistých omezení, předpoklad poissonovského vstupního toku. Pro tyto systémy hromadné

obsluhy dokázal John Little tzv. Littleho vzorce a vlastnost PASTA

Page 78: šablona pro skripta - cvut.cz

80

6.4.1 Littleho vztahy

Základní vztahy popisující vztah mezi vstupním tokem, střední hodnotou počtu

požadavků ve frontě a střední dobou strávenou požadavkem ve frontě formuloval v roce 1961

John Little9. Ve všech systémech s neomezeným zásobníkem a homogenním vstupem

zákazníků platí:

[ ] [ ]E F E W=

Intenzita vstupního toku

E[F] Střední počet požadavků ve frontě

E[W] Střední doba čekání ve frontě

Littleho vztahy jsme formulovali pro počet požadavků ve frontě, ale vztah platí obecně,

i pro střední počet požadavků v systému. Myšlenka je jednoduchá, intuitivně ji věříme –

průměrné čekání je třeba rozdělit mezi všechny přicházející zákazníky. Formální důkaz je

mnohem složitější, Littleho důkaz je rozepsán na deset stránek.

Platnost Littleho formule můžeme rozšířit i na ztrátové systémy. Místo vstupního toku

zákazníků s intenzitou budeme uvažovat jen ty, kteří neodešli, tj. Poissonův tok s intenzitou

(1–p0).

6.4.2 Vlastnost PASTA ( Poisson Arrivals See Time Averages)

Vlastnost PASTA platí jen pro systémy s poissonovským vstupem, tedy pro systémy, značené

v Kendallovu notaci jakýmkoliv řetězcem typu(M / . / . / . / .). Pro pochopení této vlastnosti je

nutné, abychom si uvědomili rozdílnost v různých způsobech pozorování systému. Pokud

popisujeme systém jako vnější, nezávislý pozorovatel obdržíme jiné hodnoty než vstupující

zákazník, který sám svým vstupem stav systému mění.

Ukažme si tento rozdíl na příkladě. Uvažujme systém D / D / 1. Do systému vstupují

zákazníci pravidelně po 1 minutě. Obsluha zákazníků trvá vždy přesně 30 sekund. Z pohledu

vstupujících zákazníků je pravděpodobnost, že systém bude prázdný rovna jedné, tj. 0 1p = .

Z pohledu provozovatele systému je pst, že linka nepracuje 50 %, tj. 0 0,5p = .

Pro systémy s poissonovským vstupním tokem není třeba tyto dva pohledy rozlišovat.

Vlastnost PASTA bychom mohli volně formulovat následovně: Procento zákazníků, kteří při

svém vstupu naleznou systém ve stavu A je stejné, jako procento času, v němž se systém ve

stavu A nachází.

Tedy, např. je-li p0 pst, že při náhodném vstupu zákazníka je systém prázdný, potom

100.p0 je procento prostoje systému.

6.5 Metody teorie hromadné obsluhy

Cílem THO je vyhledávání závislostí mezi charakterem vstupu požadavků,

produktivitou linek a efektivností obsluhy. Na základě těchto znalostí můžeme zlepšit činnost

systému pomocí účelných změn. Při optimalizaci systému stojí vždy proti sobě dva cíle: co

nejvyšší využití linky a minimalizace ztráty času zákazníků. Pokud známe závislost nastavení

systému a výsledných zkoumaných charakteristik, pak se z pohledu provozovatele, ale i

z pohledu zákazníka můžeme správně rozhodnout a optimalizovat své chování.

9 John. D. C. Little – profesor na Massachusetts Institute of Technology, USA, jeden z nejvýznamnějších

odborníků v oblasti operačního výzkumu

Page 79: šablona pro skripta - cvut.cz

81

V zásadě existují dvě různé metody zkoumání systémů hromadné obsluhy:

1. Analytické metody – výsledkem je funkční závislost vstupních a výstupních požadavků.

Nevýhodou je, že analytické metody je možné použít pro úzkou třídu specifických

procesů. Pokud jsou významně narušeny předpoklady matematického modelu, je třeba

přistoupit k simulačním metodám.

2. Simulační metody – Systém nahradíme simulačním modelem se stejnými

pravděpodobnostními charakteristikami a chování mnohonásobně simulujeme na modelu.

Jednotlivé charakteristiky výstupu nahradíme bodovým odhadem, střední hodnotu

průměrem, pravděpodobnost stavu relativní četností atd. Simulační modely používáme pro

analýzu komplexních systémů

Výhody – Umožňují analýzu systémů, pro něž neexistují analytické modely, umožňují

modelovat neobvyklé situace, studovat dynamiku systémů. Modelování systémů může

pomoci porozumět skrytým procesům.

Nevýhody – Mohou existovat jednodušší techniky pro řešení daného problému, simulace

komplexních systémů vyžadují značné množství vstupních dat. Pro správné použití

simulačních programů musíme porozumět jejich principům a předpokladům.

Simulace může být buď orientovaná na čas – simulace s pevným časovým krokem,

nebo orientovaná na událost – simulace s proměnným časovým krokem. Pro jednoduché

modely volíme většinou simulaci orientovanou na událost, zatímco komplexnější modely se

spoustou nastavitelných parametrů jsou simulace s pevným (velmi malým) časovým krokem.

6.6 Analytické metody markovských systémů M/M/n/r

Je-li vstupní tok je homogenní ordinární proces s nezávislými přírůstky – poissonovský

proces s intenzitou a je-li doba obsluhy exponenciální náhodná veličina s intenzitou obsluhy

, pak je stochastický proces popisující počet zákazníků v systému markovský řetězec se

spojitým časem CTMC. Tyto třídy procesů jsou dobře popsány aparátem markovských

modelů a většinou je možné použít analytické metody. Mezi základní sledované ukazatele

efektivnosti systému hromadné obsluhy pro ustálený režim (stabilizovaný stav) patří kvalita

(rychlost) obsluhy měřená délkou čekání na obsluhu, případně časem stráveným v systému,

využití kanálů obsluhy, střední hodnota počtu volných kanálů, pravděpodobnost odmítnutí

zákazníka atd.

Podrobně popíšeme analytický postup a odvození stabilizovaného stavu pro

nejjednodušší systémy. Použijeme analýzu stochastických Petriho sítí, které popisují příslušný

Markovský řetězec CTMC. Pro pochopení této kapitoly je vhodné nejprve prostudovat

kapitolu „Markovské stochastické procesy“.

Připomeňme, že aby byl stochastický proces markovský, musí být doba setrvání

systému ve stavu vždy náhodná veličina s exponenciálním rozdělením, protože to je jediná

spojitá náhodná veličina bez paměti. Tuto vlastnost dokážeme jednoduše určením podmíněné

pravděpodobnosti, že v procesu nenastane v intervalu délky T = t+u žádná událost, víme-li že

od poslední změny už uplynul čas t.

( )P( ) e

P( / ) = = e = P( )P( ) e

t u

u

t

t ut u t u

t

− +

+ + =

Vidíme, že naše budoucí vyhlídky na změnu v intervalu délky u jsou zcela nezávislé na

uplynulém intervalu t, tedy na historii procesu. Možné změny mohou nastat jen příchodem

zákazníka nebo ukončením obsluhy zákazníka, který systém opouští a snižuje stav procesu.

Page 80: šablona pro skripta - cvut.cz

82

Vstup zákazníků do systému M/M/n/r

Intervaly mezi příchody zákazníků jsou vždy náhodné veličiny s exponenciálním

rozdělením, tj. pro hustotu pravděpodobnosti f(t) a distribuční funkce F(t) platí vztah

( ) 1

( ) , F 1 ,t tf t e t e E t

− −= = − =

Je to rozdělení určené jediným parametrem který je roven převrácené hodnotě střední

délky intervalu E[t]. Střední hodnotu teoretického rozdělení odhadujeme aritmetickým

průměrem. Počet zákazníků N(t), kteří přijdou za pevný časový interval t je náhodná veličina

s Poissonovým rozdělením.

( )( ( ) )

!

k

tt

P N t k ek

= =

Abychom mohli určit graf diferenciálních přechodů CTMC, musíme uvažovat

nekonečně malé časové přírůstky t a možné změny. Pravděpodobnosti, které jsou menší než

druhé mocniny t zanedbáme, všechny zanedbané členy, jejichž hodnota je nekonečněkrát

menší než hodnota lineární funkce, nahradíme symbolem o(t). Exponenciální funkce

nahradíme lineárními, místo grafu funkce budeme uvažovat jeho tečnu v bodě t = 0.

Výsledkem infinitesimálních úvah je, že se možné změny stavů a jejich pravděpodobnosti

podstatně zjednoduší:

Pravděpodobnost, že v intervalu t nepřijde žádný zákazník:

( )( ) 0 e 1 ( )tP N t t o t − = = = − +

Pravděpodobnost, že v intervalu t přijde jeden zákazník:

( )( ) 1 e ( )tP N t t t o t − = = = +

Pravděpodobnost, že v intervalu t přijde víc než jeden zákazník

( )( ) 1 ( )P N t o t =

Za krátký časový interval t tedy může s nezanedbatelnou pravděpodobností jen přijít

jeden zákazník a tím se změní stav procesu na stav sousední. Podobně to platí i pro výstup

zákazníků ze systému, protože ten je dán exponenciální délkou obsluhy.

Výstup zákazníků ze systému M/M/n/r

Průměrný počet zákazníků obsloužených za časovou jednotku jednou linkou je intenzita

obsluhy . S nezanedbatelnou pravděpodobností je možná za čas t jediná změna stavu:

Pravděpodobnost, že během krátkého časového intervalu bude obsloužen jeden zákazník:

( ) ( )1 tP t e t o t − = − = +

S doplňkovou pravděpodobností obsluha ukončena nebude.

Oba dva právě odvozené vztahy použijeme ve všech markovských systémech M/M/n/r.

Pokuste se odvodit, jaká bude pravděpodobnost, že za krátký časový interval t přijde jeden

zákazník a současně bude ukončena jeho obsluha. Asi nikoho nepřekvapí, že vám vyjde

hodnota závislá na mocnině t, tedy zanedbatelná.

Page 81: šablona pro skripta - cvut.cz

83

6.6.1 M/M/1/0 – jednolinkový systém se ztrátami

Systém s jednou linkou bez čekání, fronta se nevytváří, a proto také jsou možné pouze 2

stavy: M0 – systém je volný a M1 – v systému je jeden požadavek, který je právě obsluhován.

Příkladem tohoto systému je volání na telefonní linku, buď je linka volná a volající je spojen

anebo je obsazená a ke spojení hovoru nedojde. Je to nejjednodušší markovský model fronty,

proto si u něj podrobně popíšeme postup odvození vzorců pro rozdělení pravděpodobností

stavů i jejich časové změny, tzv. dynamiky systému. Zkoumat pravděpodobnosti v čase pi(t)

je u komplikovanějších stochastických procesů mnohdy nemožné, protože to vyžaduje

výpočet exponenciály exp(Qt) od matice intenzit Q, jejíž velikost je rovna počtu stavů.

Obr. 6.2

Na Obr. 6.2 je stochastická Petriho síť (SPN) systému M/M/1/0. Zpoždění

časovaného přechodu T1 je exponenciální náhodná veličina s intenzitou .

Stručně budeme zapisovat T1~exp(). Časovaný přechod T2 generuje dobu

obsluhy zákazníka. T2~exp(). Systém má dva stavy, buď je v lince P1

zákazník, linka pracuje a žádný další zákazník nemůže vstoupit do systému,

nebo je systém prázdný. Množina ohodnocení má tedy dva prvky M0=(0),

M1=(1). Stavový graf je izomorfní s grafem diferenciálních přechodů CTMC.

Vektor ohodnocení má jednu složku, protože Petriho síť má jedno

místo. Odpálením přechodu T1 přejdeme z počátečního ohodnocení

M0=(0) do ohodnocení M1=(1).

Obr. 6.3– Stavový graf

Matice intenzit je tvořena intenzitami přechodů T1, T2

Q

− =

Protože systém je jednoduchý, je možné zjistit i matici přechodu ( )( )( ) expP t Q t= a zkoumat

změnu pravděpodobnosti p(t) =p(0)P

:= P

+ e( )−( ) + t

+ −

( ) − e( )−( ) + t

1

+

− ( ) − e

( )−( ) + t1

+

+ e( )−( ) + t

+ Například, pokud v čase t=0 s jistotou víme, že je systém prázdný, tedy p(0) = (1,0),

bude pravděpodobnost prázdného systému začínat v jedničce a postupně konvergovat ke své

ustálené pravděpodobnosti (červená funkce na obrázku 6.4)

Page 82: šablona pro skripta - cvut.cz

84

Obr. 6.4– Pravděpodobnost p0(t) pro různé počáteční stavy X = 0 červeně, X = 1 zeleně

Vyzkoušejte si nakreslit funkci p0(t)i pro jiné počáteční rozložení, např.(0,5; 0,5). Zjistíte, že

ať je počáteční stav jakýkoliv, vždy pravděpodobnost prázdného stavu konverguje k hodnotě

0

1lim ( )

1tp t

→= =

+ +

Podobně, pravděpodobnost, že linka je obsazena konverguje k doplňkové hodnotě.

1lim ( )1t

p t

→= =

+ +

Stabilizovaný stav. Pro tento systém jsme právě dokázali, že je stabilizovaný (ustálený),

ostatní markovské fronty mají větší matici intenzit i přechodu. Odkazuji na větu z teorie teorie

grafů, že pokud je stavový graf procesu silně souvislý bez absorpčních stavů, je systém

stabilizovaný.

Pokud víme, že systém stabilizovaný je, můžeme jeho limitní hodnoty vypočítat jednoduše ze

soustavy lineárních rovnic daných maticí intenzit Q. Pro stabilizovaný stav ( )0 1,p p p= platí

0 1; 1pQ o p p= + =

Řešením soustavy lineárních rovnic je vektor ,p

=

+ + . Tedy pravděpodobnost, že

je systém prázdný a zákazník je přijat do obsluhy 0p

=

+, doplňkem je pravděpodobnost,

že je linka obsazená a příchozí zákazník je odmítnut 1p

=

+. Z pravděpodobností stavů

systému odvodíme další sledované charakteristiky systému.

Pravděpodobnost odmítnutí nového požadavku ............................ p1

Pravděpodobnost přijetí požadavku ............................................... p0

Absolutní kapacita – počet obsloužených za jednotku času .......... .p0

Vytíženost systému ........................................................................ p1.100%

Průměrná doba čekání .................................................................... 0

Střední hodnota počtu požadavků v systému ................................. [ ]E X

=

+

Úloha: Telefonní aparát v informačním středisku zaznamenává volání v průměru každých 12

minut, přičemž hovor trvá v průměru 6 min. Za předpokladu elementárního vstupního proudu

a exponenciálního času doby obsluhy je třeba určit:

• Jaké procento volání bude odbaveno (relativní kapacita)

Page 83: šablona pro skripta - cvut.cz

85

• Kolik hovorů se uskuteční za hodinu (absolutní kapacita)

• Pravděpodobnost odmítnutí

Řešení: Za časovou jednotku zvolíme hodinu, pak 0,2 5; 10hod = = = . Dosazením

do vzorců pro ustálené pravděpodobnosti dostáváme

0 1

2 1;

3 3p p

= = = =

+ +.

Zákazník je odmítnut, pokud je systém plný, tedy s pravděpodobností p1. Relativní kapacita je

dána pravděpodobností, že bude zákazník přijat do obsluhy p0. Za hodinu přijde 5 zákazníků,

ale jen 2/3 z nich bude obslouženo, tedy absolutní kapacita je přibližně 3,33 zákazníků.

Úloha: Low speed CAN sběrnice z asistenčních systémů automobilu zpracovává data ze 4

řídících jednotek, každá řídící jednotka vysílá zprávu průměrně jednou za 20 ms. Přenesení

datového rámce u low speed sběrnice trvá přibližne 2 ms. Určete procento ztracených zpráv,

nemá-li sběrnice vyrovnávací paměť.

Řešení: Kendallova klasifikace systému: M/M/1/0, intenzita vstupu = 4/20, intenzita

obsluhy = 0,5, poměr intenzit . Pravděpodobnost ztráty datové zprávy

1

0.4 20.285

1 1.4 7p

= = = =

+

6.6.2 M/M/1/r

Číslem r označme počet zákazníků, kteří můžou stát ve frontě. Stav systému je definován jako

celkový počet zákazníků v systému. Pro plně obsazený systém máme jednoho zákazníka

v lince a r zákazníků ve frontě, celkem 2+r stavy. Každý stav je prezentován uzlem grafu

diferenciálních přechodů. Za krátký časový okamžik t s nezanedbatelnou pravděpodobností

t přijde jeden zákazník, nebo jeden zákazník odejde s pravděpodobností t. Existují tedy

jen hrany mezi sousedními uzly a smyčky pro setrvání v daném stavu.

Obr. 6.5 - Graf diferenciálních přechodů pro M/M/1/r

Matice intenzit Q je čtvercová, nad diagonálou jsou koeficienty pro příchod, pod diagonálou

jsou koeficienty pro odchod. Diagonální prvky jsou doplněny tak, aby byl řádkový součet 0.

0 ...

...

0 ...

...

0 0

Q

− − = − − −

Page 84: šablona pro skripta - cvut.cz

86

Řešením soustavy p Q o = dostáváme r+2 lineárních rovnic pro neznámé p1, p2, …, pr+1.

0 1

0 1 2

1 1

1

0

( ) 0

...

( ) 0

0

r r r

r r

p p

p p p

p p p

p p

− +

+

− + =

− + + =

− + + =

− =

Když si pozorně prohlédnete rovnice ustálených pravděpodobností, vidíte, že mají stejnou

strukturu, liší se vždy jen zvýšeným indexem. Zavedeme substituce

1; 0k k kz p p k r += − + =

Dosazením okamžitě dostáváme, že všechny nové proměnné zk jsou rovny 0. Odtud

1 1 ; 0k k k kp p p p k r

+ += = =

Ve skutečnosti máme ještě o jednu rovnici navíc, nesmíme zapomenout na tzv. normalizační

podmínku, že součet všech pravděpodobností je jedna. Díky ní vypočítáme p0.

( )1

2 1

0 0 0 0

0 1 2

0

; ; ; ...;

1 1

1

k k

r

r ri

i

p p

p p p p p

p

+

+

+ +

=

=

=

−= =

Pro aplikaci právě odvozených vzorců si stačí pamatovat rekurentní vztah. Povšimněte

si, že všechny pk jsou vyjádřeny v závislosti na p0. Tak tomu bude ve všech markovských

frontách. Výpočet provádíme ve dvou krocích, nejprve vypočítáme koeficienty 2 11; ; ; ...; r + , převrácená hodnota jejich součtu je pravděpodobnost p0. Ve druhém kroku

vypočítáme zbývající pravděpodobnosti 0

k

kp p = . Pro kontrolu správného postupu použijte

kalkulačku na webskriptu, kapitola M/M/n/r. Applet zobrazí i pomocné koeficienty výpočtu,

aby vám usnadnil nalézt případnou chybu.

Mezi nejdůležitější charakteristiky systému sledované provozovatelem patří

pravděpodobnost ztráty zákazníka. Ta je dána pravděpodobností pr+1, že je fronta plně

obsazena. Je zřejmé, že čím větší je kapacita fronty, tím menší je pravděpodobnost odmítnutí

zákazníka. Překvapující je exponenciální závislost, s níž tato pravděpodobnost rychle klesá.

V případě M/M/1/r nemá smysl se snažit odvodit vzorce pro průměrnou délku fronty

E[F] nebo pro průměrný počet zákazníků v systému E[X]. Vzorce jsou komplikovanější než

přímý výpočet z definice střední hodnoty. Průměrné ztrátové časy Wx a WF získáme z Littleho

vzorců.

Z rozdělení pravděpodobnosti počtu zákazníků můžeme odvodit případné další náhodné

veličiny, jako jsou počet zákazníku ve frontě (F = X – 1), nebo počet pracujících linek S.

Využití systému neboli provozní zatížení je dáno pravděpodobností (1 – p0), že linka pracuje.

Page 85: šablona pro skripta - cvut.cz

87

i Počet zákaz. P(X=i) Délka fronty P(F=i) Počet v obsluze P(S=i)

0 p0 p0 + p1 p0

1 p1 p2 p1 + p2 + …+ pr+1

r pr pr+1 …

r+1 pr+1 … …

Příklad: Telefonní aparát v informačním středisku zaznamenává volání v průměru každých 12

minut, přičemž hovor trvá v průměru 6 min. Je-li linka obsazena, můžou na spojení čekat

maximálně 2 zákazníci. Určete:

• Kolik hovorů se uskuteční za hodinu (absolutní kapacita)

• Pravděpodobnost odmítnutí

Řešení: Za časovou jednotku zvolíme hodinu, pak 0,2 5; 10; 1/ 2hod = = = = . Pro

výpočet ustálených pravděpodobností si připravíme tabulku. Každý řádek slouží pro výpočet

jednoho stavu. My máme celkem čtyři stavy 0,1,2,3. V prvním sloupci budou koeficienty qk

ve tvaru 2 11; ; ; ...; r + , ve druhém pravděpodobnosti pk. Převrácená hodnota ze součtu

prvního sloupce je p0. Zbývající pravděpodobnosti vypočítáme vynásobením p0.qk.

0

80 1

15

1 41

2 15

1 22

4 15

1 13

8 15

k k

kk p p =

Zákazník je odmítnut, pokud je systém plný, tedy s pravděpodobností p3 = 0,067.

Relativní kapacita je pravděpodobnost, že bude zákazník přijat do obsluhy 1 – p3 = 0,93.

Za hodinu přijde 5 zákazníků, ale jen 93,3% z nich bude obslouženo, tedy absolutní kapacita

je přibližně 4,67 zákazníků.

6.6.3 M/M/1/

Jednolinkový systém s neomezenou délkou fronty můžeme modelovat Petriho sítí na Obr.

6.11. Zpoždění časovaného přechodu vstup je exponenciální náhodná veličina s intenzitou ,

tj. vstup~exp(). Časovaný přechod „obsluha“ generuje dobu obsluhy zákazníka.

obsluha~exp(). Systém má nekonečně mnoho stavů, množina ohodnocení je nekonečná

Page 86: šablona pro skripta - cvut.cz

88

( ) ( ) ( ) 0 10 , 1 , ,iM M M i= = = . Stavový graf je izomorfní s grafem diferenciálních

přechodů příslušného CTMC.

Obr. 6.6 - Graf diferenciálních přechodů pro M/M/1/∞

Stacionární stav ( )0 1, ,p p p= získáme jako řešení homogenní soustavy lineárních rovnic

pQ o= , kde Q je matice intenzit.

0

0

0 0

Q

− − = − −

0 1

0 1 2

1 1

0

( ) 0

( ) 0k k k

p p

p p p

p p p

− +

− + =

− + + =

− + + =

Substituce 1, 0,1,k k kz p p k += − + = dává řešení 0 1 0z z= = = , tedy přejdeme –li

k původním neznámým pi, dostáváme jednoduchý rekurentní vztah

1k kp p

+ = .

Využijeme-li, že podíl intenzit vstupu a obsluhy je dle definice intenzita provozu

= ,

dostáváme vektor pravděpodobností stavů systému ve tvaru.

( )2

0 0 0 0; ; ; ; ;...kp p p p p =

Pravděpodobnost p0 vypočítáme z normalizační podmínky 1

1i

i

p

=

= .

Po dosazení má platit, že součet nekonečné geometrické řady je jedna, tj

0

0

1i

i

p

=

= .

V případě všech nekonečných systémů musíme zkontrolovat, že fronta neporoste nade

všechny meze. K takovému závěru není třeba zdlouhavého odvozování, je zřejmé, že pokud

průměrně bude přicházet více zákazníků, než kolik je obsluha schopna zvládnout, fronta bude

s časem narůstat. Na rozdíl od reálné situace zde máme i nekonečně trpělivé zákazníky, kteří

ze systémy nikdy neodejdou, ať je fronta sebedelší.

Geometrická řada konverguje jen pro 1 . Pro intenzitu provozu menší než jedna je

systém stabilizovaný a pro jeho ustálený stavový vektor jsme právě odvodili nejznámější

vzorec teorie front.

0 1 k … …

t t t

t t t t

t

1 t−

( )1 t − + ( )1 t − +

Page 87: šablona pro skripta - cvut.cz

89

(1 ) , pro 1k

kp

= − =

Pro intenzity provozu 1 je systém nestabilní, tedy nelze určit stabilizovaný stav a

naše úvahy je nutné omezit jen na možné zkoumání dynamiky procesu. Můžeme si klást

otázku, za jak dlouho bude fronta delší než 50, jaká bude průměrná doba čekání za dvě hodiny

apod.

Na obrázku níže jsou zobrazeny pravděpodobnosti p0, p1, …, p5 pro různé hodnoty

intenzit. Čím více se intenzita provozu blíží 1, tím pomaleji funkce pi , i = 1… 5 klesá.

Rozdělení pravděpodobnosti počtu zákazníků v systému

0

0,2

0,4

0,6

počet zákazníků

pra

vd

ěp

od

ob

no

st

0,4

0,9

0,99

0,4 0,6 0,24 0,096 0,0384 0,01536 0,006144

0,9 0,1 0,09 0,081 0,0729 0,06561 0,059049

0,99 0,01 0,0099 0,009801 0,009703 0,009606 0,0095099

p0 p1 p2 p3 p4 p5

Obr. 6.7- Stabilizovaný stav M/M/1/ pro různé intenzity provozu

Ze stabilizovaného vektoru jednoduše odvodíme základní charakteristiky systému M/M/1/.

Při výpočtech čekacích dob využijeme Littleho vzorce.

Střední hodnota počtu požadavků v systému ......... [ ]1

E X

= =

− −

Rozptyl počtu zákazníků v systému ....................... ( )

2[ ]

1D X

=

Průměrný počet zákazníků ve frontě ...................... 2

[ ]1

E F

=

Využití linky ........................................................... %

Průměrná čekací doba ............................................. ( )

[ ][ ]F

E FE W

= = =

− −

6.6.4 M/M/2/

Pro vícelinkové neomezené systémy bude mít Petriho síť více míst, tím pádem bude mít

stochastický proces více stavů a vzorce pro výpočet stabilizovaného stavu (pokud systém je

stabilní) budou komplikovanější. Podrobně budeme postupovat u dvoulinkového systému,

zobecnění pro n linek je pak už jen rutinní záležitost. Na Obr. 6.8 je Petriho síť GSPN

systému M/M/2/. Síť má dva typy přechodů – okamžité T1, T2 a časované T0~exp(),

T3~exp(), T4~exp(). Počáteční ohodnocení ( )0 0,0,0M = je skutečným stavem procesu,

ale všechny stavy typu ( ) ( ),0,1 , ,1,0 , 1k k k = jsou fiktivní. Síť popisuje semimarkovský

proces, ale v našem případě bude jednoduché psát stavový graf jen pro skutečné stavy.

Page 88: šablona pro skripta - cvut.cz

90

Obr. 6.8-GSPN

Obr. 6.9-Stavový graf

Matice intenzit pro pořadí ohodnocení ( )0 0,0,0M = , ( )1 0,1,0M = , ( )1* 0,0,1M = ,

( )2 0,1,1M = , ( )3 1,1,1M = , ( )4 2,1,1M = , … ( )2,1,1kM k= − ,…

( )

( )

( )

( )

1 1

2 2

1 2 1 2

1 2 1 2

0 02 2

0 0

0 0

0 0

0 0 0

Q

− +

− +=

+ − + + + − + +

dává stacionární stav ( )0 1 1* 2 3, , , , ,p p p p p p= , který je řešením soustavy rovnic

( )

( )

( )

0 1 1 2 1*

0 1 1

0 2 1* 1 2 2

1 1* 1 2 2 1 2 3

1 2 1 1 2 2

0

( ) 02

( ) 02

( ) 0

( ) 0 2, 3...k k k

p p p

p p

p p p

p p p p

p p p k

+ +

− + + =

− + =

− + + + =

+ − + + + + =

− + + + + = =

Od páté rovnice soustavy už je struktura rovnic jednotná a dává řešení

2

22

k

kp p

=

z prvních čtyř rovnic můžeme vyjádřit 1 1* 2, ,p p p jako funkce p0. Pravděpodobnost prázdného

systémy vypočítáme nakonec z normalizační podmínky0

1i

i

p

=

= . Explicitní vzorce jsou

nepřehledné a nemá význam je na tomto místě uvádět. Pokusíme se popis systém zjednodušit.

Obslužnou linku obsazují zákazníci náhodně, zřejmě nás nezajímá pravděpodobnost, že bude

obsazena 1. linka, nebo 2. linka. Většinou se spokojíme s ohodnocením stavu systému počtem

zákazníků v systému. Potom splynou stavy ( )1 0,1,0M = a ( )1* 0,0,1M = a matice intenzit

odvozená z grafu diferenciálních přechodů Obr. 6.10 bude ve tvaru

Page 89: šablona pro skripta - cvut.cz

91

( )

( )

( )

0 0

0

0 2 2

0 0 2 2

Q

− + = − +

− +

.

Vzorce pro pravděpodobnosti stavů ve stabilizovaném stavu ( )0 1 2 3, , , ,p p p p p= vyjádřené

v závislosti na p0. 2

01 0 2

0

2

2

2;

,2

pro 2

22

,2

k

k

k

k k

pp p

pp

p

k pp

= =

=

=

.

Nakonec vypočítáme z podmínky0

1i

i

p

=

= pravděpodobnost prázdného systému p0.

11

0

0 2

1 12

! 2

k kn

kk k

pk

−−

= =

= +

Podmínka stabilizace systému 2 1 22

=

Obr. 6.10 – Graf diferenciálních přechodů

6.6.5 M/M/n/

Přístup z předchozího příkladu můžeme zobecnit pro n linek. Výsledné vzorce nebudeme

odvozovat, protože postup je analogický postupu pro M/M/2/. Z grafu diferenciálních

přechodů systému M/M/ n/

Odvodíme vektor stabilizovaného stavu ( )0 1, ,..., ,np p p p= :

0 1 2 3 …

t

t t2

t t

t2

0 1 n+1 … 2 n …

t

t t2 n t n t n t

t t tt

Page 90: šablona pro skripta - cvut.cz

92

1

0

0

0

1

1

0

0 ,

; ,

1 1

! !

;!

!

k

k

k

k k

kk

k n

k n

k knn

kk n

n

k

pp

k

p pn

np

pk n p

k

pn k p

n n

k n n

−−

= =

=

=

= +

=

=

Podmínka stabilizace systému 1n nn

= .

Výpočet je komplikovaný tím, že máme dva různé vzorce pro výpočet koeficientů. Zvlášť,

když pro stavy 0…n, kdy s přicházejícími zákazníky zapojujeme jednotlivé linky a zvyšujeme

pravděpodobnost ukončení obsluhy, a zvlášť pro zákazníky přicházející do fronty, protože ti

nám již intenzitu obsluhy neovlivňují. Je třeba udělat si ve výpočtech pořádek.

Pro aplikaci právě odvozených vzorců je nejpřehlednější použití rekurentního vztahu.

Porovnáme-li jejich zápisy, snadno odhalíme původ komplikovaných vzorců výše.

( )1

1

pro 0,1, , 11

pro 1, ,

k k

k k

p p k nk

p p k n nn

+

+

= = −+

= = −

Opět platí, že všechny pk jsou vyjádřeny v závislosti na p0. V prvním sloupci tabulky

zvlášť vypočítáme koeficienty pro stavy 0…n: ( )

0 11; pro 0,1, , 11

k kq q q k nk

+= = = −

+

a pro zbývajících nekonečně stavů: 1 pro 1, ,k kq q k n nn

+ = = −

Převrácená hodnota součtu všech koeficientů je pravděpodobnost p0. Jeden čitatel je

součet nekonečné geometrické řady. Buď použijeme vzorec, nebo se uchýlíme k přibližnému

odhadu. Vypočítáme dostatečné množství koeficientů, ty se s vyššími stavy zmenšují, až

prohlásíme další členy za zanedbatelné.

1

1

0

11

0

0

1 1 1

!!

! !

n

kn

k

k knn

kk k n

np

k n n

n

kn n

−−

= =

=

= + =

+ −

Ve druhém kroku vypočítáme zbývající pravděpodobnosti 0k kp p q= . Pro kontrolu

správného postupu použijte kalkulačku na webskriptu, kapitola M/M/n/r. Applet zobrazí i

pomocné koeficienty výpočtu, aby vám usnadnil nalézt případnou chybu.

Sledované charakteristiky systému

U nekonečných systému jsou pro nás vzorce důležitější, protože jinak jsme odkázáni na

přibližné odhady zanedbáním nekonečně mnoha malých hodnot. Pro M/M/n/∞ stojí za to si

zapsat průměrný počet pracujících linek E[S] a z něj odvozené využití systému.

Page 91: šablona pro skripta - cvut.cz

93

Průměrný počet obsazených linek

1

0 0 0

0 1 1 1 0

[ ]! ! ! !

kk k n k k nn n n

k k

k k n k k n k k n

n nE S kp np p k p n p

k n k n n

− −

= = + = = + = =

= + = + = + = =

Využití systému

[ ]n

E S

n n n

= = =

Střední počet zákazníků ve frontě:

( )2

0 0 0

[ ]1

k

k n nn k n n n n

k k k n

pE F kp k p p k kde

n n

+

= = =

= = = = =

Úloha: K 5 pokladnám pro vjezd na dálnici přijíždí průměrně 15 vozidel za minutu. Střední

doba obsluhy je 10 sekund. Určete:

- průměrnou délku fronty,

- průměrný prostoj vozidla způsobený placením mýtného,

- pst, že náhodné vozidlo bude čekat na obsluhu

- vytížení systému

Řešení: Poměr intenzit 5

2

= = zaručuje pro n = 5 ustálený systém, a tedy má smysl

pokračovat. V tabulce vypočítáme zvlášť koeficienty pro stavy 0–5 a zvlášť pro následujících

6–15 stavů. Zbývající koeficienty jsou tak malé, že jsem se rozhodla je zanedbat. Jsou

vloženy řádky pro částečné součty sloupců (červeně).

Součet nekonečně členů q6 + q7 +, … = 1,628 je vypočítán vzorcem, přibližný součet členů q6

+ q7 +, …+ q15 je jenom 0,813.

k qk pk ES EF EX

0 1,000 0,0752 0,000 0,000 0,000

1 2,500 0,1880 0,188 0,000 0,188

2 3,125 0,2350 0,470 0,000 0,470

3 2,604 0,1958 0,587 0,000 0,587

4 1,628 0,1224 0,490 0,000 0,490

5 0,814 0,0612 0,306 0,000 0,306

11,671 0,878 2,041 2,041

6 0,407 0,0306 0,031 0,184

7 0,203 0,0153 0,038 0,107

8 0,102 0,0076 0,024 0,061

9 0,051 0,0038 0,010 0,034

10 0,025 0,0019 0,003 0,019

11 0,013 0,0010 0,001 0,011

12 0,006 0,0005 0,006 0,006

13 0,003 0,0002 0,000 0,003

14 0,002 0,0001 0,000 0,002

15 0,001 0,0001 0,000 0,001

1,628 0,0611 0,306 0,112 0,427

přibl. výsledky 0,9387 2,347 0,112 2,468

Náhodná veličina představující délku fronty má jiné rozdělení než celkový počet zákazníků

v systému. Fronta je prázdná s pravděpodobností p0 + p1 + … + p5, P(F = 1) = p6, atd.

Při výpočtu průměrná délky fronty ve sloupci EF vypočítáme nenulové členy sumy jako

součin (k–5).pk pro k > 5. Střední délka fronty je zde přibližně odhadnuta součtem 0,112,

skutečná hodnota se liší až na 4. des. místě. Zbývající hodnoty jistě sami zvládnete.

Page 92: šablona pro skripta - cvut.cz

94

6.7 Výpočetní nástroje markovských systémů

Na trhu existuje celá řada online kalkulaček pro analýzu markovských front. Zatím se mi

nepodařilo najít jedinou, která by počítala alespoň přibližně správné výpočty, Tak nezbývá,

než doporučit online kalkulačku zakomponovanou do webskripta v kapitolách 7–10.

Neposkytuje všechny důležité sledované charakteristiky systému, pracuje jen s omezeným

počtem linek a vypisuje jen 12 hodnot ustáleného pravděpodobnostního rozdělení. Slouží

studentům ke kontrole, že jsou jejich procedury naprogramované správně, že pochopili

počítání rozdělení pravděpodobnosti počtu zákazníků v příslušném systému.

Všechny vzorce je velmi jednoduché naprogramovat v jakémkoliv jazyce.

Ukázku programového kódu v Matlabu můžete stáhnout jako m-file ze stránek

předmětu THO.

Ačkoliv tabulková metoda ručního výpočtu jen s pomocí kalkulačky přímo vybízí

k použití Excelu, musíme být obezřetní a zkontrolovat, zda jsou splněny podmínky

pro stabilní systém a zda je počet vypočítávaných hodnot přizpůsoben počtu stavů

dle příslušného zadání. Samotné zadávání vztahů v rekurentním tvaru je

bezproblémové, sešity pro jednolinkové systémy zvládnete připravit během několika minut.

U vícelinkových systémů je problém s různými vzorci pro prvních n stavů, kdy postupně

zvyšujeme intenzitu obsluhy a pro další stavy, kdy už přicházející zákazníci jen sedí ve frontě

a žádnou další linku nezapojujeme, protože ji prostě už nemáme. Při opětovném použití sešitu

pro jiný počet linek musíme změnit rozhraní mezi hodnotami počítanými různými vzorci.

Z profesionálních freeware doporučujeme Queueing Toolpack QTP. Má

naprogramované jedno i vícelinkové markovské systémy a umí vypočítat většinu důležitých

charakteristik.

Operativa: Queuing Theory, ALVAREZ technologies

Velmi jednoduchá aplikace vytvořená v roce 2017 pro operační systém Android

programátorem [email protected]. Ovládání je intuitivní, výpočty jsou rychlé, ale

ne ve všech systémech spolehlivé. Oproti frontovým systémům zkoumaným v předmětu

Teorie hromadné obsluhy vyhodnocuje navíc i systém s omezenou populací M/M/1/C a

M/M/S/C.

Na obrázku vlevo je úvodní menu s výběrem systému. Lze se

spolehnout na výsledky v modelech M/N/1 a M/M/S

s nekonečnou frontou. Písmeno S zde označuje počet linek

(Service). Aplikace vrací ustálené rozdělení pravděpodobnosti,

průměrný počet jednotek v systému i ve frontě, průměrnou dobu

čekání ve frontě a využití systému (Find the systém is busy).

Bohužel, už nekontroluje, zda systém stabilní je. I pokud

vstupuje průměrně více zákazníků, než kolik jsou schopny linky

obsloužit, dostáváme (nesmyslné) výsledky. Varovat nás může

jen závorka okolo čísel.

M/M/1/K – jednolinkový systém s omezenou frontou M/M/1/r.

Zadáváme pouze tři parametry intenzitu vstupu , intenzitu

obsluhy a celkový počet jednotek v systému K = 1+ r.

Bohužel, aplikace dává správné výsledky jen pro a vypočítá

i pravděpodobnosti neexistujících stavů. Dalším omezením je, že

celkový počet zákazníků nesmí být větší než 7.

Page 93: šablona pro skripta - cvut.cz

95

M/M/S/K – Systém má S linek a maximálně K zákazníků. Aplikace vrací jen

pravděpodobnost p0, že je systém prázdný. Vzpomenete-li ale, jak pravděpodobnosti u tohoto

nejzáludnějšího systému počítáme, není to málo. Druhá vypočítaná hodnota v rozporu se

svým označením Find the systém is busy žádný význam nemá. U všech ostatních systému

ano, zde je přiřazení chybné.

Situace na trhu se vyvíjí velmi rychle, s rozvojem digitalizace výuky se dá očekávat, že další

aplikace přibydou. Pokud něco objevíte, prosím, dejte mi vědět ([email protected]).

6.8 Simulace systémů hromadné obsluhy Petriho sítěmi

Pro simulaci systémů hromadné obsluhy je výhodné používat aparát Petriho sítí. Jde o

klasický příklad paralelních procesů, vždy současně probíhá stochastický proces příchodu

zákazníků a obsluhy. Simulace systémů pomocí Petriho sítí patří mezi simulace s pevným

časovým krokem, tak jako většina současně používaných simulačních technik. Žetony buď

představují jednotlivé zákazníky, nebo identifikují, že je splněna jistá logická podmínka pro

uskutečnění přechodu. V závislosti na volbě daného typu Petriho sítí získáme více, či méně

přehlednou grafickou reprezentaci systému. V kapitole [3] najdete podrobnější popis

frontových Petriho sítí, které byly vyvinuty na základě barvených zobecněných

stochastických Petriho sítí.

6.8.1 Simulace SHO obecnými stochastickými Petriho sítěmi

Obecné stochastické Petriho sítě mají dva typy přechodů

okamžité přechody jsou odpáleny ihned po splnění vstupních podmínek

časované přechody jsou odpáleny se zpožděním. Zpoždění je buď deterministické,

nebo náhodné, zadané pstní funkcí. V systémech hromadné obsluhy se nejčastěji setkáváme

s exponenciálním, Erlangovým, nebo gamma rozdělením.

Prozatím budeme předpokládat, že místa mají neomezenou kapacitu, síť má jeden typ hran a

jeden typ žetonů.

Obr. 6.11- M/M/1/

Na obrázku vlevo je nejjednodušší Petriho síť systému hromadné

obsluhy. Jedná se o jednolinkový systém s neomezeným

zásobníkem. Vstupní tok požadavků generuje časovaný přechod

bez vstupních podmínek, jediné místo sítě registruje celkový

počet zákazníků v systému. Výstup zákazníků ze systému je

kontrolován časovaným přechodem „obsluha“. Zpoždění

přechodu je nastaveno dle rozdělení délky obsluhy.

Page 94: šablona pro skripta - cvut.cz

96

Pokud budeme chtít registrovat zvlášť obsazenost linky a

počet zákazníků ve frontě, musíme rozdělit původní místo

„fronta+linka“ na dvě místa a do Petriho sítě přidáme jedno

místo pro kontrolu, zda je linka volná Obr. 6.12.

Pro systém M/M/1/ by oba časované přechody na Obr. 6.11

Obr. 6.12 měli zpoždění generované jako náhodnou veličinu

s exponenciálním rozdělením.

Předchozí příklady demonstrují přehlednost Petriho sítí pro

modelování jednoduchých systémů hromadné obsluhu.

Poněkud komplikovanější je modelování různých frontových

režimů a řádů obsazování linek.

Obr. 6.12 M/M/1/

Na Obr. 6.13 je modelován jednolinkový systém M/M/1/ s předností. Přechod

„exp(4)“ generuje vstup prioritních zákazníků v Poissonovském toku s intenzitou 4. VIP

zákazníci jsou kumulováni na začátku fronty, v místě „1_fronta“. Přechod „exp(2)“ generuje

vstup normálních zákazníků v Poissonovském toku s intenzitou 2. Normální zákazníci

postoupí na začátek fronty jen pokud ve frontě nečekají prioritní zákazníci. Časovaný přechod

„prednost“ má nastavené malé zpoždění odpalu pro kontrolu, zda je fronta bez prioritních

zákazníků. Identifikace prázdné fronty prioritních zákazníků je zajištěna místem „volno1“.

Ukazuje se, že při modelování systémů hromadné obsluhy je výhodné používat i speciální typ

hran – inhibitory. Inhibitor je orientovaná ohodnocená hrana z místa k přechodu. Přechod je

aktivní, pokud počet žetonů v aktuálním ohodnocení je menší než hodnota inhibitoru.

Pokud budeme stejný systém jako na Obr. 6.13 modelovat obecnými stochastickými Petriho

sítěmi s inhibitory, bude Petriho síť přehlednější - Obr. 6.14.

Obr. 6.13 – P/T Petriho síť systému s prioritami

Obr. 6.14 – P/T Petriho síť s inhibitory pro systém s

prioritami

Page 95: šablona pro skripta - cvut.cz

97

Obr. 6.15 – systém se ztrátami

Pro systémy s omezeným zásobníkem stačí přidat k původní

síti přechod pro odstraňování zákazníků, kteří nebudou přijati

do systému z důvodů naplnění kapacity fronty. Na Obr. 6.15

je příklad jednolinkového modelu se ztrátami. Každý

zákazník, požadující obsluhu v době obsluhy jiného zákazníka

bude odmítnut.V místech „obslouzeni“ a „neobslouzeni“ se

kumulují zákazníci přijati a odmítnutí k obsluze. Na základě

relativní četnosti můžeme odhadnout pravděpodobnost ztráty

zákazníka p1

1

neoblouzenip

obslouzeni neobslouzeni=

+.

Předchozí příklady nemodelují frontové režimy, ani

sledování osudu jednotlivých typů zákazníku. Pro takové

případy je výhodnější používat barvené Petriho sítě, nebo

přímo frontové Petriho sítě

Page 96: šablona pro skripta - cvut.cz

98

7 VYBRANÉ NÁSTROJE PETRIHO SÍTÍ V následující části popíšeme některé nástroje, ve kterých je možno modelovat různé typy

Petriho sítí. Některé z nich jsou stále ve fázi vývoje a neustále se zdokonalují. Zejména ty,

které jsou vyvíjeny na různých universitách po celém světě.

1. ARP Tool

Nástroj ARP tool byl vyvinutý v letech 1999-90 na Federal University of Santa Catarina

v Brazílii. Je napsaný v Turbo Pascale a funguje pod operačním systémem MS-DOS. Je bez

grafického rozhraní a Petriho síť se zadává v podobě příkazů. Uživatelům umožňuje také

manuální simulaci, tj. procházení modelu krok po kroku a jeho případné modifikování během

běhu programu. Hlavní výhodou tohoto programu je jeho rychlost a možnost analýzy

vytvořených modelů.

2. HPSim

HPSim je německý grafický editor se základními simulačními možnostmi. Je velmi

jednoduchý a proto je vhodný pro prvotní seznámení s Petriho sítěmi. Postrádá však

analytické možnosti vytvořených modelů. Program byl napsán v Microsoft Visual Studiu C++

a bez problémů běží pro systémy Windows 95,98,2000,NT,XP. V následující kapitole

naleznete podrobnější manuál tohoto programu v českém jazyce včetně rychlého průvodce,

pomocí něhož může úplný začátečník začít pracovat s Petriho sítěmi v 5 krocích.

3. Snopy

Grafický editor Snopy pro operační systém Windows se začal vyvíjet v roce 2002 na

Technické univerzitě v Cottbuse. Představuje pokračovatele linuxového nástroje PED

vyvíjeného stejnou univerzitou. K těmto nástrojům můžeme ještě přiřadit analytický nástroj

INA, který byl původně určený pro analýzu v PED-u, ale v současnosti lze použít i pro

analýzu modelů vytvořených ve Snopy. Software lze dobře použít pro tvorbu a animaci

hierarchických Periho sítí.

4. Visual Object Net ++

Tento grafický editor s jednoduchým designem a možností rychlé simulace běží pod systémy

Windows. Byl navržený především pro zkoumání hybridních Petriho sítí na Fakultě

Informatiky a automatizace na Technické univerzitě v Ilmenau. Postrádá však schopnost

hlubší analýzu daného systému.

5. CPN Tools

CPN Tool s je nástroj pro tvorbu, simulaci a analýzu především barevných Petriho sítí.

Předností nástroje je kontrola syntaxe a generování kódu během tvorby sítě. Rychlý simulátor

efektivně zvládá časové i nečasové modely Petriho sítí. Nástroj obsahuje možnosti generování

celých nebo částečných analýz. Nejčastěji se jedná o analýzu ohraničenosti a živosti Petriho

sítě. Tento produkt je vyvíjen na Dánské universitě v Aarhuse.

Page 97: šablona pro skripta - cvut.cz

99

7.1 Manuál programu HPSim

7.1.1 Základní informace o programu HPSim

Program si můžete zdarma stáhnou z domovské stránky tohoto programu na adrese:

http://www.winpesim.de.

Tento software je volně šiřitelný pro potřeby výuky a výzkumu. Komerční využití je povoleno

jen s písemným souhlasem autora. Software je dodáván bez všech záruk, autor odmítá

jakoukoliv odpovědnost za škody vzniklé použitím tohoto programu. Pokud narazíte na

chybu, prosím informujte autora: Henryk Anschuetz: [email protected]

7.1.2 Popis programu:

HPSim byl vyvinut pro podporu návrhu a simulace Petriho sítí, a to zejména graficky.

V programu je možné modelovat vlastnosti P/T (Place/Transitions) Petriho sítí,

stochastických Petriho sítí a Petriho sítí s časem.

Velkost a komplexnost vytvářených sítí je limitovována výkonností použitého počítače.

S počítačem o výkonu odpovídajícím Intel PII, 300MHz, 128MB se může bez problémů

vytvářet a simulovat projekt s několika sítěmi, každá může mít cca 1000 objektů.

Následná simulace může být spuštěna včetně animace pohybu jednotlivých tokenů. Ta může

být spuštěna v jednotlivých krocích nebo průběžném módu.

7.1.3 Instalace

Není potřeba provádět žádnou instalaci. Stačí jen rozbalit soubor „hpsim1_free.zip“ do

zvoleného adresáře a spustit spustitelný soubor HPSIM.EXE.

7.1.4 Spuštění HPSim

Program se spouštění souborem HPSIM:EXE. Pro denní použití doporučujeme vytvořit

zástupce na plochu, nabídky Start nebo do panelu rychlého spuštění. Při prvním spuštění

program HPSim přidá koncovky *.hps do registru, takže datové soubory budou nově

rozpoznány operačním systémem, a bude je možno spouštět přímo.

7.1.5 Základy

Model Petriho sítě je v programu reprezentován dokumentem. Dokument obsahuje jednotlivé

elementy Petiho sítě. V programu můžeme ale pracovat s více sítěmi najednou, ale propojení

elementů z různých dokumentů není podporováno.

Všechny příkazy mohou být zadávány z menu nebo z panelů nástrojů, které jsou velmi

intuitivní pro použití.

7.1.6 Práce s dokumenty

HPSim se automaticky spustí s prázdným dokumentem, pokud nebyl spuštěn pomocí

dvojitého kliknutí na existující hps soubor.

Příkazem „New“ z menu „File“ můžete kdykoliv otevřít nový dokument.

Pro načtení existujícího dokumentu můžete využít jeden z následujících postupů:

• Vyberte příkaz „Open“ z menu „File“ a vyberte požadovaný soubor z dialogu.

• Přesuňte vybraný hps-soubor do otevřeného okna HPSimu.

• Klikněte 2x na vybraný hps-soubor.

Page 98: šablona pro skripta - cvut.cz

100

Příkazem „Save“ z menu „File“ můžete kdykoliv rozpracovaný dokument uložit. Pokud

potřebujete dokument uložit pod jiným jménem, použijte příkaz „Save As“

Kromě práce s binárními soubory typu hps nabízí program HPSim také možnost použít typ

s koncovkou hpx pro případ zpětné kompatibility s ostatními verzemi HPSimu. Jinými slovy,

použití tohoto formátu zajistí přístupnost našich modelů v dalších verzích HPSimu.

Pro export dokumentu ve formátu hpx použijte příkaz „Export -> File“ z hlavního menu

„File“. Opačnou funkcí s obdobným významem je pak příkaz „Import -> File“.

HPSim nabízí též možnost uložit vytvořenou Petriho síť jako obrázek ve formátu BMP

(Windows bitmap). Pro uložení celé Petriho sítě, použijte příkaz „Export -> Dokument“

z menu „File“. Pro uložení jen aktuálního zobrazení použijte příkaz „Export -> View“

Příkaz „Export -> Net“ z hlavního menu „File“ nám dává možnost uložit vytvořenou Petriho

síť jako textový soubor. Tento formát umožňuje načtení Petriho sítě do dalších aplikací, a

případně hlubší analýzu vlastností vytvořené Petriho sítě.

7.1.7 Panely nástrojů

Hlavní okno HPSimu obsahuje několik panelů nástrojů, které mohou být uživatelem skryty

nebo přesunuty.

Page 99: šablona pro skripta - cvut.cz

101

7.1.8 Kreslení grafických objektů

Z menu „Tools“ nebo přímo z panelu nástrojů můžeme přidávat jednotlivé grafické objekty

do vytvářeného dokumentu Petriho sítě. Většinu objektů může následně přesouvat myší nebo

měnit jejich velikost. Každý objekt může mít několik různých vlastností, které můžeme měnit

v okně „Project Explorer“.

Page 100: šablona pro skripta - cvut.cz

102

Jednotlivé objekty vybíráme levým tlačítkem myši. Pozor musíme mít zapnutý mód

„Select“ z menu „Tools“ nebo stisknuté tlačítko šipky z panelu nástrojů. Výběr více objektů

dosáhneme vytvořením obdélníku nad požadovanými objekty. Vlastnosti objektu můžete

měnit jen pouze pokud jste ho před tím vybrali.

Pasivní grafické objekty:

• Čáry

• Obdélníky

• N-úhelníky

• Texty

Aktivní grafické objekty:

• Místa

• Přechody

• Hrany

7.1.9 Start simulace

Program HPSim má dva módy: „Editor“ a „Simulator“. Přepínání mezi nimi je možné

z panelu nástrojů nebo z menu „Simulation“ příkazem „Sim Mode“. Při vstupu do

simulačního módy je uživatel dotázán na uložení dokumentu a otevře se okno se stavem

simulace.

V simulačním módu můžeme postupně zadávat příkazy „Step“, „Run“ a „Run Fast“.

Ukončenou nebo zastavenou simulaci můžeme spustit znovu vrátit na začátek pomocí

příkazu „Reset“ z menu „Simulation“. Krok a čas simulace se nastaví na začátek.

Příkazem „Run“ spustíme simulaci, krok za krokem. Jednotlivé tokeny se začnou

pohybovat. Rychlost simulace lze ovlivnit na panelu nástrojů posunutím jezdce.

Simulaci můžeme pustit i rychle, tj. bez animace.

Pokud potřebujeme simulaci zastavit, použijeme příkaz „Pause“ z menu „Simulation“.

7.1.10 Rychlý začátek

V této části Vám ukážeme jak rychle v 5-krocích vytvořit a spustit model v Petriho síti

pomocí programu HPSim.

7.1.11 Krok 1: Nastavení vlastností dokumentu

• Vybereme menu „Extra“ příkaz „Properties“

• Vybereme barvu pozadí

Page 101: šablona pro skripta - cvut.cz

103

• Nastavíme velikost pracovní plochy v pixlech, např. 1000 x 1500 pixelů

• V záložce „Grid“ nastavíme volby jako na obrázku níže:

7.1.12 Krok 2: Vytváříme síť

Poznámka: Nejdříve musíme zvolit nástroj „ToolsSelect“ (první tlačítko s malou černou

šipkou), před tím než můžeme vybrat objekt pro změnu pozice nebo velikosti pomocí Project

Exploreru.

• Klikneme na tlačítko „Place“ a pak pomocí myši umístíme požadovaná místa.

Page 102: šablona pro skripta - cvut.cz

104

• Klikněte na tlačítko „Transition“ a pak pomocí myši umítíme požadované

přechody..

• Klikneme na tlačítko „Arc“ ·a pospojujeme jednotlivá místa a přechody podle

obrázku níže: Spojení se provádí přetažením myši ze místa do přechodu nebo

obráceně.

Page 103: šablona pro skripta - cvut.cz

105

• Jednotlivé hrany mohou být upraveny pomocí přesunů malých čtverečku uprostřed

vybrané hrany.

• Naši práci si nyní uložíme pomocí menu „File“, příkazu „Save“. Program HPSim

nemá funkci automatické obnovy.

Page 104: šablona pro skripta - cvut.cz

106

7.1.13 Krok 3: Nastavení vlastností jednotlivým objektům

• Vlastnosti vybraného objektu můžeme měnit pomocí „Project Expoloreru“, tak jak je

ukázáno na obrázku. Pamatujeme, že musíme nejdříve vypnout funkci kreslení.

• Můžeme nyní změnit jméno místa P0, jeho kapacitu nastavíme na 10000 a počet

úvodních tokenů na hodnotu 3.

• Dále změníme váhu jednotlivých hran.

• Nakonec nastavíme úvodní tolueny v místě P2 na hodnotu 2.

7.1.14 Krok 4: Grafické zvýraznění

• Nyní můžeme zdůraznit hranice jednotlivých logických částí modelu nebo model celý

pomocí grafických prvků, např. obdélníku s oblými rohy. Tento obdélník přidáme

z menu „Tools“ příkazem „Rect“ a nakreslíme pomocí myši obdélník do našeho

dokumentu.

• Takto vytvořený grafický objekt můžeme kdykoliv později posouvat a upravovat

velikost pomocí malých šedivých čtverečků na okraji vybraného objektu.

• Jednotlivé objekty se mohou překrývat. Proto je potřeba určit pořadí jednotlivých

objektů. V našem případě budeme chtít mít obdélník na pozadí našeho modelu, proto

klikneme pravým tlačítkem myši na vytvořený obdélník a vybereme příkaz

„PushBack“.

• Příkazem „Text“ z menu „Tools“ můžeme do našeho dokumentu přidat libovolný

popisný text či nadpis.

Page 105: šablona pro skripta - cvut.cz

107

Page 106: šablona pro skripta - cvut.cz

108

7.1.15 Krok 5: Spuštění simulace

• Nyní chceme rozpohybovat jednotlivé tolueny v naši síti.

• Proto se musíme přepnout do simulačního módu programu HPSim. To uděláme

pomocí menu „Simulation“, příkazu „Sim Mode“. Automaticky se nám otevře okno

s důležitými informacemi o stavu naší Petriho sítě během simulace.

• Toto okno můžeme buď zavřít, nebo ho posunout do pozadí tak, že vybereme hlavní

rám simulačního okna.

• Vlastní simulaci spustíme z menu „Simulation“ příkazem „Run Normal“. Pokud jsme

udělali vše podle návodu, měly by se nám jednotlivé tokeny začít pohybovat mezi

jednotlivými místy naší Petriho sítě.

Page 107: šablona pro skripta - cvut.cz

109

8 SEZNAM POUŽITÉ LITERATURY

[1] Bause, F. - Kritzinger, P. S.: Stochastic Petri Nets – An Introduction to Theory. Viewig

Verlag, 2002, ISBN 3-528-15535-3.

[2] Berka, K. – Tondl, L.: Teorie modelů a modelování. Praha, Svoboda, 1967, 303 s.

[3] Bohatá, M. – Habr, J.: Systémová hlediska v modelech řízení. Praha, Institut řízení,

1983.

[4] Bose, S. A.: An Introduction on Queueing Systems. Kluwer Academic, 2002, ISBN 0-

306-46734-8, http://home.iitk.ac.in/~skb/

[5] Cassandras, C. G. – Lafortune, S.: Introduction to Discrete Event Systems. Kluwer

Academic Publishers, 1999.

[6] Češka, M.: Petriho sítě – Úvod do teorie a nástrojů pro aplikaci Petriho sítí. Brno,

Akademické nakladatelství CERN, 1994, 94 s.

[7] David, R. – Alla, H.: Discrete, Continuous, and Hybrid Petri Nets. Berlin – Heidelberg,

Springer Verlag, 2004.

[8] DiCesare, F. - Kulp, P. T. – Gile, M. – List, G.: The Application of Petri Nets to

Modeling, Analysing and Control of Intelligent Urban Traffic Network. Proceedings of

the 15th International Conference, Spain, Zaragoza, June 1994.

[9] Cooper, R. B.: Introduction to Queueing Theory. North-Holland (Elsevier), 1981, ISBN

0-444-00379-7, http://www.cse.fau.edu/~bob/

[10] Faltus, V.: Aplikace Petriho sítí při modelování dynamického řízení křižovatek.

Automatizace, 48, č. 2, 2005, s. 88 – 91.

[11] Faltus, V. – Veselý, J.: Modelování dynamického řízení křižovatek Petriho sítěmi. AT &

P journal, 2007 (předáno do tisku).

[12] Gelenbe, E. – Pujolle, G.: Introduction to Queueing Network. John Wiley & Sons,

1998.

[13] Hanzálek, Z.: Když se řekne Petriho sítě. Automatizace, 44, 2001, č. 7-8, s. 450 – 451,

č. 9, s. 576 – 577, č. 10, s. 648 – 650.

[14] Hanzálek, Z.: Petriho sítě. Praha, FEL ČVUT - KŘT, v. 1.0 (6. února 2006), 30 s.

http://dce.felk.cvut.cz/hanzalek/prednasky/

[15] Hrúz, B. – Mrafko, L.: Modelovanie a riadenie diskrétnych udalostných dynamických

systémov s využitím Petriho sietí a iných nástrojov. Bratislava, Slovenská technická

univerzita, 2003, 297 s.

[16] Chvalovský, V.: Automatizace v informačních soustavách. Praha, Institut řízení, 1984,

175 s.

[17] Jensen, K.: Coloured Petri Nets – Basic Concepts, Analysis Methods and Practical Use.

Berlin Heidelberg, Springer Verlag, Vol. 1 and Vol. 2, 1992 and 1995, 234 pp. and 175

pp.

[18] Marsan, M. A. - Balbo, G. – Conte, G. – Donatelli, S. – Franceschinis, G.: Modelling

with Generalized Stochastic Petri Nets. New York, J. Wiley and Sons, 1985, ISBN

0 471 93059 8, http://www.di.unito.it/~greatspn/bookdownloadform.html

[19] Moos, P. - Malinovský, V.: Informační systémy a technologie. Praha, ICS AS CR a FTS

CTU, Edice monografií NNW, 2006, 217 s.

[20] Murata, T.: Petri Nets - Properties, Analysis and Applications. Proceedings of the IEEE,

Volume 77, No. 4, 1989, pp. 541-580.

[21] M. Pěnička, "Towards a Theory of Railways", PhD Thesis, 202 p., ČVUT, Fakulta

dopravní, Praha, 2006

[22] Peterson, J. L.: Petri Nets and Modeling of Systems. New Jersey, Englewood Cliffs,

Prentice Hall, 1981, 290 pp.

Page 108: šablona pro skripta - cvut.cz

110

[23] Petr, J.: Systémová analýza a inženýrství. [Skripta FSv.] Praha, Vydavatelství ČVUT,

1998.

[24] Petri, C. A.: Kommunikation mit Automaten. [Ph.D. dissertation.] Bonn, Schriften des

Instituts fűr Instrumentelle Mathematik, Bonn University, 1962.

[25] Petri, C. A.: Concept of Net Theory. [Proceedings of the Symposium and Summer

School on Mathematical Foundations of Computer Science.] High Tatras, Mathematics

Institute of Slovak Academy of Science, September 1973, pp. 137 – 146.

[26] Petri, C. A.: General Net Theory. [Proceedings of the Joint IBM / University of

Newcastle upon Tyne Seminar on Computing System Design.] England, University of

Newcastle upon Tyne, Computing Laboratory, Newcastle upon Tyne, September 1976,

pp. 131 – 169.

[27] Petri, C. A.: Introduction to General Net Theory. [Advanced Course on General Net

Theory of Processes and Systems.] Hamburg, October 1979.

[28] Pöschl, D.: Dynamické řízení Petriho sítěmi. [Semestrální práce k předmětu „Systémová

analýza“.] Praha, FD ČVUT, leden 2006, 11 s.

[29] Přibyl, P. – Mach, R.: Řídící systémy silniční dopravy. Praha, Vydavatelství ČVUT,

2003.

[30] Přibyl, P. – Svítek, M.: Inteligentní dopravní systémy. Praha, BEN, 2001.

[31] Řepa, V.: Podnikové procesy – Procesní řízení a modelování. Praha, GRADA

Publishing, 2006, 265 s.

[32] Stiege, G.: Equivalences of Coloured Petri Nets. [Hildesheimer Informatik Berichte No.

24/96.] Universität Hildesheim, Institut fűr Betriebssysteme & Rechnerverbund, August

1996.

[33] Svítek, M. – Borka, J. – Vlček, M.: Modelování systémů a procesů. [Skripta FD.] Praha,

Vydavatelství ČVUT, červen 2001, 131 s.

[34] Svoboda, V. – Svítek, M.: Telematika nad dopravními sítěmi. Praha, Vydavatelství

ČVUT, 2004.

[35] Veselý, J.: Informační systémy pro podporu rozhodování v dopravě. [Skripta FD.]

Praha, Vydavatelství ČVUT, červenec 2005, 263 s.

[36] Votruba, Z. – Klečáková, J. – Kalika, M.: Systémová analýza. [Skripta FD.] Praha,

Vydavatelství ČVUT, březen 2004, 193 s.

[37] Zimmermann, A.: Petri Nets in the WWW, http://pdv.cs.tu-berlin.de/~azi/petri.html

[38] Žarnay, M.: Coloured Petri Net Model of Train Handling in Marshalling Yard.

Proceedings of the 14th International Symposium EURNEX – ŽEL 2006. Slovakia,

Žilina, ŽU, May 30 – 31, 2006, pp. 168 – 173.