Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

FORMÁLIS MÓDSZEREK NGM_IN003_1

Hasonló előadás


Az előadások a következő témára: "FORMÁLIS MÓDSZEREK NGM_IN003_1"— Előadás másolata:

1 FORMÁLIS MÓDSZEREK NGM_IN003_1
PETRI HÁLÓK

2 Történelmi áttekintés
Carl Adam Petri ( ) német matematikus a Petri hálók jelölésrendszerét 1939-ben találta ki a Petri hálók matematikai alapjait a doktori disszertációjában dolgozta ki 1962-ben eredetileg kémiai folyamatok leírására szánta

3 Alapok automataelmélet logika

4 Mire használhatók? konkurens: ha benne egyidejűleg működő, önálló egységek kommunikálnak egymással úgy, hogy ezen egységek egymáshoz képest tetszőleges működési fázisban vannak aszinkron: eseményvezérelt rendszer elosztott: egyes rendszerelemek között funkcionális tagolódás van párhuzamos: nagyon hasonlítanak a konkurensekre, lényeges különbség azonban, hogy párhuzamos esetben a rendszerelemek között szoros szinkronizáció áll fenn nemdeterminisztikus: egy-egy adott állapotából nem egyértelmű, melyik állapot lesz a következő és/vagy sztochasztikus rendszerek modellezésére.

5 Alapvető tulajdonságok
Egyidejűleg grafikai matematikai reprezentáció Struktúrával fejezi ki vezérlési struktúra adatmodell

6 Felépítése a Petri hálók építőelemeit 3 csoportba soroljuk
helyek élek átmenetek / tranzíció működésükhöz szükség van tokenekre is

7 Struktúrája Strukturálisan: irányított, súlyozott, páros gráf
Két típusú csomópont: hely: p ∈ P, jelölése: kör tranzíció: t ∈ T, jelölése: téglalap Élek e ∈ E = (P × T) ∪ (T × P) (páros gráf!): hely – tranzíció tranzíció – hely jelölése: nyíl

8 Petri háló állapota Állapotjelző: token Helyek állapota:
ezeket a helyek közepébe tett pontok jelölik Helyek állapota: a bennük található tokenek száma A rendszer állapota tokeneloszlás, az egyes helyek állapotainak összessége állapotvektor: a π = |P| komponensű M token eloszlás vektor

9 Példa Petri hálóra helyek

10 Példa Petri hálóra átmenet / tranzició

11 Példa Petri hálóra token token

12 Példa Petri hálóra Állapotvektor
Általánosan M = 𝑚1 ⋮ 𝑚𝜋 P2 P1 Jelen esetben P3 M = P1 P2 P3 A kezdőállapotot mindig az M0 állapotvektor jelöli

13 Matematikai reprezentáció
Petri-háló: PN=(P,T,E,W, M0) Helyek halmaza: P={p1, p2, …} Átmenetek halmaza: T={t1, t2, … } Élek halmaza: E⊆(PXT) ∪ (TXP) Súlyfüggvény: W:E→ N+ Tokeneloszlás: M:P → N+ Kezdeti tokeneloszlás: M0:P → N+ Ősök és utódok: ●t, t●, ●p, p●

14 Működés Nem más mint állapotváltozás
Állapot megváltozása: átmenetek „tüzelése” Mikor mehet végbe állapotváltozás? Engedélyezettség ellenőrzése Tüzelés Token elvétele a bemeneti helyről Token kirakása a kimeneti helyre Tokeneloszlás megváltozik új állapot -> új állapotvektor

15 Működés Engedélyezettség ellenőrzése
Bemeneti helyek / tokenek / bemenő élek Bemeneti helyeken van-e elég token?

16 Példa működésre

17 Példa működésre

18 Példa működésre

19 Példa működésre

20 Példa működésre

21 Példa működésre

22 Példa működésre

23 Példa működésre

24 Példa működésre

25 Példa működésre

26 Példa működésre

27 Példa működésre

28 Példa működésre

29 Példa működésre

30 Példa működésre

31 Példa működésre

32 Példa működésre

33 Jellemzők - Azonnali tüzelések
nem külön - külön vánszorognak a tokenek egyik tüzelési oldalról a másikra, hanem egyszerre – elemi (atomi) esemény

