Sei sulla pagina 1di 36

Progettazione e Gestione del Software

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

lez 18 reti di petri (cont)

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

Esercizio

Esercizio M l’ d Carlo Bellettini Progettazione e Gestione del Software
Esercizio M l’ d Carlo Bellettini Progettazione e Gestione del Software

M

l’

d

Carlo Bellettini Progettazione e Gestione del Software
Carlo Bellettini
Progettazione e Gestione
del Software
Esercizio M l’ d Carlo Bellettini Progettazione e Gestione del Software

Soluzione esercizio

Soluzione esercizio 4 2 LettoriPronti ScrittoriPronti 4 Risorsa S_inizia 4 S_finisce ScrittoriAttivi L_inizia 4
4
4
2
2

LettoriPronti

ScrittoriPronti

4 Risorsa S_inizia 4 S_finisce
4
Risorsa
S_inizia
4
S_finisce

ScrittoriAttivi

L_inizia 4 LettoriAttivi L_finisce
L_inizia
4
LettoriAttivi
L_finisce
S_finisce ScrittoriAttivi L_inizia 4 LettoriAttivi L_finisce Carlo Bellettini Progettazione e Gestione del Software
Carlo Bellettini Progettazione e Gestione del Software
Carlo Bellettini
Progettazione e Gestione
del Software

Grafo raggiungibilità

S_finisce 40420 L_finisce L_inizia S_inizia 40011 31320
S_finisce
40420 L_finisce
L_inizia
S_inizia
40011
31320

L_finisce

L_inizia

22220 13120 04020
22220
13120
04020

L_finisce

L_inizia

L_finisce

L_inizia

Carlo Bellettini Progettazione e Gestione del Software
Carlo Bellettini
Progettazione e Gestione
del Software
LettoriPronti ScrittoriPronti 4 2 4 Risorsa L_inizia 4 S_inizia LettoriAttivi ScrittoriAttivi 4 L_finisce
LettoriPronti
ScrittoriPronti
4
2
4
Risorsa
L_inizia
4
S_inizia
LettoriAttivi
ScrittoriAttivi
4
L_finisce
S_finisce
? >0 ?? >0
? >0 ?? >0
???? >1
???? >1

Viva?

L_inizia 4 S_inizia LettoriAttivi ScrittoriAttivi 4 L_finisce S_finisce ? >0 ?? >0 ???? >1 Viva?

Archi inibitori e lettori e scrittori

Archi inibitori e lettori e scrittori 4 2 LettoriPronti ScrittoriPronti Inizia Inizia LettoriAttivi ScrittoriAttivi
4
4
2
2

LettoriPronti

ScrittoriPronti

Inizia Inizia LettoriAttivi ScrittoriAttivi Finisci Finisci Carlo Bellettini Progettazione e Gestione del Software
Inizia
Inizia
LettoriAttivi
ScrittoriAttivi
Finisci
Finisci
Carlo Bellettini
Progettazione e Gestione
del Software

Rappresentazione matriciale

E’

E’

re

E’ re U
E’ re U
E’ re U
U

U

Carlo Bellettini Progettazione e Gestione del Software
Carlo Bellettini
Progettazione e Gestione
del Software
Rappresentazione matriciale E’ re U Carlo Bellettini Progettazione e Gestione del Software

Matrice I e O

Matrice I e O De De Le In Carlo Bellettini Progettazione e Gestione del Software

DeMatrice I e O De Le In Carlo Bellettini Progettazione e Gestione del Software

Matrice I e O De De Le In Carlo Bellettini Progettazione e Gestione del Software

DeMatrice I e O De Le In Carlo Bellettini Progettazione e Gestione del Software

Matrice I e O De De Le In Carlo Bellettini Progettazione e Gestione del Software

LeMatrice I e O De De In Carlo Bellettini Progettazione e Gestione del Software

InMatrice I e O De De Le Carlo Bellettini Progettazione e Gestione del Software

