36
Progettazione e Gestione del Software lez 18 reti di petri (cont)

progettazione e gestione del software altre slide

Embed Size (px)

DESCRIPTION

idem

Citation preview

Page 1: progettazione e gestione del software altre slide

Progettazione e Gestione del Software

lez 18reti di petri (cont)

Page 2: progettazione e gestione del software altre slide

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Carlo BellettiniProgettazione e Gestione

del Software

Troviamo le soluzioni

Page 29: progettazione e gestione del software altre slide

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

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

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

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

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

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

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

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