Sunteți pe pagina 1din 7

Retele Petri

Tranzitia t executabil n M dac:


M(l) >= I(l,t) , l L
Executia lui t n M duce n M' cu
M'(l) = M(l) - I (l,t) + O (t,l) , l L
notm
M-t->M'
$ = t1,t2,t3,...tn este o secvent posibil de executii
din M n M' si notm M =$=> M'
dac marcajele M1, M2, M3,..., Mn a..
M -t1-> M1 -t2-> M2 -t3-> M3 -.... -tn-> Mn=M'

RP = (L, T, I, O)
L = locuri
T = tranzitii
I = functie de incident nainte, I : L x T -> {0, 1}
O = functie de incident napoi, O : T x L -> {0, 1}
M = marcaj, M : L -> N

Reprezentare
l4

t2

*
l1

t1

l5

t4

Fie RP si M0 un marcaj initial. Clasa marcajelor


accesibile din M0 este A(M0).

l3
t3

l2

sincronizarea
Modelare actiuni concurente
- paralelismul

(a) rendez-vous

(b) semafor
*

memorarea unei conditii si a


opusului su

excluderea mutuala

citirea unei conditii,


fara modificarea ei

Modelul algoritmic si modelul de automate ale


protocolului Start-Stop
Transmitator:
do {
asteapta cerere emisie (ct,msg)
pregateste mesaj (msg,m)
transmite mesaj (m)
asteapta confirmare (r)
} forever

Modelul de retea Petri

ct,msg /

*
t3
E

t6

m/
/r
F

r/

t1

/m
C

t2

A
B

Receptor:
do {
asteapta mesaj (m)
pregateste raspuns (m,r, msg)
transmite confirmarea (r)
asteapta cerere receptie (cr)
transfera mesaj (msg)
} forever

t4
A

*
t5

cr /msg

Tranzitiile si starea initiala


t1 = preluare mesaj produs de utilizatorul
transmitator,
t2 = transmitere de mesaj mediului de comunicare,
t3 = receptie mesaj de la mediu,
t4 = transmitere confirmare,
t5 = receptie confirmare,
t6 = consumare mesaj de utilizator receptor.

AD

Masina de puncte

t1
BD
t2

t6

CMD
t5

t3
t6

marcajul corespunzator unei stari initiale M0

CE
t4
CRF

entitatea emitatoare asteapta producerea unui mesaj


(A)
entitatea receptoare este pregatita pentru receptie (D)
mediul de transmisie este gol.

t5

t6

AF
t1
BF

Validarea protocoalelor

CRD

t6

CMF
t2

Persistenta
conflicte efective

(A) Proprietti generale


Mrginire: orice M accesibil din M0 si orice l din L , avem
M( l )<=n
Sigurant
Viabilitate: din oricare M accesibil din M0 exista o
secventa de executii care contine t
Cvasi-viabilitate: exista o secventa de executii din M0
care contine t
Home state: din oricare M accesibil din M0 exista o
secventa de executii care conduce in H

conflicte structurale, dar ne-efective

**

In orice M accesibil din M0 , in care tj si tk sint executabile,


tj ,tk si, prin simetrie tk ,tj sunt secvente posibile de executii din M .

(B) Proprietti specifice


Invarianti
pe locuri (L-invarianti):
M(A) + M(B) + M(C) = 1
pentru orice M A(M0)
retea conservativ
pe tranzitii (T-invarianti):
avans sincron
0 <= N(t3) - N(t4) <= 1
secvente repetitive

Construire arbore acoperire


construire_arbore_acoperire()
{calculeaza succesoarele lui M0;
for (fiecare succesor M)
if (M>M0) marcheaza cu & fiecare componenta a lui M
superioara componentei corespunzatoare din M0;
while (exista un marcaj nou Mi, neconsiderat)
if (nu exista pe calea de la M0 la Mi un marcaj Mj=Mi)
{ calculeaza succesoarele lui Mi;
for (fiecare succesor Mk al lui Mi)
{ o componenta & a lui Mi ramine & in Mk;
if (exista un marcaj Mj pe calea de la M0 la Mk cu Mk>Mj)
marcheaza cu & fiecare componenta din Mk
superioara componentei coresp. din Mj;
} }
}