Carlo Bellettini Progettazione e Gestione del Software
Carlo Bellettini
Progettazione e Gestione
del Software
Matrice I e O De De Le In Carlo Bellettini Progettazione e Gestione del Software
Esempio matrice I P0 3 1 5 1 4 produci 2 deposita 3 preleva 3
Esempio matrice I
P0
3
1
5
1
4
produci
2 deposita
3 preleva
3
2
P1
B1
2
3

C0

4

consuma

C1

5

1 2 3 4 1 1 2 1 3 2 4 1 5 1 Carlo
1
2
3
4
1
1
2
1
3
2
4
1
5
1
Carlo Bellettini
Progettazione e Gestione
del Software
Esempio matrice O P0 3 1 5 1 4 produci 2 deposita 3 preleva 3
Esempio matrice O
P0
3
1
5
1
4
produci
2 deposita
3 preleva
3
2
P1
B1
2
3

C0

4

consuma

C1

5

1 2 3 4 1 0 1 0 0 2 1 0 0 0 3
1
2
3
4
1
0
1
0
0
2
1
0
0
0
3
0
3
0
0
4
0
0
0
1
5
0
0
1
0
Carlo Bellettini
Progettazione e Gestione
del Software

Marcatura m

Marcatura m E d si f Carlo Bellettini Progettazione e Gestione del Software

EMarcatura m d si f Carlo Bellettini Progettazione e Gestione del Software

d

siMarcatura m E d f Carlo Bellettini Progettazione e Gestione del Software

f

Carlo Bellettini Progettazione e Gestione del Software
Carlo Bellettini
Progettazione e Gestione
del Software
Marcatura m E d si f Carlo Bellettini Progettazione e Gestione del Software
Esempio vettore m
Esempio vettore m
P0 3 1 5 produci deposita preleva 3 2 P1 B1 2 3
P0
3
1
5
produci
deposita
preleva
3
2
P1
B1
2
3

C0

4

consuma

C1

5

Carlo Bellettini Progettazione e Gestione del Software
Carlo Bellettini
Progettazione e Gestione
del Software
1 3 2 0 3 0 4 5 5 0
1
3
2
0
3
0
4
5
5
0

Abilitazione di una transizione

Abilitazione di una transizione L i v m s I Carlo Bellettini Progettazione e Gestione del
L

L

i

v

m

m

s

s

I

I

Carlo Bellettini Progettazione e Gestione del Software
Carlo Bellettini
Progettazione e Gestione
del Software
Abilitazione di una transizione L i v m s I Carlo Bellettini Progettazione e Gestione del

Esempio di abilitazione

P0 3 5 produci deposita preleva 3 2 P1 B1
P0
3
5
produci
deposita
preleva
3
2
P1
B1
Carlo Bellettini Progettazione e Gestione del Software
Carlo Bellettini
Progettazione e Gestione
del Software

C0

consuma

C1

I[.][1]

m

1

3

0

0

0

0

0

5

0

0

SI
SI

Esempio di non abilitazione

P0 3 C0 5 produci deposita preleva consuma 3 2 P1 B1 C1 I[.][2]
P0
3
C0
5
produci
deposita
preleva
consuma
3
2
P1
B1
C1
I[.][2]
Carlo Bellettini Progettazione e Gestione del Software
Carlo Bellettini
Progettazione e Gestione
del Software

0

1

0

0

0

m

3

0

0

5

0

NO
NO

Scatto di una transizione

Scatto di una transizione Q s p m Carlo Bellettini Progettazione e Gestione del Software
Q

Q

s

p

Q s p m
m

m

Carlo Bellettini Progettazione e Gestione del Software
Carlo Bellettini
Progettazione e Gestione
del Software
Scatto di una transizione Q s p m Carlo Bellettini Progettazione e Gestione del Software

Esempio di scatto di transizione

1

P0 3 1 4 2 3 4 produci deposita preleva 3 2 P1 3 B1
P0
3
1
4
2
3
4
produci
deposita
preleva
3
2
P1
3 B1
2
3

C0

4

consuma

C1

5

1 2 3 4 1 1 2 1 3 2 4 1 5 1 Carlo
1
2
3
4
1
1
2
1
3
2
4
1
5
1
Carlo Bellettini
Progettazione e Gestione
del Software
1 3 2 0 3 3 4 4 5 1
1
3
2
0
3
3
4
4
5
1

