La composizione concorrente delle reti di Petri

Date due reti di Petri etichettate N1 e N2, la composizione concorrente delle reti N3 si ottiene fondendo le transizioni che hanno la stessa etichetta. $$ L(N_3)= L(N_1)||L(N_2) \\ L_m(N_3)= L_m(N_1)||L_m(N_2) $$

La composizione concorrente di due moduli, sincronizza le transizioni appartenenti a moduli diversi che hanno la stessa etichetta.

Le due transizioni sono fuse in un'unica transizione composta che scatta soltanto se è abilitata da entrambi i moduli.

In questo modo, le transizioni sincronizzate scattano simultaneamente.

Nota. La composizione concorrente può essere realizzata anche con più di due transizioni sincrone.

Un esempio pratico

Ho due reti di Petri etichettate G1 e G2

$$ G_1 = (N_1, l_1, m_{0,1}, F_1 ) $$

$$ G_2 = (N_2, l_2, m_{0,2}, F_2 ) $$

Ecco la rappresentazione grafica dei due moduli

i moduli delle reti di Petri

Ogni modulo ha un linguaggio che associa un'etichetta alle transizioni.

Il linguaggio di Petri del primo modulo è

$$ l_1 (t_1) = a \\ l_1 (t_2) = a $$

Il linguaggio di Petri del secondo modulo è

$$ l_2 (t_3) = a \\ l_2 (t_4) = b $$

Gli stati finali delle reti sono

$$ F_1 = \{ [1 \: 0] \} $$

$$ F_2 = \{ [1 \: 0], [0 \:1] \} $$

A questo punto comincio a costruire la loro composizione concorrente

$$ G = G_1 || G_2 $$

Le transizioni t1, t2 e t3 hanno la stessa etichetta "a".

Quindi, sono sincrone e le posso unire in un'unica transizione composta.

le transizioni t1, t2, t3 hanno le stesse etichette

Nota. Soltanto le coppie t1-t3 e t2-t3 appartengono a moduli diversi. La transizioni t1 e t2 hanno la stessa etichetta ma appartengono alla stesso modulo. In questo caso, quando due transizioni nello stesso modulo hanno la stessa etichetta, devo comporre tutte le possibili combinazioni con le transizioni dell'altro modulo di pari etichetta. Quindi t1-t3 e t2-t3.

Unisco le transizione a coppia.

Comincio con le transizioni t1 e t3. Le unisco in una transizione composta (t1,t3).

unisco le transizioni t1 e t3 in un'unica transizione composta (t1,t3)

Poi fondo le transizioni t2 e t3 in una transizione composta (t2,t3).

la transizione composta (t2,t3)

La marcatura iniziale m0 della composizione concorrente è

$$ m_0 = [1 \: 0 \: 1 \: 0] $$

Nota. Dove le posizioni del vettore m0 indicano le marche nei posti [ p1 p2 p3 p4]. Essendoci due marche, una in p1 e l'altra in p3, il vettore m0 diventa [1 0 1 0]

Gli stati finali sono le possibili combinazioni di F1 e F2.

Il vettore F è composto da due elementi.

$$ F = \{ [1 \: 0 \: 1 \: 0] , [1 \: 0 \: 0 \: 1] \} $$

Nota. Le posizioni del vettore F indicano i posti [ p1 p2 p3 p4]. I due elementi hanno i primi due posti uguali in p1 e p2 perché F1=[1,0]. Il terzo e il quarto posto in p3 e p4 cambia perché F2 è sia [1,0] che [0,1].
la formazione del vettore degli stati finali

La complessità della composizione concorrente

La rete di Petri per composizione concorrente è composta dall'unione dei posti dei moduli

$$ |P|=|P_1|+|P_2| $$

e dalle combinazioni delle transizioni con la stessa etichetta tra i due moduli.

Se ciascun modulo non ha etichette ripetute tra due o più transizioni, il numero delle transizioni è

$$ |T| \le |T_1|+|T_2| $$

Quindi la fusione di k moduli comporta la creazione di n vertici (archi) nel grafo

$$ n = k \cdot (|T_1|+|T_2|) $$

Pertanto, si può affermare che la complessità della rete di Petri composta cresce in modo lineare con il numero k dei moduli che la compongono.

E questo è un bel vantaggio delle reti di Petri perché evita l'esplosione dello spazio degli stati.

Nota. In un generico sistema composto lo spazio degli stati spesso cresce in modo esponenziale. L'uso delle reti di Petri mi permette di evitare questo problema.

Va comunque detto che, se ci sono etichette ripetute in più transizioni in uno stesso modulo diventa molto più complesso.

E così via.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Libri di approfondimento

La teoria dei sistemi