Sunteți pe pagina 1din 11

Tema 3: Tehnici generale de analiză a proprietătilor comportamentale

3.1 Arborele si graful de acoperire (accesibilitate)


3.2 Arborele de acoperire (accesibilitate)
3.3 Ecuația de stare
3.4 Reguli de transformare
3.5 Definirea proprietăților comportamentale
3.6 Subclase de rețele Petri ordinare si capacitatea lor de modelare. Configurații tip
sifon si capcană

3.1 Arborele si graful de acoperire (accesibilitate)

Fiind dată o rețea Petri (N, M0), pornind de la marcajul inițial M, modificarea marcajelor ca
urmare a executării tranzițiilor poate fi reprezentată sub forma unui arbore, denumit arbore de
acoperire (eng. coverability tree). În acest arbore, M0 este rădăcina, iar marcajele generate
sunt noduri; fiecare arc corespunde executării unei tranziții care transformă marcajul asociat
nodului de plecare în marcajul asociat nodului de sosire.

În cazul rețelelor Petri nemărginite, arborele de acoperire va creste la infinit. Pentru a păstra
finititudinea reprezentării de tip arbore care poate lua valori de acoperire, se introduce un
simbol special  acest simbol poate lua valori oricât de mari

Construcția sistematică a arborelui de acoperire a unei rețele (N, M0) se desfășoară conform
următorului algoritm:

Pas 1. Se stabilește M0 ca rădăcină si se etichetează M0 ca "marcaj nou".

Pas 2. Atât timp cât există cel puțin un marcaj etichetat drept "marcaj nou" se efectuează
următorii subpași:

Subpas 2.1. Se selectează un "marcaj nou" M.

Subpas 2.2. Dacă M este identic cu un marcaj de pe drumul de la rădăcină la M,


atunci marcajul M se etichetează drept "marcaj vechi" si se trece la un alt
"marcaj nou".

Subpas 2.3. Dacă pentru M, nici o tranziție nu este validată, atunci M se


etichetează ca "marcaj de deadlock".

Subpas 2.4. Dacă pentru M există tranziții validate, atunci pentru fiecare
tranziție t validată se efectuează următoarele etape:

Etapa 2.4.1. Se obține marcajul M' care rezultă din executarea


tranziției t, pornind de la marcajul M.

Etapa 2.4.2. Dacă pe drumul de la rădăcină la M există un


marcaj M" astfel încât M'(p)  M"(p) pentru orice poziție p si
M' M" (în sensul că pentru cel puțin o poziție p inegalitatea
M'(p)  M"(p) este strictă), atunci M'(p) se înlocuiește cu 
pentru fiecare poziție p în care avem inegalitatea strictă M'(p) >
M"(p). (Într-o formulare echivalenta , marcajul M' acoperă
marcajul M".)

1
Etapa 2.4.3. Se introduce M' ca nod al arborelui de acoperire, se
trasează un arc de la M la M' corespunzând tranziției t si se
etichetează M' drept "marcaj nou".

3.2 Graful de acoperire (accesibilitate)

Strâns legat de noțiunile de arbore de acoperire si de accesibilitate, se introduc grafurile de


acoperire si, respectiv, de accesibilitate.

Graful de acoperire asociat unei rețele Petri (N, M0) este un graf orientat G = (V, E).
Mulțimea nodurilor V este dată de mulțimea tuturor marcajelor distincte din arborele de
acoperire. Mulțimea arcelor orientate E servește pentru a uni oricare două marcaje Mi, Mj din
V, dacă există o tranziție tk a cărei executare duce de la Mi la Mj; arcele din E corespund
arcelor din arborele de acoperire.

În cazul rețelelor Petri mărginite, graful de acoperire este referit drept graf de accesibilitate,
întrucât nodurile mulțimii V sunt chiar marcajele accesibile ale rețelei, adică V  R(M0).

3.3 Ecuația de stare

Se consideră o rețea Petri pură N (vezi paragraful 2.1.2), cu n tranziții si m poziții. Se numește
matrice de incidentă (eng. incidence matrix) a rețelei, o matrice A = [aij] de dimensiuni n m,
ale cărei elemente sunt numere întregi:

