Sunteți pe pagina 1din 10

Aplicații cu retele Petri: Proiectarea

Software

Retelele Petri sunt o metoda formala (matematica) folosita pentru modelarea si verificarea sistemelor
(concurente/distribuite).
Sistemele sunt:
 alcatuite din componente care interactioneaza
 îndeplinesc o anumita funtionalitate
 evenimente si stari
 concurenta, comunicare, sincronizare
Exemple de sisteme:
 sisteme automatizate de productie
 sisteme de control al traficului aerian
 sisteme de monitorizare si control în industrie
 retele de comunicare
 sisteme software distribuite, etc...

Modelarea si verificarea sistemelor

 Verificarea sistemelor reale: are drept scop verificarea unor proprietati dezirabile, înca din
stadiul de proiectare.
 Un model surprinde caracteristici esentiale ale sistemului
 Modele (formale) pentru verificarea sistemelor:
 automate/sisteme tranzitionale
 algebre de procese
 logici temporale
 retele Petri etc...

Retele Petri pentru modelarea sistemelor


 Carl Adam Petri, 1962
 grafuri bipartite
 reprezentare explicita starilor si evenimentelor dintr-un sistem
 reprezentare grafica intuitiva
 semantica formala
 expresivitate (concurenta, nedeterminism, comunicare,sincronizare)
 existenta metodelor de analiza a proprietatilor
 numeroase unelte software pentru editarea/verificarea proprietitilor retelelor Petri
Domenii de aplicabilitate ale retelelor petri:
 Protocoale de comunicare, retele
 Sisteme software si hardware
 Algoritmi distribuiti
 Protocoale de securitate
 Biologie, Chimie, Medicina
 Economie (fluxuri de lucru) etc..

Definitie 1. O retea Petri este un 4-uplu N = (P, T, F, W ) astfel încât :


1. P multime de locatii, T multime de tranzitii, P ∩ T = ∅ ;
2. F ⊆ ( P × T ) ∪ ( T × P ) relatia de flux;
3. W : ( P × T ) ∪ ( T × P ) → N ponderea arcelor
(W (x, y) = 0 daca (x, y ) 6∈ F).

 P = { p 1, p 2, p 3 }
 T = { t 1, t 2, t 3 }
 F = {(p 1, t 1), (t 1, p 2), (t 1, p 3),
(p 3, t 3), (t 3, p 1), (p 2, t 2)}

 W(p 1, t 1) = 1, W(t 1, p 2) = 1,
 W(t 1, p 3) = 1, W(p 3, t 3) = 1,
 W(t 3, p 1) = 1,W(p 2, t 2) = 2

Daca x ∈ P ∪ T, atunci:
- Premul¸timea lui x: • x = { y|(y, x ) ∈ F };
- Postmul¸timea lui x: x • = { y|(x, y ) ∈ F }

- • t 1 = { p 1 }, • t 2 = { p 2 }, • t 3 = { p 3 }
- t 1 • = { p 2, p 3 }, t 2 • = ∅, t 3 • = { p 1 }
- • p 1 = { t 3 }, • p 2 = { t 1 }, • p 3 = { t 1 }
- p 1 • = { t 1 }, p 2 • = { t 2 }, p 3 • = { t 3 }
Definitie 2. O retea este pura daca, pentru orice x ∈ P ∪ T, • x ∩ x • = ∅.

Definitie 3. O retea este fara elemente izolate, daca, pentru orice x ∈ P ∪ T, • x ∪ x• 6= ∅


Definitie 4 (Marcare, retele marcate)

 Fie N = (P, T, F, W ) o re¸tea P/T. O marcare a lui N este o functie M : P → N.

 Fie N = (P, T, F, W ) o re¸tea P/T ¸si M0 : P → N. Atunci (N, M0 ) se numeste retea Petri
marcata.

 Distributia punctelor în locatiile unei retele = marcarea retelei (starea sistemului modelat)
 Tranzitii: reprezinta actiuni sau evenimente din sistemul modelat
 Punctele din locatii: pot modela resurse/valori booleene
 Locatiile input: contin resurse (reprezentate de punctele din locatie) care vor fi folosite de
