Színezett Petri-hálók

Hasonló dokumentumok
Színezett Petri hálók

Színezett Petri hálók

Elérhetőségi analízis Petri hálók dinamikus tulajdonságai

Diszkrét állapotú rendszerek modellezése. Petri-hálók

Diszkrét állapotú rendszerek modellezése. Petri-hálók

Petri hálók: Alapelemek és kiterjesztések

Elérhetőségi probléma egyszerűsítése: Állapottér és struktúra redukció Petri-háló alosztályok

Petri hálók strukturális tulajdonságai Invariánsok és számításuk

Alapszintű formalizmusok

folyamatrendszerek modellezése

Petri hálók: Alapelemek és kiterjesztések

Petri hálók: alapfogalmak, kiterjesztések

Programozás alapjai. 5. előadás

Modellezés Petri hálókkal. dr. Bartha Tamás dr. Majzik István dr. Pataricza András BME Méréstechnika és Információs Rendszerek Tanszék

Az UPPAAL egyes modellezési lehetőségeinek összefoglalása. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Petri hálók: alapfogalmak, kiterjesztések

Programok értelmezése

Modell alapú tesztelés mobil környezetben

ködös határ (félreértés, hiba)

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

Kiterjesztések sek szemantikája

A modell-ellenőrzés gyakorlata UPPAAL

Elérhetőségi analízis Petri hálók dinamikus és strukturális tulajdonságai

FUNKCIONÁLIS PROGRAMOZÁS

2.előadás. alapfogalmak, formális definíció

Járműfedélzeti rendszerek II. 4. előadás Dr. Bécsi Tamás

Lengyelné Dr. Szilágyi Szilvia április 7.

Formális módszerek GM_IN003_1 Program verifikálás, formalizmusok

Dinamikus modellek szerkezete, SDG modellek

Elsőrendű logika szintaktikája és szemantikája. Logika (3. gyakorlat) 0-adrendű szemantika 2009/10 II. félév 1 / 1

Modellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé.

Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás

Algoritmizálás és adatmodellezés tanítása 1. előadás

Hardver és szoftver rendszerek verifikációja Röviden megválaszolható kérdések

Java II. I A Java programozási nyelv alapelemei

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. (Albert Einstein) Halmazok 1

Alapszintű formalizmusok

Programozási nyelvek (ADA)

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból

Adatszerkezetek I. 1. előadás

Szoftver-modellellenőrzés absztrakciós módszerekkel

5. A kiterjesztési elv, nyelvi változók

Java II. I A Java programozási nyelv alapelemei

és az instanceof operátor

Gyakorló feladatok: Formális modellek, temporális logikák, modellellenőrzés. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

Adat és folyamat modellek

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Osztott rendszer. Osztott rendszer informális definíciója

Bánsághi Anna 2014 Bánsághi Anna 1 of 33

... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak.

RE 1. Relációk Függvények. A diákon megjelenő szövegek és képek csak a szerző (Kocsis Imre, DE MFK) engedélyével használhatók fel!

Struktúra nélküli adatszerkezetek

C programozási nyelv

Analízis előadás és gyakorlat vázlat

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Dr. Mileff Péter

Méréselmélet MI BSc 1

van neve lehetnek bemeneti paraméterei (argumentumai) lehet visszatérési értéke a függvényt úgy használjuk, hogy meghívjuk

Halmazelmélet. 1. előadás. Farkas István. DE ATC Gazdaságelemzési és Statisztikai Tanszék. Halmazelmélet p. 1/1

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }

Formális szemantika. Kifejezések szemantikája. Horpácsi Dániel ELTE Informatikai Kar

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

A fontosabb definíciók

8. Komponens elvű programfejlesztés. Ágens, akció, cél, kontraktus.

Programozás alapjai. 2. előadás

Időzített átmeneti rendszerek

2014. szeptember 24. és 26. Dr. Vincze Szilvia

A szemantikus elemzés elmélete. Szemantikus elemzés (attribútum fordítási grammatikák) A szemantikus elemzés elmélete. A szemantikus elemzés elmélete