34 Jellemzők - Aszinkron tüzelések
egymással párhuzamos tüzelések lehetnek, azok sorrendje nem függ egymástól. Pakolás a bőröndbe Utazás külföldre Mozijegy vásárlás Film nézés

35 Jellemzők - Nem determinisztikus
nem hogy nem függ egymástól a sorrend, de fogalmunk sincs hogy úgy amúgy mi lesz az repülő hajtogatás papír firkálás toll

36 Jellemzők - Két tranzíció nem tüzel egyszerre
tej tejes kávé kávé Ír kávé whiskey

37 Jellemzők - Neminterpretált
nem feltétlenül kell nekünk a világmindenséget leírni, tudni, van amit csak megnevezünk, és nem mondjuk el, hogy mit is csinál pontosan alvás hibás hibátlan munka

38 Jellemzők - Absztrakció és finomítás
bármelyik tranzíció helyére berakhatunk egy fél világmindenséget leíró részt alvás késésben munka öltözés reggeli utazás

39 Jellemzők - Összefoglalás
Petri hálók jellemzők Modellezési tulajdonságok azonnali „tüzelések” elemi (atomi) esemény aszinkron tüzelések események szekvenciájának függetlensége nem determinisztikus konkurencia két tranzíció nem tüzel egyszerre konfliktus neminterpretált absztrakt tulajdonságok absztrakció és finomítás hierarchikus modellezés

40 Többszörös élek Bármely e  E élhez rendelhető w*(e)  N+ súlyt lehet rendelni A w*(e) súlyú e él ugyanaz, mint we darab párhuzamos él => nem rajzolunk párhuzamos éleket, élsúlyt használunk 3

41

42 Topológia példa Határozzuk a következő hálózat topológiáját!

43 Topológia példa megoldás

44 Szomszédossági mátrix
Súlyozott szomszédossági mátrix: W = ||w(t, p)|| Dimenziója: τ × π = |T| × |P| Ha t tüzel, mennyit változik a p-beli tokenszám w(t,p) = w+(t, p) − w−(p, t) ha (t, p) ∈ E ha (t, p) /∈ E Tipp írjuk fel külön w+ és w- majd vonjuk össze a kettőt

45 Szomszédossági mátrix
w+ azok a számok kerülnek, amiket egy átmenet „belebakol” a helybe w- azok, amiket egy átmenet kivesz a helyből W mátrix összeáll ha a w+ ból kivonjuk a w- mátrixot

46 Szomszédossági mátrix
Határozzuk meg az ábrán látható hálózat szomszédossági mátrixát!

47 Szomszédossági mátrix

48 Szomszédossági mátrix
Határozzuk meg az ábrán látható hálózat szomszédossági mátrixát!

49 Szomszédossági mátrix

50 Előző órán Mi is az a PETRI háló? Működése Jellemzői
Topológia meghatározás Szomszédossági mátrix

51 A továbbiakban Tüzelési szemantika módosítása Tulajdonság modellek
strukturális és dinamikus tulajdonságok Dinamikus tulajdonságok vizsgálata Speciális topológiájú Petri hálók

