Sunteți pe pagina 1din 60

Abordarea prin reţele Petri a controlului SED

Yamalidou s.a. (1996) descriu o metoda de sinteza a controlerelor pentru SED,


modelate prin retele Petri. La construirea acestor controlere se utilizeaza locatii si arce.
Dimensiunea lor este proportionala cu numarul de constrangeri ce urmeaza sa fie
implementate. Aceste controlere forteaza constrangeri liniare asupra comportamentului
marcajelor retelei Petri.
O cerinta importanta este ca toate constrangerile sa fie compuse din inegalitati
liniare formate cu elementele vectorilor marcajelor. Multe alte tipuri de constrangeri pot fi
transformate in mod similar.

Controlul garanteaza maximum de permisivitate datorita faptului ca forteaza setul


constrangerilor la care trebuie sa se supuna procesul, permitand orice actiune care nu este
interzisa direct de constrangeri.

Procesul (instalatia) care trebuie controlat este modelat printr-o retea Petri cu n locatii
si m tranzitii.
Dimensiunea matricei de incidenta a procesului, Ap, este n x m, unde n reprezinta numarul de
locatii, iar m pe cel al tranzitiilor. Se presupune ca matricea Ap are o astfel de structura incat
toate tranzitiile admisibile pot fi executate.
Este posibil ca procesul sa violeze unele constrangeri asupra comportamentului sau,
ceea ce explica necesitatea aplicarii comenzii.

Controlerul este o retea Petri cu matricea de incidenta Ac, construita cu un set separat
de locatii. Sistemul controlat este reteaua Petri cu matricea de incidenta A, construita din
partea corespunztoare procesului si cea corespunztoare controlerului. Scopul controlerului
este de a forta procesul sa se supuna constrangerilor de forma:

n
Σ li M(pi)  b
i=1

M(pi) este marcajul locatiei pi, iar li si b sunt constante intregi.

153
Constrȃngerea de tip inegalitate poate fi transformata într-o constrȃngere de tip
egalitate, prin adăugarea unei variabile libere Mc în relaţia de mai sus. Cu aceasta,
constrȃngerea devine:

n
Σ li M(pi) + Mc = b
i=1

Variabila liberă Mc = M(pc) este implementată de către o nouă locaţie pc. Locaţia pc
este o componentă a controlerului. Constrȃngerea de tipul de mai sus garantează că suma
ponderată a jetoanelor din locaţiile reţelei corespunzătoare procesului este mai mică decȃt b.
Fiecare constrȃngere de tipul de mai sus este forţată prin utilizarea unei locaţii
aparţinȃnd controlerului. Prin urmare, controlerul va avea tot atȃtea locaţii cȃte constrȃngeri
trebuie să se impună. Fiecare locaţie adăugată controlerului va suplimenta cu un rȃnd matricea
de incidenţă a acestuia. Astfel, matricea de incidenţă A este compusă din două matrice: Ap, de
dimensiune n x m şi Ac, de dimensiune qx m, unde q reprezintă numărul constrȃngerilor
impuse de controler.
Arcele, care conecteaz locaţiile controlerului cu tranziţiile reţelei corespunzătoare
procesului, vor fi determinate impunȃnd ca sistemul rezultat să aibă ca invariant de tip P
vectorul format din coeficienţii sumei ponderate care reprezintă constrȃngerea.
Fie xT = [l1 l2 ... ln 1] vectorul invariant de tip P. Toate constrȃngerile pot fi grupate,
astfel încȃt, să fie îndeplinită inegalitatea matriceală:

L Mp  b
unde:
b este un vector de dimensiune nc x 1, avȃnd ca elemente numere întregi,
L este o matrice de dimensiune nc x n, ale cărei elemente sunt numere întregi, iar nc
reprezintă numărul de constrăngeri care trebuie impuse.
Ecuaţiile care definesc invariantul de tip P pot fi grupate într-o matrice de forma:

L Mp + Mc = b
unde Mc este vectorul nc x 1 dimensional care reprezint marcajele locaţiilor controlerului.
Un invariant definit ca mai sus trebuie să satisfacă ecuaţia:

Ap
XT A = [L I] Ac =0

154
X este o matrice reprezentȃnd cei nc invarianţi diferiţi, I este matricea identitate de
dimensiune nc x nc. Matricea Ac conţine arcele care conectează locaţiile controlerului cu
tranziţiile procesului.
Din ecuaţia de mai sus se obţine:
L Ap + Ac = 0
de unde rezultă:
Ac = - L Ap
Dacă Mp0 exte marcajul iniţial al reţelei Petri corespunzătoare procesului, marcajul
iniţial al controlerului Mc0 este astfel calculat încȃt să verifice ecuaţia care defineşte setul de
invarianţi:

L Mp0 + Mc0 = b

Rezultă că marcajul iniţial al controlerului trebuie să fie:

Mc0 = b - L Mp0

Yamalidou .a. (1996) demonstrează că aplicarea metodei de mai sus duce la obţinerea unui
controler care garantează permisivitatea maximă a sistemului, dar impune constrȃngerile
cerute.
Exemplul 1
Pentru exemplificarea aplicării metodei de mai sus, se consideră un proces avȃnd
modelul reprezentat prin reţeaua Petri din figura 7.2, unde Mp0 = [1 0 0 0 0 0 0]T. Matricea de
incidenţă a reţelei Petri corespunzătoare procesului este:

-1 0 0 0 0 1
1 -1 0 0 0 0
1 0 -1 0 0 0
Ap = 0 1 0 -1 0 0
0 0 1 0 -1 0
0 0 0 1 0 -1
0 0 0 0 1 -1

Se cere să se implementeze constrȃngerea:

155
M(p4) + M(p5)  1
Soulţie:
Cazul a. Matricea L este:
L = [ 0 0 0 1 1 0 0]
Matricea de incidenţă a controlerului este:
Ac = -L Ap = - [0 1 1 -1 -1 0] = [0 -1 -1 1 1 0]

Cu aceasta se obţine matricea de incidenţă a sistemului controlat:

-1 0 0 0 0 1
1 -1 0 0 0 0
1 0 -1 0 0 0
A= 0 1 0 -1 0 0
0 0 1 0 -1 0
0 0 0 1 0 -1
0 0 0 0 1 -1
0 -1 -1 1 1 0

Marcajul iniţial al controlerului este:


M0(pc) = 1 - L M0p = 1 - 0 = 1
In figura 7.3 este reprezentată reţeaua Petri corespunztoare sistemului controlat care
respectă constrȃngerea din cazul a.

p1 p1

t1 t1

pc
p2 p3 p3

t2 t3 t2 t3

p4
p4 p5 p5

t4 t5 t4 t5

P6
p6 p7 p6 p7

t6 t6

Figura 7.2 Reţea Petri Figura 7.3 Reţea Petri controlată în


iniial cazul a

156
Supervizor

p3

t6 b t4 L(/G)
a
b
p5
p4
to
t5 b

a b

t1 t3
to t2

po  p1 b p2

Plant

Figura 7.8

157
Abordarea SED prin metoda Grafcet
Metoda Grafcet se bazează pe un standard grafic şi un formalism auxiliar. Metoda
este utilă la descrierea şi proiectarea SED. Există două forme de reprezentare: originală şi
normalizată, reprezentate în figura 1.

a) b)
Figura 1.

Elemente de bază ale metodei Grafcet

Metoda se bazează pe grafuri în care există două tipuri de noduri: etape sau paşi
şi tranziţii. Un astfel de graf conţine cel puţin o etapă şi o tranziţie. Etapele şi tranziţiile
sunt conectate cu arce orientate.

Etape

Etapele sunt reprezentate prin pătrate sau dreptunghiuri, figura 2.a. O etapă poate
fi activă sau inactivă. Etapa activă este marcată prin existenţa unui punct în interiorul
pătratului, figura 2.b. Etapele care devin active la startarea sistemului se numesc etape
iniţiale şi sunt reprezentate prin dublarea conturului etapei, figura 2.c.
Etapelor le sunt asociate acţiuni. Aceste acţiuni reprezintă de cele mai multe ori
ieşirile modelului considerat.

a) b) c)

Figura 2
Tranziţii

O tranziţie poate fi reprezentată după cum urmează:


a) daca există o singură ramură de intrare şi o singură ramura de ieşire din
tranziţie aceasta este reprezentată printr-o linie, figura 3.a;
b)dacă există două sau mai multe ramuri de intrare în tranziţie, atunci linia simplă
este precedată de două linii duble (sincronizare), figura 3.b;
c) dacă există două sau mai multe linii de ieşire din tranziţie, linia simplă este
urmată de doua linii duble, (distribuţie) figura 3.c;
Cazul în care există şi sincronizare şi distribuţie este reprezentat în figura 3. d.

d) sincronizare
a) b) sincronizare c) distribuţie şi distribuţie

Figura 3

Fiecărei tranziţii i se asociază o receptivitate Ri. Receptivitatea poate fi exprimată


ca:
 o condiţie logică;
 eveniment extern;
 condiţii logice şi evenimente externe.

Legături orientate (arce)

Arcele stabilesc legătura între tranziţii şi etape. În reprezentarea normalizată


numai arcele orientate de jos în sus au sensul de parcurgere indicat printr-o săgeată
situată pe arc. Când două sau mai multe arce ajung la aceeaşi etapă ele se ramifică dintr-
o porţiune de arc comună, conform figurii.

Observaţii

1. O legătură orientată trebuie să aibă întotdeauna un nod de intrare şi un


nod de ieşire.
2. O etapă poate să nu aibă fie tranziţii de intrare, fie tranziţii de ieşire.
3. O tranziţie poate să nu aibă fie etape de intrare, fie etape de ieşire.

Situaţie
Etapa activă este marcată printr-un punct. Etapa inactivă nu conţine nici un punct.
Totalitatea etapelor active la un moment dat defineşte situaţia în acel moment. O situaţie
corespunde unei stări a sistemului. În figura 4 este reprezentat un model construit din 4
etape şi trei tranziţii. Etapele 2 şi 3 sunt active. Situaţia este reprezentata prin etapele
(2,3). Acţiunea A, asociată etapei 3, este în curs de desfăşurare pentru că etapa 3 este
activă. În reprezentarea normalizată acţiunea asociată etapei este menţionată într-un
dreptunghi situate la dreapta etapei.
Etapelor li se asociază variabile logice, x. O variabilă logică xi, asociată unei
etape i, are valoarea 1 atunci când etapa respectivă este activă. În figură x1=0, x2=x3=1,
x4=0.

R1
(1)

2 3 Acţiune A

R2
(2)

(3)

Figura 4

Executabilitatea unei tranziţii

O tranziţie este executabilă, dacă şi num,ai dacă următoarele condiţii sunt îndeplinite:

1.Toate etapele care preced tranziţia sunt active. În acest caz se spune că tranziţia este
validată.
2. Receptivitatea tranziţiei ia valoarea adevărat, adică 1logic. În figura precedentă
tranzitiile (1) şi (3) nu sunt validate şi este validată tranziţia (2). Tranzitia (2) este
executabilă dacă receptivitatea R2 ia valoarea adevărat.
Execuţia unei tranziţii

Execuţia unei tranziţii presupune dezactivarea tuturor etapelor care preced


