1 Reţele Petri
2 / 60
Reţele Petri
3 / 60
Reţele Petri
4 / 60
Ideea de bază
M : P → N ∪ {∞}
O reţea Petri este un hiper-graf ı̂n care stările sunt multiset-uri şi o
tranziţie are arce multiple de intrare şi de ieşire spre elemente din P.
5 / 60
Ingredients
Reţele Petri - informal
Ingredients
A Petri net is made up of...
O reţea Petri este formată din:
A Petri
A Petri net
net is
is made
made upup of...
of...
Places = some type of resource
PlacesLocuri
Places
== un
=
anumit
some
some
tip of
type
type
de resource
resurse
of resource
consume and produce
Transitions
consume resources
and produce
produce
Transitions consume and
Transitions
Tranziţii resources
consumă resources
şi produc resurse
= one unity of a
Tokens
certain
= one
one unityresource
unity of aa
Tokens = of
Tokens Tokens
Jetoane =
certain resourceplaces
‘live’
o certain
unitate in the
resource
dintr-o resursă
Jetoanele trăiesc ı̂n Locuri
Tokens ‘live’
Tokens ‘live’ in
in the
the places
places 12
12
12
6 / 60
Reţele Petri - informal
Tranziţii
Transitions
Output places
Input places
13
7 / 60
Reţele Petri - informal
Firing a transition
Tranziţiile consumă jetoane din locurile de intrare şi produc jetoane ı̂n
Transitions consume tokens from the input places
locurile de ieşire
and produce tokens in the output places
14
8 / 60
Firing a transition
Reţele Petri - informal
Tranziţiile consumă jetoane din locurile de intrare şi produc jetoane ı̂n
Transitions
locurile de ieşire consume tokens from the input places
and produce tokens in the output places
Definiţie
O reţea este un triplet (P, T , F ), unde
1 P este o mulţime de locuri (reprezentate prin cercuri)
2 T este o mulţime de tranziţii (reprezentate prin pătrate)
3 F ⊆ P × T ∪ T × P este relaţia de incidenţă
astfel ı̂ncât următoarele proprietăţi sunt adevărate:
(A1) P ∩ T = ∅
(A2) F 6= ∅ şi pentru orice x ∈ P ∪ T , există y ∈ P ∪ T astfel ı̂ncât
xFy sau yFx
10 / 60
Reţele
Variaţie: Notăm
•
x = {y | yFx} x • = {y | xFy }.
Uneori vom adăuga condiţia
(A3) pentru orice p1 , p2 ∈ P, dacă • p1 = • p2 şi p1• = p2• , atunci p1 = p2
(permite minimizarea numărului de locuri, cu preţul unei potenţiale măriri
a ponderii arcelor - ı̂n general o evităm)
11 / 60
Reţele
Exemplu
Fie N = (S, T , F ) reţeaua ı̂n care
S = {s1 , . . . , s6 } T = {t1 , . . . , t4 }
F = {(s1 , t1 ), (t1 , s2 ), (s2 , t2 ), (t2 , s1 ),
1.2. SYNTAX (s3 , t2 ), (t2 , s4 ), (s4 , t3 ), (t3 , s3 ) 11
(s5 , t3 ), (t3 , s6 ), (s6 , t4 ), (t4 , s5 )}
s1 s3 s5
t1 t2 t3 t4
s2 s4 s6
•
t2 = {s2 , s3 }
Figure 1.1: Graphical representation of the net N
12 / 60
Reţele Petri
Definiţie
O reţea Petri este un 5-uplu N = (P, T , F , W , M0 ) astfel ı̂ncât:
1 (P, T , F ) este o reţea finită (deci P, T , F sunt mulţimi finite)
2 M0 : P → N specifică marcajul iniţial
3 W : F → N \ {0} specifică ponderea arcelor
13 / 60
Reţele Petri
14 / 60
Tranziţia unei reţele Petri
M 0 = M − • F (t) + F • (t)
15 / 60
Limbajul unei reţele Petri
Notatii:
M[tiM 0 - t se poate efectua ı̂n marcajul M şi
rezultatul este M 0
M[t1 . . . tk iM 0 - există M1 , . . . , Mk cu
M[t1 iM1 . . . Mk−1 [tk iM 0
16 / 60
Limbajul unei reţele Petri
17 / 60
Reţele Petri
Exemplu
..Retele Petri
tranziţii: a, b, c, d
Exemplu: q
✲ ❧
locuri: p, q, r
marcaj rest a ✓✛✏
iniţial:
– a, b, c, d sunt1 jeton ı̂n pp,şiq,0rı̂n
tranziţii; locuri ❄c
– iniţial avem: 1 jeton ı̂n p, rest 0
ponderea arcelor: ✻ ✻
&❧ ✒
✲. ✑ ✲ ❧
❄ ✲ ❄
– aa consumă
consumăun unjetonjetondin dinp pşi şi pro-
produce
.b
p r
duce un jeton
un jeton ı̂n p şiı̂nunul
p şi unul
ı̂n q; scriem ı̂n q; ✻
acest fapt prin a : p →
scriem asta astfel: a : p → p ⊗ q p ⊗ q
b :p⊗q →q⊗r
– similar avem: b : p ⊗ q → q ⊗ r, .✛d
c :r ⊗q →r
c :dr:⊗r q→→p r şi d : r → p.
Un comportament tipic ı̂n această reţea este:
• când am un jeton ı̂n p se repetă a, producând jetoane ı̂n q; apoi
are loc b (dacă e cel puţin un jeton ı̂n q) şi se repetă c, dar nu
de mai multe ori ca a; apoi d ne readuce ı̂n situaţia iniţială
18 / 60
Reţele Petri
&❧ ✒
✲. ✑ ✲ ❧
apoi are loc b (dacă e cel puţin un ❄ ❄
– aı̂nconsumă un jeton din p şi pro- ✲
jeton q) p .b r
duce un jeton ı̂n p şi unul ı̂n q; ✻
şi se repetă c, dar nu de mai multe ori
scriem asta astfel: a : p → p ⊗ q
.✛d
decât a!
– similar avem: b : p ⊗ q → q ⊗ r,
d ne c : readuce
r ⊗ q → lar şisituaţia
d : r →iniţială
p.
Este un model abstract al unuiı̂nserviciu
Un comportament tipic aceastăproducător
reţea este: – consumator.
• când am un jeton ı̂n p se repetă a, producând jetoane ı̂n q; apoi
are loc b (dacă e cel puţin un jeton ı̂n q) şi se repetă c, dar nu
de mai multe ori ca a; apoi d ne readuce ı̂n situaţia iniţială
• este un model abstract al unui serviciu producător-consumator 19 / 60
Paralelism ı̂n spatiu şi ı̂n timp
Modelul nu face distincţie ı̂ntre paralelism ”ı̂n spaţiu” (uzual) şi cel
”ı̂n timp” (de tip ”pipeline”).
Paralelismul ı̂n spaţiu: o tranziţie poate avea arce din locuri diferite
forţând sincronizarea firelor de execuţie
Paralelismul ı̂n timp: o tranziţie poate folosi mai multe jetoane din
acelaşi loc, puse acolo la momente de timp diferite, producând o
serializare ı̂ntre acţiuni
Modelul nu face distincţie ı̂ntre jetoanele care ajung ı̂ntr-un loc,
pierzându-se cauzalitatea producerii lor.
pentru model, fie că ajung din locuri diferite, fie că sunt produse
dintr-un singur loc la momente de timp diferite, este acelaşi lucru
contează doar numărul jetoanelor, nu şi originea lor
20 / 60
Expresii concurente regulate
21 / 60
Expresii concurente regulate
Signatură:
α
+, ·, ∗, 0, 1, ||, , [ ], σ
0, 1 sunt constante
∗,α , σ sunt operatori unari
+, ·, ||, [ ] sunt operatori binari
22 / 60
Expresii concurente regulate
Alegere nedeterministă +:
Exprimă capacitatea unui agent de a alege ı̂ntre două comportamente
Este modelată prin reuniunea limbajelor
|E1 + E2 | = |E1 | ∪ |E2 |
sign(E1 + E2 ) = sign(E1 ) ∪ sign(E2 )
Compunere secvenţială ·:
Exprimă posibilitatea de a secvenţializa acţiunile unui agent
Este modelată prin concatenarea limbajelor
def
|E1 · E2 | = |E1 | · |E2 | = {x1 x2 | x1 ∈ |E1 |, x2 ∈ |E2 |}
sign(E1 · E2 ) = sign(E1 ) ∪ sign(E2 )
23 / 60
Expresii concurente regulate
24 / 60
Expresii concurente regulate
25 / 60
Expresii concurente regulate
26 / 60
Expresii concurente regulate
27 / 60
Expresii concurente regulate
Redenumirea σ:
σ : Σ1 → Σ2 ∪ {} este funcţia de redenumire (cu posibilă ştergere)
|σ(E )| = σ(|E |)
sign(σ(E )) = sign(E )
28 / 60
Expresii concurente regulate
29 / 60
Expresii concurente regulate
30 / 60
Expresii concurente regulate
31 / 60
Expresii concurente regulate
32 / 60
Reţele Petri descompuse
33 / 60
Reţele Petri descompuse
34 / 60
Reţele Petri descompuse
Lema
Orice reţea Petri este echivalentă cu o reţea Petri normală (i.e., cu toate
arcele de pondere 1).
Dem.
Fie p un loc şi k un număr cu proprietatea că toate arcele care pleacă
din sau vin ı̂n p au pondere ≤ k.
Înlocuim pe p cu un grup de k locuri conectate circular cu -tranziţii.
Un arc cu un capăt ı̂n p şi pondere n (n ≤ k) se ı̂nlocuieşte cu un
grup de n arce conectate la diferite locuri din grup.
Aplicând transformarea de mai sus tuturor locurilor din reţea, obţinem
o reţea Petri normală (cu -tranziţii) echivalentă cu cea iniţială.
35 / 60
Reţele Petri descompuse
Teorema
Orice reţea Petri N poate fi descompusă, i.e., există o reţea Petri
descompusă N 0 cu L(N) = L(N 0 ).
Dem.
Cu lema de mai sus ne putem restrânge la reţele normale
N = (P, T , F , W , M0 , Φ).
Fiecare loc din N devine un loc ı̂ntr-o unitate via o funcţie de asignare
f : P → {1, 2, . . . , k} astfel ı̂ncât
pt. or. t ∈ T , or. p1 , p2 ∈ P cu p1 6= p2 ,
dacă {p1 , p2 } ⊆ • t sau {p1 , p2 } ⊆ t • ,
atunci f (p1 ) 6= f (p2 )
(două locuri care sunt intrări sau ieşiri ale unei aceleiaşi tranziţii
trebuie asignate unor unităţi diferite)
36 / 60
Reţele Petri descompuse
Dem. (cont.)
reţeaua Petri descompunsă este D(N, f ) = (T , {U1 , . . . , Uk })
formată din unităţi Ui = (Pi , Σi , δi , Mi , Φi ) definite astfel:
Pi = {p ∈ P | f (p) = i} ∪ {spi } (spi este un loc special pentru
unitatea Ui care conţine un număr infinit de jetoane)
Σi = {t ∈ T | ex. p ∈ Pi , p ∈ • t ∪ t • } (o tranziţie din N induce o
tranziţie ”secţiune” ı̂n fiecare unitate care conţine cel puţin un loc de
intrare sau de ieşire al ei)
δi = {(pj , t, pk ) | t ∈ Σi , pj ∈ • t şi pk ∈ t • }
∪ {(pj , t, spi ) | t ∈ Σi , pj ∈ • t şi t • ∩ Pi = ∅}
∪ {(spi , t, pk ) | t ∈ Σi , • t ∩ Pi = ∅ şi pk ∈ t • }
Mi (p) = M0 (p), pentru orice p ∈ Pi , şi Mi (spi ) = ∞
Φi = (Pi ∩ Φ) ∪ {spi }
37 / 60
Reţele Petri descompuse
Dem. (cont.)
Observăm că:
marcajele iniţiale din N şi D(N, f ) sunt aceleiaşi, cu excepţia locurilor
speciale spi
tranziţiile care pot fi executate ı̂n N şi D(N, f ), plecând de la
marcajele iniţiale, sunt aceleiaşi şi produc marcaje egale (abstracţie
făcând de locurile speciale spi )
marcajele finale sunt aceleiaşi (abstracţie făcând de locurile speciale
spi )
locurile speciale nu creează probleme la execuţie sau acceptare (au un
număr infinit de jetoane).
În consecinţă, L(N) = L(D(N, f )).
38 / 60
Reţele Petri descompuse
Exemplu
Considerăm exemplul anterior: ..Retele Petri
tranziţii: a, b, c, d
Exemplu: q
✲ ❧
locuri: p, q, r
marcaj rest a ✓✛✏
iniţial:
– a, b, c, d sunt1 jeton ı̂n pp,şiq,0rı̂n
tranziţii; locuri ❄c
– iniţialarcelor:
ponderea avem: 1 jeton ı̂n p, rest 0 ✻ ✻
&❧ ✒
✲. ✑ ✲ ❧
❄ ✲ ❄
– aa consumă
consumăun unjetonjetondin dinp pşi şi pro-
produce
.b
p r
duce un jeton
un jeton ı̂n p şiı̂nunul
p şi unul
ı̂n q; scriem ı̂n q; ✻
prin a : p →
scriem asta astfel: a : p → p q⊗ q
acest fapt p ⊗
b :p⊗q →q⊗r
– similar avem: b : p ⊗ q → q ⊗ r, .✛d
c :r ⊗q →r
c :dr:⊗r q→→p r şi d : r → p.
Un comportament
stările finale: Φ = {r }tipic ı̂n această reţea este:
când
funcţia• de am un jeton
asignare: f (p)ı̂n=pf se
(r )repetă
= 1 şia,f producând
(q) = 2 jetoane ı̂n q; apoi
are loc b (dacă e cel puţin un jeton ı̂n q) şi se repetă c, dar nu
de mai multe ori ca a; apoi d ne readuce ı̂n situaţia iniţială
• este un model abstract al unui serviciu producător-consumator 39 / 60
Reţele Petri descompuse
Exemplu
a : p → p ⊗ q produce tranziţiile:
ap,p : p → p
a∗,q : ∗ → q
b : p ⊗ q → q ⊗ r produce tranziţiile:
bp,r : p → r
bq,q : q → q
c : r ⊗ q → r produce tranziţiile:
cr ,r : r → r
cq,∗ : q → ∗
d : r → p nu produce nimic nou; o rescriem dr ,p : r → p
40 / 60
Reţele Petri descompuse
Exemplu
Obţinem două unităţi:
U1
locuri: {p, r , sp1 }
tranziţii: ap,p : p → p, bp,r : p → r , cr ,r : r → r , dr ,p : r → p
iniţial: (p, r , sp1 ) = (1, 0, ∞)
finale: {r , sp1 }
U2
locuri: {q, sp2 }
tranzi̧tii: a∗,q : sp2 → q, bq,q : q → q, cq,∗ : q → sp2
iniţial: (q, sp2 ) = (0, ∞)
finale: {sp2 }
41 / 60
Teorema Kleene pentru reţele Petri
42 / 60
Teorema Kleene pentru reţele Petri
43 / 60
De la expresii la reţele Petri
44 / 60
De la expresii la reţele Petri
Lema 1
Fie A, B expresii regulate. Atunci:
1 Aα || B α = (A + B)α
2 (A || B α )α = Aα || B α
Dem.
(1) Dacă s ∈ Aα || B α , atunci s ∈ a1 || . . . || am || b1 || . . . || bn , pentru
nişte ai ∈ A, bj ∈ B. Deci s ∈ (A + B)α .
Invers, dacă s ∈ (A + B)α , atunci s ∈ c1 || . . . ||ck cu ci ∈ A + B. Folosind
comutativitatea lui ||, factorii compunerii paralele pot fi rearanjaţi după
apariţiile lui A şi apoi din B. Obţinem: s ∈ Aα || B α .
45 / 60
De la expresii la reţele Petri
Dem. (cont.)
(2) Dacă s ∈ (A || B α )α , atunci s ∈ s1 || . . . || sm cu m ≥ 0 şi pentru
fiecare i avem
si ∈ ai || b1i || . . . || bni i ,
cu ai ∈ A si bji ∈ B. Rearanjând factorii compunerii paralele după apariţiile
din A şi apoi din B, obţinem s ∈ Aα || B α .
Invers, dacă s ∈ Aα || B α , atunci s ∈ a1 || . . . || am || b1 || . . . ||bn , pentru
nişte ai ∈ A, bj ∈ B. De aici deducem că
46 / 60
De la expresii la reţele Petri
Lema 2
O expresie unitară este echivalentă cu una ı̂n ”formă normală”, anume de
tipul RegExp || RegExp α .
Dem.
Inducţie după numarul de apariţii ale lui || şi α . Pasul iniţial este simplu,
iar cel de inducţie se face astfel:
U1 ||U2 = (A1 || B1α ) || (A2 || B2α ) (ipoteza)
= A1 || A2 || B1α || B2α
= (A1 || A2 ) || (B1 + B2 )α (Lema 1)
α
= A||B
Uα = (A || B α )α
= (A + B)α (Lema 1)
unde A, A1 , A2 , B, B1 , B2 sunt expresii regulate.
47 / 60
De la expresii la reţele Petri
Lema 3
Clasa limbajelor Petri include clasa limbajelor regulate şi este ı̂nchisă la
||, [], σ.
Dem.
Este clar că limbajele regulate sunt şi limbaje Petri. Presupunem, ı̂n plus,
că reţelele Petri de mai jos au un singur jeton iniţial (cu -tranziţii pot
simula cazul general). Închiderea la celelalte operaţii rezultă astfel:
||: Fie L1 , L2 limbaje cu reţele Petri asociate N1 , N2 . Limbajul
L = L1 || L2 este recunoscut de reţeaua Petri N formată din:
reuniunea disjunctă a lui N1 cu N2
un nou loc iniţial p (cele din N1 , N2 nu sunt iniţiale)
o -tranziţie din p ce pune jetoanele iniţiale ı̂n N1 şi N2
48 / 60
De la expresii la reţele Petri
Dem. (cont.)
[ ]: Fie Li , Ni ca mai sus. Repetăm construcţia de mai sus, dar:
tranziţiile cu etichete din sign(L1 ) ∩ sign(L2 ) care apar ı̂n ambele
reţele sunt sincronizate
pentru fiecare pereche de tranzi̧tii t1 din N1 şi t2 din N2 cu aceeaşi
etichetă a, construim o nouă tranziţie, notată t1 ⊕ t2 , etichetată cu a,
şi care colectează toate conexiunile lui t1 şi t2 ; vechile tranziţii t1 , t2 se
şterg.
49 / 60
De la expresii la reţele Petri
Lema 4
Clasa limbajelor Petri include clasa limbajelor unitare.
Dem.
Cu lemele de mai sus, este suficient să arătăm că există reţele Petri pentru
limbaje de tipul RegExp α :
Fie E α , cu E regulată şi ∈ / L(E ) (nu contează dacă ∈ L(E ) sau
nu). Fie A NFA-ul asociat lui E , având o unică stare iniţială s care nu
este finală şi ”izolată” (ı̂n care nu intră arce). Orice automat care nu
acceptă este echivalent cu unul de acest tip.
50 / 60
De la expresii la reţele Petri
Dem. (cont.)
Interpretăm automatul A ca reţeaua Petri descompusă punând un
număr infinit de jetoane ı̂n s. Apoi eliminăm s (locul etichetat ∞) şi
obţinem astfel o reţea Petri uzuală N cu L(N) = L(E α ) \ {}
(tranziţiile de start din N sunt fără locuri iniţiale, putându-se efectua
oricând, de oricâte ori vrem).
În final, există o reţea Petri pentru L(N) ∪ {} = L(E α ).
51 / 60
De la expresii la reţele Petri
Teoremă
Limbajele reprezentate cu expresii concurente regulate sunt recunoscute de
reţele Petri.
Dem.
Rezultă din lemele de mai sus.
52 / 60
De la reţele Petri la expresii
53 / 60
De la reţele Petri la expresii
54 / 60
De la reţele Petri la expresii
Lema 1
O unitate cu mai multe locuri cu marcaj ∞ este echivalentă cu una cu un
singur loc marcat ∞.
Dem.
Putem identifica locurile marcate cu ∞, conservând limbajul.
55 / 60
De la reţele Petri la expresii
Lema 2
O unitate este echivalentă cu una având două zone:
tip I: cu un singur jeton iniţial
tip II: cu o infinitate de jetoane iniţiale, toate ı̂ntr-un singur loc
Dem.
Putem presupune că avem ı̂n U un unic loc marcat ∞, notat p∞ .
fie C componentă conexă a unităţii ce conţine p∞
dacă C are şi alte jetoane iniţiale, cum ele produc fire ce evoluează
independent, putem descompune C ı̂n două:
o parte C1 cu jetoane iniţiale din locurile diferite de p∞
cealaltă C2 cu toate jetoanele iniţiale ı̂n p∞
C1 şi partea rămasă din U (neinclusă ı̂n C ) pot fi combinate ı̂ntr-o
unică componentă cu un unic jeton iniţial (un număr finit de jetoane
iniţiale produc, prin ı̂ntrepătrundere, un limbaj regulat)
56 / 60
De la reţele Petri la expresii
Lema 3
Limbajul recunoscut de o unitate de tip II poate fi reprezentat cu o
expresie de tipul RegExp α .
Dem.
Fie U o unitate cu marcajul iniţial M satisfăcând M(p∞ ) = ∞, şi 0 ı̂n rest.
Dacă A este NFA-ul cu starea iniţială p∞ , tranziţiile şi stările finale din U,
atunci L(U) = L(A)α . Într-adevăr:
L(U) ⊆ L(A)α :
fie s ∈ L(U)
ı̂n procesul de acceptare se folosesc un număr de jetoane n
ele evoluează independent, generând cuvinte s1 , . . . , sn din L(A) cu
s ∈ s1 || . . . || sn , deci s ∈ L(A)α
57 / 60
De la reţele Petri la expresii
Dem. (cont.)
L(A)α ⊆ L(U):
fie s ∈ L(A)α
deci s ∈ s1 || . . . || sn , pentru cuvinte s1 , . . . , sn din L(A)
atunci s se poate genera ı̂n U folosind n fire de execuţie generate de
jetoane din p∞ , fiecare generând un cuvânt si
58 / 60
De la reţele Petri la expresii
Teorema
Limbajul acceptat de o reţea Petri descompusă N poate fi reprezentat cu o
expresie concurentă regulată.
Dem.
Cu Lema 2, fiecare unitate din N se descompune ı̂n două zone (de tip
I şi II) – limbajul unităţii este obţinut prin ı̂ntrepătrunderea unui
limbaj regulat cu unul de tipul RegExp α , deci este capturat de o
expresie unitară
cu operaţia de compunere paralelă cu sincronizare, obţinem limbajul
lui N (ı̂n termeni de tranziţii) din limbajele unităţilor
ı̂n final, cu operaţia de redenumire ı̂nlocuim tranziţiile cu literele
asociate, găsind o expresie concurentă regulată pentru L(N).
59 / 60
Pe săptămâna viitoare!
60 / 60