unde:
 aij+= W(ti, pj) este ponderea arcului de la tranziția ti, către poziția sa de iesire pj;
 aij-= W(pj, ti) este ponderea arcului către tranziția ti, de la poziția sa de intrare pj.
Matricea A+= [aij+] (de dimensiune n m) este referită drept matrice de incidentă de ieșire.
Matricea A- = [aij-] (de dimensiune n m) este referită drept matrice de incidentă de intrare.
Din punctul de vedere al aplicațiilor, scrierea matricei de incidentă A se poate face global,
construind, mai întâi, matricele A+ si A-, după care se efectuează diferența:

care este, evident, echivalentă cu modul de definire .


Conform regulii tranziției se observă că aij- s i aij+ reprezintă numărul de jetoane îndepărtate
si respectiv adăugate în poziția pj, atunci când tranziția ti se execută o singura dată. Tranziția
ti este validată de un marcaj M, dacă si numai dacă:

Să considerăm o secvență de executări de tranziții si să presupunem că cea de a k-a executare


din această secvență are loc în tranziția ti, adică tranzit ia desemnata prin ti se afla pe locul k î
n secvența de executări:

Acest lucru poate fi descris global cu ajutorul unui vector coloană uk (de dimensiune n 1) ale
cărui elemente sunt toate 0, cu excepția celui de al i-lea element care este 1 (corespunzător
tranziției ti, unde are loc cea de a k-a executare a secvenței). Forma particulară a lui uk, face
ca vectorul coloană m 1, rezultat din înmulțirea ATuk să reprezinte tocmai cea de a i-a
coloană a matricei AT, respectiv cea de a i-a linie a matricei A. Dar, conform celor discutate
mai sus, linia i a lui A (adică aij, j=1,..., m) are semnificația schimbării marcajului rețelei ca
urmare a executării tranziției ti. Deci, revenind la vectorul coloană ATuk, acesta conține toate

2
schimbările de marcaj rezultate la a k-a executare din secvența considerată (executare ce s-a
presupus a avea loc în tranziția ti).

Pe de altă parte, schimbarea de marcaj în urma celei de-a k-a executări poate fi scrisă drept
MkMk-1, unde Mk-1, Mk notează marcajul după cea de-a (k-1)-a si respectiv a k-a executare
din secvența considerată.

Cum asupra lui k (ce referă executarea din secvență) si a lui i (ce referă tranziția unde are loc
această executare) nu au fost puse nici un fel de condiții, rezultă că, în general, schimbarea de
marcaj după cea de a k-a executare este descrisă de egalitatea:

Această egalitate este uzual folosită sub forma echivalentă:

și reprezintă ecuatia de stare (eng. state equation) a rețelei Petri. Vectorul uk se numește
vector de executare sau vector de control.

Exemplul

Se consideră rețeaua Petri din figura de mai jos

Fig. 1

Matricea de incidentă se construiește conform:

si permite scrierea imediată a ecuației de stare.

Considerând marcajul inițial M0=(2010)T care validează tranziția t3, marcajul M1


rezultat după executarea lui t3 se obține din ecuația de stare pentru vectorul de control
u1=(001)T. Concret, ecuația de stare are forma:

3
Rezultatul M1=(3002)T se confirmă imediat si prin aplicarea regulii tranziției în
descrierea grafică.

3.4 Reguli de transformare

În acest paragraf vom formula o serie de reguli de transformare care conservă proprietățile
fundamentale de viabilitate si mărginire (inclusiv cazul particular al 1-mărginirii, adică al
siguranței). Prezentăm aceste reguli drept echivalente, întrucât ele pot fi utilizate în scopul
reducerii complexității rețelei (în contextul problemelor de analiză, care urmăresc
simplificarea modelelor), sau în scopul expandării rețelei (în contextul problemelor de sinteză,
care urmăresc rafinarea modelelor). În fig. 2 sunt prezentate grafic aceste transformări
echivalente
1 poziții în serie - fig. 2(a)
2 tranziții în serie - fig. 2(b)
3 poziții în paralel - fig. 2(c)
4 tranzitii în paralel - fig. 2(d)
5 pozitie în buclă autonomă - fig. 2(e)
6 tranziție în buclă autonomă - fig. 2(f)

Fig. 2. Transformări de echivalentă care păstrează viabilitatea, mărginirea si


