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.