tranziţia şi activarea etapelor care o succed, figura 5. Aceste operaţii de activare,
dezactivare sunt nedisociabile şi sunt efectuate simultan. Execuţia unei tranziţii are durata
nulă (este infinit mică).

1 2
1 2

(i) Ri (i) Ri

3 4
3 3
4

Figura 5

Reguli de executabilitate

 1. Toate tranziţiile executabile sunt imediat executate;


 2. Mai multe tranziţii care sunt simultan executabile, se execută simultan;
 3.Atunci când o etapă este simultan activată şi dezactivată, ea rămâne activă.

Comentarii asupra regulii 2.

În figurile a şi b sunt prezentate două exemple de executabilitate simultană.


1 2 1

(1) (b) (2) (b)


(1) (R1) (2) (R2)

3 4 2 3
A B
a) b)

În figura a, tranziţiile 1 şi 2, aparţinând aceluiaşi model sunt validate. Când


variabila logică b ia valoarea 1, cele două tranziţii sunt simultan executabile (dacă etapele
precedente sunt active) şi vor fi simultan executate (în conformitate cu regula 1).
Această evoluţie nu pune nici o problemă, deoarece condiţiile de validare a celor doua
tranziţii sunt independente. Dacă receptivităţile sunt diferite şi tranziţia 1, de exemplu, ar
fi executată înaintea tranziţiei 2, tranziţia 2 rămâne validată şi reciproc.
Cazul din figura b este diferit. Condiţiile de validare a celor două tranziţii nu mai
sunt independente. Tranziţiile vor fi executate simultan dacă au aceeaşi receptivitate şi
anume atunci când variabilele R1 şi R2 iau simultan valoarea 1. Dacă însă, R1 diferă de
R2, se poate ca tranziţia 1 să fie executată înaintea tranziţiei 2 şi tranziţia 2 să nu mai fie
validată. Evoluţia depinde de ordinea producerii evenimentelor. Dacă etapa 1 este activă,
cele două tranziţii pot lua valoarea 1 simultan, atunci când R1 şi R2 nu sunt independente.
De exemplu, R1 = cd, R2 = ce, d=e=1 şi c trece de la valoarea 0 la 1.
Se utilizează termenul de conflict, pentru cazul în care validarea a două tranziţii
depinde de activarea unei etape comune şi cele două tranziţii pot lua simultan valoarea
1(adevărat). Acest caz poate conduce la erori de proiectare.

Exemple de conflicte

Exemplul 1

Pentru figura b, se consideră următoarea interpretare: etapa 1 este activă atunci


când tronsonul comun de cale ferată pe care etapa îl reprezintă, este disponibil. Spre acest
tronson converg alte două tronsoane, etapele 2 şi 3, fiind active atunci când tronsoanele
sunt ocupate. Când un tren ajunge la intersecţie pe tronsonul 2, apare din partea acestuia
solicitarea intrării pe tronsonul comun şi variabila R1 va lua valoarea 1. Când trenul
ajunge la intersecţie pe tronsonul 3, variabila R2 va lua valoarea 1(solicitarea intrării pe
tronsonul comun). Situaţia când etapele 2 şi 3 devin active corespund cazului în care
tronsonul comun este utilizat fie de trenul de pe ramura 2, fie de trenul de pe ramura 3.
Sosirea simultană pe cele două tronsoane este considerată imposibilă.
Conflictul(accidentul) apare în următoarea situaţie: tronsonul este ocupat şi trenurile
sosesc pe rând, dar trebuie să aştepte. Când tronsonul comun se va elibera, receptivităţile
au deja valoarea 1 şi apare conflictul. Apariţia conflictului este dependentă de valoarea
receptivităţilor. În exemplul considerat conflictul poate fi evitat, dacă receptivităţile vor
fi: R1=a şi R2= ab

Examplul 2

Se consideră un cuptor, in care sunt tratate termic piese produse în atelierul A,


atelierul B, sau în ambele ateliere. Modelul corespunzător este prezentat în figură. Să se
completeze cu condiţiile logice corespunzătoare receptivităţilor, în cele trei cazuri.

(1) (3) (2)

2 3
Supervizarea sistemelor cu evenimente discrete
Definitie Un supervizor este o unitate care supraveghează şi ghideaza comportamentul
unui sistem cu evenimente discrete controlat.
Comportamentul proceselor, considerate ca sisteme dinamice cu evenimente discrete,
poate fi controlat de către un controler logic, luȃnd în considerare atȃt starea procesului cȃt şi
informaţii provenite de la alte componente, sau furnizate de către operator. Pe baza
observaţiilor efectuate asupra ansamblului variabilelor logice, controlerul este capabil să ia
anumite decizii, influenţȃnd starea şi în consecinţă comportarea procesului.
Similar, în cazul unui proces continuu, pe baza observaţilor efectuate asupra mărimilor
de intrare şi ieşire, este necesară o intervenţie în momentul în care apar neconcordanţe între
performanţele obţinute şi cele impuse. Spre deosebire de sistemele cu evenimente discrete, în
cazul continuu, modelul procesului şi performanţele sunt descrise prin intermediul unor
funcţii de variabile reale, întregi sau complexe.
Dacă dificultăţile întȃmpinate în cazul unui proces cu evenimente discrete sunt legate
de numărul mare de variabile logice luate în considerare, pentru un proces continuu acestea
constau în stabilirea dependenţei dintre modificările variabilelor observate şi efectele
rezultate.
Evoluţia sistemelor de conducere automată spre structuri din ce în ce mai complexe,
paralel cu necesitatea obţinerii unor performanţe calitativ superioare, au avut ca rezultat
complicarea funcţiilor de supraveghere. In consecinţă a apărut necesitatea integrării funcţiilor
de supervizare în sistemul de conducere automată.

Sistemele dinamice cu evenimente discrete au mai multe intrări şi ieşiri, dar numai un
număr mic de intrări modifică o stare dată a sistemului, sau unele ieşiri. Aceste caracteristici
impun:

 posibilitatea de descriere a unor secvenţe de stări ale unui sistem care pot cuprinde un
număr foarte mare de stări (reţelele Petri corespund acestei cerinţe, un număr
convenabil de locaţii, asigurȃnd reprezentarea unui număr mare de stări);
 necesitatea înţelegerii exacte a comportamentului intrare-ieşire al unui astfel de sistem
(trebuie cunoscute intrările a căror modificare implică modificarea stării sistemului).

Intrările şi ieşirile unui controler logic

Comportamentul controlerului logic depinde de două tipuri de informaţii, care provin


din mediu (procesul care trebuie controlat): condiţii şi evenimente. Acestea constituie intrările
controlerului. In consecinţă, starea unui controler logic se poate schimba:
 dacă o condiţie este adevărată;
 cȃnd se realizează un eveniment.

Condiţiile pot fi exprimate prin variabile logice (eventual, numere întregi sau reale)
care corespund unor mărimi interne sau externe. In cel de al doilea caz, condiţiile se referă la
starea mediului. Aceasta poate fi caracterizată prin predicate, care sunt propoziţii adevărate
sau false şi care pot fi modificate prin schimbarea unor variabile logice.
Controlerul (supervizorul) nu creează noi evoluţii posibile, ci le alege pe cele dorite
dintre cele existente.
Funţiile posibile ale unui supervizor sunt:
 sa împiedice sistemul să intre în anumite stări interzise (de exemplu în stări în care
se blochează);
 să împiedice execuţia unor secvenţe nedorite;
 să forţeze execuţia unor secvenţe dorite din anumite stări;
 să forţeze ajungerea în anumite stări dorite, din stări date;
 să rezolve conflictele.

In lucrările şi studiile consacrate SED, mai mulţi autori au introdus termenul de


supervizor în locul celui de controler logic, atribuindu-i aceeaşi semnificaţie. Denumirea de
supervizor va fi utilizată în continuare, în sensul acestei precizări.
O schemă de conducere uzuală a unui proces cu evenimente discrete este prezentată în
figura 1, iar în figura 2 este reprezentată o structură ierarhizată de conducere. Figura 3
reprezintă un model al unui sistem supervizat, model bazat pe reţele Petri.

Supervizor

Instalaţie

Figura 1

SISTEM SUPERVIZAT

Supervizor

Sistem n bucl nchis


 Proces (cu
Controler
ED)

Figura 2
Supervizor

p3

t6 b L(/G)
t4 a
b
p5
p4
to
t5 b

a b

t1 t3
to t2

po  p1 b p2

Plant

Figura 3
Definitia formală a unui supervizor
Un sistem cu evenimente discrete poate fi descris utilizȃnd un generator. Generatorul
este un automat cu stări finite:

G = ( Q, Σ, δ, q0, Qm )
unde :
Q este un set finit al starilor,
Σ este un alfabet (reprezintă un set de evenimente)
δ este o functie definită partial, δ : Σ  Q  Q, care descrie modificarea stărilor (este
funcia de tranzitie a stării),
q0 este o stare initiala,
Qm este un set al starilor marcate, Qm  Q,

G se spune ca este determinist, daca:


i. q0 este unic
ii.ptr. orice σ € Σ, si q Q, δ (σ, Q) = q'€Q este unic, sau δ (σ, Q) este definit.
Setul evenimentelor se poate descompune in doua seturi:

Σ = Σu + Σc
unde:
Σ c este setul evenimentelor controlabile, Σ c  Σ
Σ u este setul evenimentelor necontrolabile, Σ u  Σ.

Prin introducerea unui mecanism de control Γ in G, rezulta un sistem cu evenimente


discrete controlat:

Gc = ( Q, Γ, x, Σ, δc q0, Qm )
unde:
Q, Σ, q0, Qm sunt definite ca mai sus,
Γ = { γ │γ: Σ  {0,1} si pentru orice σ, σ € Σc, γ(σ)= 1 }
δ: Σ x Γ x Q  Qeste o functie definita partial, care este definita daca δ (σ, Q) este
definita.
Formal supervizorul este definit de:

θ = ( S, f )
în care:
S = (X, Σ, ζ, x0, Xm) este un automat determinist, unde:
X este un set al strilor,
Σ este un alfabet,
ζ este o functie (definita partial) de tranzitie a starii, ζ : Σ  X  X,
x0 este starea initiala,
Xm este un set al starilor marcate, Xm  X
f : X  Γ este o functie (total definita), care aplica fiecarei stari x€ X, controlul
corespunzator γ .
Un sistem cu evenimente discrete supervizat, notat cu θ /Gc, rezulta conectand θ cu Gc:

θ /Gc = ( X  Q, Σ, δc x ζ (x0, q0), Xm  Qm)

unde:
δc  ζ (x0, q0) : Σ  X  Q  X  Q este o functie definita partial.
Limbaje bazate pe reţele Petri

Introducere
O caracteristică importantă a sistemelor, care pot fi descrise şi analizate prin
intermediul reţelelor Petri, este exprimată prin setul tuturor secvenţelor de acţiuni realizabile.
Deoarece în reţelele Petri secvenţele de acţiuni sunt modelate prin execuţiile unor secvenţe de
tranziţii, se poate considera că setul tuturor secvenţelor de tranziţii admisibile caracterizează
sistemul.
O secvenţa de tranziţii constituie un şir. Un set de siruri formeaza un limbaj. În
consecinţă, reţeaua Petri care modelează sistemul poate genera un limbaj. Limbajele bazate pe
reţele Petri sunt utilizate în studiul proprietăţilor, analiza şi sinteza automată a modelelor.
Deoarece limbajele pot fi infinite, reprezentarea lor constituie uneori o problemă dificilă.