siguranța

a) Poziții în serie; b) Tranziții în serie; c) Poziții în paralel; d) Tranziții în


paralel;

e) Poziție în buclă autonomă; f) Tranziție în buclă autonomă

4
Notația u (cu indici) s-a folosit pentru arcele care intră în aceste structuri, iar notația y (cu
indici), pentru arcele care ies din aceste structuri.

Exemplul 3.2.6

Se consideră rețeaua Petri din fig. 3. Dacă se execută tranziția t2, marcajul devine cel
din fig. 3 (a). În această situație putem aplica regula 1 în sensul reducerii tranzițiilor
serie t1 si t2 la tranziția t12 si a reducerii tranzițiilor serie t3 si t4 la tranziția t34,
rezultând rețeaua din fig. 3(b).

Fig. 3. Reduceri prin transformări de echivalentă

a) Marcajul pentru rețeaua din fig. 3 (c) după executarea lui t2; b)
Rezultatul aplicării regulii 1 pentru rețeaua din fig. 3(a); c) Rezultatul
aplicării regulii 6 pentru rețeaua din fig. 3(b); d) Rezultatul aplicării
regulii 5 pentru rețeaua din fig. 3(c)

Prin aplicarea regulii 6 se elimină tranziția t12, obținând rețeaua din fig. 3(c).
Utilizarea regulii 5 permite eliminarea poziției p3, conducând la rețeaua din fig. 3(d).

3.5 Definirea proprietăților comportamentale

Accesibilitate

O secvență de executări de tranziții ale unei rețele conduce la modificarea marcajului


(distribuției de jetoane), în conformitate cu aplicarea regulii tranziției. Un marcaj Mn se spune
că este accesibil (eng. reachable) din marcajul inițial M0, dacă există o secvență de executări
de tranziții, care transformă M0 în Mn. Aceasta secvență de executări (de tranziții) se notează
prin: sau, simplu, prin: când nu interesează succesiunea
de marcaje.

Mulțimea tuturor marcajelor care pot fi atinse în rețeaua (N, M0), pornind din M0, se notează
prin R(N, M0), sau, simplu, prin R(M0), atunci când se subînțelege rețeaua N la care ne
referim. Mulțimea tuturor secvențelor de executare posibile î rețeaua (N, M0), pornind din M0,
se notează prin L(N, M0) sau, simplu, prin L(M0) atunci când se subînțelege rețeaua N la care
ne referim.

Mărginire

5
O rețea Petri (N, M0) se spune că este k-mărginită sau, pe scurt, mărginită (eng. bounded)
dacă numărul de jetoane din fiecare poziție nu depășește un număr finit k pentru orice marcaj
ce este accesibil din starea M0 (adică pentru orice secvență de executări de tranziții, pornind
de la marcajul M0). În limbaj matematic, aceasta revine la M(p)  k pentru orice p si orice M
R (M0).

O rețea Petri (N, M0) se spune că este sigură (eng. safe) dacă ea este 1-mărginită.

Din punct de vedere practic, când rețeaua modelează un proces, proprietatea de mărginire
permite a studia eventualele depășiri ale unor capacități fizice de procesare/memorare a
informației sau de prelucrare/stocare a produselor. Mărginirea asigură nedepășirea anumitor
valori, indiferent de secvența de evenimente (adică tranziții executate).

Viabilitate

O rețea Petri (N, M0) se spune că este viabilă (eng. live) (sau, echivalent, M0 se spune că este
un marcaj viabil pentru N) dacă, indiferent de marcajul care a fost atins pornind din M0, este
posibil ca, în continuare, să fie executată orice tranziție t a rețelei. Până la executarea lui t
poate fi necesara , eventual, executarea unui număr finit de alte tranziții.

Un marcaj pentru care nici o tranziție a rețelei nu mai poate fi executată se numește deadlock.
În baza definiției viabilității se constată că o rețea viabilă operează fără deadlock. Pe de altă
parte, o rețea care nu este viabilă nu evoluează în mod obligatoriu către deadlock, existând
una sau mai multe tranziții care pot fi executate de o infinitate de ori.

Întrucât proprietatea de viabilitate, în formularea de mai sus, este suficient de restrictiva , s-a
căutat relaxarea ei, introducându-se mai multe grade de viabilitate, după cum urmează.