Algoritmizálás és adatmodellezés tanítása 4. előadás

Diagnosztika Petri háló modellek felhasználásával

Relációk Függvények. A diákon megjelenő szövegek és képek csak a szerző (Kocsis Imre, DE MFK) engedélyével használhatók fel!

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Programozási nyelvek a közoktatásban alapfogalmak II. előadás

HALMAZELMÉLET feladatsor 1.

Alapok. tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók

Adatbázisok 1. Kósa Balázs gyakorlata alapján Készítette: Nagy Krisztián. 1. gyakorlat

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés

Ködös határ (Félreértés, hiba)

Logika es sz am ıt aselm elet I. r esz Logika Harmadik el oad as 1/33

Apple Swift kurzus 3. gyakorlat

Komputeralgebra Rendszerek

MATEMATIKA EMELT SZINTŰ SZÓBELI VIZSGA TÉMAKÖREI (TÉTELEK) 2012

Modellezés Gregorics Tibor Mesterséges intelligencia

Zárthelyi mintapéldák. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Bevezetés az informatikába

OOP. Alapelvek Elek Tibor

SZÁMÍTÁSTUDOMÁNY ALAPJAI

A Matematika I. előadás részletes tematikája

Bevezetés a programozásba II. 5. Előadás: Másoló konstruktor, túlterhelés, operátorok

Karakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva!

Objektum elvű alkalmazások fejlesztése Kifejezés lengyel formára hozása és kiértékelése

C++ programozási nyelv Konstruktorok-destruktorok

INFORMATIKA LOGIKAI ALAPJAI JEGYZET

Korlátos modellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

2016, Funkcionális programozás

Adatbázis rendszerek 7. Matematikai rendszer amely foglal magában:

Átírás:

Színezett Petri-hálók dr. Bartha Tamás BME Méréstechnika és Információs Rendszerek Tanszék

Bevezetés Mik a színezett Petri-hálók? A színezett Petri-hálók olyan modellek, amik a grafikus reprezentációt ötvözik a jól definiált (matematikai) szemantikával, így lehetővé téve a formális analízist. A színezetlen hálók kiterjesztései rugalmas adatszerkezetekkel és adatmanipulációs nyelvvel CPN háló diagram = háló struktúra + deklarációk + háló jelölések, kifejezések + inicializáló kifejezések 2

Színezetlen és színezett Petri-hálók összehasonlítása Színezetlen (P-T) Petri-hálók színezetlen tokenek tokenek halmaza (számosság) token manipuláció kezdeti jelölés tiltó élek élsúlyok tranzíció engedélyezése konfliktus különböző engedélyezett tranzíciók között ~ assembly nyelv Színezett Petri-hálók színes tokenek tokenek multihalmaza adat manipuláció inicializáló kifejezések őrfeltételek élkifejezések (változókkal) lekötés engedélyezése konfliktus ugyanazon tranzíció engedélyezett lekötései között ~ magas szintű programnyelv 3

Színezett Petri-háló alkotóelemei Háló struktúra: megjeleníti a rendszer vezérlési-/adatfolyam struktúráját helyek, tranzíciók, (tiltó)élek Deklarációk: definiálják: adatstruktúrákat + felhasznált függvényeket deklarációk, jelölések, kódrészletek CPN ML-ben színosztályok, változók, élkifejezések Helyek Tranzíciók 3 3`(q,0) Tokenek Élek 4

Színezett Petri-háló alkotóelemei Jelölések, elnevezések: megadják a háló szintaktikai és adatmanipulációs elemeit nevek, színosztályok, bemenő/kimenő élkifejezések, őrkifejezések, aktuális állapot Inicializációs kifejezések: Megadják a modell kezdőállapotát konstansok, kezdőállapot 5

color U = with p q; color I = int; color P = product U * I; color E = with e; var x : U; var i : I; CPN háló alkotóelemei: Helyek deklarációs mező kezdeti jelölés 3`(q,0) P if x=q then 1`(q,i+1) else empty A (x,i) 3 3`(q,0) bemenő élkifejezés aktuális jelölés név T1 [x=q] őrfeltétel színosztály kezdő tokeneloszlás kimenő élkifejezés (x,i) aktuális tokeneloszlás 2`(p,0) 2 2`(p,0) 1`e Tranzíciók színosztály P B hely név E S név őrfeltétel (x,i) e 1 1`e Élek élkifejezések T2 tranzíció név 6

