Upload
others
View
11
Download
0
Embed Size (px)
Citation preview
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
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
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
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.
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
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
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
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.
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.
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í
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
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.
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
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+ = .
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.
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.
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)
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
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í.
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.
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í.
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á
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
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´
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
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
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
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).
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ý.
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.
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)
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.
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.
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.
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.
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´.
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.
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
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
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
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).
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.
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
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
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ě
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
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ě.
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ý
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íť
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é
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
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
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,... .
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
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= = .
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.
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).
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.
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
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
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
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
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.
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
− = = +
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
→
= =
.
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.
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
= =
= =
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
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:
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
=
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á:
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ů.
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
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
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.
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á
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
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
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.
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á.
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)
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)
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
−
− − = − − −
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.
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á
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 − +
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.
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
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
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.
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.
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.
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.
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
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ě
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.
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.
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.
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“.
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í
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.
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ě.
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.
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.
107
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ě.
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.
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.