O tranziție t din rețeaua Petri (N, M0) se spune că este:

0 viabilă L0 (sau blocată), dacă t nu se mai poate executa în nici o secvență din L
(M0).

1 viabilă L1(potential executabilă), dacă t se mai poate executa cel putin o dată în
unele secvente din L(M0).

2 viabilă L2, dacă, pentru orice întreg k>0, t se mai poate executa de cel putin k ori în
unele secvente din L (M0).

3 viabilă L3, dacă t se mai poate executa de un număr infinit de ori pentru unele
secvente din L (M0).

4 viabilă L4 (sau viabilă) dacă t este viabilă L1 pentru orice secvență din L (M0).

Se spune că o tranziție este viabilă Lk strict, daca ea este viabila Lk dar nu este viabilă L(k+1),
pentru k = 1,2,3.

Se constată că între gradele de viabilitate introduse mai sus, există următoarea conditionare
logică de tip implicatie:

viabilă L4 viabilă L3 viabilă L2 viabilă L1.

6
Notiunea de strictă viabilitate Lk se aplică la o rețea Petri (totalitatea tranzitiilor), păstrând
semnificatia introdusă anterior pentru o singura tranziție.

Exemplul .

Se consideră rețeaua Petri din fig. 4 (a). Rețeaua nu este viabilă, întrucât dacă se
execută t1 se ajunge la deadlock, (fig. 4 (b)), nici o altă tranziție nemaiputându-se
executa.

Fig. 4. Rețeaua Petri .

a) Marcajul initial; b) Marcajul de deadlock atins după executarea lui t1;


c) Marcajul de deadlock atins după executarea secventei t2, t4, t5, t1, t3;
d) Marcajul de deadlock atins după executarea secventei t2, t4, t5, t2

Aplicând gradele de viabilitate, se poate afirma că rețeaua este viabilă L1 strict,


deoarece fiecare tranziție poate să mai fie executată exact o singură dată, conform
secventei t2, t4, t5, t1, t3. În urma executării acestei secvente se ajunge la deadlock-ul
din fig. 4 (c).

Se constată că, deși rețeaua (în totalitate) este viabilă L1 strict, tranziția t2 este viabilă
L2 strict. Într-adevăr secvența t2, t4, t5, t2 permite executarea lui t2 de două ori, după
care se ajunge la deadlock-ul din fig. 4 (d).

Reversibilitate

O rețea Petri (N M0) se spune că este reversibilă (eng. reversible), dacă pentru orice marcaj
M R(M0), marcajul inițial M0 este, la rândul sa u, accesibil când se pornește din M. Astfel,
într-o rețea reversibilă, întotdeauna este posibilă întoarcerea la marcajul inițial.

Proprietatea de reversibilitate poate fi relaxată în sensul că nu se urmăreste întoarcerea chiar


în marcajul inițial M0, ci într-un alt marcaj, notat M', care poartă denumirea de marcaj (sau
7
stare) recuperabil (eng. home state). Astfel, se spune că un marcaj M' este recuperabil dacă,
pentru orice marcaj M R(M0), M' este accesibil din M.

Din punct de vedere practic, când rețeaua modelează un proces, proprietatea de reversibilitate
permite a studia repetabilitatea desfășurării anumitor activități sau a apariției anumitor condiții.

Acoperire

Un marcaj M în rețeaua Petri (N, M0) se spune că este acoperibil (eng. coverable), dacă există
un marcaj M' R(M0) astfel încât M'(p)  M(p) pentru fiecare pozitie p a rețelei.

Acoperirea este în strânsă conexiune cu viabilitatea L1. Să notăm prin M marcajul minim
necesar pentru a valida o tranziție t. Astfel, faptul că tranziția t este invalidată (nu este viabilă
L1) este tot una cu faptul că marcajul M nu este acoperibil. Într-o formulare echivalentă avem:
tranziția t este viabilă L1 dacă si numai dacă M este acoperibil. Pentru ilustrarea acestei
legături între viabilitatea L1 si proprietatea de acoperire se pot relua exemplele din paragraful
anterior.

Persistentă

