Documente Academic
Documente Profesional
Documente Cultură
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...
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...
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 • = ∅.
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:
Exemplu:
O tanzitie este posibila daca locatiile input contin suficiente puncte:
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.
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 )
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>.
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>