Multihalmazok Multihalmaz: azonos elemből több példány is lehet benne leképezés: Bag(A), formálisan: más jelölés (CPN): Műveletek multihalmazokkal: összehasonlítás: számosság: összegzés: különbség: szorzás skalárral: a A a a( x) x xa a a ha x A, a ( x) a ( x) 2 1 2 1 a a ha x A, a ( x) a ( x) 2 1 2 1 a ( ) x a x A a1 a2 a1 ( x) a2( x) x xa a a a ( x) a ( x) x feltéve, hogy a a xa na na( x) x 1 2 1 2 2 1 xa a a( x)' x x A 7

Műveletek multihalmazokkal Összegzés: a 1 + a 2 Összehasonlítás: a 1 a 2, a 1 a 2 Számosság: a 1 Szorzás skalárral: n a 1 Kivonás: a 1 - a 2 (csak ha a 2 a 1 ) 8

Multihalmazok (folyt.) Unió, multihalmazok egyesítése: a 1 a 2 a m tartomány: A 1 A 2 A m eleme: n-esek képzése: A 1, A 2,, A n tartomány: eleme: m e 1 A ha A, e A i k j i j A1 A2 A2 e, e,, e A ha e A n 1 2 n 1 j i i általánosítás: a 1, a 2,, a n 9

Coloured Petri Nets (CPN) hálók eszközkészlete

CPN hálók: színosztályok definiálása Egyszerű színosztályok színezetlen tokenek: unit alapvető típusok: int, bool, real, string részhalmaz: with 1..4; Alábbi elemek definíciójában szerepelnek: összetett színosztályok hely jelölések (kezdőállapot) változók, konstansok függvények, operátorok felsorolás: with true false; indexelés: index d with 1..4; 11

Összetett színosztályok Módszerek kombinált színosztályok létrehozására unió képzés: union s1:s + s2:s + T; n-esek képzése (Descartes szorzat): product P * Q * R; rekord (címkézett n-esek): record p:p * q:q * r:r; lista: list int with 2..6; 12

További CPN háló elemek: változók változók Tokenek szimbolikus nevei változódeklaráció: var proc : P; konstansok Áttekinthetőbb, kezelhetőbb konstansdeklaráció: val n = 10; val d1 = d(1) : D; az alábbi kifejezésekben: élkifejezések őrfeltételek alábbi deklarációkban: színosztályok függvények, operátorok élkifejezések, őrfeltételek, inicializáló kifejezések 13

További CPN háló elemek: függvények függvények mellékhatás-mentes SML nyelvű függvények műveletek, operátorok infix jelölésrendszer az alábbi kifejezésekben: színosztályok függvények, operátorok, konstansok élkifejezések, őrfeltételek, inicializáló kifejezések 14

További CPN háló elemek: kifejezések háló kifejezések értéke: a változók egy adott lekötésével értékelhető ki felhasználásuk: élkifejezések, őrfeltételek, inicializáló kifejezések típusa: az összes lehetséges kiértékelési eredmény halmaza példák: x=q 2`(x,i) if x=q then 2`i else empty Mes(s) let n=5 in n * x + 2 end 15

Színezett Petri-hálók működése

Működés: engedélyezés és tüzelés Engedélyezés fogalma megváltozik: Lezárt élkifejezés: nem tartalmaz változókat Változók rendelkeznek típussal: Type(v) értékük a multihalmaz egy eleme Nyílt élkifejezés: változókat le kell kötni egy értékkel lekötés: egy konkrét értékhozzárendelés minden változóhoz adott lekötéssel az élkifejezés kiértékelhető rendelkezik típussal: Type(expr) = C(p) MS az értékül kapott színosztály típusa kifejezésben szereplő változók halmaza: Var(expr) 17

