12.07.2015 Views

Appunti sulle Reti di Petri

Appunti sulle Reti di Petri

Appunti sulle Reti di Petri

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Appunti</strong> <strong>sulle</strong> <strong>Reti</strong> <strong>di</strong> <strong>Petri</strong>Marco Liverani ∗13 maggio 20041 IntroduzioneLe <strong>Reti</strong> <strong>di</strong> <strong>Petri</strong>, proposte nel 1962 da Carl Adam <strong>Petri</strong>, sono uno strumento per la modellizzazione<strong>di</strong> processi ed in particolare per la modellizzazione delle comunicazionie delle interazioni fra processi paralleli. Nella descrizione <strong>di</strong> un processo (produttivo,organizzativo, ecc.) spesso si ha la necessità <strong>di</strong> rappresentare sottoprocessi o attività chepossono essere eseguite contemporaneamente, in parallelo fra loro, ma non in<strong>di</strong>pendentementel’una dall’altra: potrebbe accadere che un determinato passaggio o una certafase del processo non possa verificarsi o non possa essere attivata fintanto che altre fasio attività non sono concluse o fino al verificarsi <strong>di</strong> determinate con<strong>di</strong>zioni. Per chiariremeglio questo aspetto <strong>di</strong>ciamo che, ad esempio, situazioni <strong>di</strong> qusto tipo non possonoessere descritte me<strong>di</strong>ante un <strong>di</strong>agramma <strong>di</strong> flusso, come quelli utilizzati correntementeper la descrizione <strong>di</strong> un algoritmo nell’ambito della programmazione strutturata. In un<strong>di</strong>agramma <strong>di</strong> flusso le attività sono rigidamente serializzate: due rami <strong>di</strong>stinti <strong>di</strong> un <strong>di</strong>agramma<strong>di</strong> flusso non vengono mai “percorsi” contemporaneamente, ma rappresentanodue strade alternative scelte secondo un criterio rigidamente deterministico <strong>di</strong>pendentedall’esito della valutazione <strong>di</strong> una espressione booleana. Con le <strong>Reti</strong> <strong>di</strong> <strong>Petri</strong> questolimite (la serializzazione degli step del proce<strong>di</strong>mento) viene superato, ma viene ancheintrodotto un formalismo grafico e semantico che permette <strong>di</strong> aggiungere una “<strong>di</strong>mensione”ulteriore alle <strong>Reti</strong> <strong>di</strong> <strong>Petri</strong> rispetto ai <strong>di</strong>agrammi <strong>di</strong> flusso. Le RdP infatti non solopermettono <strong>di</strong> rappresentare e <strong>di</strong> descrivere globalmente un processo, ma consentonoanche <strong>di</strong> seguirne l’evoluzione permettendo <strong>di</strong> visualizzare lo stato in cui si trova in uncerto istante la rete.Ad esempio, supponiamo <strong>di</strong> voler descrivere il processo per la preparazione <strong>di</strong>un piatto <strong>di</strong> spaghetti al pomodoro. Il proce<strong>di</strong>mento può essere rappresentato con ilseguente algoritmo:1. soffriggi la cipolla2. quando il soffritto è pronto aggiungi il pomodoro3. quando il sugo è cotto metti a bollire l’acqua4. quando l’acqua bolle aggiungi il sale5. butta gli spaghetti nell’acqua bollente6. atten<strong>di</strong> 8 minuti7. scola gli spaghetti8. con<strong>di</strong>sci gli spaghetti con il sugo∗ liverani@mat.uniroma3.it1


