Slide 1 [GMJ91, Sez. 5.5] [G87] u Condition-Event nets u Place-Transition nets u Time Petri Nets [Merlin] u Priorità u Token con valore u Richiami di logica u Predicate-Transition (PrT-) nets [Genrich87] Lezione 8. Petri Nets ed estensioni
Slide 2
Slide 3 Place-Transition Petri net - definizioni u PN = (P, T, A, M0) (* Place-Transition net *) P:insieme finito di posti T:insieme finito di transizioni A (P x T) (T x P) insieme fin. di archi M0: P-->Nat.marcatura iniziale
Slide 4 PN per il linguaggio delle parentesi bilanciate ( ) ( () ( ( ) ) ) ( ) ( ( ( ) ( ) ) ( ( ) ( ) ( ( ) ) ) ( ) ) ( ( ) ( ( ) ) ) ……... ( )
Slide 5 -- Condition-event nets -- u Sono Place-transition nets in cui I posti sono chiamati (e rappresentano) condizioni Nessun posto puo ospitare piu di un token (1-safe) Firing rule per trans. t (evento): »Un token in ciascun input place (pre-condizioni) »Nessun token negli output place (post-condizioni)
Slide 6 Uso esclusivo di risorsa comune (Condition-event) u Terminologia u Stato = marcatura u Input place - output place u Transizione abilitata u Transition firing rule u (token game) u Firing sequence
Slide 7 u Concorrenza - nondeterminismo - (t1, t2) u Conflitto - (t3, t4), solo quando la risorsa è condivisa u Comportamento unfair: (t1; t3; t5; t1; t3; t5; … )
Slide 8 Per forzare un comportamento fair:
Slide 9 Uso non esclusivo di risorsa (Place-transition) … o risorsa duplicata
Slide 10 Deadlock …e possono raggiungere un marking con nessuna transizione abilitata Sia P1 che P2 richiedono entrambe le risorse...
Slide 11 Liveness Assenza di deadlock
Slide 12 Deadlock parziale Alcune transizioni diventano permanentemente disabilitate La rete e comunque live, cioè non va mai in deadlock
Slide 13 Composizione di automi via PN - Componenti:
Slide 14 Composizione Da confrontare con lanaloga composizione di FSMs
Slide 15 Limiti di Place-Transition Nets u Trattano il controllo, non i dati I token sono indistinguibili, anonimi, non hanno un valore P ToTrash ToDestination Non si puo scegliere la transizione In base alle proprieta del messaggio (token). Non si puo arricchire il messaggio con … un francobollo (token) Q
Slide 16 u Non si possono assegnare priorita alle transizioni (quando due o piu sono abilitate) u Non si possono esprimere parametri temporali.
Slide 17 Time Petri Nets (Merlin-Farber 76) u Transizioni etichettate da coppie (t min, t max ) u I tempi si riferiscono allistante t 0 in cui la transizione viene abilitata u Nelle PN senza tempo si assume una etichettatura (0, infinito) per ogni transizione.
Slide 18 Receiver Es. di TPN: Sender-Receiver e… Sender sendMsgreceiveMsg produceMsg consumeMsg sendAck msgLoss ackLoss receiveAck Channel (0, 0) (0, 5) (5, 5) (1, 1) (2, 2)(3, 3) (0, 5) (5, 5)
Slide timeout nel Sender ReceiverSender Channel (0, 0) (0, 5) (5, 5) (1, 1) (2, 2)(3, 3) (0, 5) (5, 5) (12,12) timeout
Slide 20 PN con priorita u Etichette di priorita associate alle transizioni u Le priorita inducono un ordinamento sulle transizioni abilitate
Slide 21 Priorita e temporizzazione possono coesistere. La priorità induce un ordinamento fra le transizioni abilitate (sia dai token che dal tempo). (Maggior priorità = coeff. piu alto) …….I token arrivano a tempo zero…….
Slide 22 Token con valore u I token portano un valore Un intero, un vettore di byte, un ambiente (Var--> Val) u Le transizioni sono arricchite da un predicato sui token in input una funzione input tokens ---> output token u Ready-tuple I token in input che soddisfano il predicato u Gli input-token usati (gli output-token prodotti) sono identificati, in predicati e funzioni, dai nomi dei relativi posti di partenza (arrivo)
Slide 23 Esempio P1P2P3 t1t2 P4 P5 [P2 > P1] P4 := P2 + P1 [P2 = P3] P4 := 0 P5 := P2 + P3
Slide 24 Relazioni extended PN - Data Flow diagrams
Slide 25 Esercizio 1 (PN a token con valore) P ToTrashToDestination Trash …??? Sender …??? La scelta della transizione deve dipendere dalla parita del messaggio (token)
Slide 26 Esercizio 2 - PN a token con valore per Dispatcher a 2 input (cfr. esempio per Extended FSM) u Un dispatcher riceve messaggi da due diversi input channel ChanA e ChanB, e ne controlla la parita: se la parita e sbagliata, manda un nack attraverso, rispettivamente, il canale ReplyA o ReplyB; se la parita e corretta il dispatcher pone il messaggio ricevuto in un buffer, che puo tenere fino a 10 messaggi. u Quando il buffer e pieno, lintero contenuto viene spedito a una processing unit attraverso un altro canale. Nessun messaggio puo essere messo nel buffer pieno. u [GJM9, Es. 5.15]
Slide 27 Una soluzione Parity(a1) = OK Length (q) < q := append (q, a1) Parity(a1) not OK ReplyA := nack ReplyA ChanA ChanB Parity(b1) not OK ReplyB := nack Parity(b1) = OK Length (q) < q := append (q, a1) ReplyB a1 b1 q nil Length (q) = ProcessingUnit := q q := nil Processing Unit
Slide 28 Predicate/Transition nets - Richiami di logica u Per introdurre le Predicate-Transition (PrT-) Net [G87] si rende necessario introdurre/richiamare alcuni concetti di logica...
Slide 29 Linguaggi del 1 o ordine (calcolo dei predicati) u Simboli di variabile: x, y,... u Simboli di costante: a, b, … u Simboli di funzione: f i, g i, … u Simboli di predicato: A i, B i, … i = num. di argomenti della funzione/predicato Connettivi logici: ~, /\, \/,, Virgola e parentesi:, ( ) u Quantificatori universale ed esistenziale:,
Slide 30 u Termine Variabile, costante, o simbolo di funzione a i argomenti, seguito da i termini fra parentesi, separati da virgole. »x »2 »exp(sum(x, 9), 2)) u Formula atomica Simbolo di predicato a i argomenti, seguito da i termini fra parentesi, separati da virgole: > (exp(sum(x, 9), 2)), 4).
Slide 31 u Formula ben formata (fbf) Formula atomica ~A, A/\B, A\/B, A B, A B x. A, x. A »dove A, B sono fbf e x e una variabile. u Esempio: x. (A(x, y) B(f(g(x)), y))) u Nel seguito assumiamo che una formula sia sempre una fbf.
Slide 32 u x e legata in una formula se E preceduto da un quantificatore, oppure E sotto lazione di un quantificatore della stessa x u x e libera nella formula se non e legata u Nella formula F = x.(A(x, y) B(f(g(x)), y))) 3 simboli x sono legati, i 2 simboli y sono liberi u Free(F) denota linsieme delle variabili libere di F nellesempio: Free(F) = {y} u Una formula e chiusa se non ha variabili libere
Slide 33 u Dati Un dominio di valori D (Nat,...) Una interpretaz. dei simboli di costante (0, 1, 2…) Una interpretaz. dei simboli di funzione (+, *,...) Una interpretazione dei simboli di predicato (>,...): u Data una interpretazione, ogni formula chiusa e sempre vera o falsa u Ogni formula F tale che Free(F) = x1…xn puo essere pensata come un predicato F(x1…xn) che è vero o falso a seconda dei valori assegnati a x1…xn
Slide 34 Predicate-Transition (PrT-) Nets [G87] u Generalizzano il caso dei token con valore u Gli archi sono etichettati da multi-insiemi di termini di un linguaggio L del primo ordine [[ t1, t2, …, tx, tx, …]] u Ogni transizione T e etichettata da una formula di L (tipicamente non chiusa), che denotiamo P T. u Around(T) linsieme di variabili che appaiono nei termini che etichettano gli archi adiacenti a T u Free(P T ) linsieme di variabili libere di P T. Deve valere: Free(P T ) Around(T)
Slide 35 Esempio di PrT-net (( k) x+y = k*3 /\ y = h*2 ) T [[z, x+y, x-y, x-y]] [[h]] [[y, y]] [[k]] Free(P T ) = {x, y, h} Around(T) = {z, x, y, h, k} Variabili libere in P T che non fossero in Around(T) sarebbero assunte implicitamente legate da quantificatore esistenziale (dangling variables)
Slide 36 Firing rule per PrT-net Se esiste un assegnamento per le variabili in Around(T) tale che La valutazione di P T via e TRUE La valutazione via dei termini sugli archi in input a T fornisce multi-insiemi di valori che corrispondono a token effettivamente disponibili allora T viene eseguita, producendo token i cui valori sono espressi dai termini sugli archi in output di T, via.
Slide 37 Esempio di esecuzione di trans. in PrT-net (( k) x+y = k*3 /\ y = h*2 ) T [[z, x+y, x-y, x-y]] [[h]] [[y, y]] [[k]] (x) = 7 (y) = 2 (z) = 3 (h) = 1 (k) = 102 Around(T) = {x, y, z, h, k} [[3, 9, 5, 5]] [[1]] [[2, 2]] [[102]] (non 3!) (( k) 9 = k*3 /\ 2 = 1*2 ) = TRUE
Slide 38 Da Cond.-Event a Predicate-Trans.(PrT) nets u Sistema = insieme di individui e relazioni dinamiche u Gli eventi cambiano le relazioni fra individui u Individui: Sezioni = {0, 1, 2, 3, 4, 5, 6}; Treni {a, b} Relazione U Sezioni x Treni (1, a) U significa treno a occupa (Uses) sez. 1
Slide 39 u V Sezioni (3) V significa sezione 3 e successiva libere (Vacant) u Requisito di sicurezza: I due treni non devono mai trovarsi contemporaneamente in due sezioni adiacenti
Slide 40 C-E net: un posto per ogni (s, t) in U
Slide 41 Un posto per ogni (s, x) in U (x variabile)
Slide 42 Fusione di transizioni, etichette parametriche
Slide 43 Predicate-Transition (PrT) net finale Un posto modella una relazione Un token modella un elemento della relazione Una transizione modella un cambiamento nelle relazioni [[ ]]