Őrfeltétel Őrfeltételek: Tranzíciókhoz rendelt kifejezések multihalmazok felett értelmezett kifejezések (lásd élkifejezés) DE boolean visszatérési értékkel! (élkifejezés: multihalmaz v.é.) Igaz kiértékelési érték esetén engedélyezik a tranzíciót szűrik az engedélyezett lekötéseket Jelölés: szögletes zárójelekben megadott kifejezés a tranzíció mellett [x=q] (x,i) q (x,q) 18

Engedélyezettség színezett Petri-hálókban Tranzíció lekötése Érvényes lekötés: v Var(t): b(v) Type(v) G(t)b G(t)b az őrfeltétel Var( t) v vvar G( t) a A( t) : vvar E( a) Az összes érvényes lekötés halmaza: B(t) Egy érvényes lekötés engedélyezett, ha A bemenő helyeken van elég színezett token : h p t : E ( p, t) b M ( p) E ( p, t) b M ( p) 19

Tüzelés színezett Petri-hálókban Egy engedélyezett tranzíció tüzelhet, ha Magasabb prioritású tranzíció nem engedélyezett: h t : ( t) ( t), p t : E ( p, t) b M ( p) E ( p, t) b M ( p) Magasabb prioritású tranzíció őrfeltétele nem teljesül G(t )b 20