Un alfabet este un set finit de simboluri. Orice secvenţa de lungime finită a


simbolurilor unui alfabet constituie un şir. Şirul nul este şirul care nu are nici un simbol,
lungimea lui fiind zero.
Fie Σ un alfabet şi Σ* setul tuturor şirurilor de simboluri aparţinând lui Σ, care include
şi şirul nul, λ, adică:
Σ* = Σ Uλ
Sunt cunoscute două abordari pentru reprezentarea limbajelor. Prima defineşte o
masină a cărei funcţionare genereaza şiruri ale limbajului. Prin convenţie, toate şirurile
limbajului sunt generate de nişte execuţii. A doua abordare se bazează pe o gramatică. Prin
aplicarea succesivă a unor reguli, aparţinând unei gramatici, se specifică modul de generare a
şirurilor limbajului. Restricţiile legate de caracteristicile maşinii, sau particularităţile pe care
le prezintă gramatica, definesc clase de limbaje.

Clasele considerate consacrate ale limbajelor sunt:


 limbaje regulate (engl.:regular automata), construite cu masini cu stari finite;
 limbaje independente de context (engl.: free context languages), corespunzătoare
automatelor cu stivă;
 limbaje dependente de context (engl.: context sensitive languages), corespunzătoare
automatelor mărginite liniare;
 limbaje de tip zero (engl.: type-0 languages), corespunzătoare maşinilor Turing.

Ca exemplu, se poate considera o maşină cu stări finite care st la baza construirii unui limbaj.
O maşină cu stari finite este un cvintuplu:

C = (Q, Σ , δ, s, F),
unde:
Q este un set finit al stărilor;
Σ este un set finit al simbolurilor;
δ: Q  Σ→ Q este funcţia de tranziţie a stării (care determina starea următoare);
s  Q este starea de start (iniţială);
F  Q este setul finit al stărilor finale.

Limbajul L(C), generat de maşina cu stări finite, este setul de şiruri formate cu
simbolurile din Σ, definite după cum urmează:
L(C) = {α  Σ*│δ (s,α)  F}
Două maşini cu stări finite care au acelaşi limbaj sunt echivalente.

Definirea limbajelor bazate pe reţele Petri

Peterson (1981) defineşte clasa limbajelor bazate pe reţele Petri (engl.:Petri net
languages) ca fiind clasa limbajelor generate de reţele Petri. Modul de definire este similar cu
cel al oricărei alte clase de limbaje şi se bazează pe concepte asemănătoare cu cele utilizate la
generarea unui limbaj de către o maşină cu un număr finit de stari. Pe lângă structura reţelei
este necesara precizarea unui alfabet, a unei stări iniţiale şi a unui set al stărilor finale.
Specificarea acestora are ca rezultat generarea diferitelor clase de limbaje bazate pe reţele
Petri.

Specificarea stării iniţiale


Starea iniţială a unei reţele Petri poate fi definită după cum urmează:
 printr-un marcaj arbitrar, M;
 printr-un marcaj cu un singur jeton într-o locatie de start şi zero jetoane în rest;
 printr-un set de marcaje iniţiale.
Aceste trei definiri nu sunt esenţial diferite. De exemplu, dacă există un set de marcaje
iniţiale şi se doreşte definirea unei locaţii de start, reţeaua Petri se va dezvolta. În exteriorul
reţelei pot fi adăugate o locaţie de start şi una sau mai multe tranziţii, fiecare având ca locaţie
de intrare, locaţia de start şi ca locaţii de ieşire, locaţiile marcajului iniţial (figurile 4.1 a şi b).

t’1

t’2

p0
t’ P
N p0
P
t’3 N
a) b)

Figura 4.1

4.2.2. Etichetarea reţelelor Petri

Pentru o reţea Petri dată, cu structura N= (P,T,pre,post), simbolurile sunt asociate cu


tranziţii prin intermediul unei funcţii de etichetare:

σ : T→ Σ

Anumite restricţii impuse funcţiilor de etichetare duc la diferite definiri ale limbajelor
bazate pe reţele Petri:
 o reţea Petri etichetată liber este o reţea în care toate tranziţiile sunt etichetate
distinct, iar dacă σ(ti) = σ(tj), atunci ti = tj ;
 o altă clasă de limbaje bazate pe reţele Petri este aceea în care nu toate tranziţiile
sunt etichetate distinct, funcţia de etichetare având un caracter mai general;
 cea mai generala funcţie de etichetare permite etichetarea tranziţiei nule σ(tj) = λ;
 tranziţiile etichetate cu λ nu apar în nici o propoziţie a limbajului bazat pe reţele
Petri şi execuţia lor nu este înregistrată.
Aceste trei clase ale funcţiilor de etichetare definesc trei categorii de limbaje.

Specificarea stării finale a unei reţele Petri


Limbajele bazate pe reţele Petri sunt sensibil influenţate de definirea stărilor finale ale
acestor reţele. Sunt luate în considerare patru definiţii principale, diferite, care generează tot
atâtea tipuri sau clase de limbaje bazate pe reţele Petri.
Definiţia 1 Un limbaj bazat pe reţele Petri este de tip L, dacă există o structură
N=(P,T,pre,post), o funcţie de etichetare σ:T  Σ, un marcaj iniţial Mo şi un set finit al
marcajelor finale F, astfel încât:

L  { (  )   *   T * şi  ( M 0 ,  )  M F }
Clasa limbajelor de tip L permite descrierea unei mari varietăţi de comportamente, dar
cerinţa ca o propozitie să ducă exact la o stare finală, cu scopul de a putea fi generată, nu
corespunde cu conceptele de bază ale teoriei reţelelor Petri. Din acest motiv se defineşte clasa
G a limbajelor bazate pe reţele Petri.
Definiţia 2 Un limbaj L este un limbaj de tip G dacă există o structură
N=(P,T,pre,post), o funcţie de etichetare, σ:T  Σ, un marcaj iniţial M0 şi un set al
marcajelor finale F, astfel încât:
L  { (  )   *   T * şi M F  F astfel încât  ( M 0 ,  )  M F }
A treia clasă de limbaje bazate pe reţele Petri este clasa limbajelor de tip T. Aceasta
este definită prin identificarea setului stărilor finale cu setul stărilor terminale. O stare MF
este numită terminală dacă δ(MF, tj) nu este definită, oricare ar fi t j  T .

Definiţia 3 Un limbaj L este un limbaj de tip T dacă există o structură


N=(P,T,pre,post), o funcţie de etichetare σ:T  Σ , un marcaj iniţial M0, astfel încât:
L  { (  )   *   T * şi δ (M0,β) este definită, dar pentru oricare
t j  T ,  ( ( M 0 ,  ), t j } este nedefinită}.

Definiţia 4 Un limbaj L este un limbaj de tip P, dacă există o structură


N=(P,T,pre,post), o funcţie de etichetare σ:T  Σ , un marcaj iniţial M0, astfel încât:
L  { (  )   *   T * şi  ( M 0 ,  ) este definită}.
Setul stărilor finale ale acestui limbaj include toate stările realizabile. Aceste limbaje
sunt limbaje prefix. Dacă   * este un element al limbajului de tipul P, atunci pentru toate
prefixele β ale lui α ( α = β x, pentru x  * ), σ(β) este un element al aceluiaşi limbaj.

4.2.4. Clase de limbaje bazate pe reţele Petri


Dacă se iau în considerare cele trei funcţii de etichetare şi cele patru tipuri de
specificare a stărilor finale, pot fi generate douăsprezece clase de limbaje: Lf, L, Lλ, Gf, G,
Gλ, Tf, T, Tλ, Pf, P, Pλ. Deşi definirea lor este diferită, clasele de limbaje bazate pe reţele Petri
sunt strâns legate între ele:
Lf  L  Lλ
Gf  G  Gλ
Tf  T  Tλ
Pf  P  Pλ
Dacă se defineşte o reţea Petri etichetată prin γ=(N,σ,M0,F), unde N reprezintă
structura reţelei, σ, funcţia de etichetare, M0, marcajul iniţial şi F, setul stărilor finale, pentru
această reţea, pot fi definite toate cele douăsprezece limbaje menţionate.
Se consideră reţeaua Petri din figura 4.2, cu marcajul iniţial F = {1, 0, 0, 0} şi fiecare
tranziţie etichetată cu (tj). Dacă se defineşte marcajul final ca fiind F = {0, 0, 1, 0}, atunci :

{an c bn , n  0} este un limbaj de tip L;


{am c bn , m  n  0} este un limbaj de tip G;
{am c bnd , m  n  0} este un limbaj de tip T;
{am , m  0  {am c bn , m  n  0}  {amcbnd , m  n  0} este un limbaj de tip P.

p2
a b

p1 c p3 d p4
Figura 4.2

Se poate arăta că fiecare limbaj de tip G sau Gλ este de asemenea un limbaj de tip L
sau Lλ.
Limbaje bazate pe RP: Proprietăţi de închidere

Proprietăţile de închidere ale limbajelor bazate pe reţele Petri pot fi investigate luând
în considerare anumite legi de compunere (reuniune, intersecţie, înlănţuire, concurenţă
şi substituţie) şi anumite operaţii (inversarea unei propoziţii, definirea complementului
limbajului, inlănţuirea indefinită). Acest mod de investigare prezintă două avantaje:
 contribuie la creşterea gradului de înţelegere a proprietătilor şi limitelor limbajelor
bazate pe reţele Petri, privite din punctul de vedere al limbajelor;
 reflectă modul în care sistemele complexe sunt proiectate şi construite prin
compunerea unor sisteme de dimensiuni mai mici.

În studiul majorităţii proprietăţilor de închidere se pune problema compunerii


limbajelor bazate pe reţele Petri. În acest scop sunt luate în considerare două limbaje L1 şi L2,
generate de reţelele Petri etichetate în forma standard, γ1=(N1,σ1,M01,F1) şi γ2=(N2,
σ2,M02,F2), (L1 = L(γ1) şi L2 = L(γ2)). p s1  P1 şi p s 2  P2 sunt locatiile de start ale celor doua
reţele, iar F1={ps1,pf1} sau {pf1} şi F2={ps2,pf2} sau {pf2} reprezintă seturile stărilor finale
corespunzătoare. Pe baza celor două reţele Petri etichetate se arată cum se poate construi o
nouă reţea Petri etichetată, γ'=(N', σ',M',F'), al cărei limbaj L(γ') este rezultatul compunerii
limbajelor L1 şi L2, în conformitate cu legea precizată.

Concatenarea
În cazul înlanţuirii, două subsisteme sunt compuse secvenţial. Execuţia care rezultă
este rezultatul concatenării unei execuţii din limbajul generat de prima reţea Petri, cu o
execuţie din limbajul corespunzător celei de-a doua reţele. Formal, concatenarea celor două
limbaje poate fi exprimată prin:
L1 L2 = {x1 x2 │ x1  L1 şi x 2  L2 }
Se poate demonstra că dacă L1 şi L2 sunt limbaje bazate pe reţele Petri, atunci şi L1L2
este un limbaj bazat pe reţele Petri.

