progettazione e gestione del software altre slide
DESCRIPTION
idemTRANSCRIPT
![Page 1: progettazione e gestione del software altre slide](https://reader031.vdocuments.mx/reader031/viewer/2022020208/55cf98c3550346d0339989c6/html5/thumbnails/1.jpg)
Progettazione e Gestione del Software
lez 18reti di petri (cont)
![Page 2: progettazione e gestione del software altre slide](https://reader031.vdocuments.mx/reader031/viewer/2022020208/55cf98c3550346d0339989c6/html5/thumbnails/2.jpg)
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
![Page 3: progettazione e gestione del software altre slide](https://reader031.vdocuments.mx/reader031/viewer/2022020208/55cf98c3550346d0339989c6/html5/thumbnails/3.jpg)
Carlo BellettiniProgettazione e Gestione
del Software
Soluzione esercizio
LettoriPronti4
LettoriAttivi
L_inizia
L_finisce
Risorsa
ScrittoriPronti2
ScrittoriAttivi
S_inizia
S_finisce
4
4
4
![Page 4: progettazione e gestione del software altre slide](https://reader031.vdocuments.mx/reader031/viewer/2022020208/55cf98c3550346d0339989c6/html5/thumbnails/4.jpg)
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?
![Page 5: progettazione e gestione del software altre slide](https://reader031.vdocuments.mx/reader031/viewer/2022020208/55cf98c3550346d0339989c6/html5/thumbnails/5.jpg)
Carlo BellettiniProgettazione e Gestione
del Software
Archi inibitori e lettori e scrittori
ScrittoriPronti
ScrittoriAttivi
Inizia
Finisci
2LettoriPronti
LettoriAttivi
Inizia
Finisci
4
![Page 6: progettazione e gestione del software altre slide](https://reader031.vdocuments.mx/reader031/viewer/2022020208/55cf98c3550346d0339989c6/html5/thumbnails/6.jpg)
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
![Page 7: progettazione e gestione del software altre slide](https://reader031.vdocuments.mx/reader031/viewer/2022020208/55cf98c3550346d0339989c6/html5/thumbnails/7.jpg)
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]
![Page 8: progettazione e gestione del software altre slide](https://reader031.vdocuments.mx/reader031/viewer/2022020208/55cf98c3550346d0339989c6/html5/thumbnails/8.jpg)
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
![Page 9: progettazione e gestione del software altre slide](https://reader031.vdocuments.mx/reader031/viewer/2022020208/55cf98c3550346d0339989c6/html5/thumbnails/9.jpg)
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
![Page 10: progettazione e gestione del software altre slide](https://reader031.vdocuments.mx/reader031/viewer/2022020208/55cf98c3550346d0339989c6/html5/thumbnails/10.jpg)
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))
![Page 11: progettazione e gestione del software altre slide](https://reader031.vdocuments.mx/reader031/viewer/2022020208/55cf98c3550346d0339989c6/html5/thumbnails/11.jpg)
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
![Page 12: progettazione e gestione del software altre slide](https://reader031.vdocuments.mx/reader031/viewer/2022020208/55cf98c3550346d0339989c6/html5/thumbnails/12.jpg)
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| )
![Page 13: progettazione e gestione del software altre slide](https://reader031.vdocuments.mx/reader031/viewer/2022020208/55cf98c3550346d0339989c6/html5/thumbnails/13.jpg)
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
![Page 14: progettazione e gestione del software altre slide](https://reader031.vdocuments.mx/reader031/viewer/2022020208/55cf98c3550346d0339989c6/html5/thumbnails/14.jpg)
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
![Page 15: progettazione e gestione del software altre slide](https://reader031.vdocuments.mx/reader031/viewer/2022020208/55cf98c3550346d0339989c6/html5/thumbnails/15.jpg)
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]
![Page 16: progettazione e gestione del software altre slide](https://reader031.vdocuments.mx/reader031/viewer/2022020208/55cf98c3550346d0339989c6/html5/thumbnails/16.jpg)
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
![Page 17: progettazione e gestione del software altre slide](https://reader031.vdocuments.mx/reader031/viewer/2022020208/55cf98c3550346d0339989c6/html5/thumbnails/17.jpg)
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
![Page 18: progettazione e gestione del software altre slide](https://reader031.vdocuments.mx/reader031/viewer/2022020208/55cf98c3550346d0339989c6/html5/thumbnails/18.jpg)
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
![Page 19: progettazione e gestione del software altre slide](https://reader031.vdocuments.mx/reader031/viewer/2022020208/55cf98c3550346d0339989c6/html5/thumbnails/19.jpg)
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
![Page 20: progettazione e gestione del software altre slide](https://reader031.vdocuments.mx/reader031/viewer/2022020208/55cf98c3550346d0339989c6/html5/thumbnails/20.jpg)
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
![Page 21: progettazione e gestione del software altre slide](https://reader031.vdocuments.mx/reader031/viewer/2022020208/55cf98c3550346d0339989c6/html5/thumbnails/21.jpg)
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
![Page 22: progettazione e gestione del software altre slide](https://reader031.vdocuments.mx/reader031/viewer/2022020208/55cf98c3550346d0339989c6/html5/thumbnails/22.jpg)
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
=
![Page 23: progettazione e gestione del software altre slide](https://reader031.vdocuments.mx/reader031/viewer/2022020208/55cf98c3550346d0339989c6/html5/thumbnails/23.jpg)
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
![Page 24: progettazione e gestione del software altre slide](https://reader031.vdocuments.mx/reader031/viewer/2022020208/55cf98c3550346d0339989c6/html5/thumbnails/24.jpg)
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
![Page 25: progettazione e gestione del software altre slide](https://reader031.vdocuments.mx/reader031/viewer/2022020208/55cf98c3550346d0339989c6/html5/thumbnails/25.jpg)
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
![Page 26: progettazione e gestione del software altre slide](https://reader031.vdocuments.mx/reader031/viewer/2022020208/55cf98c3550346d0339989c6/html5/thumbnails/26.jpg)
Carlo BellettiniProgettazione e Gestione
del Software
EsempioLettoriPronti
4ScrittoriPronti
2
Risorsa4
ScrittoriAttiviLettoriAttivi
IniziaLet IniziaScrit
FinisciLet FinisciScrit
4
4
![Page 27: progettazione e gestione del software altre slide](https://reader031.vdocuments.mx/reader031/viewer/2022020208/55cf98c3550346d0339989c6/html5/thumbnails/27.jpg)
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
![Page 28: progettazione e gestione del software altre slide](https://reader031.vdocuments.mx/reader031/viewer/2022020208/55cf98c3550346d0339989c6/html5/thumbnails/28.jpg)
Carlo BellettiniProgettazione e Gestione
del Software
Troviamo le soluzioni
![Page 29: progettazione e gestione del software altre slide](https://reader031.vdocuments.mx/reader031/viewer/2022020208/55cf98c3550346d0339989c6/html5/thumbnails/29.jpg)
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
![Page 30: progettazione e gestione del software altre slide](https://reader031.vdocuments.mx/reader031/viewer/2022020208/55cf98c3550346d0339989c6/html5/thumbnails/30.jpg)
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
![Page 31: progettazione e gestione del software altre slide](https://reader031.vdocuments.mx/reader031/viewer/2022020208/55cf98c3550346d0339989c6/html5/thumbnails/31.jpg)
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))
![Page 32: progettazione e gestione del software altre slide](https://reader031.vdocuments.mx/reader031/viewer/2022020208/55cf98c3550346d0339989c6/html5/thumbnails/32.jpg)
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)
![Page 33: progettazione e gestione del software altre slide](https://reader031.vdocuments.mx/reader031/viewer/2022020208/55cf98c3550346d0339989c6/html5/thumbnails/33.jpg)
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.
![Page 34: progettazione e gestione del software altre slide](https://reader031.vdocuments.mx/reader031/viewer/2022020208/55cf98c3550346d0339989c6/html5/thumbnails/34.jpg)
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
![Page 35: progettazione e gestione del software altre slide](https://reader031.vdocuments.mx/reader031/viewer/2022020208/55cf98c3550346d0339989c6/html5/thumbnails/35.jpg)
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
![Page 36: progettazione e gestione del software altre slide](https://reader031.vdocuments.mx/reader031/viewer/2022020208/55cf98c3550346d0339989c6/html5/thumbnails/36.jpg)
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