52 σ = 〈Mi0 ti1 Mi1 … tinMin 〉 → 〈ti1 … tin 〉
Tüzelési szekvencia Állapot átmeneti trajektória egymást követő tüzelések hatására felvett állapotok Tüzelési szekvencia σ = 〈Mi0 ti1 Mi1 … tinMin 〉 → 〈ti1 … tin 〉 Ha az összes tranzíció kielégíti a tüzelési szabályt: – Min állapot Mi0-ból elérhető a σ tüzelési szekvencia által: Mi0 [σ > Min

53 Tüzelési szemantika módosítása
Miért is lesz jó nekünk ha ez? Hogyan módosítunk tüzelési szemantikát?

54 Tüzelési szemantika módosítása
Korábbiakban volt szó a Petri hálók nemdeterminisztikus működéséről A nemdeterminisztikus működés nem előnyős, mert nem tudjuk megmondani melyik állapot következik Cél: ezen működés korlátozás

55 Tüzelési szemantika módosítása
Hogyan érhető ez el? Prioritás rendelése a tranzíciókhoz Tiltó élek bevezetése Kapacitás rendelése a helyekhez

56 Prioritás rendelés a tranzíciókhoz
Az engedélyezett tranzíciók közül egy alacsonyabb prioritású mindaddig nem tüzelhet, amíg van engedélyezett ÉS magasabb prioritású tranzíció Azonos prioritási szinten továbbra is nemdeterminisztikus választás! Prioritás bevezetése a formális definícióba Π:T→N

57 Tiltó élek bevezetése Klasszikus Petri hálónál: Tiltás
Ponált tüzelési feltételek Bemenő helyeken a feltételek megléte Tiltás Tiltó él bevezetése Ha a feltételek megfelelőek a tüzelés akkor se hajtódhat végre

58 Tiltó él Tiltó él használatakor a tüzelési szabályt a következő képen kell egészíthetjük ki: ha a t tranzícióhoz kapcsolódó bármely (p, t ) tiltó él p bemenő helyén a w− (p, t ) élsúlynál nagyobb vagy egyenlő számú token van ⇒a tüzelés nem hajtható végre

59 Helyek kapacitáskorlátja
Minden egyes p helyhez K(p) kapacitás hozzárendelése Ez a kapacitás lesz az adott helyre maximálisan betölthető tokenek száma A tüzelési szabály újabb kiegészítése: a tranzíció egyetlen kimenő p helyre sem tölthet a hely K(p) kapacitásánál több tokent

60 Tüzelés véges kapacitású Petri hálóban
Egy t ∈ T tranzíció tüzelése akkor engedélyezett, ha elegendő token van a bemeneti helyeken: ∀ p ∈ •t : mp ≥ w− (p, t ) Kapacitáskorlát (M[t > M’ tüzelés után): ∀ p ∈ t• : m’p = mp + w + (t, p) ≤ K(p) Engedélyezett tranzíció tetszés szerint tüzelhet A tüzelés után: ∀ p ∈ P : m’p = mp + w + (t, p) - w− (p, t )

61 A kapacitáskorlát kiküszöbölése
Hogyan szüntetjük meg a P2 kapacitáskorlátját? T1 2 P1 P2 K(P2)=4 T2

62 Kiegészítő helytranszformáció
Minden egyes korlátos véges kapacitású p helyhez rendeljünk hozzá egy járulékos p’ adminisztrációs helyet a p’ adminisztrációs hely kezdőállapota M0(p’) = K(p) - M0(p) azaz a p hely még kihasználatlan kapacitása.

63 Kiegészítő helytranszformáció
2 P’ P1 P2 K(P2)=4 T2

64 Kiegészítő helytranszformáció
A p’ hely és a t ∈ •p ∪ p• tranzíciók között kiegészítő éleket húzunk be Az élek iránya attól függ, hogy t tüzelése növeli vagy csökkenti-e a p helyen levő tokenek számát: a t tranzíció és p’ hely között (t, p’ ) élet húzunk be |w(t, p)| súllyal, ha w(t, p) < 0, azaz a tüzelés elvesz tokent a p helyről a p’ hely és a t tranzíció között (p', t) élet húzunk be w(t, p) súllyal, ha w(t, p) > 0, azaz a tüzelés berak tokent a p helyre

65 Kiegészítő helytranszformáció
2 2 P’ P1 P2 K(P2)=4 T2

66 Tulajdonság modellek Tulajdonság modellek két csoportra oszthatók:
strukturális tulajdonságok: ezek a kezdőállapottól függetlenek elemzése a hely-tranzíció, topológia, illetve tüzelési szabályok alapján dinamikus tulajdonságok: kezdőállapottól függenek elemzés egy adott állapotból

67 Strukturális tulajdonságok
Strukturális élőség Vezérelhetőség Strukturális korlátosság Konzervatívság Ismételhetőség Konzisztencia

68 Dinamikus tulajdonságok - általános tulajdonságok
Elérhetőség Adott állapot, ill. állapothalmaz elérhető-e? Korlátosság Létezik-e a tokenek számának felső korlátja? Élő tulajdonság A tüzelések engedélyezetté válnak-e? Holtpontmentesség vizsgálata.

69 Dinamikus tulajdonságok - ciklikus működés jellemzése
Megfordíthatóság, ill. visszatérő állapot Van-e a rendszer működése során ciklus? Fedhetőség Van-e a rendszer működése során egy korábbi állapotot magában foglaló állapot?

70 Dinamikus tulajdonságok - párhuzamos működés jellemzése
Perzisztencia Engedélyezett tranzíciók letiltják-e egymást? Párhuzamos működés vizsgálatára. Fair tulajdonság Tranzíciók tüzelése mennyire függ egymástól – hányszor tudnak egymás nélkül tüzelni. Párhozamos működés vizsgálatára. Típusai: Korlátozott fairség Globális fairség

71 Elérhetőség Jelölés (marking) = állapot Tokeneloszlás = állapotváltozó
Tüzelés = állapotátmenet Tüzelési sorozatok hatására M0, M1, …, Mn állapotsorozat Állapotsorozat: trajektória az állapottérben Mn állapot elérhető az M0 kiinduló állapotból: ∃σ :M0 [σ > Mn

72 Elérhetőségi analízis
Az M0 kiinduló állapotból az N Petri hálóban Elérhető állapotok Állapotra vonatkozó kérdések Végrehajtható tüzelési sorozatok Állapotátmenetekre (eseményekre) vonatkozó kérdések

73 Elérhetőségi probléma
Petri hálók elérhetőségi problémája: Mn állapot elérhető-e valamilyen M0 kiinduló állapotból Rész-tokeneloszlási probléma: helyek egy részhalmazára korlátozva elérhető-e Mn állapot az adott helyekre megadott tokeneloszlással?

74 Elérhetőségi probléma megoldhatósága
Az elérhetőségi probléma elvileg megoldható azonban (legalább) exponenciális az általános esetben Az egyenlőségi probléma megoldására nem létezik algoritmus feladat: két Petri-háló lehetséges tüzelési sorozatai azonosságának eldöntése Az egyenlőségi probléma eldönthető (exponenciális időben) 1-korlátos (tokenek száma a helyeken ≤ 1, ún. biztos) Petri hálókra

75 Korlátosság k -korlátosság (korlátosság)
bármely állapotban minden helyen maximum k token lehet (M0 kiinduló állapot függő!) Biztos Petri háló: korlátosság speciális esete (k = 1) végesség kifejezése korlátosság ⇔ véges állapottér erőforrás használat, illetve általános értelemben vett feladatkezelés modellezése

76 Élőség Holtpont (deadlock) -mentesség Élő tulajdonság
Minden állapotban legalább egy átmenet tüzelhető Élő tulajdonság Átmenet egyszer/többször/végtelenszer tüzelhet-e? Gyenge élő tulajdonságok egy t átmenetre: L0-élő (halott): t sohasem tüzelhető egyetlen L1-élő: t legalább egyszer tüzelhető valamely L2-élő: bármely adott k > 0 egészre t legalább k-szor tüzelhető valamely L3-élő: t végtelen sokszor tüzelhető valamely L4-élő: t L1-élő bármely állapotban állapot -trajektóriában

77 Élőség Egy (P, T, Mo) Petri háló Lk-élő
ha minden t ∈T átmenete Lk-élő L4-től L1-ig az élő tulajdonságok tartalmazzák egymást Egy (P, T, Mo) Petri háló élőnek nevezünk ha L4-élő, azaz minden t ∈T átmenete L4-élő Bejárási úttól függetlenül garantáltan holtpontmentes köztes állapottól függetlenül minden átmenet újra tüzelhető holtpontmentesség ⇐ élőség Bizonyítása költséges lehet szerencsés esetben nem (invariánsok!) ideális rendszert tételez fel

78 Élőség példa t0 L0 élő (halott) t1 L1 élő t2 L2 élő t3 L3 élő

79 Megfordíthatóság és visszatérő állapot
A kezdőállapot bármely követő állapotból elérhető Gyakran ciklikus működésű hálózat Visszatérő állapot: Van olyan, a kezdőállapotból elérhető állapot, amely bármely őt követő állapotból elérhető Gyakran ciklikus (rész)hálózat inicializáló szekvenciával

80 Fedhetőség Fedhetőség definíciója:
Létrejön-e korábbi működést magában foglaló állapot? M’ állapot fedi M állapotot, ha M állapot fedhető M’ állapottal M’ ≥ M jelentése: M a t átmenetet engedélyező minimális tokeneloszlás t akkor és csak akkor nem L1-élő, ha M nem fedhető le tehát M lefedhetősége garantálja t L1-élő voltát

81 Perzisztencia Perzisztencia elemzés:
Tüzelések kölcsönhatásának vizsgálata Két tetszőleges engedélyezett átmenet közül egyik tüzelése sem tiltja le a másik engedélyezettségét engedélyezett átmenet engedélyezve marad tüzelésig! Rendszerbeli funkcionális dekompozíció megmarad-e? Párhuzamos működések befolyásolják-e egymást?

82 Fair tulajdonság Fair tulajdonság:
Az irodalomban nem egységes a fairség definíciója Korlátozott fairség (B-fairség) egy tüzelési szekvencia korlátozottan fair, ha bármely átmenet maximum korlátos sokszor tüzelhet másik tüzelése nélkül Globális fairség egy tüzelési szekvencia globálisan fair, ha az összes átmenet végtelen sokszor szerepel benne, amennyiben nem véges Párhuzamos folyamatok nem tartják-e fel egymást? Valamennyi folyamat végbemegy-e (előbb-utóbb)?

83 Dinamikus tulajdonságok vizsgálata Lehetséges módszerek
Állapottér bejárása: elérhetőségi gráf analízise Algebrai megközelítés Gráf-redukciós algoritmusokra alapuló módszerek Szimuláció

84 Állapottér bejárása Elérhetőségi gráf:
M0 kezdőállapotból induló állapotgráf csomópontok: tokeneloszlások, állapotátmenetek: tüzelések legfeljebb annyi új csomópont, ahány engedélyezett átmenet Szélességi típusú bejárás az állapotból tüzelések mentén Nem korlátos Petri háló → végtelen sok állapot a térben Fedési gráf: végtelen állapottér esetére is Hasonló felépítés: M0 kezdőállapot, élek: tüzelések Kritikus részek: token „túlszaporodás” trajektória: M0 … M”… M’ és M” ≤ M’ → fedett állapot! speciális szimbólum: ω a végtelenség kifejezője

85 Fedési fa generálása Lvizsgálandó := { M0 } Amíg Lvizsgálandó ≠ ∅
1. A következő M ∈ Lvizsgálandó állapot kiválasztása 2. Ha M a gyökértől idáig vezető úton már szerepelt Akkor M -et „régi állapotként” jelöljük ↵ (ciklus) 3. Ha M-ben nincs engedélyezett tüzelés Akkor M -et „végállapotként” (halott állapot) jelöljük ↵ (ciklus)

86 Fedési fa generálása Egyébként, (van M -ben engedélyezett átmenet)
Minden egyes t engedélyezett átmenetre: Az M’ rákövetkező állapot meghatározása: Ha létezik az M0-tól M -ig vezető úton olyan M”, amelyet M’ fed Akkor M” fedett állapot M’ állapotot jelölő tokeneloszlásban a fedett helyek jelöléseit -val helyettesítjük M’ új állapot: Lvizsgálandó := Lvizsgálandó  M’ M -ből M’ -höz egy t -vel jelölt élet húzunk  (ciklus)

87 Példa Petri háló Petri háló fedési fája

88 Példa Petri háló Petri háló fedési gráfja

89 Fedési fa analízise Közvetlenül is leolvasható tulajdonságok:
Petri háló korlátos  R (N, M0) elérhetőségi gráfja véges  Fedési fában  nem jelenik meg címkeként Petri háló biztonságos  Csak 0 és 1 jelenik meg csomópont címkeként a fedési fában Petri háló egy átmenete halott  átmenethez tartozó tüzelés nem jelenik meg élcímkeként a fedési fában

90 Redukció Redukció: Érthető modellből kompakt modell
redundancia eliminálása Modellezés: szempont a valósághűség és érthetőség Elemzés: szempont a tulajdonságok egyszerű és gyors kimutatása További egyszerűsítés: modell kifejezőereje csökken ellenőrzött változtatások, de a funkcionalitás megváltozik a kiválasztott tulajdonságokat megőrzi! eredeti modellt a tulajdonságok szerint „fedő” modell jön létre Sokféle tulajdonságmegőrző transzformáció létezik

91 Transzformációk Egyszerű tulajdonságmegőrző transzformációk:
soros helyek összevonása soros tranzíciók összevonása párhuzamos helyek összevonása párhuzamos tranzíciók összevonása önhurkot alkotó helyek törlése önhurkot alkotó tranzíciók törlése Megőrzik az élő, korlátos és biztos tulajdonságokat.

92 Soros összevonások Soros helyek összevonása (FSP)
Soros tranziciók összevonása (FSP)

93 Párhuzamos összevonások
Párhuzamos helyek összevonása (FPP) Párhuzamos tranziciók összevonása (FPT)

94 Önhurok törlése önhurkot alkotó helyek törlése (ESP)
önhurkot alkotó tranzíciók törlése (EST)

95 Példa t1 tüzel t1 és t2 összevonása, soros tranzíciók p1 -> t12

96 Példa (folyt.) t12 önhurok tranzíció törlése p4 önhurok hely törlés

97 Példa (folyt.)

98 Speciális topológiájú Petri hálók
Állapotgép (State Machine, SM) minden átmenetnek pontosan egy be és kimeneti helye van van konfliktus, nincs szinkronizáció

99 Speciális topológiájú Petri hálók
Jelölt gráf (Marked Graph, MG) minden helynek pontosan egy be- és kimeneti tüzelése van szinkronizáció, nincs konfliktus

100 Speciális topológiájú Petri hálók
Szabad választású háló (Free-Choice Net, FC) minden helyből kifelé mutató él vagy egyedüli kimenő él, vagy egyedüli bemenő él egy átmenetbe lehet konkurencia és konfliktus is, de nem egyszerre dekomponálható MG és SM komponensekre

101 Speciális topológiájú Petri hálók
Kiterjesztett szabad választású háló (EFC) többszörös szinkronizáció is lehetséges

102 Speciális topológiájú Petri hálók
Aszimmetrikus választású háló (AC) lehetséges az (aszimmetrikus) konfúzió is

103 Speciális topológiájú Petri hálók
Állapotgép (SM) nem enged meg szinkronizációt Jelölt gráf (MG) nem enged meg választást Szabad választású háló (FC) nem enged meg konfúziót Aszimmetrikus vál. háló (AC) megenged aszimmetrikus konfúziót, de nem enged meg szimmetrikus konfúziót

104 Invariánsok a Petri hálókban
Petri hálók különböző jellemzőiből számíthatók nagy segítség az elemzésben Két féle invariáns létezik T- (tranzíció-) P- (place-)

105 T-invariáns olyan tüzelési szekvencia, amely végrehajtása nem változtatja meg a Petri-háló tokeneloszlását bizonyítható a rendszer ciklikus működése ha létezik: rendszer élő holtpontmentes

106 P-invariáns általa kijelölt helyeken a tokenek súlyozott összege nem változik azaz a tokenek egy részhalmaza (vagy akár teljes halmaza) a helyek egy (rész)halmazában kering A P-invariánsok által meghatározott helyeken biztosan nem nő a tokenek száma - > a háló korlátos el sem veszik token -> a háló élő

107 Martinez-Silva algoritmus
Példa

108 Martinez-Silva algoritmus

109 Martinez-Silva algoritmus

110 Martinez-Silva algoritmus

111 Martinez-Silva algoritmus

112 Martinez-Silva algoritmus

113 Felhasznált irodalom Benyó Balázs – Formális módszerek (2008)
BME MIT (Pararicza, Gyapay, Bartha,… ) NetAcademia-tudástár – (Petri-hálók modellezése és analízise, Formális módszerek az informatikában (1), Formális módszerek az informatikában (2)


Letölteni ppt "FORMÁLIS MÓDSZEREK NGM_IN003_1"

Hasonló előadás


Google Hirdetések