Esempio di scatto di transizione

1

P0 3 1 4 2 3 4 produci deposita preleva 3 2 P1 3 B1
P0
3
1
4
2
3
4
produci
deposita
preleva
3
2
P1
3 B1
2
3

C0

4

consuma

C1

5

1 2 3 4 1 3 1 1 2 0 2 1 3 3 -
1
2
3
4
1
3
1
1
2
0
2
1
3
3
-
3
2
4
4
4
1
5
1
5
1
Carlo Bellettini
Progettazione e Gestione
del Software

+

1 2 3 4 1 0 0 0 1 3 1 2 1 0 0
1
2
3
4
1 0
0
0
1
3
1
2 1
0
0
2
0
0
3 0
3
0
0
=
3
1
4 0
0
0
1
4
3
5 0
0
0
5
1
2

Matrice di incidenza C

Matrice di incidenza C C = O Risul scatto abilit Con che Pr Carlo Bellettini Progettazione

C = OMatrice di incidenza C Risul scatto abilit Con che Pr Carlo Bellettini Progettazione e Gestione del

RisulMatrice di incidenza C C = O scatto abilit Con che Pr Carlo Bellettini Progettazione e

scatto

abilit

Matrice di incidenza C C = O Risul scatto abilit Con che Pr Carlo Bellettini Progettazione

Con

che

Matrice di incidenza C C = O Risul scatto abilit Con che Pr Carlo Bellettini Progettazione

Pr

Carlo Bellettini Progettazione e Gestione del Software
Carlo Bellettini
Progettazione e Gestione
del Software
Matrice di incidenza C C = O Risul scatto abilit Con che Pr Carlo Bellettini Progettazione

Esempio matrice C

1

P0 3 1 4 2 3 4 produci deposita preleva 3 2 P1 3 B1
P0
3
1
4
2
3
4
produci
deposita
preleva
3
2
P1
3 B1
2
3

C0

4

consuma

C1

5

 

1

2

3

4

1

-1

1

0

0

2

1

-1

0

0

3

0

3

-2

0

4

0

0

-1

1

5

0

0

1

-1

Carlo Bellettini Progettazione e Gestione del Software
Carlo Bellettini
Progettazione e Gestione
del Software
-2 0 4 0 0 -1 1 5 0 0 1 -1 Carlo Bellettini Progettazione e

Sequenza di scatti

MSequenza di scatti M M Carlo Bellettini Progettazione e Gestione del Software

MSequenza di scatti M M Carlo Bellettini Progettazione e Gestione del Software

MSequenza di scatti M M Carlo Bellettini Progettazione e Gestione del Software

Carlo Bellettini Progettazione e Gestione del Software
Carlo Bellettini
Progettazione e Gestione
del Software
Sequenza di scatti M M M Carlo Bellettini Progettazione e Gestione del Software

Esempio di sequenza di scatto

Esempio di sequenza di scatto Una s no s Carlo Bellettini Progettazione e Gestione del Software

Una

s

s

no

no

s no s
s

s

Carlo Bellettini Progettazione e Gestione del Software
Carlo Bellettini
Progettazione e Gestione
del Software

1

P0 3 1 4 2 3 4 produci deposita preleva 3 2 P1 3 B1
P0
3
1
4
2
3
4
produci
deposita
preleva
3
2
P1
3 B1
2
3

C0

4

consuma

C1 5
C1
5

Esempio calcolo nuova marcatura

Esempio calcolo nuova marcatura   1 2 3 4 1 -1 1 0 0 2 1
 

1

2

3

4

1

-1

1

0

0

2

1

-1

0

0

3

0

3

-2

0

4

0

0

-1

1

5

0

0

1

-1

 

1 4

2 3

 

3 4

 

4 3

 
1 3 2 0 3 3 4 4 5 1 Carlo Bellettini Progettazione e Gestione
1
3
2
0
3
3
4
4
5
1
Carlo Bellettini
Progettazione e Gestione
del Software