Arbori si grafuri de acoperire


[100] M0
| t1
|
[011] M1
t2/
\t3
t3
/
\
[000] M2 [10&] M0+
| t1
l2
|
[01&] M1+
t2/
\t3
/
\
[00&] M2+ [10&] M0+

* c

Matricea de incidente
A |
1
2
3
4
-----------------------a |
-1
1
b |
1
-1
c |
-1
1
d |
1
-1
e |
-1
1 -1
1

t1

l3
t2

Analiza retelelor Petri prin calculul


invariantilor
Fie RP o retea Petri pura, in care L si T sint ordonate
(arbitrar):
L: l1 < l2 < ...< lm,
T: t1 < t2 < ...< tn.
Matricea A : LxT -> Z cu
A [li, tj] = O (tj, li) - I (li, tj)
este matricea de incidente a lui RP.
Notam:

A [li, -] = linia li
A [-, tj] = coloana tj

Modelul excluderii mutuale

l1

Aspecte de corectitudine
a) garantare ca nu se pierd puncte;
b) posibilitate reproducere marcaje.
Exemple:
RP far pierderi de puncte dar cu marcaj nereproductibil

*
*a

t1

t2

RP far pierderi de puncte si cu marcaj reproductibil

*
*a

t1

t2

t3

L-invarianti
RP cu pierderi de puncte si cu marcaj nereproductibil

l1 ***

*** l2

Pentru g = [1, 2, 1, 2, 1]
=>
gT.M = gT.M' = gT.M + gT.A[-,t].

t1
t3

t2

Pentru modelul excluderii mutuale


fie
M si M' cu M [t> M',
M' = M+A[-,t]
si invariantul
M[a]+2M[b]+M[c]+2M[d]+M[e] = 3 (orice M).

l3

Rezulta gT.A[-,t] = 0 orice t

=>

gT.A = 0.

g este L-invariant.
Un l-vector I este un L-invariant IT.A = 0.
Un L-invariant ne-negativ I se numeste minimal nu exista
un I' a.i.
0< I' < I.

Calcul invarianti
calcul_invarianti()
{ construieste matricea (U|A);
for (fiecare indice j al tranzitiei tj)
{
adauga la matricea (U|A) attea linii i cte combinatii
lineare de cte dou linii cu coeficienti intregi
pozitivi in care se anuleaz elementul [i,j] exist;
elimin din matricea (U|A) liniile i n care elementul
[i,j] este nenul.
}
}

U|A |
1 2 3 4
--------------------------------c
| 0 0 1 0 0
-1 1
d
| 0 0 0 1 0
1 -1
a+b | 1 1 0 0 0
b+e | 0 1 0 0 1
-1 1

Exemplul excluderii mutuale


U|A |
1 2 3 4
------------------------------a
| 1 0 0 0 0 -1 1
b
| 0 1 0 0 0 1 -1
c
| 0 0 1 0 0
-1 1
d
| 0 0 0 1 0
1 -1
e
| 0 0 0 0 1 -1 1 -1 1
Pentru j=1 se adauga liniile a+b si b+e

------------------------------a+b | 1 1 0 0 0 0 0 0 0
b+e | 0 1 0 0 1 0 0 -1 1

_
|
|
I1 = |
|
|_

_
0 |
1 |
0 |
1 |
1 _|

_
|
|
I2 = |
|
|_

_
0 |
0 |
1 |
1 |
0 _|

_
|
|
I3 = |
|
|_

_
1 |
1 |
0 |
0 |
0 _|

Daca M este un marcaj si I un L-invariant atunci ptr. orice M'


accesibil din M => IT.M' = IT.M.

Urmatoarea coloana: j=3; se adauga liniile c+d si d+b+e

---------------------------------c+d | 0 0 1 1 0
d+b+e| 0 1 0 1 1

