1 / 43

Lezione 8. Petri Nets ed estensioni

Lezione 8. Petri Nets ed estensioni. [GMJ91, Sez. 5.5] [G87] Condition-Event nets Place-Transition nets Time Petri Nets [Merlin] Priorità Token con valore Richiami di logica Predicate-Transition (PrT-) nets [Genrich’87]. ‘Place-Transition’ Petri net - definizioni.

lev
Download Presentation

Lezione 8. Petri Nets ed estensioni

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lezione 8. Petri Nets ed estensioni • [GMJ91, Sez. 5.5] • [G87] • Condition-Event nets • Place-Transition nets • Time Petri Nets [Merlin] • Priorità • Token con valore • Richiami di logica • Predicate-Transition (PrT-) nets [Genrich’87]

  2. ‘Place-Transition’ Petri net - definizioni • 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

  3. PN per il linguaggio delle parentesi bilanciate ( ) ( ()( ( ) ) ) ( ) (( ( )( ))(() ( )(( ))) ( )) (( )( ( ) )) ……... ( )

  4. -- ‘Condition-event’ nets -- • 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)

  5. Uso esclusivo di risorsa comune (Condition-event) • Terminologia • Stato = marcatura • Input place - output place • Transizione abilitata • Transition firing rule • (‘token game’) • Firing sequence

  6. Concorrenza - nondeterminismo - (t1, t2) • Conflitto - (t3, t4), solo quando la risorsa è condivisa • Comportamento ‘unfair’: (t1; t3; t5; t1; t3; t5; … )

  7. Per forzare un comportamento ‘fair’:

  8. Uso non esclusivo di risorsa (Place-transition) … o risorsa duplicata

  9. Deadlock Sia P1 che P2 richiedono entrambe le risorse... …e possono raggiungere un marking con nessuna transizione abilitata

  10. Liveness Assenza di deadlock

  11. Deadlock parziale Alcune transizioni diventano permanentemente disabilitate La rete e’ comunque live, cioè non va mai in deadlock

  12. Composizione di automi via PN - Componenti:

  13. Composizione Da confrontare con l’analoga composizione di FSMs

  14. ‘Limiti’ di Place-Transition Nets • Trattano il controllo, non i dati • I token sono indistinguibili, anonimi, non hanno un valore P ToDestination ToTrash Q Non si puo’ scegliere la transizione In base alle proprieta’ del messaggio (token). Non si puo’ arricchire il messaggio con … un francobollo (token)

  15. Non si possono assegnare priorita’ alle transizioni (quando due o piu’ sono abilitate) • Non si possono esprimere parametri temporali.

  16. Time Petri Nets (Merlin-Farber 76) • Transizioni etichettate da coppie (tmin, tmax) • I tempi si riferiscono all’istante t0in cui la transizione viene abilitata • Nelle PN senza tempo si assume una etichettatura (0, infinito) per ogni transizione.

  17. Es. di TPN: Sender-Receiver e… msgLoss (0, 5) sendMsg receiveMsg Sender Receiver (0, 0) (5, 5) produceMsg consumeMsg Channel (3, 3) (2, 2) (5, 5) (1, 1) (0, 5) receiveAck sendAck ackLoss

  18. ...timeout nel Sender (0, 5) Sender Receiver (0, 0) timeout (5, 5) (12,12) (3, 3) Channel (2, 2) (5, 5) (1, 1) (0, 5)

  19. PN con priorita’ • Etichette di priorita’ associate alle transizioni • Le priorita’ inducono un ordinamento sulle transizioni abilitate

  20. Priorita’ e temporizzazione... ... possono coesistere. La priorità induce un ordinamento fra le transizioni abilitate (sia dai token che dal tempo). …….I token arrivano a tempo zero……. (Maggior priorità = coeff. piu’ alto)

  21. Token con valore • I token ‘portano’ un valore • Un intero, un vettore di byte, un ambiente (Var--> Val) • Le transizioni sono arricchite da • un predicato sui token in input • una funzione input tokens ---> output token • Ready-tuple • I token in input che soddisfano il predicato • Gli input-token usati (gli output-token prodotti) sono identificati, in predicati e funzioni, dai nomi dei relativi posti di partenza (arrivo)

  22. Esempio P1 P2 P3 4 7 3 4 1 [P2 > P1] P4 := P2 + P1 [P2 = P3] P4 := 0 P5 := P2 + P3 t1 t2 P4 P5

  23. Relazioni extended PN - Data Flow diagrams

  24. Esercizio 1 (PN a token con valore) La scelta della transizione deve dipendere dalla parita’ del messaggio (token) P …??? …??? ToTrash ToDestination Trash Sender

  25. Esercizio 2 - PN a token con valore per Dispatcher a 2 input (cfr. esempio per Extended FSM) • 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. • Quando il buffer e’ pieno, l’intero contenuto viene spedito a una processing unit attraverso un altro canale. Nessun messaggio puo’ essere messo nel buffer pieno. • [GJM9, Es. 5.15]

  26. Una soluzione ReplyA Parity(a1) not OK -------------------- ReplyA := ‘nack’ Parity(a1) = OK Length (q) < 10 -------------------- q := append (q, a1) ChanA nil Length (q) = 10 ------------------------- ProcessingUnit := q q := nil a1 Parity(b1) = OK Length (q) < 10 -------------------- q := append (q, a1) q b1 ChanB Processing Unit ReplyB Parity(b1) not OK -------------------- ReplyB := ‘nack’

  27. Predicate/Transition nets - Richiami di logica • Per introdurre le Predicate-Transition (PrT-) Net [G87] si rende necessario introdurre/richiamare alcuni concetti di logica...

  28. Linguaggi del 1o ordine (calcolo dei predicati) • Simboli di variabile: x, y, ... • Simboli di costante: a, b, … • Simboli di funzione: f i,gi, … • Simboli di predicato: Ai, Bi, … • ‘i’ = num. di argomenti della funzione/predicato • Connettivi logici: ~, /\, \/, ,  • Virgola e parentesi: , ( ) • Quantificatori universale ed esistenziale: , 

  29. Termine • Variabile, costante, o simbolo di funzione a i argomenti, seguito da itermini fra parentesi, separati da virgole. • x • 2 • exp(sum(x, 9), 2)) • Formula atomica • Simbolo di predicato a i argomenti, seguito da itermini fra parentesi, separati da virgole: >(exp(sum(x, 9), 2)), 4).

  30. 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. • Esempio: • x. (A(x, y)  B(f(g(x)), y))) • Nel seguito assumiamo che una formula sia sempre una fbf.

  31. x e’ legata in una formula se • E’ preceduto da un quantificatore, oppure • E’ sotto l’azione di un quantificatore della stessa x • x e’ libera nella formula se non e’ legata • Nella formula F = x.(A(x, y)  B(f(g(x)), y))) • 3 simboli x sono legati, i 2 simboli y sono liberi • Free(F) denota l’insieme delle variabili libere di F • nell’esempio: Free(F) = {y} • Una formula e’ chiusa se non ha variabili libere

  32. 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 (‘>’, ...): • Data una interpretazione, ogni formula chiusa e’ sempre vera o falsa • 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

  33. Predicate-Transition (PrT-) Nets [G87] • Generalizzano il caso dei token con valore • Gli archi sono etichettati da multi-insiemi di termini di un linguaggio L del primo ordine • [[ t1, t2, …, tx, tx, …]] • Ogni transizione T e’ etichettata da una formuladi L (tipicamente non chiusa), che denotiamo PT. • Around(T) • l’insieme di variabili che appaiono nei termini che etichettano gli archi adiacenti a T • Free(PT) • l’insieme di variabili libere di PT. • Deve valere: Free(PT) Around(T)

  34. Esempio di PrT-net Around(T) = {z, x, y, h, k} 5 9 5 3 1 3 Free(PT) = {x, y, h} [[z, x+y, x-y, x-y]] [[h]] [[y, y]] ((k) x+y = k*3 /\ y = h*2 ) T Variabili libere in PT che non fossero in Around(T) sarebbero assunte implicitamente legate da quantificatore esistenziale (‘dangling variables’) [[k]]

  35. Firing rule per PrT-net • Se esiste un assegnamento per le variabili in Around(T) tale che • La valutazione di PTvia  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 .

  36. Esempio di esecuzione di trans. in PrT-net Around(T) = {x, y, z, h, k} 5 9 5 3 1 3 (x) = 7 (y) = 2 (z) = 3 (h) = 1 (k) = 102 [[z, x+y, x-y, x-y]] [[h]] [[1]] [[y, y]] [[2, 2]] [[3, 9, 5, 5]] ((k) x+y = k*3 /\ y = h*2 ) ((k) 9 = k*3 /\ 2 = 1*2 ) = TRUE T [[k]] [[102]] (non 3!)

  37. Da Cond.-Event a Predicate-Trans.(PrT) nets • Sistema = insieme di individui e relazioni dinamiche • Gli eventi cambiano le relazioni fra individui • 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

  38. V  Sezioni • (3) V significa ‘sezione 3 e successiva libere (Vacant) • Requisito di sicurezza: • I due treni non devono mai trovarsi contemporaneamente in due sezioni adiacenti

  39. C-E net: un posto per ogni (s, t) in U

  40. Un posto per ogni (s, x) in U (x variabile)

  41. Fusione di transizioni, etichette parametriche

  42. Predicate-Transition (PrT) net finale [[ ]] [[ ]] [[ ]] [[ ]] Un posto modella una relazione Un token modella un elemento della relazione Una transizione modella un cambiamento nelle relazioni

More Related