+

1

-1

 

2

1

3

1

=

4

-1

5

1

1 2 2 1 3 4 4 3 5 2
1
2
2
1
3
4
4
3
5
2

Nuova tecnica di analisi

Nuova tecnica di analisi Ric del P- T- Carlo Bellettini Progettazione e Gestione del Software
Nuova tecnica di analisi Ric del P- T- Carlo Bellettini Progettazione e Gestione del Software

Ric

del

P-

P-

P- T-
T-

T-

Carlo Bellettini Progettazione e Gestione del Software
Carlo Bellettini
Progettazione e Gestione
del Software
Nuova tecnica di analisi Ric del P- T- Carlo Bellettini Progettazione e Gestione del Software

P-invarianti

P-invarianti Un ve Co la il pro h m’ hm h h ba Carlo Bellettini Progettazione

Un veP-invarianti Co la il pro h m’ hm h h ba Carlo Bellettini Progettazione e Gestione

CoP-invarianti Un ve la il pro h m’ hm h h ba Carlo Bellettini Progettazione e

la

il proP-invarianti Un ve Co la h m’ hm h h ba Carlo Bellettini Progettazione e Gestione

h

h

m’

m’

hm

hm

h

h

h m’ hm h h ba
h

h

ba

ba

Carlo Bellettini Progettazione e Gestione del Software
Carlo Bellettini
Progettazione e Gestione
del Software
Un ve Co la il pro h m’ hm h h ba Carlo Bellettini Progettazione e

Copertura di P-Invarianti

Carlo Bellettini Progettazione e Gestione del Software
Carlo Bellettini
Progettazione e Gestione
del Software
Copertura di P-Invarianti Carlo Bellettini Progettazione e Gestione del Software

Esempio

LettoriPronti ScrittoriPronti 4 2 4 Risorsa IniziaLet IniziaScrit 4 LettoriAttivi ScrittoriAttivi 4 FinisciLet
LettoriPronti
ScrittoriPronti
4
2
4
Risorsa
IniziaLet
IniziaScrit
4
LettoriAttivi
ScrittoriAttivi
4
FinisciLet
FinisciScrit
Carlo Bellettini Progettazione e Gestione del Software
Carlo Bellettini
Progettazione e Gestione
del Software
4 LettoriAttivi ScrittoriAttivi 4 FinisciLet FinisciScrit Carlo Bellettini Progettazione e Gestione del Software

Esempio (cont)

Risolviamo il sistema:

hC=0

-h 0 +h 1 -h 2 = 0 +h 0 -h 1 +h 2 = 0

-4h 2 -h 3 +h 4 = 0 +4h 2 +h 3 -h 4 = 0

Carlo Bellettini Progettazione e Gestione del Software
Carlo Bellettini
Progettazione e Gestione
del Software
-4h 2 -h 3 +h 4 = 0 +4h 2 +h 3 -h 4 = 0

Troviamo le soluzioni

Troviamo le soluzioni Carlo Bellettini Progettazione e Gestione del Software
Carlo Bellettini Progettazione e Gestione del Software
Carlo Bellettini
Progettazione e Gestione
del Software

Algoritmo di Farkas (1902)

Algoritmo di Farkas (1902) D 0 := ( C | E n ) ; for i

D 0 := (C | E n ); for i := 1 to m do

for d 1 , d 2 rows in D i 1 such that d 1 (i ) and d 2 (i ) have opposite signs do

d

d := d /gcd(d (1), d (2),

:= |d 2 (i )| · d 1 + |d 1 (i )| · d 2 ;

(* d (i )=0 *) d (m + n ));

, augment D i 1 with d as last row; endfor; delete all rows of the (augmented) matrix D i 1 whose i -th component is different from 0, the result is D i ; endfor; delete the first m columns of D m

is D i ; endfor ; delete the first m columns of D m Carlo Bellettini
Carlo Bellettini Progettazione e Gestione del Software
Carlo Bellettini
Progettazione e Gestione
del Software
C E D0 -1 1 0 0   1 0 0 0 0   1

C

E