Exemplul 1
Se consideră doua reţele Petri N1 şi N2 reprezentate împreună cu limbajele pe care le
realizează, în figura a şi respectiv b. În figura c este reprezentată concatenarea celor două
limbaje L1 şi L2.
b
a b
a  a b  pf2

ps pf ps1
1 1
c b
n n n+1
L(N1) = a b + c L(N2) = a(a b + b)
a) b)

b
a b
a  pf1=ps2 a b  pf2=pf’
ps’

c b
L(N’) = (a bn + c) a(an bn+1 + b)
c)
a
b
c b c
a

pf1 ps2 pf2


ps1 a b
c
L1 = an(b + c)
L2 = c(am bm+1)c
a) b)

a b
ps1 a pf1
c
c

c
c

ps’ pf’
b
b
a
ps2 c a b c pf2
c)

L’ = (an (b + c)) (c (am bm+1) c)


Figura 4.7
Reuniunea
Dacă două subsisteme sunt compuse prin reuniune, unul şi numai unul dintre cele
două subsisteme va fi executat. Reuniunea este definită prin:

L1  L2 = {x L1 L2 = {x│ x  L1 sau x  L2 }

Dacă L1 şi L2 sunt limbaje bazate pe reţele Petri, atunci L1L2 este un limbaj bazat pe
reţele Petri.
În figura este reprezentată reuniunea a două limbaje L1, L2 bazate pe reţele Petri,
obţinându-se limbajul L’.
b
pS1 pf1
a d
c
L1 = a ( b +c ) d
a)

c b
a
pS2
pf2
a b
a
b) L2 = aam(cnabn) b

a d

c
ps’ pf’

a b
a b
c)
a a
L’ = L1 L2 = a ( b + c ) d + aam(cnabn) b

Figura 3
Intersecţia
Intersecţia a două limbaje bazate pe reţele Petri este definită prin:
L1  L2 = {x│ x1  L1 şi x 2  L2 }

Dacă L1 şi L2 sunt limbaje bazate pe reţele Petri, atunci L1  L2 este un limbaj bazat
pe reţele Petri.

c d

ps1 pf
a b c 1
n m
a) L1 = a ( c b d ) c, m= < n/2

c d

pS2 pf2
a b c

b) L2 = a ( cn b d2n )

ps’ c b d pf’
a c

c)

L’ = L1  L2 = (a(cn b dm)c)  (a(cn b d2n)c)


 L’ = a(cn b dm)c

Figura 4
Retele Petri Stochastice
Introducere

O variabilă aleatoare (reală) X asociază un număr X(ω) fiecărei realizări


posibile ω a unui experiment. Mulţimea Ω a tuturor realizărilor posibile ale unui
experiment se numeşte spaţiul eşantioanelor acelui experiment. O colecţie de
submulţimi ale lui Ω formează spaţiul evenimentelor E. Realizarea unui grup finit
de valori eşantion x1, x2, ...,xn constituie un eveniment aleator care permite
definirea unei funcţii de distribuţie asociate. Tripletul (Ω, E, P) se numeşte câmp
de probabilitate.
Se numeste funcţie de repartiţie (distribuţie) a variabilei aleatoare X,
funcţia F:R→[0,1]. F ( x)  P[ X  x] .
Densitatea de repartiţie a unei variabile aleatoare continue se defineşte
prin relaţiile:
dF ( x) P( x  X  x  x)
f ( x)   lim
dx x 0 x
Pentru variabila aleatoare discretă x care ia valorile x1, x2,...,xn, cu
probabilităţile p1,p2,...,pn se defineşte valoarea medie a variabilei aleatoare prin
relaţia

M [ x]   xi pi  m x M [ x]   xf ( x)dx
i 

Dispersia (varianţa) variabilei aleatoare x care are valoarea medie xm este

Var[ X ]  M [( X  m x ) 2 ]   x2

Un proces stochastic (X) reprezintă o familie de variabile aleatoare definite


pe un câmp de probabilitate (Ω, E, P) indexate după un parametru t  T (care, de
obicei, semnifică timpul).Un proces aleator real apare prin generarea unei funcţii
eşantion reale, x(t).
Mulţimea tuturor valorilor posibile ale unui proces stochastic
S  {xt () t  T ,   } se numeşte spatiul stărilor procesului respectiv.

1
Procesele stochasticepentru care spaţiul stărilor este discret (mulţime
finită sau numărabilă) se numesc lanţuri.
Procesele Markov reprezintă un tip particular de procese stochastice, a
căror propritate caracteristică este aceea că nu au memorie. Evoluţia viitoare a
unui proces Markov este influenţată numai de starea curentă a acestuia. Dacă
procesul Markov poate avea numai un număr finit sau numărabil de stări, atunci
este denumit lanţ Markov.
Legea de distribuţie exponenţială cu parametrul λ > 0 caracterizează o
variabilă aleatoare X (ce poate lua numai valori nenegative) a cărei funcţie de
repartiţie este de forma
⌠ 0, ptr, t<0
F (t )  P[ X  t ]  ┤

└ 1  e  t , t  0
densitatea de repartiţie este

⌠ 0, ptr, t<0
f (t )  ┤

└  e  t , t  0
Valoarea medie asociată variabilei aleatoare este M(x) = 1/λ; parametrul λ
se numeşte rată.Dispersia variabilei aleatoare X este Var [X] = 1/ λ2.
Distribuţia exponenţială este utilizată pentru a modela procese care nu au
memorie. Ex.:
 Duratele dintre sosirile clienţilor într-un sistem;
 Timpii de aşteptare( dacă probabilitatea de a mai astepta un
interval de timp este independentă de timpul de asteptare care a
trecut deja);
 Duratele convorbirilor telefonice;
 Timpul de viaţa al componentelor electronice.
Un proces aleator este staţionar dacă şi numai dacă toate funcţiile sale de
distribuţie rămân neschimbate prin deplasarea originii timpului.

2
Pentru procesele aleatoare staţionare ergodice fiecare dintre mediile de
timp este egală cu probabilitatea unu cu media pe ansamblu corespunzaţoare.

Reţele Petri stochastice

În cazul unei reţele Petri stochastice, temporizarea asociată unei tranziţii


este exprimată printr-o variabila aleatoare X, cu o funcţie de distribuţie precizată.
Funcţia de distribuţie este exponenţială, in cazul sistemelor în care timpul are un
caracter continuu şi geometrică în cazul în care timpul este discret.
Funcţia de distribuţie exponenţială este exprimată prin relaţia:
 x
F ( X )  P( X  x)  1  e
Aceste funcţii sunt fără memorie: evoluţia sistemului este influenţată numai de
starea prezentă a acestuia; dacă la un moment dat mai multe tranziţii sunt
admisibile, execuţia uneia nu va modifica şansele de execuţie ale celorlalte.
Funcţia de densitate de probabilitate este exprimată prin funcţia
 x
f ( x )  e
Exemplul 1
Se consideră un sistem în care doua maşini (servere) prelucrează un stoc
de piese (deservesc clienţi). Cele două servere pot lucra în regim normal de
funcţionare sau se pot defecta. Schema funcţională a sistemului este prezentata
în figura 1:
stoc de intrare stoc de iesire

servere

Figura 1. Sistemul de servire

3
Modelul sistemului, bazat pe reţele Petri stochastice, este prezentat în
figura 2.
t1 reprezintă timpul de servire al unui server exprimat printr-o variabilă aleatoare
de distribuţie exponenţială cu valoare medie  1 . Frecvenţa de execuţie a
1
tranziţiei t1 va fi 1  . Se asociază timpului de funcţionare corespunzător
1
serverului o variabilă aleatoare cu distribuţie exponenţială şi valoare medie  2 ;

frecvenţa de execuţie a tranziţiei corespunzătoare defectării serverului (t 2) fiind


1
2  . (Marcajul având câte un jeton în locaţiile p3 şi p4 corespunde stării
2
sistemului în care un server este defect şi altul în stare de funcţionare). Serverul
defect poate fi reparat, iar intervalul de timp necesar reparaţiei este o altă
1
variabilă aleatoare de distribuţie exponenţială şi valoare medie  3  .
3

t2 λ2
... p1
Stoc de
intrare Server
operaţional
t1 . .
λ1 Server
p4defect
p3
Stoc de P2 p3
iesire
. t3 λ3

Figura 2. Modelul bazat pe retele Petri al sistemului de servire

Un alt exemplu este prezentat în figura 3. Modelul bazat pe reţele Petri


evidenţiază două evenimente probabile, rata de execuţie a tranziţiilor
corespunzătoare fiind λ1, în cazul în care se termină servirea clientului şi λ2, în
cazul în care serverul se defectează.

4
In figura 4 este reprezentată o reţea Petri cu temporizare stochastică.
Deosebirea dintre cele două tipuri de sisteme constă în modul de execuţie al
tranziţiilor. Astfel în cazul ambelor sisteme există un conflict în ceea ce priveşte
execuţia tranziţiilor t1 şi t2. Se presupune că temporizările asociate acestor
tranziţii sunt exprimate prin variabilele aleatoare D1 si D2. Se extrag două valori
ale acestor variabile, notate cu d1, respectiv d2. In cazul reţelei Petri stochastice,
dacă d1<d2, primul eveniment care se va produce va fi cel asociat tranziţiei t 1 şi
deci, prima tranziţie care se va executa, va fi t1. In cazul sistemului din figura 4,
hotărârea ca un client să fie deservit de o staţie sau alta este luată apriori.
Variabilele aleatoare ataşate tranziţiilor reprezintă duratele aleatorii ale
operaţiilor. Valorile lor nu sunt luate în considerare în scopul stabilirii priorităţii
execuţiei unei tranziţii. In concluzie, în cazul reţelelor Petri stochastice, ordinea
execuţiei tranziţiilor aflate în conflict este dată de valorile variabilelor aleatoare
extrase la un moment dat, pe când în cazul reţelelor Petri cu temporizări
stochastice valorile acestor variabile nu influenţează ordinea execuţiei tranziţiilor,
ele fiind legater strict de durata activitătilor asociate tranziţiilor şi care este
aleatoare.

Ordinea de execuţie a tranziţiilor într-o reţea Petri


Se consideră reţeaua Petri din figura 5. La momentul t1 tranzitiile t1 şi t2
sunt validate, în timp ce tranziţia t3 nu este executabilă. Variabilele aleatoare D1
şi D2 asociate tranziţiilor t1 şi t2 iau la momentul t1 valorile d1= 4 şi d2= 6,4. Se
calclulează min(d1, d2), tranziţia cu timpul minim, adica t1, urmând să fie
executată prima, după 4 unităţi de timp. Jetonul din locatia P 1 nu va fi insă
rezervat pentru execuţia tranziţiei t1. La momentul t2 = t1 +1, un jeton va sosi în
locaţia P2. Se extrag din nou valorile pentru variabilele D1, D2 şi D3. Valorile
extrase considerate sunt; d1’ = 4,2 ; d2 = 3; d3=1,8. Se calculează min (d1, d2, d3)
= 1,8. In consecinţă, tranziţia care se va executa prima va fi t3. Executia acesteia
va avea loc la momentul t2 =d3=t1 +1=d3= t1 +2,8.
Observaţie Jetoanele nu sunt rezervate pentru execuţia tranziţiilor în
reţelele Petri stochastice.

5
Analiza reţelelor Petri stochastice