O rețea Petri (N, M0) se spune că este persistentă (eng. persistent) dacă pentru oricare două
tranziții validate, executarea uneia dintre ele nu invalidează pe cea de a doua. Așadar într-o
rețea persistentă, o tranziție, odată ce a fost validată, rămâne validată până la executarea ei.

Distantă sincronă

Fie t1 si t2 două tranziții ale rețelei (N, M0). Se numește distantă sincronă (eng. synchronic
distance) între t1 si t2 numărul (finit sau nu):

notează o secvență de executări pornind din orice marcaj unde M R(M0), iar ,
notează numărul de executări ale tranziției t1, t2 în secvența de executări.

Din punct de vedere practic, când rețeaua modelează un proces de tipul condiții-evenimente,
distanta sincronă constituie o metrică pentru gradul de dependentă mutuală dintre două
evenimente.

3.6 Configurații tip sifon si capcană

În general analiza proprietății de viabilitate a acestor tipuri de rețele Petri, se bazează pe


identificarea si investigarea a două configurații specifice de poziții și tranziții, denumite sifon
si respectiv capcană. În cele ce urmează definim aceste două tipuri de configurații.

O submulțime de poziții S ale unei rețele Petri ordinare se numește zăvor sau sifon (eng.
siphon) dacă fiecare tranziție ce are o poziție de ieșire în S posedă și o poziție de intrare în S.
Echivalent, utilizând notația de precedentă si succesiune, avem:

8
Pentru ilustrare, a se vedea fig. 5 (a), î n care sifonul S={p1, p2, p3} se caracterizează prin
 S{t1} si S {t1, t2}.

O submulțime de poziții Q ale unei rețele Petri ordinare se numește capcană (eng. trap) dacă
fiecare tranziție ce are o poziție de intrare î n Q posedă și o poziție de ieșire î n Q. Echivalent,
utilizând notația de precedentă si succesiune, avem:

Pentru ilustrare, a se vedea fig. 5 (b), în care capcana Q ={p1, p2, p3} se caracterizează prin
Q  ={t1} si  Q  {t1, t2}.

Fig. 5. Ilustrarea configuratiilor tip sifon (a) si capcană (b)

Configurația tip sifon posedă următoarea proprietate fundamentală. Conținutul de jetoane al


sifonului (privit ca subrețea aparținând unei rețele Petri ordinare oarecare) fie rămâne constant,
fie descrește în urma oricărei secvențe de executări de tranziții. Cu alte cuvinte, nici o
secvență de executări nu poate creste conținutul de jetoane al unui sifon. Pentru ilustrare, a se
vedea sifonul S din fig. 3.4.3 (a) în care, executarea lui t1 păstrează constant conținutul de
jetoane ale lui S, iar executarea lui t2 îl descrește. O consecință importantă a acestei
proprietăți constă în faptul că un sifon, odată ce a ajuns gol (fără nici un jeton), va rămâne gol
pentru orice secvență de executări de tranziții.

Configurația de tip capcană posedă următoarea proprietate fundamentală. Conținutul de


jetoane al capcanei (privită ca subrețea aparținând unei rețele Petri ordinare oarecare) fie
rămâne constant, fie creste în urma oricărei secvențe de executări de tranziții. Cu alte cuvinte
nici o secvență de executări nu poate descrește conținutul de jetoane al unei capcane. Pentru
ilustrare, a se vedea capcana Q din fig. 5 (b) în care, executarea lui t1 păstrează constant
conținutul de jetoane al lui Q, iar executarea lui t2 îl crește. O consecință importantă a acestei
proprietăți constă în faptul că o capcană, odată ce a ajuns marcată (conține cel puțin un jeton),
va rămâne marcată pentru orice secvență de executări de tranziții.

Încheiem comentariile asupra proprietăților configurațiilor de tip sifon si capcană sugerând


cititorului, pentru fixarea terminologiei, asocierea acestor proprietăți cu sensul intuitiv
binecunoscut al funcționării unui sifon (care nu poate decât să-si micșoreze conținutul),
respectiv al unei capcane (care nu poate decât să-si mărească conținutul).

