Le reti di Petri P/T (Posti/Transizioni)
Transcript
Le reti di Petri P/T (Posti/Transizioni)
Le reti di Petri P/T (Posti/Transizioni) Rete di Petri P/T (Posti/Transizioni) - rappresentazione grafica Elementi costitutivi Esempio Posto P1 Transizione T1 Arco 2 Peso (1 se omesso) w Marca (o Token) Una rete di Petri è dunque un grafo bipartito, i cui nodi sono i posti e le transizioni. P2 T2 P3 T3 P4 P5 2 T4 Rete di Petri P/T (Posti/Transizioni) - definizione Definizione della rete E’ la quintupla (P,T,F,W,M 0), dove P è l’insieme dei posti (finito) P = {Pi}, i=1,2,…|P|, |P|<∞ ∞ T è l’insieme delle transizioni Esempio P1 T1 2 (finito e disgiunto da P) T = {Tk}, k=1,2,…|T|, |T|<∞ ∞, P∩ ∩T=∅ ∅ Nota: P∪ ∪T≠∅ ≠∅, ovvero in una rete ci dev’essere almeno un posto o una transizione F è la relazione di flusso (dice quali coppie ordinate P,T o T,P - non P,P né T,T - sono connesse da un arco, e dice quindi il verso dell’arco) F ⊆ T× ×P ∪ P× ×T W è la funzione peso P2 T2 T3 P4 P5 (associa ad ogni arco un numero intero positivo) 2 W:F→ N-{0} M0 è la funzione marcatura iniziale (dice quanti gettoni ci sono all’inizio in ogni posto) M0:P→ N P3 T4 Rete di Petri P/T (Posti/Transizioni) - preset e postset Preset Detto n un nodo della rete (posto oppure transizione), il suo preset è l’insieme dei nodi dai quali parte un arco che arriva a n. Il preset di n s’indica con pre(n) o •n. Esempio P1 T1Postset 2 di T1 P3 Postset Detto n un nodo della rete (posto oppure transizione), il suo postset è l’insieme dei nodi ai quali arriva un arco che parte da n. Il postset di n s’indica con post(n) o n• •. Osservazione Poiché la relazione di flusso F connette posti a transizioni (o viceversa) e non posti a posti né transizioni a transizioni, il preset ed il postset di un posto sono composti di sole transizioni, mentre il preset ed il postset di una transizione sono fatti di soli posti. P2 T2 T3 P4 P5 2 Preset T4 di P1 Rete di Petri P/T (Posti/Transizioni) - evoluzione Abilitazione di una transizione Una transizione è abilitata se tutti i posti del suo preset contengono un numero di token almeno pari al peso dell’arco che li connette alla transizione. Esempi di transizioni abilitate 2 3 2 Esempi di transizioni non abilitate 2 3 2 Rete di Petri P/T (Posti/Transizioni) - evoluzione Scatto di una transizione Lo scatto di una transizione provoca la rimozione da ogni posto a monte (cioè nel suo preset) e l’aggiunta ad ogni posto a valle (cioè nel suo postset) di un numero di gettoni pari al peso degli archi che la collegano a tali posti. La marcatura di tutti i posti che non siano né di ingresso né di uscita alla transizione rimane inalterata. Esempio 1 2 Situazione di partenza 2 2 Rimozione dei token Aggiunta dei token al dal preset postset → situazione d’arrivo Esempio 2 2 3 2 3 Rete di Petri P/T (Posti/Transizioni) - evoluzione Osservazione importante sullo scatto di una transizione Lungo l’evoluzione della rete, lo scatto delle transizioni provoca un “flusso” di token. Tuttavia, per usare bene le reti al fine di descrivere sistemi fisici, che è quanto ci interessa, non è bene pensare (come invece si potrebb’essere portati a fare) che i token “attraversino” la transizione. E’ molto più corretto pensare che i token tolti dai posti di preset scompaiano e che si creino token nei posti di postset (che infatti possono essere persino in numero diverso). Riconsideriamo l’esempio 1 e diamogli un “senso fisico”: Con 1kg di farina (preso da un magazzino che ne contiene 1kg) P2 P1 P3 2 T1 P2 si produce una P1 scatola di P3 2 tagliatelle, la quale finisce in T1 un magazzino che prima era vuoto: adesso il magazzino della farina è vuoto e quello delle uova ne contiene solo uno. e due uova (prese da un magazzino che ne contiene tre) Significato di posti, transizioni e token P1 = magazzino farina Token in P1 = 1kg di farina P2 = magazzino uova Token in P2 = 1 uovo Token in P3 = 1 scatola di tagliatelle T1 = produzione di 1 scatola di tagliatelle P3 = magazzino scatole di tagliatelle Rete di Petri P/T (Posti/Transizioni) - evoluzione Non determinismo La regola di scatto non è sufficiente a determinare compiutamente l’evoluzione di una rete perché, in una generica marcatura, può accadere che più transizioni risultino abilitate allo scatto (e chiaramente se si sceglie di farne scattare certune o certe altre l’evoluzione futura della rete non è la stessa). Nelle reti P/T standard, cioè quelle trattate nel corso, viene adottata per la determinazione della transizione da far scattare la seguente regola: Si consideri una rete P/T con marcatura corrente M e sia S l’insieme delle transizioni abilitate in M: solamente una transizione di S viene scelta, a caso, per lo scatto. Osservazioni Il criterio di scelta è del tutto non-deterministico Il criterio garantisce il rispetto della località dell’evoluzione del sistema, cioè l’indipendenza degli eventi Una volta che una transizione abilitata scatta, per decidere quale sarà la futura transizione abilitata a scattare si deve attuare una nuova valutazione della rete, in quanto la marcatura creatasi dallo scatto della precedente transizione può aver abilitato nuove transizioni e aver disabilitato alcune di quelle abilitate in precedenza Rete di Petri P/T (Posti/Transizioni) - evoluzione Osservazione importante La questione di come scegliere la transizione da far scattare se ve n’è più d’una abilitata è ancora oggetto di dibattito ed esistono convenzioni diverse. I risultati concettuali che saranno mostrati nel corso s’ottengono con la regola enunciata poc’anzi, ma esiste almeno un’alternativa (peraltro molto diffusa nei programmi per la simulazione di reti di Petri). Quest’alternativa differisce dalla regola di scelta appena enunciata essenzialmente perché se tra le transizioni abilitate ve ne sono alcune che non sono in conflitto tra loro, queste scattano tutte. Quanto a quelle in conflitto, vi sono molte convenzioni diverse: scelta casuale, priorità, e così via. Questa regola di scelta alternativa è molto diffusa perché molto intuitiva, e pertanto è bene sapere che c’è e che molti prodotti per la simulazione l’adottano. Rete di Petri P/T (Posti/Transizioni) - evoluzione Esempio di evoluzione Transizione abilitata Lo scatto della transizione scelta ha disabilitato queste Transizione scelta (a caso) per lo scatto Rete di Petri P/T (Posti/Transizioni) - strutture modellistiche fondamentali Sequenza (a) Due transizioni t1 e t2 si dicono in sequenza e t1 precede t2 in una data marcatura M quando, con t1 abilitata e t2 non abilitata, lo scatto di t1 abilita t2 Conflitto (b) Due transizioni t1 e t2 sono in conflitto strutturale se e solo se hanno almeno un posto d’ingresso in comune. Tuttavia, questo non è sufficiente per decidere se due transizioni sono realmente in conflitto fra loro. Due transizioni t1 e t2 si dicono in conflitto effettivo nella marcatura M se sono in conflitto strutturale, se sono abilitate entrambe in M ed il numero delle marche che i loro posti d’ingresso contengono non è sufficiente a soddisfare tutti i pesi degli archi che li collegano alle due transizioni. Il conflitto strutturale dipende dalla topologia della rete, il conflitto effettivo anche dalla marcatura corrente. Si osservi che il conflitto strutturale non implica che possa verificarsi il conflitto effettivo (la situazione mostrata in figura) Concorrenza (c) (a) (b) (c) Due transizioni t1 e t2 sono fra loro in concorrenza strutturale quando non condividono alcun posto d’ingresso, cioè lo scatto di una delle due transizioni non disabilita l’altra. Si introduce, come nel caso del conflitto, il concetto di concorrenza effettiva, situazione che si presenta solo durante l’evoluzione della rete. Due transizioni t1 e t2 si dicono in concorrenza effettiva nella marcatura M se sono abilitate entrambe in M. Si osservi che la concorrenza strutturale implica che possa verificarsi quella effettiva. Rete di Petri P/T (Posti/Transizioni) - proprietà fondamentali Proprietà delle marcature Raggiungibilità Una marcatura M1 si dice essere raggiungibile a partire da una determinata marcatura M se esiste almeno una sequenza di transizioni tali che facendole scattare a partire da M si ottenga la marcatura M1. L’insieme delle marcature raggiungibili dalla marcatura M è indicato con [M>. Quindi, per indicare che la marcatura M* è raggiungibile da M scriveremo M*∈ ∈[M>. Vivezza Una marcatura M si dice viva se e solo se, scelta una qualsiasi transizione t della rete, da M si può raggiungere una marcatura (che indicheremo con M*) nella quale t è abilitata; in altre parole, una marcatura M è viva se e solo se, facendo evolvere la rete a partire da essa, non vi sono transizioni che non si riesce ad abilitare. Secondo la notazione appena introdotta, infine, scriveremo che la marcatura M è viva se e solo se ∀t∈T ∃M*∈[M> tale che t è abilitata in M*. Rete di Petri P/T (Posti/Transizioni) - proprietà fondamentali Proprietà dei posti k-limitatezza Un posto di una rete si dice k-limitato se in una qualsiasi marcatura raggiungibile della rete il valore della sua marcatura non supera mai un valore prefissato k (cioè se il posto non contiene mai più di k token). Esempio Nella rete mostrata in figura il posto P4 non è limitato, in quanto può avere un numero arbitrariamente grande di marche. Infatti, dalla marcatura iniziale indicata in figura, la sequenza di scatti t1 t2 t3 può avvenire infinite volte, e ad ogni scatto di t1 si accumulano gettoni in P4. Invece i posti P1, P2 e P3 sono tutti 1-limitati. Rete di Petri P/T (Posti/Transizioni) - proprietà fondamentali Proprietà delle transizioni Vivezza Detta M0 la marcatura iniziale di una rete di Petri, una sua transizione t si dice viva se e solo se ∀M∈ ∈[M0> ∃M*∈ ∈[M> tale che t è abilitata in M*, ovvero se e solo se, a partire da una qualsiasi marcatura raggiungibile da quella iniziale, è possibile raggiungere un’altra marcatura dove la transizione è abilitata. Rete di Petri P/T (Posti/Transizioni) - proprietà fondamentali Proprietà della rete Reversibilità Una rete di Petri con marcatura iniziale M0 è detta essere reversibile se, per ogni marcatura M∈ ∈[M0>, M0 è raggiungibile da M. In altre parole, una rete è reversibile se è sempre possibile riportarla nella marcatura iniziale. Home state Uno stato (cioè una marcatura) Mi di una rete di Petri è detto essere un home state della rete se, per ogni marcatura M∈ ∈[M0>, Mi è raggiungibile da M. In altre parole, una marcatura è un home state se è possibile andarci da qualsiasi altra marcatura che la rete possa raggiungere. k-limitatezza Una rete di Petri si dice k-limitata se tutti i suoi posti sono k-limitati. Una rete limitata non può contenere un numero infinito di marche, e quindi ha un numero finito di marcature possibili. Dunque una rete k-limitata è equivalente ad un automa a stati finiti, ed è in questo senso che gli automi sono un caso particolare di rete di Petri. Rete di Petri P/T (Posti/Transizioni) - proprietà fondamentali Proprietà della rete Vivezza (definizione 1) Una rete di Petri è viva se e solo se tutte le marcature raggiungibili dalla marrcatura iniziale sono vive. Vivezza (definizione 2) Una rete di Petri è viva se e solo se tutte le sue transizioni sono vive. Osservazione Una transizione t si dice viva se da qualunque marcatura raggiungibile della rete è possibile raggiungerne un’altra in cui la transizione t è abilitata. Chiaramente, se la transizione t scatta (può farlo dato che è abilitata), si raggiunge una marcatura M^ della rete che è per definizione raggiungibile da quella iniziale; pertanto, M^ ricade nella definizione di transizione viva. Quindi la transizione viva deve poter scattare ancora a partire da M^, ad esempio raggiungendo un’altra marcatura M^^ che la abilita di nuovo, e così via. Si deduce quindi che in una rete viva tutte le transizioni possono scattare infinite volte qualunque sia la marcatura raggiungibile dalla marcatura iniziale. La vivezza è dunque una condizione molto forte. Non è possibile infatti stabilire condizioni necessarie e sufficienti per la vivezza per reti generiche. Rete di Petri P/T (Posti/Transizioni) - rappresentazione matriciale o algebrica Premessa Oltre alla comoda rappresentazione grafica, le reti di Petri sono dotate anche di una relativamente semplice rappresentazione matematica. Tale rappresentazione, detta matriciale o algebrica, può essere utile per eseguire analisi automatiche della rete, al fine di verificare il soddisfacimento di alcune proprietà di base. Esempio P1 La rappresentazione algebrica delle reti di Petri si basa sui concetti di •Matrice d’ingresso •Matrice d’uscita •Matrice d’incidenza •Vettore marcatura •Sequenza di scatti •Vettore delle occorrenze Inoltre, con tale rappresentazione si può descrivere l’evoluzione di una rete di Petri in termini di equazione di stato, cioè in modo molto simile a come si descrive l’evoluzione di un qualunque sistema dinamico. T1 2 P2 T2 P3 T3 P4 P5 2 T4 Rete di Petri P/T (Posti/Transizioni) - rappresentazione matriciale o algebrica Matrice d’ingresso Esempio La matrice d’ingresso I ha |P| righe (una cioè per ogni posto della rete) e |T| colonne (una per ogni transizione della rete). Il suo elemento di posizione (k,j) vale quanto il peso dell’arco che va dal posto k alla transizione j se quest’arco c’è, se no vale zero. La matrice I è dunque definita come P1 I|P|,|T| con I(k,j)=W(pk,tj) ∀(pk,tj)∈ ∈F, I(k,j)=0 ∀(pk,tj)∉ ∉F. T1 T2 T3 T4 I= 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 2 T1 2 P2 T2 P3 T3 P1 P2 P4 P5 P3 2 P4 P5 T4 Rete di Petri P/T (Posti/Transizioni) - rappresentazione matriciale o algebrica Matrice d’uscita Esempio La matrice d’uscita O ha |P| righe (una cioè per ogni posto della rete) e |T| colonne (una per ogni transizione della rete). Il suo elemento di posizione (k,j) vale quanto il peso dell’arco che va dalla transizione k al posto j se quest’arco c’è, se no vale zero. La matrice O è dunque definita come P1 O|P|,|T| con I(k,j)=W(tk,pj) ∀(tk,pj)∈ ∈F, I(k,j)=0 ∀(tk,pj)∉ ∉F. T1 T2 T3 T4 O= 0 1 2 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 T1 2 P2 T2 P3 T3 P1 P2 P4 P5 P3 2 P4 P5 T4 Rete di Petri P/T (Posti/Transizioni) - rappresentazione matriciale o algebrica Matrice d’incidenza La matrice d’incidenza C ha |P| righe (una cioè per ogni posto della rete) e |T| colonne (una per ogni transizione della rete). Essa è definita come Esempio P1 T1 C=O-I 2 P2 T1 T2 T3 T4 C= -1 0 0 1 1 -1 0 0 2 0 -1 0 0 1 0 -1 0 0 1 -2 T2 P3 T3 P1 P2 P4 P5 P3 2 P4 P5 T4 Rete di Petri P/T (Posti/Transizioni) - rappresentazione matriciale o algebrica Matrice d’incidenza Osservazione La matrice di incidenza non contiene tutte le informazioni che sono contenute nelle singole matrici I ed O. Infatti, è immediato notare che se per qualche valore degli indici i e j si verificasse che O(i,j)=I(i,j), ovvero se il posto i-esimo fosse collegato con la transizione j-esima da due archi di direzione opposta e stesso peso, risulterebbe C(i,j)=0. Quindi, tale situazione si confonderebbe con quella in cui il posto i e la transizione j non fossero collegati. Analoghe considerazioni valgono se gli archi che collegano un posto e una transizione hanno direzione opposta e peso diverso. La struttura costituita da un posto e una transizione collegate da due archi di direzione opposta prende il nome di autoanello. Le reti prive di autoanelli, cioè prive di posti che sono contemporaneamente di ingresso e di uscita ad una stessa transizione, sono dette reti pure. Per esse, le matrici di ingresso e uscita hanno elementi non nulli in posizioni mutuamente esclusive. Per esse, pertanto, l'utilizzo della matrice di incidenza è equivalente all’uso delle singole matrici d’ingresso e d’uscita. Rete di Petri P/T (Posti/Transizioni) - rappresentazione matriciale o algebrica Vettore marcatura Data una rete con marcatura M, si definisce il vettore marcatura m come il vettore colonna di dimensione |P| le cui componenti sono valori interi non negativi che rappresentano il numero di marche contenute in ogni posto della rete. Il vettore m è pertanto definito come Esempio P1 T1 m=[m1 m2 .. m|P| ]’, con mi=M(pi), i=1,2,..,|P|. 2 P2 m= 2 0 0 1 0 T2 P3 T3 P1 P2 P4 P5 P3 2 P4 P5 T4 Rete di Petri P/T (Posti/Transizioni) - rappresentazione matriciale o algebrica Vettore marcatura Osservazione Con la definizione del vettore marcatura e di matrice di incidenza, i concetti di abilitazione e di scatto di una transizione possono essere riformulati in modo molto semplice ed intuitivo. Se infatti evidenziamo le |T| colonne nelle matrici I,O e C scrivendo che I=[I1 I2 .. I|T |], O=[O1 O2 .. O |T|], C=[C1 C2 .. C|T| ], allora la condizione di abilitazione della transizione i-esima nella marcatura M diventa semplicemente M ≥ Ii ovvero il fatto che in M vi siano, nei posti di preset per la transizione i-esima, almeno tante marche quant’è il peso dell’arco tra ognuno dei primi e la seconda. Inoltre, lo scatto della transizione i-esima a partire dalla marcatura M produce una nuova marcatura M* che si calcola facilmente come M* = M - Ii + Oi = M + Ci Rete di Petri P/T (Posti/Transizioni) - rappresentazione matriciale o algebrica Sequenza di scatti Una sequenza di scatti abilitata in una marcatura M0 è una sequenza di transizioni ti , 1 ≤ i ≤ n, n∈ ∈N-{0} , tali che t1 è abilitata in M0 e lo scatto di t i porta in una marcatura in cui ti+1 è abilitata. Osserviamo che una qualunque sequenza di transizioni non è in generale una sequenza di scatti. Infatti non è detto che data una sequenza di transizioni si riesca a trovare una sequenza di marcature abilitanti le transizioni di detta sequenza. Per sottolineare il fatto che esista o non esista tale sequenza di marcature ed evitare confusioni, si dirà, quando occorre, che una sequenza di scatti è o non è ammissibile. Vettore delle occorrenze Il vettore delle occorrenze s, associato ad una sequenza di scatti S, è un vettore colonna di dimensioni |T|, la cui componente generica si è pari al numero delle occorrenze della transizione ti nella sequenza S. Rete di Petri P/T (Posti/Transizioni) - rappresentazione matriciale o algebrica Equazione di stato Dalle definizioni e osservazioni fatte precedentemente è possibile giungere ad una formulazione molto compatta dell’evoluzione di una rete di Petri, in termini del tutto simili a quella di un qualunque sistema dinamico. Ad una rappresentazione siffatta si dà il nome di equazione di stato, in quanto serve a calcolare lo “stato successivo” (cioè la marcatura) di una rete nota la marcatura precedente e l’evento (lo scatto di una transizione) avvenuto. Si supponga infatti che M 0 sia la marcatura corrente di una data rete con matrice di incidenza C, e si supponga inoltre che sia possibile applicare una certa sequenza di scatti S, con vettore delle occorrenze s. Sia M 1 la marcatura raggiunta dopo l’applicazione della sequenza S. Si può facilemente osservare che M1 = M0 + Cs Quest’equazione governa l’evoluzione della rete in quanto dice, noto lo stato iniziale (la marcatura iniziale M 0) e noti gli eventi avvenuti dall’inizio ad ora (la sequenza S, che ovviamente deve essere ammissibile), qual è lo stato attuale (la marcatura M1). E’ un’equazione lineare ed ha una fortissima analogia con la legge di evoluzione dei sistemi dinamici. Rete di Petri P/T (Posti/Transizioni) - rappresentazione matriciale o algebrica Insieme di raggiungibilità Si definisce insieme di raggiungibilità R(N,M0) di una rete N con marcatura iniziale M 0 l’insieme più piccolo di marcature tale da comprendere M 0 e da contenere soltanto marcature dalle quali, con lo scatto di un’opportuna transizione, si va in un’altra marcatura appartenente all’insieme. In altre parole, R(N,M0) è l’insieme di tutte le marcature che possono essere raggiunte partendo da M 0 e con una sequenza di scatti ammisssibile Grafo di raggiungibilità Si definisce grafo di raggiungibilità di una rete N con marcatura iniziale M0 il grafo i cui nodi sono associati agli elementi di R(N,M0) ed i cui archi sono associati alle transizioni che portano da una marcatura ad un’altra di R(N,M0). Esempio Le reti di Petri (P/T) come formalismo per la modellistica e l’analisi dei DES - introduzione I motivi che rendono interessanti le reti di Petri sono molteplici: Sono dotate di una rappresentazione grafica molto spontanea, che ne facilita l’uso anche con strumenti dedicati assistiti da calcolatore. Rappresentano un’estensione significativa degli automi. Infatti, le reti di Petri (come vedremo) possono rappresentare in modo compatto concetti generali quali sincronizzazione tra processi, il succedersi asincrono di eventi, operazioni concorrenti, conflitti e condivisione di risorse. Gli automi non riescono a rappresentare sistemi ad infiniti stati con un numero finito di nodi, mentre le reti di Petri consentono di rappresentare sinteticamente tali sistemi anche tramite un grafo con un numero finito di nodi. In una rete di Petri lo stato di un sistema e la transizione di stato sono concetti distribuiti: ogni stato complessivo della rete è interpretabile come composto da più stati parziali ed indipendenti relativi a sottoreti. Analogamente, una transizione in generale si limita a influenzare solo una parte dello stato complessivo. Al contrario, negli automi a stati finiti lo stato del sistema viene sempre considerato nel suo complesso e per di più le transizioni di stato possibili sono tra loro mutuamente esclusive. Le reti di Petri si prestano a rappresentare in modo naturale sistemi asincroni (gli eventi non sono vincolati ad accadere secondo una frequenza ben definita): infatti in una rete non è possibile forzare una transizione a scattare qualora in un data configurazione ve ne sia più d’una abilitate a farlo. Le reti di Petri (P/T) come formalismo per la modellistica e l’analisi dei DES - introduzione Caratteristiche fondamentali dei DES: Variabili (di stato) “lessicali” Evoluzione guidata dagli eventi Caratteristiche di molti sistemi fisici che, a fini di controllo, si ha interesse a descrivere tramite DES: Molte variabili di stato, relative a “parti” diverse del sistema Possibilità che vi siano infiniti stati Si è visto che queste caratteristiche tendono a rendere inadatti, come formalismo descrittivo, gli automi (a stati finiti) Si è introdotta una loro generalizzazione (le reti di Petri) … è giunto il momento d’introdurre un possibile modo di usare le reti di Petri per descrivere i DES e di rendersi conto dei vantaggi che ne derivano Le reti di Petri (P/T) come formalismo per la modellistica e l’analisi dei DES Un possibile parallelo con la marcatura della rete (ruolo dei posti) Marcatura della rete ↔ stato del DES Le variabili di stato dei DES possono essere booleane o riconducibili a booleane assumere un numero finito di valori “lessicali” Risorsa occupata Pezzo assente Interrurrore aperto ... Risorsa disponibile Pezzo presente Interrurrore chiuso ... I comandi sono dati (ad esempio da un regolatore) “depositando” token Comando nei tre posti ove arrivano “vai a destra” gli archi marroni Comando “vai a sinistra” In moto verso sinistra Stato del carrello assumere una infinità numerabile di valori Posto con capacità 1 In moto verso destra Fermo Comando “ferma” Numero di pezzi in coda Contatore pezzi finiti ... Con un automa (a stati finiti) questo non si potrebbe descrivere Insieme di posti (uno per valore) di cui solo 1 ha una marca Posto (con capacità limitata se occorre) Le reti di Petri (P/T) come formalismo per la modellistica e l’analisi dei DES Un possibile parallelo con l’evoluzione della rete (ruolo delle transizioni) Scatto di una transizione ↔ evento che accade nel DES Lo scatto di una transizione modifica la marcatura della rete localmente, come del resto un evento (nella grande maggioranza dei casi) modifica localmente lo stato del sistema fisico (e dunque del DES che lo descrive). Questa considerazione porta ad individuare due importantissime caratteristiche delle reti di Petri: Eventi Pezzo presente Pezzo in lavorazione (macchina occupata) Pezzo finito Macchina disponibile Inizio lavorazione Fine lavorazione 1. Leggibilità locale Guardando una zona della rete è semplice “leggere” lo stato della “zona corrispondente” del sistema descritto. Con gli automi non è così: lo stato è una sola “parola” che ha in sé il valore di tutte le variabili di stato, e la rappresentazione grafica di un automa non mostra affatto le “zone” del sistema fisico ch’esso descrive. Le reti di Petri (P/T) come formalismo per la modellistica e l’analisi dei DES Un possibile parallelo con l’evoluzione della rete (ruolo delle transizioni) Scatto di una transizione ↔ evento che accade nel DES Lo scatto di una transizione modifica la marcatura della rete localmente, come del resto un evento (nella grande maggioranza dei casi) modifica localmente lo stato del sistema fisico (e dunque del DES che lo descrive). Questa considerazione porta ad individuare due importantissime caratteristiche delle reti di Petri: Macchina disponibile Pezzo presente Inizio lavorazione Pezzo in lavorazione (macchina occupata) Fine lavorazione Pezzo finito Fine pulitura macchina Nuovi 2. Scalabilità del livello di dettaglio eventi Volendo dettagliare maggiormente la Macchina in fase di pulitura Inizio pulitura macchina Macchina pronta per la pulitura Robot di pulitura disponibile descrizione del sistema, con le reti di Petri si debbono fare solo modifiche locali e di solito di complessità paragonabile al maggior dettaglio desiderato. Con gli automi non è così: aggiungere un nuovo valore per una variabile e/o un nuovo evento aumenta il numero di stati complessivi e complica di molto la descrizione (cioè il modello). Nuovi valori della variabile “stato macchina” Le reti di Petri (P/T) come formalismo per la modellistica e l’analisi dei DES Esempio di applicazione dei concetti esposti … e se la macchina dovesse lavorare pezzi provenienti da due linee A e B? Disponibile Pezzo A presente Inizio lav. A Lavorazione pezzo A Fine lav. A Magazzino pezzi A finiti Lavora A Lavora B Pronta per In la pulitura pulitura Stato della macchina Pezzo B presente Inizio lav. B Lavorazione pezzo B Fine lav. B Magazzino pezzi B finiti Robot di pulitura disponibile Le reti di Petri (P/T) come formalismo per la modellistica e l’analisi dei DES Esempio di applicazione dei concetti esposti … e se il robot di pulitura dovesse anche scaricare i pezzi dalle macchine? Disponibile Lavora A Lavora B Pezzo A presente Pezzo B presente Stato della macchina Scarica Disponibile B Scarica Pulisce la macchina A Inizio lav. B Inizio lav. A Lavorazione pezzo B Lavorazione pezzo A Stato del robot Fine lav. B Fine lav. A Pezzo A finito Pronta per In la pulitura pulitura Magazzino pezzi B finiti Pezzo B finito B in fase di scarico A in fase di scarico Magazzino pezzi A finiti Le reti di Petri (P/T) come formalismo per la modellistica e l’analisi dei DES Si possono ora trarre alcune conclusioni: Si è individuato un modo per usare il formalismo delle reti di Petri particolarmente adatto a descrivere il tipo di DES con cui s’ha a che fare nei problemi d’automazione: Marcatura ↔ Stato del DES Posti o insiemi di posti ↔ Variabili di stato Scatto delle transizioni ↔ Eventi Transizioni ↔ Cambi di stato del sistema Si è visto (e allenandosi ad usare il formalismo si capirà sempre meglio) che con questa “politica d’uso” delle reti di Petri Il modello di un DES si scrive facilmente “pezzo per pezzo”, anche se il sistema da modellare è di grandi dimensioni Il modello che s’ottiene è molto ben leggibile e conserva anche visualmente informazioni su quale parte di esso fa riferimento a quale parte del sistema Le reti di Petri (P/T) come formalismo per la modellistica e l’analisi dei DES Soprattutto, però, va notato quanto segue: Con le reti di Petri, nella loro rappresentazione algebrica, si possono “fare conti” Con questi conti si possono verificare e/o imporre proprietà della rete in modo indipendente dalle dimensioni del problema Quindi: Quando si sarà capaci di tradurre i propri “desideri” sul comportamento del sistema in proprietà della rete (cosa che s’imparerà nel seguito del corso) si potrà affrontare un problema di controllo di DES, indipendentemente dalla sua dimensione, nel modo seguente: Uso del modello complessivo Sintesi del regolatore (RdP) Eventuale simulazione del sistema controllato Comportamento desiderato Scrittura “pezzo per pezzo” Sistema fisico Modello (RdP) … all’implementazione del regolatore Rete di Petri P/T (Posti/Transizioni) - conclusioni Dopo questa lezione sarà necessario che gli allievi si familiarizzino con le descrizioni grafica ed algebrica delle reti di Petri comprendano bene le proprietà enunciate in astratto ed il loro significato Il successivo sviluppo del corso li porterà a prendere confidenza con l’uso delle reti di Petri P/T per descrivere situazioni fisiche riconoscere in quest’uso dei “casi tipici” interessanti conoscere altre utili proprietà delle reti di Petri correlare tutte queste proprietà astratte delle reti a caratteristiche del sistema modellato e della sua evoluzione … a quel punto, si potrà entrare nel vivo del problema di controllo dei DES. Esempi Esempio 1 Plastico ferroviario con un incrocio e due treni Treno B Incrocio Si vuole scrivere un modello del sistema in termini di RdP per la gestione d’un semaforo atto ad evitare collisioni in corrispondenza dell’incrocio. Si assuma che i treni viaggino sempre nel verso indicato dalle frecce. Treno A Modello Comportamento desiderato Incrocio Entrato treno da sx Entrato treno da dx Il posto “Incrocio” non deve mai contenere più di un token. Esempio 1 Plastico ferroviario con un incrocio e due treni Incrocio libero Modello controllato Semafori all’ingresso dell’incrocio: verdi se il posto “Incrocio libero” è marcato, rossi se non lo è. Incrocio Entrato treno da sx Entrato treno da dx Concetti appresi Il comportamento desiderato è stato espresso come vincolo sulla marcatura (non più di una marca nel posto che rappresenta l’incrocio). Si è dunque posto e risolto un problema di stati vietati (forbidden-state). L’incrocio è dunque un esempio di risorsa condivisa. Il controllore opera permettendo o impedendo lo scatto di certe transizioni (nel caso presente le due d’ingresso dei treni nell’incrocio) avendo rilevato la marcatura della rete (nel caso presente, vedendo scattare una transizione d’ingresso all’incrocio, esso “sa” che questo è occupato da un treno, mentre vedendo scattare una delle due d’uscita “sa” che si è liberato). Esempio 2 Plastico ferroviario con un incrocio e (almeno) due treni Il problema è lo stesso ma con più di due treni, col che ai semafori si possono formare delle code (in realtà poteva succedere anche prima, se si fosse previsto che i treni potessero fermarsi lungo il percorso talché uno potesse raggiungere l’altro, ma non lo si è considerato per semplicità). Modello Coda dx Coda sx Incrocio Entrato treno da sx Nota Entrato treno da dx Comportamento desiderato Il posto “Incrocio” non deve mai contenere più di un token. Inoltre, se vi sono treni in coda da tutt’e due le parti, ne deve entrare uno da sx, poi uno da dx, poi uno da sx e così via. Alla presenza di più token nell’incrocio si dà il significato di collisione, mentre alla presenza di più token nei posti “Coda” si dà appunto il significato di treni in coda: come si vede, il modello dipende dal problema... Esempio 2 Plastico ferroviario con un incrocio e (almeno) due treni Modello controllato Semafori all’ingresso dell’incrocio: verdi se il posto “Incrocio libero” è marcato e se vi è il consenso all’ingresso da quel lato, se no rossi. Sequenza d'ingresso (1 treno da sx e 1 da dx) Coda dx Coda sx Incrocio Entrato treno da sx Entrato treno da dx Concetti appresi Il comportamento desiderato è stato espresso come vincolo sulla marcatura (problema forbidden-state) e come sequenza desiderata di scatti nel rispetto del vincolo sulla marcatura (problema di sequenziamento). La gestione delle risorse condivise è dunque un problema duplice: evitare le “collisioni” (in senso lato) e gestire le richieste concorrenti. Questo è un problema tipico e si riconduce, come moltissimi altri, alla risoluzione di un problema di stati vietati (che non dice nulla sull’ordine con cui saranno soddisfatte le richieste d’uso della risorsa, limitandosi a non farle collidere) seguito da uno di sequenziamento. Esempio 3 Come l’esempio 2, ma con un approccio meno “ingenuo” Modello Il posto nero “Incrocio”, a rigore, è inutile: lo stato della risorsa condivisa può benissimo essere rappresentato con i due soli posti rossi (è libera se nessuno dei due è marcato). Coda dx Coda sx Incrocio Entrato treno da sx Entrato treno da dx Si osservi che la prima parte del problema (evitare le collisioni) è ancora un problema forbidden-state: stavolta, lo stato vietato è quello con ambedue i posti rossi marcati. Concetti appresi Nel modellare una risorsa condivisa, spesso è bene pensare di far corrispondere i posti che la descrivono non tanto agli oggetti fisici che la compongono (il “tratto di binari” prima rappresentato dal posto nero “Incrocio”), ma agli stati ch’essa puo assumere (disponibile, impegnata e - se del caso - impegnata da chi). Esempio 3 Come l’esempio 2, ma con un approccio meno “ingenuo” Modello controllato Sequenza d'ingresso (1 treno da sx e 1 da dx) A rigore, ed è facile rendersene Coda dx Coda sx conto, anche il posto e gli archi blu sono inutili: i posti e gli archi Libero verdi basterebbero ad imporre il comportamento desiderato. Entrato treno da sx Entrato treno da dx Tuttavia, lasciare la parte blu ha Incrocio un senso: quello di separare la parte di regolatore che “vieta gli stati vietati” da quella che impone le sequenze desiderate. Così facendo si potrà poi cambiare la logica di sequenziamento se lo si desidera, con la certezza però che gli stati vietati restino tali. Concetti appresi Nel gestire una risorsa condivisa, spesso è bene introdurre posti (che diverranno parte del regolatore) in modo che nella rete complessiva vi sia un posto per ogni possibile stato della risorsa, cioè per ognuno degli stati che sono d’interesse ai fini del problema di controllo e che la risorsa deve assumere in modo mutuamente esclusivo (il posto blu è lo stato “libero” dell’incrocio). Questo semplifica di molto il problema della gestione delle collisioni, e spesso di fatto lo risolve.