D0
D0

-1

1

0

0

 

1

0

0

0

0

 

1

-1

0

0

0

1

0

0

0

-1

1

-4

4

0

0

1

0

0

0

0

-1

1

0

0

0

1

0

0

0

1

-1

0

0

0

0

1

 

0

0

0

0

1

1

0

0

0

D1

sommo riga 1 e 2 sommo riga 2 e 3

 

0

0

-4

4

0

1

1

0

0

0

0

-1

1

0

0

0

1

0

 

0

0

1

-1

0

0

0

0

1

D3

sommo riga 2 e 4 (*4) sommo riga 3 e 4

Carlo Bellettini Progettazione e Gestione del Software
Carlo Bellettini
Progettazione e Gestione
del Software
0 0 0 0 0 1 1 0 4 0 0 0 0 0 0
0
0
0
0
0
1
1
0
4
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0

In octave

In octave A = [C,eye(rows(C))] for i = 1:columns(C) A1 = []; for j = 1:rows(A)

A = [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; endfor soluzioni = A(:,columns(C)+1:columns(A))

Carlo Bellettini Progettazione e Gestione del Software
Carlo Bellettini
Progettazione e Gestione
del Software
endfor A = A1; endfor soluzioni = A(:,columns(C)+1:columns(A)) Carlo Bellettini Progettazione e Gestione del Software

Interpretiamo i risultati

hM =

hM =

1

1

Le

Le

 
 
2

2

Sc

Sc

 
 
3

3

Lei risultati hM = 1 Le   2 Sc   3 Carlo Bellettini Progettazione e Gestione

Carlo Bellettini Progettazione e Gestione del Software
Carlo Bellettini
Progettazione e Gestione
del Software
risultati hM = 1 Le   2 Sc   3 Le Carlo Bellettini Progettazione e Gestione

Controllori con specifica a stati proibiti

T

T

T

T

p

p

L

L

T T p L o d
o

o

d

Carlo Bellettini Progettazione e Gestione del Software
Carlo Bellettini
Progettazione e Gestione
del Software
con specifica a stati proibiti T T p L o d Carlo Bellettini Progettazione e Gestione
con specifica a stati proibiti T T p L o d Carlo Bellettini Progettazione e Gestione
con specifica a stati proibiti T T p L o d Carlo Bellettini Progettazione e Gestione
con specifica a stati proibiti T T p L o d Carlo Bellettini Progettazione e Gestione

Esempio

L

M <= b

L

M + Mc = [L I] M t = b

Ma allora vogliamo dire che

[L I] è un P-Invariante e

quindi deve valere:

[L I] C t = O

L C + I Cc = 0

Cc = -L C

Carlo Bellettini Progettazione e Gestione del Software
Carlo Bellettini
Progettazione e Gestione
del Software
e quindi deve valere: [L I] C t = O L C + I Cc =

Esempio

M

M

M M L M
M

M

M M L M
L

L

M M L M
M M L M
M

M

Cc = -L C = [1 -1 -4 4] M O c = b - L M O = 4

Carlo Bellettini Progettazione e Gestione del Software
Carlo Bellettini
Progettazione e Gestione
del Software
4
4

LettoriPronti

L_inizia

LettoriAttivi

L_finisce

2
2

ScrittoriPronti

S_inizia S_finisce
S_inizia
S_finisce

ScrittoriAttivi

1 -1 0 0 -1 1 0 0 C= 0 0 -1 1 0 0
1 -1
0
0
-1
1
0
0
C=
0
0 -1
1
0
0
1 -1

T-invarianti

T-invarianti Fan ci ch m m so no Carlo Bellettini Progettazione e Gestione del Software
T-invarianti Fan ci ch m m so no Carlo Bellettini Progettazione e Gestione del Software

Fan

ci

ci

ch

ch

m

m

m

m

so

so

ci ch m m so no
no

no

Carlo Bellettini Progettazione e Gestione del Software
Carlo Bellettini
Progettazione e Gestione
del Software
T-invarianti Fan ci ch m m so no Carlo Bellettini Progettazione e Gestione del Software