Un sifon se numește sifon de bază (sau fundamental) dacă nu poate fi reprezentat drept o
reuniune de alte sifoane. Similar, o capcană se numește capcană de bază (sau fundamentală)
dacă nu poate fi reprezentată drept o reuniune de alte capcane. Toate sifoanele (capcanele)
unei rețele Petri ordinare pot fi reprezentate drept reuniuni ale unor sifoane (capcane) de bază.

9
Un sifon (capcană) se numește minimal(ă) dacă nu conține nici un alt sifon (nici o altă
capcană). Sifoanele (capcanele) minimale sunt si sifoane (capcane) de bază, dar nu toate
sifoanele (capcanele) de bază sunt minimale.

În literatură sunt prezentați algoritmi pentru determinarea sifoanelor si capcanelor; ca


principiu general, acești algoritmi exploatează un sistem de ecuații logice, combinat cu un set
de inegalități liniare, care permit descrierea proprietăților fundamentale discutate anterior.
Informații detaliate pot fi găsite în (Lautenbach, 1987) si (Boer and Murata, 1994).

Exemplul.

Se consideră rețeaua Petri din fig. 6. Să identificăm sifoanele si capcanele, examinând,


pe rând, submulțimile de poziții cu unul, două, trei si respectiv patru elemente.

Pentru submulțimile conținând o singură poziție, avem:

{p1} {t2, t3},  {p1}={t1} {p1} nu este nici sifon, nici capcană;

{p2} {t1},  {p2}{t4} {p2} nu este nici sifon, nici capcană;

{p3} {t4},  {p3}{t1, t2} {p3} nu este nici sifon, nici capcană;

{p4} {t4},  {p4}{t3} {p4} nu este nici sifon, nici capcană.

Pentru submultimile continând câte două poziții, avem:

{p1, p2} {t1, t2, t3},  {p1, p2}{t1, t4} {p1, p2} nu este nici sifon, nici capcană;

{p2, p3} {t1, t4},  {p2, p3}{t1, t2, t4} {p2, p3} este capcană;

{p3, p4} {t4},  {p3, p4}{t1, t2, t3} {p3, p4} nu este nici sifon, nici capcană;

{p1, p4} {t2, t3, t4},  {p1, p4}{t1, t3} {p1, p4} nu este nici sifon, nici capcană;

{p1, p3} {t2, t3, t4},  {p1, p3}{t1, t2} {p1, p3} nu este nici sifon, nici capcană;

{p2, p4} {t1, t4},  {p2, p4}{t3, t4} {p2, p4} nu este nici sifon, nici capcană.

Pentru submulțimile conținând câte trei poziții, avem:

{p1, p2, p3} {t1, t2, t3, t4},  {p1, p2, p3}{t1, t2, t4} {p1, p2, p3} este sifon;

{p2, p3, p4} {t1, t4},  {p2, p3, p4}{t1, t2, t4} {p2, p3, p4} este capcană;

{p1, p3, p4} {t2, t3, t4}, {p1, p3, p4}{t1, t2, t3} {p1, p3, p4} nu este nici sifon,
nici capcană;

{p1, p2, p4} {t1, t2, t3, t4}, {p1, p2, p4}{t1, t3, t4} {p1, p2, p4} este sifon.

Pentru mulțimea tuturor pozițiilor, avem:

10
{p1, p2, p3, p4} {t1, t2, t3, t4},  {p1, p2, p3, p4}{t1, t2, t3, t4} {p1, p2, p3, p4}
este sifon si capcană.

Se constată că {p1, p2, p3} si {p1, p2, p4} sunt sifoane de bază și sifoane minimale.
Sifonul {p1, p2, p3, p4} nu este sifon de bază întrucât el poate fi reprezentat ca
reuniunea sifoanelor {p1, p2, p3} {p1, p2, p4}; rezultă așadar că nu este nici sifon
minimal.

Capcanele {p2, p3}, {p2, p3, p4} si {p1, p2, p3, p4} sunt capcane de bază întrucât nici
una din ele nu poate fi reprezentată drept o reuniune de alte două capcane. În schimb,
capcanele {p2,p3,p4} si {p1,p2,p3,p4} nu sunt capcane minimale, deoarece {p2,p3,p4}
conține capcana {p2, p3}, iar {p1, p2, p3, p4} conține capcanele {p2, p3} si {p2, p3,
p4}.

Fig. 6. Rețeaua Petri.

11

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