Utilizare:
verificarea evitarii anumitor marcaje;
gasirea conditiilor necesare completarii unui marcaj M' accesibil din
M si cunoscut partial;
deducerea unor proprietati generale ale marcajelor accesibile.

Exemplu:
din relatia

IT.M

Reproducerea marcajelor

IT.M0

=
obtinem (ptr cei trei invarianti):
M[b] + M[d] + M[e] =1,
M[c] + M[d] = 1,
M[a] + M[b] = 1.

Efectul tranzitiei 1:
M0 + A[-,1] = M1
echivalenta cu:
_
|
M0 + A. |
|
|_

Relatiile exprim:
Conditia de excludere mutuala (rel 1)
Siguranta M[li] <= 1 pentru orice li
Retea conservativa
din g = I1 + I2 + I3 =>
M[a] + 2M[b] + M[c] + 2M[d] + M[e] = 3

Efectul cumulat tranzitii 1 si 2:


_
|
|
|
|_

M0 + A.

_
1 |
1 | = M0
0 |
0 _|

Exemplul excluderii mutuale

T-vectorul
_
|
e = |
|
|_

_
1 |
0 | = M1
0 |
0 _|

_
1 |
1 |
0 |
0 _|

J1 =

reprezinta nr. executii ale tranzitiilor si este o solutie a


ecuatiei A.y = 0
El se numeste T-invariant.

_
|
|
|
|_

_
1 |
1 |
0 |
0 _|

J2 =

_
|
|
|
|_

_
0 |
0 |
1 |
1 _|

J este un T-invariant A.J = 0.

RP revine in marcajul initial prin exec tranz 1 si 2


sau 3 si 4.

Un T-invariant ne-negativ J se numeste minimal nu exista


J' a.i. 0 < J' < J.

Din xT.A=0 si A.y=0

Daca J este un T-invariant atunci exista un marcaj


reproductibil prin executia tranzitiilor in conformitate cu J.

=> T-invariantii asociati lui A sunt L-invariantii lui AT.

Reducerea RP

Iesirile unei tranzitii de intrare devin iesiri ale tranzitiei obtinut prin
contopire

Eliminarea unui loc (reducerea R1)

b
a

t1

t2

t1
t13

l
t3

a
t12

t23
t14

t24

t4
c

t2
e

Tranzitie neutr (R3)

Reducerea unui loc implicit (R2)


t1

t1

t'

a
l

t2

t2

t3

t3

Tranzitii identice (R4)

Conservarea invariantilor

Cazuri ireductibile

tranzitie impur (Ra)


Retea conservativa
M(l1)+M(l2)=1

t2

l1 + l2

tranzitie pur (Rb)

t3

l7 + l8

l5 + l6

t4

t1
l1

***

**

l1+l2

l2

Proprietati pastrate prin reducere


Reduceri R1

R2

R3

R4

Ra

Un exemplu
Rb

Proprietati
Marginirea

Siguranta

Viabilitatea

Cvasiviabilitatea

Evitarea blocarii

Starea de revenire

Conservabilitatea

Invarianti

l1

l2

t2

t3

l4

l5
t4

l3

l1

*
l2+l4

l3
t3
l5

t4
Dupa Rb(t2)

Reducerea R'a (tranzitie impur)


Dupa Rb(t4)

l1+l2+l4

l1

t1
l2+l4

l1+l3+l5

**

q-p

Reducerea R'b (tranzitie pur)

t1

l3+l5

p-q

ti
p1
t4

l1+l2+l4

l1+l3+l5

**

Dupa Rb(t3)

q.li+p.lk

ti

q.p1

li

p.q1

tk

lk

Dupa Ra(t1)

q1

tk

Exemplu

l3+2.l4

l1+l2

**

l3
l3
2

l4

**
t1

l4

**

l4

l1+l2

t3

t3

**

3
Dupa Rb(t1)

l2

t3

t2

t2

l1+l2

2
2

l3

t2

l1

**

Dupa Rb(t2)

2
l1+l2

l3+2.l4

**

**
Dupa Ra(t3)

t3
Dupa Ra(t3)

S-ar putea să vă placă și