Tüzelés színezett Petri-hálókban Tüzelés menete: Engedélyezett lekötések keresése meghatározzák a bemenő élkifejezések, őrfeltételek Tranzíció engedélyezett adott lekötéssel tüzelés Színezett tokenek elvétele a bemenő helyekről Színezett tokenek kitétele a kimenő helyekre p P : M ( p) M ( p) E ( p, t) b E ( t, p) b p t pt Ekkor M közvetlenül elérhető M-ből: M[(t,b) M 21

Lekötött és lekötetlen változók Lekötött változók Az értékhozzárendelést a bemenő élek határozzák meg Konzisztencia: változó értéke lekötésen belül azonos! minden a tranzícióhoz tartozó élen: azonos név azonos érték Lekötetlen változók Csak kimenő élkifejezésekben szereplő változók Az engedélyezés nem rendelt hozzá értéket: lekötetlen Tüzeléshez le kell kötni! a színosztályából bármilyen értéket felvehet annyi lehetséges lekötés, amennyi a színosztály számossága nemdeterminisztikus választás 22

Színezett Petri-háló példa: elosztott adatbázis

CPN háló példa: elosztott adatbázis Specifikáció: n különböző szerver, minden szerverhez egy adatbázis példány, amit egy lokális adatbázis menedzser kezel DBM = {d 1, d 2,, d n }, n 3 lokális frissítés lehetséges, de a menedzsernek minden más menedzsert egy üzenettel értesítenie kell a frissítésről üzenet fejléc: küldő és fogadó (címzett) MES = {(s,r) s,r DBM s r}, Mes(s) = r DBM-{s} 1`(s,r) rendszer állapota: Active, Passive adatbázis menedzserek állapota: Inactive, Waiting (nyugtázásra vár), Performing üzenetek állapota: Unused, Sent, Received, Acknowledged 24

Elosztott adatbáziskezelő rendszer: deklarációk Deklarációs mező Jelentése: val n = 4; color DBM = index d with 1..n declare ms; color PR = product DBM * DBM declare mult; fun diff(x,y) = (x<>y); color MES = subset PR by diff declare ms; color E = with e; fun Mes(s) = mult PR(1`s, DBM--1`s) var s, r : DBM; DBM d 1,d 2,,d n MES ( s, r) s, r DBM s r rdbm-{s} Mes(s) 1'( sr, ) 25

Elosztott adatbáziskezelő rendszer CP háló modellje s e Update and Send Messages Mes(s) MES Mes(s) e e s Sent MES r DBM (s,r) Receive a Message (s,r) r Waiting Active Unused Passive Inactive Received Performing DBM MES DBM MES (s,r) DBM e Mes(s) e s Receive all Acknowledgments s r Send an Acknowledgment r Mes(s) Acknowledged MES (s,r) 26

Színezett Petri-hálók dinamikus tulajdonságai

Színezett Petri-hálók dinamikus tulajdonságai A színezetlen hálóknál megismert tulajdonságok kiterjesztései multihalmazokra Korlátosság Egy hely korlátos, ha a tokenek száma bármely állapotban korlátos n egy felső integer korlát p-re, ha m egy felső multihalmaz korlát p-re, ha Visszatérő tulajdonság Egy visszatérő állapotba mindig lehetséges visszajutni M egy visszatérő állapot, ha X egy visszatérő csoport, ha M M 0 : M ( p) n M M : M ( p) m 0 M M M M M M X M : 0 : 0 28

Színezett Petri-hálók dinamikus tulajdonságai Élőség Az élőség garantálja, hogy a lekötési elemek egy része aktív marad halott állapot (deadlock): egy lekötési elem sem engedélyezett b BE : M b halott tranzíció: egyik lekötése sem válhat engedélyezetté M M, bb( t) : M b élő tranzíció: nincs olyan állapot, amelyben minden lekötése halott M M,, ( ) : 0 M M bb t M b 29

Színezett Petri-hálók dinamikus tulajdonságai Fair tulajdonság Fairség megmutatja, hogy egy lekötési elem milyen gyakran tüzel elfogulatlan (impartial) tranzíció: végtelen sokszor tüzel b B( t), :OC ( ) b fair tranzíció: végtelen sok engedélyezés végtelen sok tüzelés b B( t), : EN ( ) OC ( ) b igazságos (just) tranzíció: perzisztens engedélyezés tüzelés b B( t), i 1: EN b, i( ) 0 k i : EN b, k ( ) 0 OC b, k ( ) 0 Elérhetőségi gráf Színezetlen hálók elérhetőségi gráfjának generálásával analóg módon állapot ekvivalencia osztályok, erősen összekötött komponensek b 30

Színezett Petri-hálók strukturális tulajdonságai

Dekompozíció: a rendszer állapota e Update and Send Messages e e Active Passive e e Receive all Acknowledgments 32

Dekompozíció: adatbázis menedzserek s Update and Send Messages s r Receive a Message r DBM Waiting Inactive Performing DBM DBM DBM s Receive all Acknowledgments s r Send an Acknowledgment r 33

Dekompozíció: üzenettovábbító alrendszer Update and Send Messages Mes(s) Sent MES (s,r) Receive a Message MES Mes(s) (s,r) Unused Received MES Mes(s) MES (s,r) Receive all Acknowledgments Send an Acknowledgment Mes(s) Acknowledged MES (s,r) 34

P-invariánsok az adatbázis-kezelő modellben INV 2 Id 5 Id s INV 2 Id e Update and Send Messages Mes(s) MES Mes(s) e e s Sent MES r DBM (s,r) Receive a Message (s,r) r Waiting Active Unused Passive Inactive Received Performing DBM MES DBM MES (s,r) DBM INV INV e Mes(s) INV INV INV INV e 3 Id s 3 Id s r 1 Id r 1 Id 6 Id 4 Id 1 Id 5 -Mes 6 -Ign Receive all Acknowledgments Send an Acknowledgment Mes(s) Acknowledged MES INV (s,r) 2 Id 5 Id 1 Id 4 -Rec 5 Id 35

A modell tulajdonságai Strukturális tulajdonságok: a háló uniform és konzervatív Korlátosság: multihalmaz integer Inactive DBM n Waiting DBM 1 Performing DBM n - 1 Unused MES n*(n - 1) Sent, Received, Acknowledged MES n - 1 Passive, Active E 1 36