Back

Lecture 4

Discrete-event systems and Petri nets

Állapotból esemény, hálóból ellenőrizhető viselkedés: egy gyártócella holtpontjának felismerése és javítása.

Start with AikoDeck68 slides · 90 min

  1. 01

    A sor akkor is megállhat, ha minden gép működik

    A: Állapot és esemény

    A harmadik leckében a kimenetet, a készletet és a veszteséget mértük. Most azt kérdezzük, milyen eseménysorrend vezet ezekhez. A végén két hibátlan gép, egy robot és egy puffer olyan állapotát mutatjuk meg, amelyből a működési szabályok szerint nincs tovább.

  2. 02

    A kapacitás nem bizonyítja, hogy a sor elindul

    Kapacitás: Kapacitás (Capacity) · Áteresztőképesség (Throughput) · Példa — 60 db/óra elméletben, 0 elakadáskor | Viselkedés: Rendszerviselkedés (System behaviour) · Szabályok — Foglalás, indítás, felszabadítás · Példa — Kölcsönös várakozás

    A kapacitás az adott erőforrásokkal és feltételezésekkel elérhető legnagyobb kimenet. Az áteresztőképesség ezzel szemben a ténylegesen elkészült jó darabok száma időegységenként. A viselkedés azt írja le, melyik állapotból milyen események és feltételek mellett juthatunk tovább. A tanpéldában a sor elméleti kapacitása hatvan darab óránként, de egy kölcsönös erőforrás-várakozás idején a mért kimenet nulla. A kapacitásszám önmagában nem zárja ki ezt az eseménysorrendet.

  3. 03

    A rendszer leírásához állapot és esemény kell

    Discrete-event system · State · Event

    A diszkrét eseményű rendszer a folyamat egy modellje. Az állapot megőrzi azt az információt, amelyből a lehetséges következő lépések meghatározhatók. Az esemény ennek az állapotnak egy változását jelöli. A gép lehet fizikailag mozgásban úgy, hogy a modell állapota végig „foglalt”.

  4. 04

    Az esemény változtatja meg a modell állapotát

    Darab fogadása — Darab a cellában → Megmunkálás indítása — Gép foglalt → Megmunkálás befejezése — Darab kész → Darab átadása — Gép szabad

    A modellben az állapot az események között állandó. Ettől a megmunkálás fizikailag folytatódhat, és telhet az idő. A „gép foglalt” állapot mindaddig ugyanaz marad, amíg egy esemény új állapotba nem viszi. A diszkrét modell a feladathoz fontos változásokat emeli ki.

  5. 05

    Az állapotba a következő döntéshez szükséges adat kerül

    Gép — foglaltság és üzemállapot · Robot — elérhetőség és foglalás · Puffer — bent lévő darabszám · Darab — elvégzett és következő művelet

    Nem minden adat kerül az állapotba. A gyártócella léptetéséhez a gép, a robot és a puffer foglaltsága fontos. Ha a döntés függ az alkatrész típusától vagy az előző művelettől, azt is meg kell őrizni. Az állapot a választott modellhez és kérdéshez tartozik.

  6. 06

    A foglaltság állapot, az indítás esemény

    Állapot: Fennálló helyzet — gép foglalt, puffer tele | Esemény: Állapotváltozást kiváltó történés — indítás, befejezés, érkezés

    A „foglalt” fennállhat egy ideig, az „indul” egy változást jelöl. A naplóban az eseményhez időbélyeg tartozik, az állapothoz pedig érvényességi időszak. Ha a két fogalmat összekeverjük, nem lesz egyértelmű, mikor kell a tokent elvenni vagy visszaadni.

  7. 07

    A jelből csak értelmezéssel lesz esemény

    Fizikai jel: Mért mennyiség időbeli változása — helyzet, nyomás | Modellbeli esemény: Értelmezett változás — darabérkezés, műveletbefejezés

    A jelátmenet önmagában még nem biztos, hogy új darabot jelent. A jelfeldolgozás, a pergésmentesítés és az azonosítás alakítja eseménnyé. A Petri-háló elemzése a neki átadott eseményekre érvényes; egy hamis érzékelőjel ettől még hibás állapotbecslést okozhat.

  8. 08

    Állapot vagy esemény?

    A naplóban három bejegyzés áll. Melyik esemény?

    Question

    1. 1. A pufferben két darab van.
    2. 2. A robot szabad.
    3. 3. A robot felvette a darabot.

    A felvétel pillanatszerű állapotváltozás. A másik két mondat egy fennálló állapotot ír le. A modellben a felvétel csökkenti a puffer és növeli a robot által tartott darabok számát.

  9. 09

    A háló a megengedett lépéseket írja le

    B: Hely, átmenet, token és tüzelés

    Először meghatározzuk, mi a Petri-háló, honnan ered és milyen kérdésekre használható. Ezután egyetlen géppel kezdünk, majd ugyanazokat a szabályokat alkalmazzuk a közös robotra és a holtpontra. Időzítetlen, súlyozott hely–átmenet hálóval dolgozunk.

  10. 10

    A Petri-háló állapotokat és eseményeket kapcsol össze

    Petri net

    A Petri-háló egyszerre grafikus leírás és pontos végrehajtási szabályokkal rendelkező matematikai modell. Megmutatja, milyen feltételek mellett következhet be egy esemény, és az hogyan változtatja meg az állapotot. Ugyanaz a hálószerkezet eltérő kezdő jelöléssel más viselkedést adhat.

  11. 11

    Carl Adam Petri kémiai folyamatok ábrázolásából indult

    1939 — rajzi előzmény: Kémiai folyamatok — Petri visszaemlékezése szerint, 13 évesen | 1962 — disszertáció, Darmstadt: Kommunikation mit Automaten — információátadás és elosztott rendszerek

    Carl Adam Petri saját visszaemlékezése szerint 1939-ben kémiai folyamatok megértéséhez találta ki a rajzi alapötletet. Az 1962-es, Darmstadtban megvédett disszertáció már az információátadás fizikai korlátait és az elosztott működés elméletét vizsgálta. A hálók későbbi ipari alkalmazásai ebből az általános szemléletből fejlődtek ki.

  12. 12

    A közös feltételek sokféle folyamatban ugyanúgy jelennek meg

    Technikai rendszerek: Gyártás és logisztika — gépfoglalás, puffer, holtpont · Kommunikáció és szoftver — üzenet, nyugta, közös erőforrás | További folyamatok: Munkafolyamat — párhuzamos feladatok és jóváhagyások · Reakcióháló — rendelkezésre álló anyagok és reakciólépések

    A robotfoglalás, az üzenet fogadása és egy engedély kiadása különböző alkalmazás, de mindegyikhez előfeltételek és állapotváltozások tartoznak. Petri-hálóval vizsgálható, mi indulhat el, mire kell várni és kialakulhat-e elakadás. Az alsó aktivitásábra két részfeladat összevárását szemlélteti.

  13. 13

    A modellezési kérdés dönti el, milyen háló kell

    Különösen hasznos: Párhuzamosság és összevárás — több folyamat feltételei találkoznak · Erőforrás-megosztás — foglalás, versengés, várakozás | Modellhatárok: Időtartam és teljesítmény — időzített vagy sztochasztikus kiterjesztés · Eltérő adattípusok — színezett háló; a token adatot is hordoz

    Az időzítetlen modell a lehetséges lépéseket írja le. Ciklusidő vagy várakozási idő számításához időadat kell; alkatrésztípusok és üzenettartalmak kezeléséhez adatot hordozó tokenek lehetnek célszerűek. A folytonos hőmérséklet- vagy mozgásmodell más leírást, esetleg hibrid összekapcsolást igényel.

  14. 14

    A hely, az átmenet és a token más szerepet tölt be

    Place · Transition · Token

    A hely állapotot, feltételt vagy erőforrást képvisel. Az átmenet egy esemény modellje. A token jelentését mindig megnevezzük: darab, szabad robot vagy teljesült feltétel. Az élek csak hely és átmenet között futnak, és a súlyuk megmondja, hány token vesz részt a lépésben.

  15. 15

    Az élek a szabályt, a jelölés az aktuális állapotot adja

    Directed arc · Arc weight · Marking

    Az irányított él megmondja, hogy az átmenet melyik helyről fogyaszt és melyiken hoz létre tokent. Az élsúly a szükséges vagy létrehozott mennyiséget rögzíti. A háló szerkezete ettől még változatlan maradhat, miközben a jelölés minden eseménynél módosul. A kezdő jelölés is a modell kötelező adata.

  16. 16

    Egy token mondja meg, szabad-e a gép

    Szabad → Indítás → Foglalt → Befejezés → Szabad

    A kezdő token a szabad állapotban van. Indításkor átkerül a foglalt állapotba, befejezéskor visszakerül. A token itt a gép állapotjelzője, nem egy munkadarab. A rajz mindkét állapotot tartalmazza; a jelölés mondja meg, melyik áll fenn most.

  17. 17

    A jelöléshez rögzíteni kell a helysorrendet

    Helysorrend: Szabad, Foglalt · Kezdő jelölés: m₀ = (1, 0)

    A jelölés két számát csak a helysorrenddel együtt lehet értelmezni. Ebben az előadásban ennél a gépnél mindig a szabad hely az első, a foglalt a második. Ugyanaz a vektor fordított helysorrenddel a másik állapotot jelentené.

  18. 18

    Az engedélyezettség lehetőség, a tüzelés állapotváltozás

    Enabling · Firing

    Az engedélyezettség feltételvizsgálat: minden bemeneti helyen elegendő tokennek kell lennie. A tüzelés az a végrehajtott lépés, amely elveszi a bemeneti és létrehozza a kimeneti tokeneket. A kettő nem ugyanaz: több átmenet is lehet engedélyezett, miközben a következő lépéshez csak egyet választunk.

  19. 19

    Egyetlen hiányzó token is letiltja az indítást

    Szabály: Engedélyezettség (Enabling) · Vizsgálat — Van ≥ szükséges | Beadagolás: Darab — 1 ≥ 1; teljesül · Szabad gép — 0 < 1; hiányzik · Indítás — Tiltott

    A kétállapotú gép példáját most munkadarab-feltétellel egészítjük ki. A beadagoláshoz egy darab és egy szabad gép kell: az Indításnak két bemeneti helye van. A darab helyén egy token van, a szabad gép helyén nulla. Az első feltétel teljesül, a második nem, ezért az Indítás tiltott. A két feltétel logikai ÉS-kapcsolatban áll. Ha a gép felszabadul, a nulla helyére egy kerül: most már mindkettő teljesül. Ettől az átmenet végrehajtható, de még nem tüzel automatikusan.

  20. 20

    A tüzelés egyszerre fogyaszt és létrehoz

    Indítás: (1, 0) → (0, 1) · Következő engedélyezett lépés: Befejezés

    Az indítás elveszi az egy szabad tokent és létrehoz egy foglalt tokent. A két művelet egy atomi modelllépés. Köztes, félig végrehajtott tüzelést nem veszünk fel. Most az indítás tiltott és a befejezés engedélyezett; a következő lépés után ismét a kezdő jelölésbe jutunk.

  21. 21

    A kezdőjelölést átírva megváltozik, mi tüzelhet

    Műhely: free.initial = 0 · Fordítás · Indítás tiltott · Visszaállítás: initial = 1

    Nyisd meg a fejléc Petri-műhely gombját. Az Egy gép két állapota példában a free hely initial értékét írd át nullára, majd fordítsd le. Mindkét hely üres lett, ezért egyik átmenet sem indulhat. Állítsd vissza egyre, fordíts újra, és tüzeltesd az Indítást, majd a Befejezést. A szöveg módosítása önmagában még nem változtatja meg a futó állapotot.

  22. 22

    A kettes élsúly két bemeneti tokent kér

    Darab: 3 · Egy csomaghoz: 2 darab · Csomag: 0

    A bemeneti él súlya kettő. Három darabból egyszer lehet csomagot készíteni, utána egy darab marad. A kimeneti token egy csomagot jelent, ezért a teljes tokenszám csökkenhet anélkül, hogy anyag veszne el. Csak azonos jelentésű mennyiségeket szabad közvetlenül összeadni.

  23. 23

    Egy megmaradt token nem elég az újabb csomaghoz

    Jelölés: (1, 1) · A kettes bemeneti feltétel nem teljesül

    A csomagolás után van token a bemeneten, mégsem lehet újra tüzelni. A feltétel nem az, hogy a hely nem üres, hanem hogy legalább annyi token van rajta, amennyit az él kér. Az eredmény nem lehet negatív tokenszám.

  24. 24

    Az önhurok feltételt tart meg

    Engedély: 0 · Az átadás tiltott, pedig a bemeneti darab megvan

    Az engedélyhelyről az átadás elvenne egy tokent, majd visszaadná ugyanoda. A nettó változás nulla, de a tokennek a tüzelés előtt ott kell lennie. Itt nincs ott. Ez lesz az a példa, amely megmutatja, miért nem elég csak a nettó változások mátrixát nézni.

  25. 25

    Melyik jelölés következik?

    Helysorrend: (Darab, Csomag). Kezdetben (3, 0), a bemeneti élsúly 2, a kimeneti 1. Mi lesz a Csomagolás egy tüzelése után?

    Question

    1. 1. (1, 1), és újabb tüzelés még nem engedélyezett.
    2. 2. (2, 1), mert egy átmenet mindig egy tokent vesz el.
    3. 3. (1, 2), mert a bemeneti súly a kimenetre is érvényes.

    A két élsúly külön adat. A bemenet 3 − 2 = 1, a kimenet 0 + 1 = 1. Újabb tüzeléshez két bemeneti token kellene, ezért az átmenet tiltott.

  26. 26

    A közös erőforrás összeköti a külön műveleteket

    C: Konfliktus, párhuzamosság és puffer

    Egy gép állapotait már követni tudjuk. Most több művelet kerül a modellbe, és kiderül, miért nem elég mindegyiket külön helyesnek látni. A közös robot és a véges puffer olyan feltételeket ad, amelyek csak az összekapcsolt rendszerben látszanak.

  27. 27

    A közös erőforrás foglalása konfliktust hozhat létre

    Resource place · Conflict

    Az erőforráshely tokenje a szabad kapacitást jelenti. Foglaláskor ezt a kapacitást elvesszük, felszabadításkor visszaadjuk. Konfliktus akkor keletkezik, ha a külön-külön lehetséges műveletek számára együtt már nincs elegendő közös erőforrás. Egy szabad robotot ezért két művelet nem foglalhat le egyszerre.

  28. 28

    Egy szabad robotot egy token képvisel

    Robot: 1 szabad egység · Két indulás versenyez érte

    A robothelyen egy token van. Az A és a B művelet külön-külön engedélyezett, de mindkettő ugyanazt a tokent használná. Egyik indulás után a robot tokenje eltűnik a szabad helyről. A befejezés visszaadja, és ekkor lehet újabb műveletet választani.

  29. 29

    A külön-külön engedélyezett lépések is ütközhetnek

    A elindult · A robot foglalt · B indítása most tiltott

    A kezdő állapotban mindkét indulás lehetséges volt. A kiválasztása azonban letiltotta B-t. Ez konfliktus, nem két független lépés. Az események kiválasztásához ütemezési szabály is kell; a Petri-háló engedélyezettsége önmagában nem választ nyertest.

  30. 30

    A párhuzamos haladás és az összevárás külön modellminta

    Concurrency · Synchronization

    Konkurens lépéseknél több művelet haladhat úgy, hogy nem zárják ki egymás végrehajtását. A szinkronizáló átmenet ezzel szemben több feltétel együttes teljesülésére vár. Egy szerelés előtt például külön készülhet el két részegység, de a végszerelés csak mindkettő elkészülte után kezdődhet.

  31. 31

    A független ágak befejezése felcserélhető

    Két aktív ág, felcserélhető befejezési sorrend.

    A szétválás két külön feltételt hozott létre. Az A és B ág befejezése nem ugyanazt a tokent fogyasztja, így mindkettő végrehajtható. Az egyik befejezése nem tiltja le a másikat. Ez a rajz logikai függetlenséget mutat, nem azt, hogy a két fizikai művelet pontosan egyszerre fejeződik be.

  32. 32

    Az egyesítés megvárja mindkét ágat

    A kész · B még dolgozik · Az egyesítés tiltott

    A közös befejezés két bemeneti helyről kér tokent. Az A ág tokenje nem helyettesíti a B ágét. A példában ezek a tokenek részfeladatok teljesülését jelölik, nem megkettőzött munkadarabokat. Amikor B is befejeződik, az egyesítés visszaállítja a következő ciklus kezdő feltételét.

  33. 33

    A szabad férőhely is modellezhető tokennel

    Két hely: 2 szabad + 0 foglalt · Betétkor egy szabad hely elfogy

    A puffer kapacitását két szabadhely-token képviseli. A betét egy szabad tokent fogyaszt és egy bent lévő darabot hoz létre. Kivételkor az irány fordított. A kapacitás itt a háló feltételeiből következik, nem egy külön rajzolt szám, amelyet a működés figyelmen kívül hagyhat.

  34. 34

    Tele puffernél a betét tiltott, a kivétel lehetséges

    0 szabad + 2 foglalt = 2 · Túlcsordulás nincs megengedve

    A harmadik betét nem engedélyezett, mert nincs szabadhely-token. A kivétel viszont engedélyezett, és felszabadít egy helyet. A két hely tokenösszege végig kettő. A modell csak akkor írja le a valós puffert, ha minden fizikai be- és kivételt a megfelelő átmenet képvisel.

  35. 35

    A szabadhely-tokenek száma adja a puffer kapacitását

    Műhely: slots.initial = 3 · Három betét · Negyedik betét tiltott · Kivétel után újra betét

    Nyisd meg a Két férőhelyes puffer példát, és a slots hely initial értékét emeld háromra. A műhelyben a Betesz gombot háromszor használhatod, a negyedik betét már tiltott. Egy Kivesz után ismét lehet betenni. A szabad és foglalt helyek összege most három: ezt a módosított kezdő jelölés választotta meg.

  36. 36

    A modell kapacitása és a fizikai kapacitás egyezzen

    Modellkapacitás: A háló által engedett tokenszám — itt legfeljebb kettő | Fizikai kapacitás: A tényleges férőhely — minden betétet és kivételt követni kell

    A tokenekkel igazolt korlát nem védi meg a valós berendezést, ha kézzel egy harmadik darabot is betesznek, vagy egy érzékelő két darabot egynek számol. A formális elemzés a modell tulajdonságát bizonyítja. A modell és az üzem kapcsolatát mérés és teszt ellenőrzi.

  37. 37

    Miért nem indulhat mindkét művelet?

    A robot szabad helyén egy token van. A és B indítása is egyet kér erről a helyről. Mi következik?

    Question

    1. 1. Mindkettőnek egyszerre kell indulnia, mert mindkettő engedélyezett.
    2. 2. Az egyik indítható; utána a másik a robot felszabadításáig tiltott.
    3. 3. A háló már most holtpontban van.

    A két indulás ugyanazért az egy tokenért versenyez. Van végrehajtható lépés, tehát nincs holtpont. Az egyik indítása elfogyasztja a közös erőforrást, ezért a másik utána már nem engedélyezett.

  38. 38

    A helyes részmodellek összekötve is vizsgálandók

    bdd Cella: Cella · Gép [2] · Robot · Puffer

    Egy gép önmagában végigmehet a ciklusán, és a robot önmagában szabályosan foglalható. Az összekapcsolás mégis új várakozási helyzetet hozhat létre. Most ezért a teljes elérhető állapotteret nézzük: nem elég egyetlen sikeres ciklust találni.

  39. 39

    A rajzból ellenőrizhető állításokat készítünk

    D: Mátrix, invariáns és elérhetőség

    Egy kis hálón a rajz és a számolás ugyanazt mondja. Egyetlen kézzel követhető mátrixos példát vezetünk végig, majd elválasztjuk azt, amit ez bizonyít, attól, amit nem. A korlátosság, a holtpontmentesség és az élőség külön kérdés.

  40. 40

    A bemenet, a kimenet és a nettó változás külön adat

    Pre-incidence matrix · Post-incidence matrix · Incidence matrix

    A Pre azt írja le, mire van szükség a tüzelés előtt, a Post pedig azt, mi keletkezik utána. A kettő különbsége a C incidenciamátrix. A kurzusban a helyek a sorok és az átmenetek az oszlopok: így egy oszlop egy tüzelés helyenkénti hatását mutatja.

  41. 41

    A bemenetet és a kimenetet külön tároljuk

    Sorok: Szabad, Foglalt · Oszlopok: Indítás, Befejezés

    A gép indítása a szabad helyről vesz el egy tokent, és a foglalt helyre tesz egyet. A befejezés ennek fordítottja. Ezért mindkét mátrix első oszlopa az indítás, a második a befejezés. A bemeneti mátrixra az engedélyezettség eldöntéséhez is szükségünk van.

  42. 42

    Az incidenciamátrix a nettó változást adja

    Negatív: fogyás · Pozitív: keletkezés · Oszloponként egy átmenet

    Az első oszlop mínusz egy és plusz egy: indításkor a szabad token elfogy, a foglalt létrejön. A második oszlop a visszaút. A mátrixkonvenciót mindig odaírjuk, mert a szakirodalomban a transzponált alak is előfordul.

  43. 43

    Egy indítás átviszi a tokent a foglalt helyre

    Az indítóoszlopot adjuk a kezdő jelöléshez.

    Az indításhoz tartozó tüzelési vektor egy, nulla, ezért a mátrixszorzás C első oszlopát választja ki: mínusz egy, plusz egy. Ezt adjuk a kezdő jelöléshez. A számolás előtt ellenőriztük a bemeneti feltételt: a szabad helyen valóban ott volt az egy token. Az eredményben már csak a foglalt helyen van token.

  44. 44

    A megmaradás és az elérhetőség más kérdésre felel

    Place invariant · Reachability · Reachability graph

    Az invariáns minden lépésnél változatlan mennyiséget ad. Az elérhetőség azt kérdezi, létezik-e megengedett út egy jelöléshez. Az elérhetőségi gráf ezeket az utakat rendezi közös ábrába. Az invariáns egy lehetséges állapotot kizárhat, de a megmaradási feltétel teljesülése még nem bizonyítja, hogy az állapot elérhető.

  45. 45

    A gép állapotjelző tokenje nem tűnhet el

    Szabad + Foglalt = 1 · Az összeg minden engedélyezett lépésnél megmarad

    Mindkét oszlop elemeinek összege nulla. Ezért az egyes súlyokkal vett tokenösszeg nem változik. A kezdő összeg egy, a tokenszámok nemnegatívak, így egyik helyen sem lehet egynél több token. Ez egyszerre megmaradási állítás és korlátossági bizonyíték erre a kis hálóra.

  46. 46

    Ennek a gépnek két elérhető jelölése van

    Szabad — (1, 0) → Foglalt — (0, 1) ↺

    A szabad állapotból csak indítás, a foglaltból csak befejezés lehetséges. A keresés visszajut az első állapotba, és nincs további ág. Ennél a hálónál ezzel a teljes elérhetőségi gráfot felsoroltuk. Egy nagy hálónál a sok párhuzamos lehetőség miatt ez már drága lehet.

  47. 47

    A korlát minden elérhető jelölésre vonatkozik

    Boundedness · 1-safeness

    A k-korlátosság állítása az, hogy a hely tokenszáma egyetlen elérhető jelölésben sem haladja meg k-t. Nem elég, hogy az eddig látott futásban kicsi volt. Az 1-korlátosság ennek speciális esete: minden helyen legfeljebb egy token lehet. Ettől még a rendszer megállhat.

  48. 48

    Az 1-korlátosság erősebb a korlátosságnál

    Gép: Helyenként legfeljebb 1 token | Puffer: Helyenként legfeljebb 2 token

    Mindkét modell korlátos. A gép hálója 1-korlátos, a két férőhelyes pufferé nem, mert két token is lehet egy helyén. Az angol safe itt egy speciális Petri-háló-tulajdonság. Nem azt jelenti, hogy a fizikai gép funkcionálisan biztonságos vagy tanúsított.

  49. 49

    A holtpont, a holtpontmentesség és az élőség külön állítás

    Deadlock · Deadlock freedom · Liveness

    A holtpont egy jelölés tulajdonsága: nincs benne végrehajtható átmenet. A holtpontmentesség az egész elérhető állapottérre állítja, hogy mindig lehet valamerre továbbmenni. Az élőség ennél többet kér: minden átmenetnek minden elérhető jelölésből újra engedélyezhetővé kell válnia valamilyen folytatással.

  50. 50

    A holtpontmentességből nem következik élőség

    Az A ág mindig léphet · A B ág átmenete soha nem tüzelhet

    Az A ágban keringő token miatt mindig van engedélyezett átmenet. A B ágban nincs token, és nem is érkezhet oda, így a jobb oldali átmenet halott. A háló holtpontmentes, de nem élő. Élőséghez minden átmenetnek minden elérhető jelölésből ismét engedélyezhetővé kell válnia.

  51. 51

    A nettó mérleg nem igazolja a végrehajthatóságot

    C oszlopa: (−1, +1, 0) · A számolt cél nemnegatív, mégis elérhetetlen

    A helysorrend bemenet, kimenet, engedély. A kezdő jelölés egy, nulla, nulla. A nettó változás szerint nulla, egy, nulla lenne az eredmény. Mégsem tüzelhetünk: az engedélyhely üres, és egyetlen átmenet sem hoz létre benne induló tokent. Az önhurok bemeneti feltétele eltűnt a C mátrixból.

  52. 52

    Mit bizonyít egyetlen sikeres ciklus?

    A háló egy futásában minden művelet egyszer végrehajtódott. Mit állíthatunk ebből biztosan?

    Question

    1. 1. A háló minden elérhető állapotból holtpontmentes.
    2. 2. Minden későbbi ütemezés igazságos lesz.
    3. 3. Ez az egy tüzelési sorozat végrehajtható volt; más ágakon még lehet elakadás.

    Egy futás egyetlen út az állapottérben. Nem vizsgálja meg az összes választási lehetőséget, ezért nem bizonyít általános holtpontmentességet vagy élőséget. Ellenpéldához viszont elég lehet egy megengedett, hibához vezető út.

  53. 53

    Két helyes foglalás együtt elakadást okozhat

    E: A sor beragadt

    Most visszatérünk a két géphez, a robothoz és a pufferhez. Két művelet két erőforrást kér, de eltérő sorrendben. Egy rövid, megengedett tüzelési sorozatból jutunk el a holtpontig, majd egy indítási feltétellel kizárjuk ezt az állapotot.

  54. 54

    A két foglalás ugyanarra a robotra és pufferhelyre vonatkozik

    R ↦ szabad robot · B ↦ szabad pufferhely · A ↦ G1 tartja R-t · H ↦ G2 tartja B-t

    G1 előbb a robotot foglalja le, és utána pufferhelyet kér. G2 előbb pufferhelyet foglal, és utána robotot kér. A négy hely a két szabad erőforrást és a két részleges foglalást jelöli. A jelölés sorrendje végig R, B, A, H.

  55. 55

    Kezdetben mindkét foglalás külön-külön lehetséges

    Helysorrend: R, B, A, H · m₀ = (1,1,0,0)

    Mindkét erőforrás szabad. A bal oldali foglalás R-t, a jobb oldali B-t veszi el. A lezárásokhoz a másik erőforrás is kell: G1 lezárása B-t, G2 lezárása R-t is igényli. Ezt a két önhurok mutatja; a lezárás után mindkét erőforrás ismét szabad.

  56. 56

    G1 már tartja a robotot, G2 még foglalhat puffert

    G1 foglalása után: (0,1,1,0) · Két folytatás: G1 lezár vagy G2 foglal

    Ebben az állapotban még nincs holtpont. A G1 művelet be tudná fejezni az átadást, mert a pufferhely szabad. De G2 is lefoglalhatja a pufferhelyet, mert az ő indítása nem ellenőrzi a robot szabadságát. Ez a választási pont dönti el a folytatást.

  57. 57

    A két részleges foglalás kölcsönös várakozást hoz létre

    Holtpont: (0,0,1,1) · G1 B-re vár · G2 R-re vár

    G1 tartja a robotot és pufferhelyet kér. G2 tartja a pufferhelyet és robotot kér. Egyik lezárás sem engedélyezett, ezért egyik erőforrás sem szabadul fel. A modellben nincs hiba vagy meghibásodás: a foglalási szabályok önmagukban elégségesek voltak ehhez az elakadáshoz.

  58. 58

    A holtponthoz két szabályos tüzelés elég

    Lépés | Jelölés (R,B,A,H) · Kezdet | (1,1,0,0) · G1 foglal | (0,1,1,0) · G2 foglal | (0,0,1,1)

    A nyomvonal minden lépése engedélyezett volt a megelőző jelölésben. Ezért valódi ellenpéldát kaptunk a holtpontmentességre. A fordított foglalási sorrend is ugyanide vezet. Egy másik, sikeres futás ezt az ellenpéldát nem cáfolja meg.

  59. 59

    Mind a négy átmenetnél megnevezhető a hiányzó token

    Átmenet | Hiány · G1 foglal | R · G2 foglal | B · G1 lezár | B · G2 lezár | R

    Nem elég azt mondani, hogy a rajzon nincs mozgás. Végigellenőrizzük az átmeneteket. Új foglaláshoz nincs szabad erőforrás, lezáráshoz pedig éppen a másik fél által tartott erőforrás hiányzik. Egyetlen átmenet sem engedélyezett, ezért a jelölés holtpont.

  60. 60

    Az indítás feltételét kell megváltoztatni

    Eredeti: A saját első erőforrás szabad | Javított: Mindkét erőforrás szabad

    Mindkét indításhoz hozzáadjuk a másik erőforrás szabadságának ellenőrzését. A rajzon ez önhurok: a tokent megköveteli, de nettó nem fogyasztja. Az egyik indítás után a másik már tiltott lesz. Fontos, hogy az ellenőrzés és a foglalás a modellben egyetlen atomi tüzelés.

  61. 61

    A kiegészített indítás kizárja a kettős részleges foglalást

    Indításkor mindkét erőforrásnak szabadnak kell lennie.

    A kezdő állapotban továbbra is mindkét művelet választható. G1 indulása elveszi R-t, így G2 indításának új R-feltétele már nem teljesül. G1 viszont lezárhat, mert B szabad maradt. A másik irány szimmetrikus. A korábbi holtpont-jelöléshez most nem vezet megengedett út.

  62. 62

    A javított modell három elérhető jelölése mind továbbvihető

    Jelölés (R,B,A,H) | Folytatás · (1,1,0,0) | G1 vagy G2 foglal · (0,1,1,0) | G1 lezár · (1,0,0,1) | G2 lezár

    A kezdő állapotnak két utódja van, és mindkettőből csak a megfelelő lezárás vezet vissza. Több jelölés nincs, mert ezeket az összes engedélyezett lépéssel kibontottuk. A felsorolás ezen a modellen bizonyítja a holtpontmentességet. Mind a négy átmenet újra engedélyezhető, tehát a háló élő is.

  63. 63

    A hibás foglalási szabály szövegben is javítható

    Műhely: takeA → takeB · Holtpont · Mindkét indítás hiperéléhez önhurok a másik erőforráson

    Az Eltérő foglalási sorrend példán tüzeltesd a G1 foglal és G2 foglal átmenetet. Ezután a takeA hiperél incidenciáihoz add hozzá a B helyet + és - előjellel, mindkettőt [1] értékkel; takeB-hez ugyanígy az R helyet. Fordíts újra. A második foglalás most tiltott, a megkezdett művelet lezárható.

  64. 64

    Megjavítja-e a hálót a gyorsabb robot?

    Az eredeti foglalási szabályok mellett a robot sebességét megduplázzuk. Megszűnik-e ezzel a holtpont lehetősége?

    Question

    1. 1. Igen, mert kisebb lesz a várakozási idő.
    2. 2. Nem: ugyanaz a két foglalási lépés továbbra is elérhető.
    3. 3. Igen, mert a háló korlátos.

    A robot sebessége nem változtatja meg az időzítetlen háló engedélyezettségi feltételeit. A holtponthoz vezető két foglalás továbbra is végrehajtható. A logikai lehetőséget a foglalási szabály megváltoztatása zárja ki, nem a gyorsabb végrehajtás.

  65. 65

    A holtpontmentesség mellett az ütemezést is meg kell tervezni

    Holtpontmentesség: Minden elérhető jelölésből van lépés | Kiéheztetés: Egy művelet tartósan kimarad, miközben mások haladnak

    Az indítási feltétel megoldotta a modell logikai elakadását, de nem ad óránkénti darabszámot. Azt sem garantálja, hogy az ütemező egyszer G2-t is kiválasztja, ha mindig választhatja G1-et. Az élőség lehetőség, az igazságos ütemezés működési szabály. Az időzítést és a fizikai feltételeket külön kell ellenőrizni.

  66. 66

    A küldetés bizonyítékot kér a javítás mellé

    Háló — helyek és tokenjelentések · Kezdő jelölés — induló állapot · Hibanyomvonal — engedélyezett lépések a holtpontig · Javítás — módosított szabály és bizonyíték

    A sor beragadt küldetésben nem elég újrarajzolni a cellát. Add meg, melyik token mit jelent, és milyen sorrendben jutottál holtpontba. Ezután módosíts egy szabályt, és mutasd meg, miért nem érhető el többé ugyanaz az elakadás. A modell feltételezéseit is írd mellé.

  67. 67

    A működés és a szerkezet más mérnöki kérdés

    Petri-háló: Megadott rendszer lehetséges eseménysorrendjei | P-gráf: Műveleti egységekből felépíthető folyamatszerkezetek

    Ma egy megadott szerkezet lehetséges viselkedését vizsgáltuk. A következő leckében visszalépünk a tervezési döntéshez: milyen műveletekből és kapcsolatokból érdemes egyáltalán felépíteni a folyamatot. A két modell más kérdésre felel. A vezérlési megvalósítás később a PLC témájánál kapcsolódik ehhez.

  68. 68

    A működő példa mellé a rossz út keresése is kell

    Állapot → Megengedett lépés → Elérhető jelölés → Bizonyíték

    Egy sikeres ciklus megmutatja, hogy a rendszer képes haladni azon az úton. A rossz út keresése megmutatja, hol akadhat el. A Petri-háló értéke az, hogy ezt a kérdést pontos feltételekkel, ellenőrizhető lépésekben tudjuk feltenni. Az állítást mindig a vizsgált modell és annak feltételezései mellett mondjuk ki.