Spaţiul stărilor unei reţele Petri sochastice este determinat de setul stărilor
realizabile. Execuţia unei tranziţii se realizează în concordanţă cu timpul necesar
pentru ca sistemul să treacă dintr-o stare în alta. Datorită faptului că funcţia de
distribuţie exponenţială este fără memorie, se poate demonstra că graful de
realizare al unei reţele Petri stochastice mărginite este izomorf cu un lanţ Markov
finit. Lanţul Markov al unei reţele Petri stochastice poate fi obţinut utilizând graful
de realizare al unei reţele Petri, după cum urmează: spaţiul stărilor lanţului
Markov este format din setul stărilor realizabile R(M0) şi rata tranziţiei de la
starea Mi la starea Mj este dată de rata de execuţie a tranziţiei care transformă
marcajul Mi în marcajul Mj. Daca există două sau mai multe tranziţii care
transformă marcajul Mi în marcajul Mj, notate cu t1, t2,..., atunci rata de executie
se va calcula cu formula:

  1  2  ...

Elementul de generare al procesului Markov asociat cu o reţea Petri


stochastică este o matrice pătratică A, de dimensiune L X L, unde L este egal cu
numărul de stări ale lanţului Markov. Matricea A este denumită matricea de
tranziţie a stării. Elementele acestei matrici sunt împărţite în două categorii: cele
care aparţin şi cele care nu aparţin diagonalei principale. Elementele care nu
aparţin diagonalei principale, notate cu  rs, se determină însumând ponderea
arcelor care conectează nodurile (r şi s) care reprezintă stările. Elementele
diagonalei principale,  rr se determină calculând suma complementelor faţă de
zero al celorlalte elemente de pe linia r, adică rr   rk .

Se notează cu Pr* un vector linie de dimensiuneL. Elementele acestui vector


Pr*(Mk) sau Pr*(k) reprezintă probabilitatea ca sistemul să fie în starea
corespunzătoare marcajului Mk. Matricea ratei de tranziţie este utilizată pentru a

6
calcula probabilitatea ca sistemul să se afle intr-o stare Mk. În acest scop se
calculează soluţia sistemului:

Pr* . A = 0
L

 Pr
k 1
*
k 1

Frecvenţele medii de execuţie ale unei tranziţii tj  T se calculează cu relatia:


f j*    j (k ) Prk* , considerând toate marcajele din care tranziţia este

executabilă.
Valorile medii ale marcajelor în locaţiile Pi  P, pot fi calculate conform relaţiei:


L
M*(Pi) = k 1
M k ( P i ).Prk*

7
Retele Petri temporizate

Cea mai simpla varianta pentru includerea timpului se bazeaza pe asocierea unor
atribute temporale cu nodurile retelei. Aceasta se poate realiza conditionand fie intarzierea
jetoanelor in locatii, pentru un anumit interval de timp, inainte de executia tranzitiilor, fie
introducand o intarziere intre momentul in care tranzitiile sunt admisibile si momentul in care
ele se executa (intarzierea tranzitiilor).
Se introduce notiunea de locatie temporizata prin atasarea unei valori (p),
reprezentand durata dintre momentul de timp cand un jeton este introdus in locaie si
momentul cand el poate fi extras pentru executia unei tranziii de iesire. Daca un jeton este
introdus intr-o locatie temporizata, el nu paraseste locatia (pentru executia tranzitiilor de
iesire) pana cand nu a expirat intervalul de timp, asociat locatiei respective.
Definiia 1 O retea Petri (determinista) cu locatii temporizate este de forma (N, ),
unde N = (P, T, pre, post), iar  este o functie care asociaza un numar real nenegativ τi,
fiecarei locatii a retelei, : P R+, τi = (pi) este minimul timpului de stationare a unui
jeton in pi.
Un jeton dintr-o retea Petri cu locatii temporizate poate fi in doua stari: gata si in
asteptare. Cand un jeton este introdus intr-o locatie, el intra in asteptare, devenind gata dupa
un interval τi = (pi) unitati de timp. Jetoanele in asteptare nu pot permite execuia unei
tranzitii, situatia fiind asemanatoare aceleia in care ele nu exista inca acolo.

Deoarece tranzitiile reprezinta activitatile care schimba starea (marcajul) retelei, se


considera mai adecvata asocierea timpului cu aceste activitai (tranzitii). In scopul rezolvarii
conflictelor care apar intre tranziii, mai multi autori au impartit timpul de executie al unei
tranzitii, care se executa in trei faze. Acestea sunt:
1. Cand tranziia t devine admisibila, este initializatao executie in care pre(p,t)
jetoane dispar din fiecare locatie de intrare a tranzitiei t.
2.Urmeaza procesul de executie, care reprezinta o operatie cu durata de τi unitai de
timp.
3. Cand cele τi unitati de timp au expirat, executia se termina. In aceasta faza, post(t,p)
jetoane sunt transferate in fiecare locatie de iesire a tranzitiei t.
In cazul in care este necesara modelarea prioritatii activitatilor, se asociaza un timp de
activare fiecarei tranzitii, care se considera ca are o executie atomica (indivizibila). Definitia
Definitia 2 O retea Petri (determinista) cu tranzitii temporizate este un uplu de forma (N, ),
unde N = (P,T, pre, post) este o retea si  este o functie, care ii asociaza fiecarei tranzitii a
retelei un numar real nenegativ τi, : T  R+, τi = (ti).

O retea Petri cu locatii temporizate poate fi transformata intr-o retea Petri cu tranzitii
temporizate. Figura 3.1 reprezinta aceasta transformare. Locatia p1, temporizata cu (p1),
poate fi inlocuita cu doua locatii, p11 si p12 netemporizate si o tranzitie t3 temporizata (cu
(t3)). Se poate face si transformarea inversa, adica o tranziie temporizata (cu (t)) se
inlocuieste cu doua tranzitii netemporizate si o locaie p, temporizata (cu (p)).

t1 p1 t2

a)

t1 p11 t3 p12 t2
b)

Figura 3.1

O secvent de executii temporizate este:



σ = (ta,ta(1)) (ti,ti(n))...(tj,tj(m))...(ti,ti(m))…

unde, σ = ta, ti, ..., tj, ... ti, ..., este secventa de executii, iar ti (n) este timpul la care tranzitia ti
initiaza cea de-a n-a sa executie.

3.2.1. Grafuri de evenimente temporizate

Un graf de evenimente este o retea Petri in care fiecare locatie are o singura tranzitie
de intrare si o singura tranzitie de iesire. Graful de evenimente este temporizat daca fiecarei
tranzitii i se asociaza un timp de executie. O cale directa pi tj pk...tppr dintr-o retea Petri, in care
toate nodurile sunt distincte, exceptand locatiile pi si pr (pi=pr), se numeste circuit. O retea
Petri este puternic conectata daca intre oricare doua noduri ale retelei exista o cale directa.

S-a demonstrat ca numarul total de jetoane in orice circuit elementar ramane acelasi (este
invariabil) dupa executia tranzitiilor.

Exemplul 1
In graful din figura 3.2, la momentul 0, sunt:

n1(γ1) = (nr. jetoane in p1) + (nr. jetoane in p2) + (nr. jetoane in p3) + (nr. jetoane in p4)
= 2 + 1 + 0 + 1 = 4 jetoane,
n2(γ2) = 0 + 1 + 0 + 1 + 0 = 2 jetoane.

Se poate determina starea circuitiului dupa diferite intervale de timp. (Curs


predat, laborator).

t2(6) p5 t2(6)
p5

t5(9) p3 p1 t5(9) 2 p3 p1

t1(7) t3(3) t1(7) 1


p6 t3(3) p6

t6(8) p4 p2 t6(8) 2 p4 p2

p7 t4(1) p7 t4(1)

Figura 3.2 Figura 3.3

Reţele Petri cu locaţii temporizate


Exemple, execuţia tranziţiilor, conform cursului predat
SED II
Subclase de reţele Petri

Reţele pure
O locatie p si o tranzitie t formeaza o bucla elementara daca verifica relatia:

pre(p,t)  post(t,p)  0

O retea Petri se numeste pura daca nu contine bucle elementare, adica:


pre(pi, tj)  post(tj, pi) = 0, pentru oricare pi din P si oricare tj din T.
Figura 3.a reprezinta o bucla elementara. Bucla elementara, are un efect de memorie.
Daca se introduce un jeton în locatia p, (M(p) = 1), atunci tranzitia t încarca permanent locatia
p, conditia pentru executia tranzitiei fiind tot timpul îndeplinita. Un alt exemplu de bucla
elementara este reprezentat în figura 3.b. Figura 3.c arata modul în care bucla elementara
precedenta a fost transformata într-o retea Petri fara bucla elementara, prin adaugarea unei
locatii suplimentare, p2 si a unei tranzitii suplimentare, t2.

p1
t t1 t2
p t1 p1 t1
p2

a) b) c)

Figura 3

Murata (1989) descrie un algoritm care transforma o retea pura cu capacitati finite
(N,M0), în care se utilizeaza regula stricta de admisibilitate, într-o retea echivalenta în care se
utilizeaza regula nestrictă de admisibilitate:
Pas 1. Se adauga o locatie complementara p' pentru fiecare locatie p. Marcajul initial
al fiecarei locatii complementare este dat de relatia:

M'0(p') = K(p) - M0(p)


Pas 2. Se deseneaza noi arce de la fiecare tranzitie la locatiile complementare,
respectând relatiile:

post(t,p') = pre(p,t) si pre(p',t) = post(t,p)

In acest fel, numarul jetoanelor din locatia p si din locatia sa complementara p' este
egal cu capacitatea K(p), atât înainte cât si dupa executia tranzitiei t.

Exemplul 2
In figura 4.a s-a reprezentat o retea Petri în care se utilizeaza regula stricta de
admisibilitate a tranzitiilor. In urma aplicarii algoritmului de mai sus, se obtine reteaua Petri
din figura 4.b, în care se utilizeaza regula nestrictă de admisibilitate.

2 p2’
2 K(p1)=2 K(p2)=1 2 t2
t2 2
2 2
p1’
t1 t1
p1 t3 p2 t4 p1 t3 p2 t4

a) b)

Figura 4

Primul pas al algoritmului cere sa se adauge locatiile p1’ si p2’. Marcajele lor sunt date
de relatiile:

M0'(p1’) = K(p1) + M0(p1) = 2 - 1 = 1

M0'(p2’) = K(p2) - M0(p2) = 1 - 0 = 1

Locatiile adaugate trebuie conectate la tranzitii prin arce cu ponderea data de relatiile:

pre(p1’, t1) = post(t1, p1) = 1, post(t1, p1’) = pre(p1, t1) = 0,

pre(p1’, t2) = post(t2, p1) = 0, post(t2, p1’) = pre(p1, t2) = 2,


pre(p1’, t3) = post(t3, p1) = 0, post(t3, p1’) = pre(p1, t3) = 2,

pre(p1’, t4) = post(t4, p1) = 0, post(t4, p1’) = pre(p1, t4) = 0,

pre(p2’, t1) = post(t1, p2) = 0 , post(t1, p2’) = pre(p2, t1) = 0,

pre(p2’, t2) = post(t2, p2) = 0, 10