catre actiune, preconditii pentru producerea unui eveniment
 Ponderea unui arc input: câte resurse de un anumit tip sunt necesare producerii actiunii
 Ponderea unui arc output: numarul de resurse de un anumit tip rezultate prin producerea
actiunii

Exemplu
Model producator consumator:

 Producatorul (P) poate produce câte un produs (într-un buffer)


 Un consumator (C) preia câte doua produse din buffer
 Stari producator: producator activ (pregatit sa produca), producator în repaus.
 Evenimente: P produce un produs, C consuma produse, P redevine activ
Regula de producere a tranzitiilor
Fie N = (P, T, F, W ) o retea Petri, M o marcare a lui N ¸si t ∈ T o tranzitie a lui N.

 Tranzitia t este posibila la marcarea M ( M[t i N ) daca W (p, t ) ≤ M ( p ), pentru orice p ∈ • t.


 Daca t este posibila la marcarea M, atunci t se poate produce, rezultând o noua marcare
M′ ( M[t i N M′), unde M′ ( p) = M ( p ) − W (p, t) + W (t, p ), pentru toti p ∈ P.

Exemplu:
 O tanzitie este posibila daca locatiile input contin suficiente puncte:

 Producerea unei tranzitii modifica marcarea retelei.

Exemplu I
 Automat care furnizeaza produse
Secvente de aparitie a tranzitiilor
Regula de producere a tranzitiilor se poate extinde la secvente de tranzitii:
Definitie (secvente de aparitie): Fie σ = t 1 t 2 . . . t k ∈ T∗ si M o marcare. σ se numeste secventa
finita de aparitie, posibila la M , daca exista marcarile M 1, M2, . . . , Mk astfel încât:
M[t 1 i M 1[t 2 i M2 . . . Mk − 1[t k i Mk
Se mai noteaza: M[σ i Mk.

 Secventa vida de tranzitii, notata cu ǫ, este secventa de aparitie


posibila la orice marcare M a retelei, si are loc: M[ǫ i M.
 secventa infinita de tranzitii σ = t 1, t 2, . . . este secventa infinit a
de aparitie, posibila la marcarea M, daca: M[t 1 ] M2[t 2] M3. . ..

Proprietatea de marginire
Fie γ = (M, M0 ) o retea Petri marcata.
Definitie (marginire): O locatie p este marginita daca: ( ∃ n ∈ N)( ∀ M ∈ [M0 i)( M ( p ) ≤ n )

 Reteaua marcata γ este marginita daca orice locatie p ∈ P este marginita.


 Reteaua N este structural marginita, daca exista o marcare M astfel încât (N, M ) este
marginita

reteaua este marginita: M(p) ≤ 1, ∀p ∈ P

r eteaua este nemarginita:

p2 poate contine o infinitate de puncte!


Proprietati: pseudo-viabilitate
Fie γ = (N, M0) o retea Petri marcata.

Definitie (pseudo-viabilitate)

 O tranzitie t ∈ T este pseudo-viabila din marcarea M, daca exista o marcare M′ ∈ [M> astfel
încât M′[t>.
 O tranzitie t ∈ T este pseudo-viabila daca este pseudo-vaibila din M0 (exista o marcare
accesibil a M ∈ [M0> astfel încât M[t>). O tranzitie care nu este pseudo-viabila se numeste
moarta.
 Reteaua marcata γ este pseudo-viabila daca toate tranzitiile sale sunt pseudo-viabile.

Proprietati: blocaje
Fie γ = (N, M0) o re¸tea Petri marcata.

 marcare M a retelei marcate γ este moarta daca nu exista o tranzitie t ∈ T astfel încât M[t>.
 Reteaua γ este fara blocaje , daca nu exista marcari accesibile moarte.

Proprietati: viabilitate
Definitie (viabilitate): Fie N = (P, T, F, W) o retea de tip P/T si γ = (N, M0) o retea Petri marcata.

 O tranzitie t ∈ T este viabila daca ∀M ∈ [M0>, t este pseudo-viabila din M (∃M′ ∈ [M> a. î.
M′[t>).
 Reteaua marcata γ este viabila daca orice tranzitie t ∈ T este viabila.

 Reteaua N este structural viabila daca exista o marcare M astfel încât (N, M) este viabila.

Reversibilitate
Definitie: Reteaua marcata γ este reversibila daca marcarea sa initiala este accesibila din orice marcare
M ∈ [M0>.

Proprietati ale retelelor Petri


Fie γ = (N, M0) o retea Petri marcata.
 Orice retea marcata viabila este si pseudo-viabila.
 Orice retea marcata viabila, având cel putin o tranzitie, este fara blocaje.
 Daca o retea fara locatii izolate este viabila, atunci orice locatie poate fi marcata, din orice
marcare accesibila.
 retea marcata reversibila este viabila daca este pseudo-viabila.
 retea marcata reversibila este fara blocaje.

Exemplu aplicatie PN folosind PN toolbox si XML:

5 t1
3
p1

t2
Modelul PN utilizat pentru ilustrarea formatului de fisier XML si PN toolbox.

<?xml version="1.0"?>
<PNToolbox>
<Model_name>XMLexample.xml</Model_name>
<Type>2</Type> <!-- T-timed PN -->
<Seed>66</Seed> <!-- initial seed -->
<Place> <!-- place definition-->
<Id>p1</Id> <!-- place’s id -->
<Value>5,43</Value> <!-- coordinates in the Drawing Area-->
<Color>black</Color> <!-- drawing color-->
<Label> <!-- information of the label-->
<Name>p1</Name> <!-- string label-->
<Offset>0.50,-0.20</Offset> <!-- the offset of the representation-->
<Visible>yes</Visible> <!-- the visibility of the label-->
</Place>
<Transition> <!—transition’s definition-->
<Id>t1</Id> <!-- transition's id-->
<Value>8,45</Value> <!-- coordinates in the Drawing Area-->
<Color>black</Color> <!-- drawing color-->
<Message>Firing transition t1</Message> <!-- message displayed when it is fired-->
<Label> <!-- information of the label-->
<Name>t1</Name> <!-- string label-->
<Offset>0.50,-0.20</Offset> <!-- the offset of the representation-->
<Visible>yes</Visible> <!-- the visibility of the label-->
</Label>
<Time> <!-- information for time distribution function>
<Distribution>constant</Distribution> <!-- constant distribution-->
<Parameters>3</Parameters><!-- duration equal to 3-->
</Time>
</Transition>
<Transition> <!-- second transition’s definition -->
<Id>t2</Id> <Value>8,41</Value>
<Color>black</Color>
<Message>Firing transition t2</Message>
<Label>
<Name>t2</Name>
<Offset>0.50,-0.20</Offset>
<Visible>yes</Visible>
</Label>
<Time>
<Distribution>cont. uniform</Distribution> <!-- uniform distribution between
1 and 5--> <Parameters>1,5</Parameters>
</Time>
</Transition>
<Arc> <!-- arc definition>
<Id>a1</Id> <!-- arc's ID-->
<From>p1</From> <!-- departure node-->
<To>t1</To> <!-- arrival node-->
<Style>1</Style> <!-- regular arc-->
<Type>1</Type> <!—the graphical representation is a line -->
<Color>black</Color> <!-- drawing color-->
<Weight>2</Weight> <!-- arc's weight-->
</Arc>
<Arc>
<Id>a2</Id>
<From>p1</From>
<To>t2</To>
<Style>1</Style>
<Type>1</Type>
<Color>black</Color>
<Weight>3</Weight>
</Arc>
<Probability> <!-- probability for conflicting transitions t1 and t2; 25% for t1 and 75% for t2
-->
<Transitions>t1,t2</Transitions>
<Values>0.25,0.75</Values>
</Probability>
</PNToolbox>

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