View
27
Download
2
Category
Preview:
DESCRIPTION
idem
Citation preview
Progettazione e Gestione del Software
lez 18reti di petri (cont)
Carlo BellettiniProgettazione e Gestione
del Software
Esercizio
Modellare con una rete di Petri l’accesso ad una risorsa condivisa da parte di 4 lettori e 2 scrittori
i lettori possono accedere simultaneamente alla risorsa
gli scrittori hanno bisogno di accesso esclusivo
Carlo BellettiniProgettazione e Gestione
del Software
Soluzione esercizio
LettoriPronti4
LettoriAttivi
L_inizia
L_finisce
Risorsa
ScrittoriPronti2
ScrittoriAttivi
S_inizia
S_finisce
4
4
4
Carlo BellettiniProgettazione e Gestione
del Software
Grafo raggiungibilità
40420L_finisce
31320
L_inizia
22220
L_finisce
L_inizia
13120
L_finisce
L_inizia
04020
L_finisce
L_inizia
S_finisce
40011S_inizia
?>0??>0
????>1
LettoriPronti4
LettoriAttivi
L_inizia
L_finisce
Risorsa
ScrittoriPronti2
ScrittoriAttivi
S_inizia
S_finisce
4
4
4
Viva?
Carlo BellettiniProgettazione e Gestione
del Software
Archi inibitori e lettori e scrittori
ScrittoriPronti
ScrittoriAttivi
Inizia
Finisci
2LettoriPronti
LettoriAttivi
Inizia
Finisci
4
Carlo BellettiniProgettazione e Gestione
del Software
Rappresentazione matriciale
E’ possibile rappresentare (definire) una rete di Petri mediante delle matrici
ennesima vista …
trasformazione automatica…
facilmente trattabile matematicamente
Uso diverse matrici:I archi in input alle transizioni
O archi in output alle transizioni
m marcatura dei posti
Carlo BellettiniProgettazione e Gestione
del Software
Matrice I e O
Devo assegnare un indice ad ogni posto p : 1.. |P| → P
Devo assegnare un indice ad ogni transizione t : 1.. |T| → T
Le due matrici I e O sono |P| x |T|∀<p(i), t(j)> ∈ F I[i][j] = W(<p(i),t(j)>)
∀<p(i), t(j)> ∉ F I[i][j] = 0
∀<t(j), p(i)> ∈ F O[i][j] = W(<t(j),p(i)>)
∀<t(j), p(i)> ∉ F O[i][j] = 0
Indicheremo il vettore colonna k di una matrice X con la notazione X[.][k]
Carlo BellettiniProgettazione e Gestione
del Software
Esempio matrice I
B1
deposita preleva
P03
P1
produci
C05
C1
consuma
3 2
1
2 3
4
5
1 2 3 4
11
2
11
1 2 3 412345
Carlo BellettiniProgettazione e Gestione
del Software
Esempio matrice O
B1
deposita preleva
P03
P1
produci
C05
C1
consuma
3 2
1
2 3
4
5
1 2 3 4
11
31
1
00 000 0
0 0 00 0
00 00
1 2 3 412345
Carlo BellettiniProgettazione e Gestione
del Software
Marcatura m
E` un vettore colonna di dimensione |P|
si calcola a partire dalla funzione marcatura
m[i] = M(p(i))
Carlo BellettiniProgettazione e Gestione
del Software
Esempio vettore m
B1
deposita preleva
P03
P1
produci
C05
C1
consuma
3 2
1
2 3
4
5
1 32 03 04 55 0
Carlo BellettiniProgettazione e Gestione
del Software
Abilitazione di una transizione
La transizione j-esima e’ abilitata in una marcatura espressa dal vettore m m [ tj >se e solo seI[.][j] ≤ m
elemento per elemento ( sono |P| )
Carlo BellettiniProgettazione e Gestione
del Software
Esempio di abilitazione
Transizione 1 e’ abilitata se...
I[.][1]10000
m≤ 3≤ 0≤ 0≤ 5≤ 0
SI
B1
deposita preleva
P03
P1
produci
C05
C1
consuma
3 2
Carlo BellettiniProgettazione e Gestione
del Software
Esempio di non abilitazione
Transizione 2 e’ abilitata se...
NO
I[.][2] m0 ≤ 31 ≤ 00 ≤ 00 ≤ 50 ≤ 0
B1
deposita preleva
P03
P1
produci
C05
C1
consuma
3 2
Carlo BellettiniProgettazione e Gestione
del Software
Scatto di una transizione
Quando la transizione j-esima scatta in una marcatura m produce una nuova marcatura m’
m [ tj > m’
m’ = m - I[.][j] + O[.][j]
Carlo BellettiniProgettazione e Gestione
del Software
Esempio di scatto di transizione
Quali sono le transizioni abilitate?
1 2 3 412345
11
2
11
1 32 03 34 45 1
B1
deposita preleva
P03
P1
produci
C04
C1
consuma
3 2
1
2 3
4
5
1 2 3 4
3
Carlo BellettiniProgettazione e Gestione
del Software
Esempio di scatto di transizione
Come cambia la marcatura con lo scatto di t(3)?
1 32 03 14 35 2
1 2 3 412345
11
2
11
1 32 03 34 45 1
- +
1 2 3 412345
11
31
1
0
0 000 0
0 0 00 0
00 00
=
B1
deposita preleva
P03
P1
produci
C04
C1
consuma
3 2
1
2 3
4
5
1 2 3 4
3
Carlo BellettiniProgettazione e Gestione
del Software
Matrice di incidenza C
C = O - IRisulta utile per ottimizzare lo scatto ma non e’ sufficiente per abilitazione…
Condizione statica sufficiente per garantire che C sia significativa di abilitazione
Pre(t) ∩ Post(t) = ∅
se le intersezioni sono tutte vuote si chiama RETE PURA
Carlo BellettiniProgettazione e Gestione
del Software
Esempio matrice C
1 2 3 412345
-1-1
-2
-1-1
1 0 01 0 00 3 00 0 10 0 1
B1
deposita preleva
P03
P1
produci
C04
C1
consuma
3 2
1
2 3
4
5
1 2 3 4
3
Carlo BellettiniProgettazione e Gestione
del Software
Sequenza di scatti
M [ t1 > M’ and M’ [ t2 > M’’ → M [t1t2 > M’’
M [ Sn > Mn
Mn = M + C sdove s e` il vettore di dimensione |T| contenente il numero di scatti per ogni transizione
Carlo BellettiniProgettazione e Gestione
del Software
Esempio di sequenza di scatto
Una sequenza di scatto ammissibile s = t1, t1, t4, t2, t1, t3, t2, t4, t3, t2, t4, t3, t1, t3
non importa ordine
4 t1, 3 t2, 4 t3, 3 t4
s = [ 4 3 4 3 ]
B1
deposita preleva
P03
P1
produci
C04
C1
consuma
3 2
1
2 3
4
5
1 2 3 4
3
Carlo BellettiniProgettazione e Gestione
del Software
Esempio calcolo nuova marcatura
|P|x|T| * |T| -> |P| 1 2 3 4
12345
-1-1
-2
-1-1
1 0 01 0 00 3 00 0 10 0 1
1 42 33 44 3
1 -12 13 14 -15 1
1 32 03 34 45 1
+
1 22 13 44 35 2
=
Carlo BellettiniProgettazione e Gestione
del Software
Nuova tecnica di analisi
Ricerca di invarianti all’interno della rete…
P-Invarianti
Invarianti sui posti… relativi alla marcatura
T-Invarianti
Invarianti su sequenze di scatto
Carlo BellettiniProgettazione e Gestione
del Software
P-invarianti
Un vettore di pesi h di dimensione |P|
Corrisponde alla nostra definizione di rete conservativa con la possibilita` che non tutti i pesi siano maggiori di zero
il prodotto vettoriale h m deve essere costante
h m = h m’
m’ = m + C s
hm = hm + hCs
h C s = 0
questo per ogni possibile s
h C = 0
basta trovare le soluzioni di questo sistema lineare
Carlo BellettiniProgettazione e Gestione
del Software
Copertura di P-Invarianti
Una combinazione lineare di P-invarianti è anch’essa un P-Invariante
Se un posto ha peso positivo in un P- invariante semi-positivo, allora il posto è limitato
Una rete P/T si dice ricoperta da P- invarianti se per ogni posto esiste almeno un P-Invariante (semipositivo) il cui peso di tale posto sia positivo
Una rete copribile da P-invarianti è una rete limitata
Carlo BellettiniProgettazione e Gestione
del Software
EsempioLettoriPronti
4ScrittoriPronti
2
Risorsa4
ScrittoriAttiviLettoriAttivi
IniziaLet IniziaScrit
FinisciLet FinisciScrit
4
4
Carlo BellettiniProgettazione e Gestione
del Software
Esempio (cont)
Risolviamo il sistema:hC=0
-h0+h1-h2 = 0+h0-h1+h2 = 0
-4h2-h3+h4 = 0+4h2+h3-h4 = 0
Carlo BellettiniProgettazione e Gestione
del Software
Troviamo le soluzioni
Carlo BellettiniProgettazione e Gestione
del Software
Algoritmo di Farkas (1902)
Trova basi minime semipositive
Algoritmo di Farkas (1902)
D0 := (C | En);for i := 1 to m dofor d1, d2 rows in Di�1 such that d1(i) and d2(i) have opposite signs dod := |d2(i)| · d1 + |d1(i)| · d2; (* d(i) = 0 *)d ⇥ := d/gcd(d(1), d(2), . . . , d(m+ n));augment Di�1 with d ⇥ as last row;
endfor;delete all rows of the (augmented) matrix Di�1 whose i-th componentis different from 0, the result is Di ;
endfor;delete the first m columns of Dm
88
Carlo BellettiniProgettazione e Gestione
del Software
Applicazione alg. Farkas
D0 -1 1 0 0 1 0 0 0 01 -1 0 0 0 1 0 0 0
-1 1 -4 4 0 0 1 0 00 0 -1 1 0 0 0 1 00 0 1 -1 0 0 0 0 1
EC
sommo riga 1 e 2sommo riga 2 e 3
0 0 0 0 1 1 0 0 00 0 -4 4 0 1 1 0 00 0 -1 1 0 0 0 1 00 0 1 -1 0 0 0 0 1
D1
sommo riga 2 e 4 (*4)sommo riga 3 e 4
D3 0 0 0 0 0 1 1 0 40 0 0 0 0 0 0 1 10 0 0 0 1 1 0 0 0
Applicazione alg. Farkas
D0 -1 1 0 0 1 0 0 0 01 -1 0 0 0 1 0 0 0
-1 1 -4 4 0 0 1 0 00 0 -1 1 0 0 0 1 00 0 1 -1 0 0 0 0 1
EC
sommo riga 1 e 2sommo riga 2 e 3
0 0 0 0 1 1 0 0 00 0 -4 4 0 1 1 0 00 0 -1 1 0 0 0 1 00 0 1 -1 0 0 0 0 1
D1
sommo riga 2 e 4 (*4)sommo riga 3 e 4
D3 0 0 0 0 0 1 1 0 40 0 0 0 0 0 0 1 10 0 0 0 1 1 0 0 0
Applicazione alg. Farkas
D0 -1 1 0 0 1 0 0 0 01 -1 0 0 0 1 0 0 0
-1 1 -4 4 0 0 1 0 00 0 -1 1 0 0 0 1 00 0 1 -1 0 0 0 0 1
EC
sommo riga 1 e 2sommo riga 2 e 3
0 0 0 0 1 1 0 0 00 0 -4 4 0 1 1 0 00 0 -1 1 0 0 0 1 00 0 1 -1 0 0 0 0 1
D1
sommo riga 2 e 4 (*4)sommo riga 3 e 4
D3 0 0 0 0 0 1 1 0 40 0 0 0 0 0 0 1 10 0 0 0 1 1 0 0 0
Applicazione alg. Farkas
D0 -1 1 0 0 1 0 0 0 01 -1 0 0 0 1 0 0 0
-1 1 -4 4 0 0 1 0 00 0 -1 1 0 0 0 1 00 0 1 -1 0 0 0 0 1
EC
sommo riga 1 e 2sommo riga 2 e 3
0 0 0 0 1 1 0 0 00 0 -4 4 0 1 1 0 00 0 -1 1 0 0 0 1 00 0 1 -1 0 0 0 0 1
D1
sommo riga 2 e 4 (*4)sommo riga 3 e 4
D3 0 0 0 0 0 1 1 0 40 0 0 0 0 0 0 1 10 0 0 0 1 1 0 0 0
Applicazione alg. Farkas
D0 -1 1 0 0 1 0 0 0 01 -1 0 0 0 1 0 0 0
-1 1 -4 4 0 0 1 0 00 0 -1 1 0 0 0 1 00 0 1 -1 0 0 0 0 1
EC
sommo riga 1 e 2sommo riga 2 e 3
0 0 0 0 1 1 0 0 00 0 -4 4 0 1 1 0 00 0 -1 1 0 0 0 1 00 0 1 -1 0 0 0 0 1
D1
sommo riga 2 e 4 (*4)sommo riga 3 e 4
D3 0 0 0 0 0 1 1 0 40 0 0 0 0 0 0 1 10 0 0 0 1 1 0 0 0
Applicazione alg. Farkas
D0 -1 1 0 0 1 0 0 0 01 -1 0 0 0 1 0 0 0
-1 1 -4 4 0 0 1 0 00 0 -1 1 0 0 0 1 00 0 1 -1 0 0 0 0 1
EC
sommo riga 1 e 2sommo riga 2 e 3
0 0 0 0 1 1 0 0 00 0 -4 4 0 1 1 0 00 0 -1 1 0 0 0 1 00 0 1 -1 0 0 0 0 1
D1
sommo riga 2 e 4 (*4)sommo riga 3 e 4
D3 0 0 0 0 0 1 1 0 40 0 0 0 0 0 0 1 10 0 0 0 1 1 0 0 0
Carlo BellettiniProgettazione e Gestione
del Software
In octaveA = [C,eye(rows(C))]for i = 1:columns(C) A1 = []; for j = 1:rows(A) for k = j+1:rows(A) if A(j,i)*A(k,i)<0 d = abs(A(j,i))*A(k,:)+abs(A(k,i))*A(j,:); d= d/gcd(d); A1 = [A1;d]; endif endfor endfor for j = 1:rows(A) if (A(j,i) == 0) A1 = [A1;A(j,:)]; endif endfor A = A1;endforsoluzioni = A(:,columns(C)+1:columns(A))
Carlo BellettiniProgettazione e Gestione
del Software
Interpretiamo i risultati
hM = hMO
1LettoriPronti + LettoriAttivi = 4 (numero gettoni in LettoriPronti)
Il numero di lettori nel sistema e’ costante
2ScrittoriPronti + ScrittoriAttivi = 2 (numero gettoni in ScrittoriPronti)
Il numero di scrittori nel sistema e’ costante
3LettoriAttivi + Risorsa + 4 ScrittoriAttivi = 4(num gettoni in Risorsa)
Se LettoriAttivi > 0 -> ScrittoriAttivi = 0
Se ScrittoriAttivi > 0 -> LettoriAttivi = 0
ScrittoriAttivi <= 1
LettoriAttivi <= 4 (numero gettoni in Risorsa)
Carlo BellettiniProgettazione e Gestione
del Software
Controllori con specifica a stati proibiti
Transizioni osservate
Transizioni controllate
pongo condizione
L M ≤ bL M + Mc = b
ottengo (con un po’ di passaggi che fanno uso del voler inserire un P-Invariante)
Cc = -L C MOc = b - L MO
3
Dott. Gianfranco Fenu Controllo Controllo deidei ProcessiProcessi (polo di PN)(polo di PN)
CP reti di Petri parte 5, CP reti di Petri parte 5, 1313
Il modello utilizzato
• Tramite i “posti di controllo” che costituiscono il controllore si vuole imporre un vincolo sugli stati raggiungibili dal sistema “impianto”.
• I vincoli che si possono imporre si esprimono con relazioni come la seguente diseguaglianza
Dott. Gianfranco Fenu Controllo Controllo deidei ProcessiProcessi (polo di PN)(polo di PN)
CP reti di Petri parte 5, CP reti di Petri parte 5, 1414
Il modello utilizzato
• Che cosa esprime la diseguaglianza?
• Mp è la generica marcatura della RdP dell’ “impianto”;• l è un vettore riga che contiene coefficienti interi, b è uno
scalare intero.
• Significato: specifica sul comportamento desiderato del sistema retroazionato (completo del controllore)– un’opportuna combinazione lineare delle marcature
dei posti non deve mai superare una soglia assegnata.
Dott. Gianfranco Fenu Controllo Controllo deidei ProcessiProcessi (polo di PN)(polo di PN)
CP reti di Petri parte 5, CP reti di Petri parte 5, 1515
Il modello utilizzato
• Questo approccio al controllo con RdP ricade nella categoria dei problemi con specifiche a stati proibiti.
• La diseguaglianza permette di descrivere facilmente casi molto frequenti e molto utili in pratica, anche se non èl’espressione più generale possibile di un vincolo sugli stati raggiungibili:– Esempio: vincoli di mutua esclusione nell’accesso a
risorse condivise
Dott. Gianfranco Fenu Controllo Controllo deidei ProcessiProcessi (polo di PN)(polo di PN)
CP reti di Petri parte 5, CP reti di Petri parte 5, 1616
Un esempio
• Una cella con un unico manipolatore che viene utilizzato per carico/scarico di due macchine che lavorano in concorrenza;
• I posti pi, pj indicano le operazioni svolte dal manipolatore sulle due macchine;
• Un gettone in pi oppure in pj indica che l’operazione è in corso
• Per gestire correttamente il manipolatore si deve imporre il vincolo
Dott. Gianfranco Fenu Controllo Controllo deidei ProcessiProcessi (polo di PN)(polo di PN)
CP reti di Petri parte 5, CP reti di Petri parte 5, 1717
Un esempio (continua…)
• Nel vincolo che abbiamo considerato i pesi sono semplicemente degli “0” e dei “1”
• In generale i coefficienti nel vettore l possono essere numeri interi: perciò i vincoli di questo tipo sono detti di mutua esclusione generalizzata.
Dott. Gianfranco Fenu Controllo Controllo deidei ProcessiProcessi (polo di PN)(polo di PN)
CP reti di Petri parte 5, CP reti di Petri parte 5, 1818
Un esempio (continua…)
• Come si risolve il problema? Come si associa una parte di controllore al vincolo appena descritto?
• La tecnica di progetto del controllore prosegue trasformando la diseguaglianza in una eguaglianza, aggiungendo delle variabili ausiliarie (variabili di slack):
• Le variabili di slack aggiunte sono le marcature di posti aggiuntivi, che faranno parte del supervisore.
Carlo BellettiniProgettazione e Gestione
del Software
Esempio
L M <= bL M + Mc = [L I] Mt = bMa allora vogliamo dire che [L I] è un P-Invariante e quindi deve valere:[L I] Ct = OL C + I Cc = 0Cc = -L C
Carlo BellettiniProgettazione e Gestione
del Software
Esempio
Mutua esclusione
LAttivi+SAttivi<=2
Ma non tra lettori
LAttivi+4SAttivi<=4
LettoriPronti4
LettoriAttivi
L_inizia
L_finisce
ScrittoriPronti2
ScrittoriAttivi
S_inizia
S_finisceL M <= b
L = [O 1 O 4]
b = 4
MO = [4 O 2 O]
1 -1 0 0
-1 1 0 0
0 0 -1 1
0 0 1 -1
C=
Cc = -L C = [1 -1 -4 4]MOc = b - L MO = 4
Carlo BellettiniProgettazione e Gestione
del Software
T-invarianti
Fanno riferimento a sequenze di scatti cicliche (cioe` che possono essere ripetute)
che riportano nella condizione iniziale
m’ = m + C s
m’ = m
soluzioni del sistema
C s = 0
non e` detto siano tutte valide
Recommended