t1 t1
post(t2, p2’) = pre(p2, t2) = 0, t4 20
t2 t3
pre(p2’, t3) = post(t3, p2) = 1, t4
00 01
t4
t1
post(p2’, t3) = pre(p2, t3) = 0, 11
t2
t1
pre(p2’, t4) = post(t4, p2) = 0,
21

post(t4, p2’) = pre(p2, t4) = 1. Figura 5 Graful de realizare al reţelei din


figura 4.a

Pentru a verifica daca cele doua retele sunt echivalente se construieste graful de
realizare al retelei Petri din figura 4.a. Un graf de realizare are ca noduri setul tuturor
marcajelor realizabile din marcajul initial, iar ca arce tranzitiile corespunzatoare. Acesta este
reprezentat în figura 5. In interiorul elipselor s-au notat marcajele locatiilor, iar pe arce
tranzitiile care se executa. Se observa ca graful de realizare cuprinde toate evolutiile posibile
ale marcajului, precum si toate tranzitiile care pot fi executate din fiecare marcaj. Daca se
construieste graful de realizare al retelei Petri din figura 4.b, acesta este similar cu cel din
figura 5, cu deosebirea ca starea, în acest din urma caz, este data de cele patru elemente ale
vectorului [p1, p2, p1’, p2’]. Cele doua grafuri sunt echivalente din punctul de vedere al
secventelor de tranzitii executabile, prin urmare cele doua retele Petri sunt izomorfe, adica pot
executa aceleasi secvente de tranzitii.

O retea Petri se numeste ordinara daca ponderea tuturor arcelor sale este egala cu unu.
O retea Petri se numeste de tip conditie/eveniment (C/E) daca este ordinara si în plus
capacitatea locatiilor sale este egala cu unu. In acest caz, locatiile reprezinta conditii, iar
tranzitiile evenimente.
Reteaua Petri este de tip locatie/tranzitie (P/T) daca locatiile pot avea capacitatea mai
mare decât unu, iar arcele de asemenea pot avea ponderea mai mare decât unu.
Se defineste ca masina de stare (MS), o retea Petri ordinara, în care fiecare tranzitie
are câte o singura locatie de intrare si câte o singura locatie de iesire (figura 6), adica:

|0t| = |t0| = 1, pentru t  T

Cu |0t| şi |t0| s-a notat cardinalul multimii |0t|, respectiv a mulţimii |t0|.
Retele Petri de acest tip pot modela numai sisteme cu stari finite. Nu pot descrie
sincronizari sau paralelismul structural, dar pot descrie concurenta.

Corect Incorect

.. ..
MS
. .
Figura 6
O retea Petri ordinara se numeste graf de marcaje (GM) sau graf de evenimente (engl.:
event graph), daca oricare locatie a sa are exact o tranzitie de intrare si o tranzitie de iesire
(figura 7), adica:
|0p| = |p0| = 1

Grafurile de evenimente pot modela sincronizari si paralelismul structural, dar nu pot


modela conflictele.
Daca o masina de stare este în acelasi timp si un graf de evenimente si o masina de
stare se numeste ansamblu de circuite disjuncte.

Corect Incorect

.. ..
GE
. .
Figura 7
Reteaua Petri este simpla, daca orice tranzitie are cel mult o locatie comuna cu alte
tranzitii (figura 8).
O retea Petri ordinara se numeste cu conflicte libere (engl.: free-choice net), daca
pentru oricare doua tranzitii care au în comun o locatie de intrare, aceasta este singura lor
locatie de intrare (figura 9). Aceste retele pot modela secventialitatea, relatiile conflictuale si
concurentiale. Nu permit modelarea activităţilor secventiale care se exclud mutual prin
semafoare.
Corect Incorect

SN

Figura 8
Corect Incorect
CLN

Figura 9

Caracteristici de modelare EXAMEN


Utilizând diverse structuri elementare, cu retelele Petri se pot descrie urmatoarele probleme:
secventialitatea, paralelismul, excluderea mutuala si nedeterminismul.
In figura 10 tranzitiile t1 si t2 sau t3 si t4 se vor executa secvential. Secventele t1, t2 si t3, t4 se vor executa
concurent. Nu exista nici o constrângere ca ele sa se execute în acelasi timp, dar se pot executa astfel. Doua
tranzitii se numesc concurente daca sunt cauzal independente.
p1 p4
p1 p1 p2

t1 t3

p2 p5
t1 t2 t1 t2
t2 t4
a) b)

p3 p6
Figura 11
Figura10

Structurile din figurile 11 a si b reprezinta situatii de nedeterminare. Tranzitiile t1 si t2 devin


executabile simultan. Executia uneia dintre ele anuleaza executia celeilalte. Despre aceste doua
tranzitii se spune ca sunt într-o situatie conflictuala. In functie de aplicatie, aceasta se numeste
conflict, alegere sau decizie.
Situatia în care se amesteca conflictul si concurenta se numeste confuzie. Figurile 12 a si b
reprezinta o confuzie simetrica, respectiv asimetrica. Tranzitiile t1 si t3 sunt concurente, iar t1 si t2 sunt
în conflict.

p
3
t3
p1 p2
p1 p2 p4

t1 t2 t3 t1 t2
a) b)
Figura 12
Reteaua Petri din figura 13 este un exemplu de sincronizare. Jetoanele, in locatiile p3 si p4 sau p7 si p8, se
vor înscrie simultan (adica sincron). Similar, din locatiile p1 si p2 sau p5 si p6 jetoanele vor fi extrase simultan.
Totusi nu se poate afirma ca tranzitiile t1 si t2 se vor executa sincron, doar ca vor fi admisibile în acelasi moment
de timp. Ele se execută concurent.
p1 p2
t5
p3
p4
t3 t4
t1 t2
p5 p6
t6 p8
p7
Daca se cere sa se sincronizeze doua activitati distincte, atunci acestea trebuie sa fie cuprinse
Figura 13
în aceeasi tranzitie, cum ar fi cea care este reprezentata în figura 14.a. Aceasta se poate
descompune conform reprezentării din figura 14.b.

t t1 p t2

a) b)
Figura 14

In reteaua Petri din figura 15 s-a impus ca secventele t1, t3 si t2, t4 sa se execute prin
excludere mutuala, adica la un moment dat se va executa sau una sau cealalta. Nu s-a impus
ca una sa se execute înaintea celeilalte, sau ca fiecare sa se execute de un acelasi numar de ori.

p7
p1 p2

t1 t2
t5 t6
p3 p4
t3 t4

p6 p6
Figura 15

In figura 16 s-a impus, pe lânga conditia de excludere mutuala, ca secventele sa se


execute într-o anumita ordine. Nici una dintre secvente nu se poate executa de mai multe ori
fara ca sa se execute si cealalta. Daca se doreste ca secventa t1, t3 sa fie executata de k ori
înainte de-a putea executa secventa t2, t4, trebuie sa se modifice reteaua astfel:

M0(p7) = k, pre(p8, t2) = k, post(p7, t4) = k


p1 p7 p2

t1 t2
t5 p8 t6
p3 p4
t3 t4

p5 p6
Figura 16

In figura 17 sunt prezentate câteva scheme tipice de sincronizare.

H1 H2 H1
H1 H2 H2
S S1
S1 S2
RV
S2

a) b) c) d)

e) f) g)

Figura 17

Retele Petri ierarhizate


Figura 2.17 Scheme de sincronizare
Abordarea bazata pe retele care ia în considerare marcajul si o structura bipartita este
deosebit de eficienta în modelare. Separarea nodurilor în locatii si tranzitii, care duce la
tratarea egala a starilor si actiunilor, confera superioritate retelelor Petri, comparativ cu
formalismele orientate în exclusivitate spre tranzitii sau spre stari. In aceste cazuri numai o
notiune este explicita, cealalta trebuind sa fie dedusa.
Principiul localizarii pe stari si tranzitii (actiuni) are drept consecinta posibilitatea
efectuarii modificarilor, care duc la un model mai detaliat sau mai general, fara a necesita o
reproiectare integrala a modelului initial. In consecinta, sinteza retelelor se poate face prin
abordarea descendentă (top-down) sau ascendentă (bottom-up). In sinteza descendentă se
pleaca de la un model initial, cu un grad mare de abstractizare si se obtine un model final,
respectând anumite stadii de detaliere (trepte de rafinare). In abordarea ascendentă, sunt
produse module (eventual în paralel), care în final sunt asamblate.
Exista mai multe posibilitati de detaliere sau asamblare (compunere).
In reteaua din figura 18 este indicata o detaliere ierarhizata pe doua niveluri; p5 (care
defineste starea locala) si 2 sunt detaliate. Sistemul din figura 18 poate fi obtinut
sincronizând doua module: în figura 19 sunt sincronizate tranzitiile a si d, iar în figura 20
fuzioneaza locatiile p4.
Aceste două metode, ca şi combinarea lor, constitue metode de sinteză a reţelelor
Petri.

1
a f
2 21

2 4 6 51

b c
e 1 2
3 5
2
d
52
22
Figura 18

1 1
f
a a
2
2 4 6

b c
e
3 5
2
d d

Figura 19
1
a f

2
2 4 4 6
b c
e
3 5
2

Figura 20

Proprietati ale reţelelor Petri

Cu un model bazat pe retele Petri, pot fi studiate doua tipuri de proprietati: cele care
depind de marcaj si cele care nu depind de acesta. Primele sunt proprietati comportamentale
sau altfel spus dependente de marcaj, iar cele de al doilea tip sunt proprietati de structura,
care sunt independente de marcaj.
Cele mai importante proprietati ale unei retele Petri PN = (N,M0) sunt:

1. Realizabilitatea (reachability). Un marcaj Mn se spune ca este realizabil dintr-un


marcaj M0 daca exista o secventa de executii care îl transforma pe M0 în Mn.  = t1 ,..., tn este
secventa de tranzitii care efectueaza transformarea; aceasta se va nota cu:

M0[  Mn

Reteaua Petri este complet controlabila daca oricare marcaj este realizabil din oricare
alt marcaj.
Se noteaza R(N,M0), sau R(M0) atunci când nu se poate confunda, setul tuturor
marcajelor retelei N care pot fi realizate din marcajul M0. Cu L(N, M0) sau cu L(M0) când nu
exista posibilitatea de confuzie, se noteaza setul tuturor secventelor de tranzitii executabile din
marcajul initial M0.
Problema realizabilitatii consta în a determina:
 daca marcajul Mn poate fi realizat din marcajul initial, adică dacă Mn  R(M0);
 în cazul în care Mn  R(M0), care ar putea fi secventa , astfel încât M0[  Mn.
Uneori se cere sa se determine numai daca un subset al marcajului (adica restrictia
marcajului retelei la anumite locatii) poate fi realizat din marcajul initial.
Realizabilitatea este utila în studiul proprietatilor dinamice ale sistemului.

2. Marginirea (boundedness). O retea Petri PN = (N,M0) se numeste marginita (sau k-


marginita) daca numarul jetoanelor din fiecare locatie nu depaseste niciodata un anumit
numar natural k, indiferent de marcajul realizat, adica: pentru oricare p din P si oricare M din
R(M0) rezulta M(p) < k.
O retea Petri se numeste sigură (engl.: safe) daca este 1-marginita. Daca o retea Petri
este marginita din oricare marcaj initial finit, ea se numeste structural marginita.

3. Viabilitatea (engl.: liveness). Acest concept este legat de absenta interblocajelor în


sistemele în care se pune problema utilizarii în comun a mai multor resurse. Astfel de exemple
pot fi întâlnite la sistemele de operare si la sistemele flexibile de fabricatie.
O retea Petri PN = (N,M0) se numeste viabila (sau echivalent, M0 este un marcaj
viabil pentru reteaua N) daca indiferent care este marcajul realizabil din M0, se poate executa
în continuare oricare tranzitie din retea, eventual executând în prealabil anumite secvente. Ea
se numeste structural viabila daca exista un marcaj initial viabil pentru retea.
Daca o retea este viabila, atunci se garanteaza lipsa interblocajelor.
O tranzitie t  T este viabila dintr-un marcaj M0 (initial) daca si numai daca oricare ar
fi marcajul M accesibil din M0 exista o secventa  de executii care o contine pe t. (O tranzitie
viabila ramâne în permanenta potential executabila, activitatea pe care o reprezinta fiind
întotdeauna posibila).
O tranzitie t din PN = (N,M0) se numeste:
 moarta (sau L0 - viabila), daca t nu poate fi executata în nici o secventa din L(M0);
 L1 - viabila (potential executabila), daca t poate fi executata cel putin o data în
unele secvente executabile din L(M0);
 L2 - viabila, daca, dându-se un numar natural k, t poate fi executata de cel putin k
ori în unele secvente din L(M0);
 L3 - viabila, daca t apare de o infinitate de ori în unele secvente din L(M0);
 L4 - viabila sau viabila, daca t este viabila din oricare marcaj apartinând setului
R(M0).
O retea Petri se numeste consistenta daca exista un marcaj initial si o secventa de
executii din marcajul initial care duce sistemul din nou în starea initiala si care contine fiecare
tranzitie cel putin o data.
Reteaua Petri este Lk-viabila daca fiecare tranzitie a sa, t, este Lk-viabila (k=1,2,3,4).
L4-viabilitatea este cea mai puternica si corespunde definitiei anterioare a viabilitatii. Daca o
retea este Lk-viabila, atunci este si L(k-1)-viabila.
O tranzitie este strict Lk-viabila daca este Lk-viabila, dar nu este L(k+1)-viabila.
Reteaua Petri din figura 21 este L-1 viabila deoarece fiecare tranzitie poate fi executata o
singura data în ordinea t2, t4, t5, t1, t3. Daca se executa mai întâi tranzitia t1, nu se mai poate
executa nici o alta tranzitie.

In figura 22 tranzitiile t1, t2 sunt L1-viabile, iar t3 si t4 sunt L3-viabile.

p2
t1 t3 t3
p1
p1 p4 p3

t2 t1 p3
t2
t4 p6
p5
p2 t4
t5

Figura 21 Figura 22

4. Reversibilitatea (eversibility)
O retea Petri PN = (N,M0) este reversibila daca oricare ar fi marcajul M din setul
R(M0), M0 este realizabil din M. Prin urmare, reteaua este reversibila daca totdeauna se poate
ajunge din nou în starea initiala.
Uneori, în loc de starea initiala, se cere sa se determine daca reteaua poate ajunge într-
o anumita stare de baza (engl.: home state) data. M' este o stare de baza daca oricare ar fi
marcajul M din setul R(M0), M' este realizabil din M.
Viabilitatea, marginirea si reversibilitatea sunt proprietati importante în studiul
retelelor Petri. Ele nu sunt dependente una relativ la cealaltă, conform reprezentarilor din
figura 2.23.
b) c) d)
a)

e) f)

g) h)

Figura 23
_ _ _
Dacă se notează cu M mărginirea,V viabilitatea şi cu R reversibilitatea iar cu M, V şi R
negaţia lor, reţelele din figura 23 au proprietăţile:
___ __ _ _ __ _ _ _
a) MVR; b) MVR; c) MVR; d) MVR; e) MVR; f) MVR; g) MVR; h) MVR.

5. Acoperirea (coverability). Un marcaj M din PN = (N,M0) se numeste acoperibil


daca exista un marcaj M' din setul R(M0) astfel încât M'(p) > M(p) pentru oricare p din P.
Acoperibilitatea este în strânsa legatura cu L1-viabilitatea. Fie M minimul marcajelor
necesare pentru executia unei tranzitii t date. t este moarta, adica nu este L1-viabila, daca si
numai daca M nu este acoperibil.

6. Peristenta (engl.: persistence). O retea Petri se numeste persistenta daca oricare ar


fi doua tranzitii executabile (admisibile), executia unei tranzitii nu va împiedica executia
celeilalte. In concluzie, o tranzitie executabila dintr-o retea persistenta va ramâne executabila
pâna când va fi executata indiferent de evolutia retelei.
Notiunea de persistenta este utila la programele paralele si concurente, la circuitele
asincrone independente de viteza, la sistemele flexibile de fabricatie etc. Persistenta este în
legatura cu retelele fara conflicte (conflict-free nets).
7. Distanta sincrona (synchronic distance). Aceasta este o metrica exprimând gradul
de dependenta dintre doua evenimente dintr-o retea PN = (N,M0) de tip C/E. Distanta sincrona
d12 dintre doua tranzitii t1 si t2 ale unei retele de tip C/E este data de relatia:
_ _
d12 = max | (t1) - (t2) |

_
unde  este o secventa pornind din orice marcaj M  R(M0), iar (ti) este numarul care
exprima de câte ori s-a executat în secventa , tranzitia ti, i = 1,2.
8. Corectitudinea (engl.: fairness). Doua tranzitii dintr-o retea Petri sunt corect limitate
(engl.: bounded-fair) daca numarul de executii al uneia dintre ele fata de al celeilalte este
limitat. O retea Petri este corect limitata daca oricare pereche de tranzitii din retea este corect
limitata.
O secventa de executii dintr-o retea este neconditionat corecta daca este fie finita, fie
oricare tranzitie din secventa se executa de o infinitate de ori.
O retea Petri PN = (N,M0) este neconditionat corecta daca fiecare secventa  din
MR(M0) este neconditionat corecta.

9. Excluderea mutuala caracterizeaza imposibilitatea executiei concurente a unor


tranzitii sau existentei simultane a unor marcaje.

Analiza calitativa a modelelor descrise prin retele Petri

Tehnicile analizei calitative permit verificarea absentei interblocajelor, existentei


depasirilor, corectitudinii, excluderii mutuale. Analiza cantitativa trateaza aspecte privind
performantele, caracteristicile raspunsului sau proprietatile de utilizare.
Metodele de analiza pot fi divizate în urmatoarele grupe:
1. analiza prin enumerare;
2. analiza prin transformare;
3. analiza structurala;
4. analiza prin simulare.

Primele trei metode sunt statice, iar cea de a treia este dinamica.
Analiza prin enumerare se bazeaza pe constituirea grafului de realizare sau a
arborelui de acoperire, care descriu marcajele si tranzitiile executabile.
Metodele de analiza prin transformare verifica un set de proprietati, prin transformarea
sistemului original în altul care le conserva. Metodele de reducere sunt o clasa particulara a
metodelor de transformare, în care se construieste o PN a sistemului, conservând proprietatile
care trebuie studiate. Aplicabilitatea metodelor de reducere este limitata de existenta
sistemelor (retelelor) ireductibile. Uzual, aceste metode trebuie completate cu alte metode de
analiza.
Metodele analizei structurale studiaza relatiile dintre comportamentul retelei si
structura sa. Din aceasta clasa fac parte metodele bazate pe algebra liniara si programarea
liniara care utilizeaza ecuatia de stare a retelei.

Analiza prin enumerare

Metodele de analiza prin enumerare se bazeaza pe constructia grafului de realizare,


care reprezinta, individual, marcajele retelei si executiile tranzitiilor. Daca sistemul nu este
marginit, graful de realizare este infinit, deci imposibil de construit. In acest caz se
construieste graful de acoperire.

Metoda grafului de realizare

Se spune ca un marcaj este realizabil într-o retea (N,M0) daca exista o secventa ,
M0[  M, astfel încât M  R(N,M0). Sistemele cu stari (marcaje) infinite nu au reprezentari
finite. Pentru sisteme marginite, abordarea analizei prin metoda grafului de realizare se
bazeaza pe simularea secventiala exhaustiva.
Definitie Graful de realizare, asociat cu o retea (N,M0), este un graf GR(N,M0) în
care fiecare nod reprezinta un marcaj realizabil din M0 si fiecare arc reprezinta executia unei
tranzitii. Exista un arc atichetat tk, care porneste din nodul reprezentând marcajul Mi spre
nodul reprezentând marcajul Mj, daca marcajul Mj poate fi realizat din marcajul Mi prin
executia tranzitiei tk, Mi[tk  Mj.
Figura 5 reprezinta un astfel de graf de realizare pentru sistemele reprezentate în
figurile 4 a si b. O alta varianta de construire a grafului de realizare consta în marcarea
nodurilor cu numerele locatiilor care au jetoane, celelalte fiind omise.

Exemplul 8
In figura 25 este reprezentată varianta de mai sus a grafului de realizare pentru
sistemul din figura 13.
Din analiza acestui graf de realizare se constata ca sistemul este 1-marginit, deoarece
marcajele nu primesc decât cel mult un jeton, este viabil, reversibil si persistent. De exemplu,
daca sunt executabile tranzitiile t1 si t2, executia unei dintre ele nu o împiedica pe cealalta sa
se execute. Doarece aceasta conditie este valabila pentru toate tranzitiile, se poate spune ca
reteaua este persistenta.

1,2

5
4 3
3,4
1 2

3,6 2,7
1,8 4,5

2 1
5,6
3 4
6
7,8

Figura 25
Prin urmare, sistemul (N,M0) este nemarginit (conditie de abandonare), daca exista Mj
realizabil din Mi, astfel încât Mj > Mi şi Mj  Mi.

Din cauza cresterii exponentiale a numarului de stari, utilizarea acestei metode este
posibila numai în cazul sistemelor cu o complexitate redusa. Un mod de evitare a acestei
probleme îl ofera metoda urmatoare.

2.7.1.2. Metoda arborelui de acoperire

Dându-se o retea Petri PN = (N,M0), se poate construi un arbore pornind din marcajul
initial M0 si construind câte un arc pentru fiecare tranzitie executabila. La capetele arcului se
noteaza marcajul retelei obtinut ca urmare a executiei tranzitiei, iar arcul se marcheaza cu
tranzitia care determina aceasta transformare. Operatia poate continua în acelasi fel pâna la
epuizarea tuturor tranzitiilor executabile si realizarea tuturor marcajelor, daca reteaua Petri
este mărginita. Aplicarea acestei metode la retelele Petri nemarginite este imposibila din cauza
ca dezvoltarea nu are sfârsit. Pentru a mentine arborele finit se propune introducerea unui
simbol special , care poate fi interpretat ca un infinit. El verifica, pentru orice numar natural,
relatiile:

 > n ;  + n =  si  > 

Folosind simbolul , arborele de acoperire poate fi construit utilizând urmatorul


algoritm:

Pas 1. Se eticheteaza marcajul initial M0 ca radacina si nou.


Pas 2. Cât timp marcajele existente sunt noi, executa:
Pas 2.1. Selecteaza un marcaj M etichetat ca nou;
Pas 2.2. Daca M este identic cu un marcaj din calea de la radacina pâna la M,
atunci se eticheteaza M ca vechi si se merge la un alt marcaj;
Pas 2.3. Daca nu exista tranzitii admisibile din M, atunci se marcheaza M cu
sfârsit;
Pas 2.4. Pentru fiecare tranzitie t, admisibila din M, executa:
Pas 2.4.1. Fie M' marcajul care rezulta dupa executia tranzitiei t din M.
Pas 2.4.2. Daca exista pe calea de la radacina pâna la M un marcaj M'',
astfel încât M'(p) > M"(p) pentru oricare locatie p si
M’M", adica M" este acoperit, atunci se înlocuieste M'(p)
cu , pentru fiecare locatie p care verifica M'(p) > M''(p).
Pas 2.4.3. Se introduce M' ca un nod nou si se deseneaza un arc cu
eticheta t din M la M'.

Daca reteaua Petri este marginita, arborele de acoperire obtinut fara a utiliza simbolul , se numeste
arbore de realizare si va pune în evidenta toate marcajele realizabile din M0. Utilizând acest arbore, se pot
verifica toate proprietatile mentionate anterior. Deoarece utilizarea simbolului  implica o pierdere de informatii,
proprietatile de viabilitate si de realizabilitate nu pot fi studiate la retelele nemarginite prin folosirea acestei
metode.

Cu arborele de acoperire se poate construi graful de acoperire care este un graf orientat. El are ca
noduri, nodurile etichetate distinct în arborele de acoperire, iar ca arce tranzitiile corespunzatoare.
2.7.2. Metoda reducerii
Reducerea retelei sistemului permite analizarea modelului prin efectuarea unor transformari ale
structurii sale si eventual ale marcajului initial. Procedeul de reducere este iterativ si aplicarea lui se continuă
pâna când sistemul devine ireductibil. Prin aplicarea fiecarei reguli în parte, se conserva unele proprietati ca:
viabilitatea, marginirea si reversibilitatea. Daca reteaua rezultata nu este complexa, verificarea proprietatilor
devine triviala. In cazul în care reteaua redusa este complexa, se continua procedeul de analiza prin utilizarea
altor metode.
Utilizând regullile de reducere în sens invers, ele devin reguli de expansiune. Acestea sunt utilizate la
sinteza retelelor Petri (în metodele de tip descendent).
In figura 28 este reprezentat un set de reguli de reducere cu urmatoarele semnificatii:

a. fuziunea locatiilor serie,


b. fuziunea tranzitiilor serie,
c. fuziunea locatiilor paralele,

a) b)

