Slide 1 [GMJ91, Sez. 5.5] [G87] u Condition-Event nets u Place-Transition nets u Time Petri Nets...

43
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

Transcript of Slide 1 [GMJ91, Sez. 5.5] [G87] u Condition-Event nets u Place-Transition nets u Time Petri Nets...

Page 1: 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.

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

Page 2: 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.

Slide 2

Page 3: 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.

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

Page 4: 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.

Slide 4

PN per il linguaggio delle parentesi bilanciate

( )( () ( ( ) ) )

( ) ( ( ( ) ( ) ) (( ) ( ) (( ))) ( ) ) ( ( ) ( ( ) ) )……...

(

)

Page 5: 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.

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)

Page 6: 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.

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

Page 7: 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.

Slide 7

Concorrenza - nondeterminismo - (t1, t2)

Conflitto - (t3, t4), solo quando la risorsa è condivisa

Comportamento ‘unfair’: (t1; t3; t5; t1; t3; t5; … )

Page 8: 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.

Slide 8

Per forzare un comportamento ‘fair’:

Page 9: 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.

Slide 9

Uso non esclusivo di risorsa (Place-transition)

… o risorsa duplicata

Page 10: 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.

Slide 10

Deadlock

…e possonoraggiungere un marking con nessuna transizione abilitata

Sia P1 che P2richiedono entrambe le risorse...

Page 11: 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.

Slide 11

Liveness

Assenza di deadlock

Page 12: 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.

Slide 12

Deadlock parziale

Alcune transizioni diventano permanentemente disabilitate

La rete e’ comunque live, cioè non va mai in deadlock

Page 13: 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.

Slide 13

Composizione di automi via PN - Componenti:

Page 14: 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.

Slide 14

Composizione

Da confrontarecon l’analogacomposizione di FSMs

Page 15: 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.

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

Page 16: 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.

Slide 16

Non si possono assegnare priorita’ alle transizioni (quando due o piu’ sono abilitate)

Non si possono esprimere parametri temporali.

Page 17: 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.

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.

Page 18: 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.

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)

Page 19: 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.

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

Page 20: 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.

Slide 20

PN con priorita’

Etichette di priorita’ associate alle transizioni

Le priorita’ inducono un ordinamento sulle transizioni abilitate

Page 21: 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.

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…….

Page 22: 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.

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)

Page 23: 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.

Slide 23

Esempio

41

734

P1 P2 P3

t1 t2

P4 P5

[P2 > P1]P4 := P2 + P1

[P2 = P3]P4 := 0

P5 := P2 + P3

Page 24: 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.

Slide 24

Relazioni extended PN - Data Flow diagrams

Page 25: 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.

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)

Page 26: 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.

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]

Page 27: 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.

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

Page 28: 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.

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...

Page 29: 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.

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: ,

Page 30: 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.

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).

Page 31: 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.

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.

Page 32: 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.

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

Page 33: 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.

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

Page 34: 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.

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)

Page 35: 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.

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’)

Page 36: 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.

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 .

Page 37: 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.

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

Page 38: 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.

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

Page 39: 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.

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

Page 40: 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.

Slide 40

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

Page 41: 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.

Slide 41

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

Page 42: 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.

Slide 42

Fusione di transizioni, etichette parametriche

Page 43: 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.

Slide 43

Predicate-Transition (PrT) net finale

Un posto modella una relazioneUn token modella un elemento della relazioneUna transizione modella un cambiamento nelle relazioni

[[ ]]

[[ ]][[ ]]

[[ ]]