Soffritto✏✏✮✗✔Stato iniziale✏ ✏ ✖✕ Bollitura✗✔ ❄Soffritto ok✖✕❄Cottura sugo✗✔ ❄✉ Sugo pronto✖✕ ✏✏✮Con<strong>di</strong>mento✗✔ ❄✉ Acqua bolle✖✕❄Cottura pasta✗✔ ❄Cottura ultimata✖✕✏ ✏✗✔ ❄Stato finale✖✕Figura 1: Processo <strong>di</strong> preparazione degli spaghetti al pomodoroIl grosso limite <strong>di</strong> questa descrizione (un po’ approssimativa) del proce<strong>di</strong>mento è chesicuramente finiremo per mangiare gli spaghetti con il sugo freddo. Questo processomette in evidenza <strong>di</strong>versi aspetti che non si prestano bene ad essere rappresentati con unalgoritmo strettamente seriale. Ad esempio esisono delle fasi rigidamente sequenziali(non posso iniziare la cottura della salsa <strong>di</strong> pomodoro fino a quando il soffritto non èpronto), mentre ne esistono altre fra loro in<strong>di</strong>pendenti e che possono essere facilmenteparallelizzate (la cottura del sugo e degli spaghetti), ed altre ancora che <strong>di</strong>pendono dalcompletamento <strong>di</strong> più fasi tra loro in<strong>di</strong>pendenti (non posso con<strong>di</strong>re gli spaghetti fino aquando non è completata la preparazione del sugo e la cottura della pasta).2 Definizione e rappresentazione graficaUna Rete <strong>di</strong> <strong>Petri</strong> è un grafo che consiste <strong>di</strong> posti, transizioni ed archi che li collegano;gli archi <strong>di</strong> input collegano i posti con le transizioni, mentre gli archi <strong>di</strong> output colleganole transizioni con i posti.In modo più preciso possiamo <strong>di</strong>re che una Rete <strong>di</strong> <strong>Petri</strong> è un grafo orientato bipartitoG = (S,T ;E), dove (S,T ) è una partizione dell’insieme dei vertici del grafo ed E èl’insieme degli spigoli <strong>di</strong> G, composto da coppie <strong>di</strong> vertici rispettivamente <strong>di</strong> S (i postie <strong>di</strong> T (le transizioni): E = {(u,v) : u ∈ S e v ∈ T oppure u ∈ T e v ∈ S}.Nella rappresentazione grafica della rete i posti, vertici <strong>di</strong> S, saranno rappresentaticon dei cerchi, mentre le transizioni, vertici <strong>di</strong> T , saranno rappresentati con dei rettangoli.Rifacendoci all’esempio della preparazione degli spaghetti al pomodoro, lo stessoproce<strong>di</strong>mento può essere descritto con una Rete <strong>di</strong> <strong>Petri</strong> rappresentata dal grafo riportatoin figura 1.Lo stato della rete in<strong>di</strong>ca una sua configurazione in un determinato istante dell’esecu-Grafo bipartito <strong>di</strong>posti e transizioni2


3 Notazione matriciale ed equazione <strong>di</strong> statoUna Rete <strong>di</strong> <strong>Petri</strong> può anche essere rappresentata me<strong>di</strong>ante una notazione matriciale,al pari <strong>di</strong> come possono essere rappresentati i grafi me<strong>di</strong>ante matrici <strong>di</strong> a<strong>di</strong>acenza o<strong>di</strong> incidenza. In particolare una Rete <strong>di</strong> <strong>Petri</strong> può essere rappresentata me<strong>di</strong>ante duematrici, <strong>di</strong> ingresso I e <strong>di</strong> uscita O, definite rispettivamente ponendo I s,t = w(s,t) eO t,s = w(t,s), ∀t ∈ T e ∀s ∈ S; con w(u,v) si in<strong>di</strong>ca la capacità dello spigolo (u,v) ∈ E.In altri termini la colonna i-esima della matrice I rappresenta i pesi degli archi entrantinella transizione t i ∈ T , mentre la riga j-esima <strong>di</strong> O rappresenta i pesi degli spigoliuscenti dalla transizione t j ∈ T . Per convenzione si pone I s,t = 0 se (s,t) ∉ E e O t,s = 0se (t,s) ∉ E.La matrice <strong>di</strong> incidenza C <strong>di</strong> una rete è definita ponendo C = O − I. Il vettore <strong>di</strong>marcatura m <strong>di</strong> una rete è il vettore m = (m 1 ,m 2 ,...,m |S| ) le cui componenti m i ≥ 0sono il numero <strong>di</strong> token presenti nel posto i-esimo.Una sequenza <strong>di</strong> scatti s è una sequenza <strong>di</strong> transizioni t i ∈ T tali che t 1 è abilitatadalla marcatura iniziale e lo scatto <strong>di</strong> t i porta ad abilitare la transizione t i+1 ; in<strong>di</strong>cheremola transizione con s = t 1 t 2 ...t n .Il vettore delle occorrenze S associato ad una sequenza <strong>di</strong> scatti è un vettore colonna<strong>di</strong> <strong>di</strong>mensione |T |, S = (s 1 ,s 2 ,...,s |T | ), in cui s i rappresenta il numero <strong>di</strong> volte in cuiavviene la transizione t i nella sequenza <strong>di</strong> scatti s.Sia M 0 la marcatura iniziale della rete e sia C la matrice <strong>di</strong> incidenza. Sia S il vettoredelle occorrenze <strong>di</strong> una sequenza <strong>di</strong> scatti s applicata alla rete e sia M 1 la marcaturaraggiunta dopo tale sequenza <strong>di</strong> scatti (M 0 [S〉M 1 ). Allora risultaNotazione matricialeMatrice <strong>di</strong> incidenzaSequenza <strong>di</strong> scattiVettore delle occorrenzeM 1 = M 0 +CSTale equazione è detta equazione <strong>di</strong> stato della rete: ci permette <strong>di</strong> calcolare lo stato (lamarcatura) successivo <strong>di</strong> una rete nota la marcatura precedente e l’evento (lo scatto <strong>di</strong>una transizione) avvenuto.Equazione <strong>di</strong> stato4 Tipi <strong>di</strong> <strong>Reti</strong> <strong>di</strong> <strong>Petri</strong>In base al significato assegnato ai no<strong>di</strong> del grafo bipartito che rappresenta la rete, possiamo<strong>di</strong>stinguere tipi <strong>di</strong> <strong>Reti</strong> <strong>di</strong> <strong>Petri</strong> <strong>di</strong>fferenti, il cui comportamento e deve essereinterpretato evidenziando alcune importanti <strong>di</strong>fferenze:<strong>Reti</strong> con<strong>di</strong>zioni/eventi In queste reti gli elementi <strong>di</strong> S rappresentano con<strong>di</strong>zioni, mentrei vertici <strong>di</strong> T rappresentano degli eventi; in pratica con questo tipo <strong>di</strong> reti vengonorappresentati sistemi e processi in cui gli eventi si realizzano solo quando tuttele con<strong>di</strong>zioni che li precedono <strong>di</strong>rettamente sono sod<strong>di</strong>sfatte; la realizzazione <strong>di</strong>un evento porta a sod<strong>di</strong>sfare delle con<strong>di</strong>zioni successive alla realizzazione <strong>di</strong> taleevento ed in questo modo la “<strong>di</strong>namica” della rete procede nella sua iterazione.<strong>Reti</strong> posti/transizioni Rispetto alle reti con<strong>di</strong>zioni/eventi le reti posti/transizioni ammettonola presenza <strong>di</strong> più <strong>di</strong> un token nei posti ed anche il numero <strong>di</strong> tokenche transitano sugli archi della rete sono stabiliti sulla base <strong>di</strong> una capacità nonnegativa assegnata agli archi stessi.<strong>Reti</strong> temporizzate e stocastiche In questo tipo <strong>di</strong> reti entra in gioco anche una variabiletempo nel determinare le con<strong>di</strong>zioni con cui si può realizzare una determinata4


transizione nella <strong>di</strong>namica descritta dalla rete. Se la variabile tempo è lagata aduna <strong>di</strong>stribuzione <strong>di</strong> probabilità si parla allora <strong>di</strong> reti stocastiche.Macchina a stati finiti e grafi marcati Una macchina a stati finiti è un caso particolare<strong>di</strong> una Rete <strong>di</strong> <strong>Petri</strong> posti/transizioni G = (S,T ;E) in cui ogni transizione ha unsolo arco entrante ed un solo arco uscente: ∀t ∈ T risulta •t = t• = 1. Viceversai posti s ∈ S possono avere più archi entranti e più archi uscenti.Un grafo marcato G = (S,T ;E) è il duale <strong>di</strong> una macchina a stati: ∀s ∈ S risulta•s = s• = 1, mentre le transizioni t ∈ T possono avere più archi entranti ed uscenti.4.1 <strong>Reti</strong> con<strong>di</strong>zioni/eventiSia G = (S,T ;E) una Rete <strong>di</strong> <strong>Petri</strong> con<strong>di</strong>zioni/eventi, i vertici <strong>di</strong> S sono chiamati con<strong>di</strong>zioni,mentre i vertici <strong>di</strong> T sono detti eventi; un sottoinsieme C ⊆ S è un caso. Diremoche l’evento t ∈ T è abilitato dal caso C (è C-abilitato) se e solo se •t ⊆ C e t • ∩C = /0(se tutte le sue precon<strong>di</strong>zioni sono sod<strong>di</strong>sfatte dal caso C e se tale caso non contienealcuna postcon<strong>di</strong>zione <strong>di</strong> t, cioè le postcon<strong>di</strong>zioni <strong>di</strong> t non contengono alcun token).Se t è abilitato da C e C ′ = (C − •t) ∪t•, allora il caso C ′ segue il caso C dopo chesi è verificato l’evento t; questo si scrive con la seguente notazione: C[t〉C ′ .Nella rappresentazione dello stato <strong>di</strong> una rete con<strong>di</strong>zioni/eventi ogni con<strong>di</strong>zione puòcontenere al più un token, il che in<strong>di</strong>ca che tale con<strong>di</strong>zione è sod<strong>di</strong>sfatta.Un insieme <strong>di</strong> eventi <strong>di</strong>stinti <strong>di</strong> G è un insieme isolato se ogni coppia <strong>di</strong> eventi nonha in comune nessuna precon<strong>di</strong>zione e nessuna postcon<strong>di</strong>zione.4.2 <strong>Reti</strong> posti/transizioniSia G = (S,T ;E) una Rete <strong>di</strong> <strong>Petri</strong> posti/transizioni; i vertici <strong>di</strong> S sono chiamati posti,mentre i vertici <strong>di</strong> T sono detti transizioni. Anche in questo tipo <strong>di</strong> reti uno statoè rappresentato da una assegnazione <strong>di</strong> un certo numero <strong>di</strong> token ai posti; tuttavia,a <strong>di</strong>fferenza delle reti con<strong>di</strong>zioni/eventi, in questo tipo <strong>di</strong> reti un posto ha una certacapacità e può dunque contenere anche più <strong>di</strong> un token. Inoltre possiamo assegnare unacapacità, un peso intero non negativo, agli archi della rete; in tal caso ad ogni passodella “<strong>di</strong>namica” della rete, lungo un arco passano non uno, ma un numero <strong>di</strong> token parialla capacità dell’arco. Dunque cambia il meccanismo che determina la transizione:affinché abbia luogo una certa transizione, devono esserci abbastanza token nei posti <strong>di</strong>•t per saturare la capacità degli archi entranti in t; al tempo stesso i posti in t• devonoavere la capacità sufficiente ad accogliere tali token.Non dobbiamo pensare alla rete come ad un percorso all’interno del quale i token simuovono: i token in<strong>di</strong>cano soltanto se una determinata transizione è abilitata ad avvenire,oppure no. Non c’è alcuna relazione fra il numero dei token che “entrano” in unadeterminata transizione ed il numero dei token che ne escono. In figura 2 è rappresentatauna transizione che dovrebbe aiutare a chiarire questo aspetto: la transizione è abilitatapercheé tutti i posti che la precedono (le sue precon<strong>di</strong>zioni) contengono un numero <strong>di</strong>token tale da saturare la capacità degli archi che li collegano alla transizione (i tokensono 5 e la capacità degli archi è 4); nel momento in cui la transizione “scatta”, nel postosuccessivo alla transizione vengono aggiunti un numero <strong>di</strong> token pari alla capacitàdell’arco (e non pari al numero <strong>di</strong> token “entranti” nella transizione).In una rete posti/transizioni un sifone è un insieme <strong>di</strong> posti S tali che •S ⊆ S•. Unatrappola è al contrario un insieme <strong>di</strong> posti S tale che S• ⊆ •S.5

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!