c) d)

e) f)
Figura 28

d. fuziunea tranzitiilor paralele,


e. eliminarea buclei elementare cu locatie,
f. eliminarea buclei elementare cu tranzitie.

O locatie dintr-o retea poate constrânge numai secventele executabile. Daca o locatie,
pentru un anumit marcaj initial dat, nu constrânge secventele executabile, ea poate fi eliminata
fara ca aceasta sa se observe în comportamentul modelului sistemului. O astfel de locatie se
numeste implicita.
Pentru o retea Petri PN = (N,M0) în urma eliminarii locatiilor implicite se obtine
reteaua PN' = (N',M0’) unde M0 = (M0’,M0(p)) este marcajul initial. O locatie p din PN este
implicita, daca pentru oricare tranzitie de iesire a lui p este valabila relatia:

daca M'(p) > pre’(p,t), rezulta M(p) > pre(p,t)

Eliminarea locatiilor implicite conserva absenta interblocajelor, viabilitatea si


excluderea mutuala a marcajelor. Proprietatile de marginire, reversibilitate si excludere
mutuala a tranzitiilor nu sunt conservate.
Determinarea locatiilor implicite este relativ dificila în cazul retelelor complexe.
Locatiile implicite caracterizează aspectele comportamentale, prin urmare, metodele pentru
determinarea lor se bazeaza pe studierea evolutiei sistemelor care le conţin.

Metode algebrice (liniare)


Metode de utilizare a invariantilor

In rationarea clasica sunt utilizati invariantii în scopul studierii comportarii sistemului


si al verificarii proprietatilor logice ale acestuia. Au fost definite doua tipuri de invarianti, P si
T.

1. Invariantul de tip P este un vector care are proprietatea ca înmultirea sa cu vectorul


oricarui marcaj accesibil da acelasi rezultat:

YT  M = YT  M0

M este marcajul care se obtine din marcajul M0 dupa executia tranzitiei t, iar Y reprezinta
invariantul. Releţia precedentă descrie conservarea marcajelor. Sistemele care o respectă se
numesc conservative.
Deoarece:

M = M0 + colt (C)

se obţine:

YT  M = YT  M0 + YT  colt (C)

Rezulta, luând în considerare definitia invariantului, ca:


YT  colt (C) = 0

Cum relatia precedenta este valabila pentru oricare dintre tranzitiile ti, adica:

YT  col t1 (C) = 0,

YT  col t2 (C) = 0,

---------------------

YT  col tn (C) = 0,

se obtine:

YT  C = 0

Daca marcajul M are m elemente, atunci si vectorul Y are m elemente.


Determinarea unui invariant se face conform relatiilor:

y1  c11 + y2  c21 + ... + ym  cm1 = 0

y1  c12 + y2  c22 + ... + ym  cm2 = 0

----------------------------------------

y1  c1n + y2  c2n + ... + ym  cmn = 0

Sunt m necunoscute, y1, y2, ... , ym si n ecuatii. Matricea C poate avea coloanele liniar
independente. Daca m este mai mare decât n, atunci unele elemente ale lui Y trebuie sa ia
valori arbitrare. In consecinta, pentru o retea Petri pot exista mai multi invarianti.
Daca M si M' sunt marcaje accesibile, atunci:

y1 M(p1) + y2 M(p2) + ... + ym M(pm) = y1 M’(p1) + y2 M’(p2) + ... + ym M’(pm) = constant

Expresia precedenta reflecta proprietatile retelei, permitând verificarea excluderii


mutuale si a prezentei blocajelor.

Exemplu
Pentru a ilustra utilizarea invariantilor se considera reteaua din figura 2.29.

p1

t1

p2 p3

t2 t3

p4 p5 t4

Figura 2.29

Matricea de incidenţă este:

-1 0 0 1
1 -1 0 0
A= 1 0 -1 0
0 1 0 -1
0 0 1 -1

Cu aceasta, pentru calculul invariantului se poate scrie sistemul:

- y1 + y2 + y3 = 0
- y2 + y4 =0
- y3 + y5 =0
y1 - y4 - y5 = 0

Daca se ia: y5 = y4 = 1 rezulta invariantul:

Y1 = [2, 1, 1, 1, 1]T

Pentru: y4 = 1, y5 = 0 se obtine invariantul:

Y2 = [1, 1, 0, 1, 0]T

Luând y4 = 0 si y5 = 1 rezulta:
Y3 = [1, 0, 1, 0, 1]T
Marcajul initial fiind M0 = [1, 0, 0, 0, 0]T, pentru cei trei invarianti se obtin relatiile:

2 M(p1) + M(p2) + M(p3) + M(p4) + M(p5) = 2


M(p1) + M(p2) + M(p4) = 1
M(p1) + M(p3) + M(p5) = 1

Acestea sunt trei relatii invariante. Se poate verifica invarianţa lor, ca urmare a executiilor
diferitelor tranziti. De exemplu, dupa executia tranzitiei t1, se obtine:

M' = [0, 1, 1, 0, 0]T

Se observa ca marcajul M verifica toate cele trei relatii invariante.


Dupa executia tranzitiilor t2 si t3 se obtine:

M = [0, 0, 0, 1, 1]T

şi acest marcaj verifica cele trei relatii.


Pentru verificarea excluderii mutuale a tranzitiilor t2 si t3, se verifica in ce conditii ar fi
executabile simultan (vezi curs).

2. Invariantii de tip T sunt vectori notati cu X, care verifica relatiile:


CX = 0, X > 0   M0 astfel încât M0 [  M0 si  = X (comportarea ciclica a
marcajului).
Daca se poate gasi un astfel de invariant X, atunci exista un marcaj M0 si o secventa de
execuţii care aduce marcajul înapoi în starea initiala. Secventa de executii este vectorul de
numarare a executiilor si este egal cu X.

Sifoane si capcane

Sifoanele sunt blocaje structurale. Capcanele sunt subseturi de locatii posibil de a fi


recunoscute, care genereaza subretele specifice.

Definitie
1. Un sifon este un subset de locatii pentru care setul tranzitiilor sale de intrare este
continut în setul tranzitiilor sale de iesire:
S  P este un sifon ţ 0S  S0.

2. O capcana este un subset de locatii astfel încât setul tranzitiilor sale de iesire este
continut în setul tranzitiilor sale de intrare:

Q  P este o capcana ţ Q0  0Q.

Sifonul si capcana sunt concepte inverse.


In general, blocajul este implicat de faptul ca locatiile componente ale setului S nu pot
fi încarcate cu jetoane. Tranzitiile care ar putea face aceasta nu pot deveni executabile din
cauza ca au ca si locatii de intrare locaţii din S.
Capcana se explica prin faptul ca jetoanele aparţinnd locatiilor din setul Q nu mai pot
fi extrase de catre tranzitiile lor de iesire, deoarece, executia acestora implica încarcarea
locatiilor care fac parte din setul Q (care sunt deja încarcate). Se poate spune despre capcana
ca este opusa blocajului. Spre deosebire de blocaj în care nu se pot introduce jetoane (adica
multimea S nu îsi poate spori numarul de jetoane), în cazul capcanei nu se pot extrage jetoane
(adica multimea Q nu îsi poate reduce numarul de jetoane).
Blocajul si capcana pot sa implice toata reteaua sau numai o parte din ea.

Exemplul
p1
Se considera reteaua Petri de tip C/E din
t1 p2 t2
figura 30 cu marcajul initial M0 = [1,0,1,0,0,0,1]T.
Se poate observa ca în aceasta situatie poate evolua p4
p3 p5
la nesfârsit prin secventa: t1, t4, t2, t3.
p6
t3 t4

p7
Figura 30

Daca setul de locatii S = {p2, p3, p4} nu ar avea nici un jeton, atunci nici o tranzitie nu
ar fi executabila. Prin urmare, reteaua se blocheaza sau nu în functie de marcajul initial. Setul
S formeaza un blocaj (sifon) deoarece verifica relatia data anterior:

0
S = {t1, t2, t3}
S0 = {t1, t2, t3, t4}
{t1, t2, t3}  {t1, t2, t3, t4} sau 0S  S0.
Multimea Q = {p1, p2, p5} formeaza o capcana deoarece:

Q0 = {t1, t2}
0
Q = {t1, t2, t4}
Q0  0Q.
Proprietatea 7
1. Sifoane:
a. Daca M determină un blocaj comportamental, atunci:
D = {p / M(p) = 0} este un sifon nemarcat (gol).

b. Daca un sifon este (sau devine) nemarcat, va ramâne nemarcat pentru oricare
evolutie posibila a sistemului. In consecinta, toate tranzitiile sale de intrare si iesire
sunt moarte.

2. Capcane
Daca o capcana este (sau devine) marcata, aceasta va ramâne marcata pentru oricare
evolutie posibila a sistemului (cel putin un jeton este prins în capcana).

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