Slide 1
• [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]
Lezione 8. Petri Nets ed estensioni
Slide 2
Slide 3
‘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
Slide 4
PN per il linguaggio delle parentesi bilanciate
( )( () ( ( ) ) )
( ) ( ( ( ) ( ) ) (( ) ( ) (( ))) ( ) ) ( ( ) ( ( ) ) )……...
(
)
Slide 5
-- ‘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)
Slide 6
Uso esclusivo di risorsa comune (Condition-event)
Terminologia
Stato = marcatura Input place - output place Transizione abilitata Transition firing rule (‘token game’) Firing sequence
Slide 7
Concorrenza - nondeterminismo - (t1, t2)
Conflitto - (t3, t4), solo quando la risorsa è condivisa
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 possonoraggiungere un marking con nessuna transizione abilitata
Sia P1 che P2richiedono 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 confrontarecon l’analogacomposizione di FSMs
Slide 15
‘Limiti’ di Place-Transition Nets
Trattano il controllo, non i dati• I token sono indistinguibili, anonimi, non hanno un
valoreP
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
Non si possono assegnare priorita’ alle transizioni (quando due o piu’ sono abilitate)
Non si possono esprimere parametri temporali.
Slide 17
Time Petri Nets (Merlin-Farber 76)
Transizioni etichettate da coppie (tmin, tmax)
I tempi si riferiscono all’istante t0 in cui la transizione viene abilitata
Nelle PN senza tempo si assume una etichettatura (0, infinito) per ogni transizione.
Slide 18
Receiver
Es. di TPN: Sender-Receiver e…
Sender
sendMsg receiveMsg
produceMsg consumeMsg
sendAck
msgLoss
ackLossreceiveAck
Channel
(0, 0)
(0, 5)
(5, 5)
(1, 1)
(2, 2)(3, 3)
(0, 5)
(5, 5)
Slide 19
...timeout nel Sender
ReceiverSenderChannel
(0, 0)
(0, 5)
(5, 5)
(1, 1)
(2, 2)(3, 3)
(0, 5)
(5, 5)
(12,12)
timeout
Slide 20
PN con priorita’
Etichette di priorita’ associate alle transizioni
Le priorita’ inducono un ordinamento sulle transizioni abilitate
Slide 21
Priorita’ e temporizzazione...
... possono coesistere. La priorità induce un ordinamento fra le transizioniabilitate (sia dai token che dal tempo).
(Maggior priorità = coeff. piu’ alto)
…….I token arrivano a tempo zero…….
Slide 22
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)
Slide 23
Esempio
41
734
P1 P2 P3
t1 t2
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
ToTrash ToDestination
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)
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]
Slide 27
Una soluzione
Parity(a1) = OKLength (q) < 10--------------------q := append (q, a1)
Parity(a1) not OK--------------------ReplyA := ‘nack’
ReplyA
ChanA
ChanB
Parity(b1) not OK--------------------ReplyB := ‘nack’
Parity(b1) = OKLength (q) < 10--------------------q := append (q, a1)
ReplyB
a1
b1
q
nilLength (q) = 10-------------------------ProcessingUnit := qq := nil
ProcessingUnit
Slide 28
Predicate/Transition nets - Richiami di logica
Per introdurre le Predicate-Transition (PrT-) Net [G87] si rende necessario introdurre/richiamare alcuni concetti di logica...
Slide 29
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: ,
Slide 30
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))
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
Formula ben formata (fbf)• Formula atomica
• ~A, A/\B , A\/B, AB, AB 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.
Slide 32
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
Slide 33
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
Slide 34
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 formula di 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)
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]]
9
5 3
5
31
Free(PT) = {x, y, h}
Around(T) = {z, x, y, h, k}
Variabili libere in PT 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 PT 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]]
9
5 3
5
31(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
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
Slide 39
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
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 relazioneUn token modella un elemento della relazioneUna transizione modella un cambiamento nelle relazioni
[[ ]]
[[ ]][[ ]]
[[ ]]