You are on page 1of 127

Călin Aurel Munteanu

Simona Iuliana Caramihai


Mihnea Alexandru Moisescu
Ioan Ştefan Sacală

Sisteme Dinamice cu Evenimente Discrete


2
CUPRINS

Conceptul de Sistem cu Evenimente Discrete ............................................. 5


Breviar ..................................................................................................... 5
Problemă rezolvată.................................................................................. 7
Probleme propuse.................................................................................. 14
Limbaje Formale şi Automate .................................................................... 16
Breviar ................................................................................................... 16
Probleme rezolvate................................................................................ 39
Probleme propuse.................................................................................. 59
Reţele Petri ................................................................................................. 74
Breviar ................................................................................................... 74
Probleme rezolvate................................................................................ 85
Probleme propuse.................................................................................. 95
Bibliografie ............................................................................................... 127
4
CAPITOLUL I
CONCEPTUL DE SISTEM CU EVENIMENTE DISCRETE

Breviar
Un sistem cu evenimente discrete (SED) este un sistem dinamic
caracterizat printr-un spaţiu discret al stărilor şi prin traiectorii de stare
continue pe porţiuni. Modificările de stare se numesc tranziţii şi survin ca
urmare a apariţiei evenimentelor, în mod asincron.
Evenimentele au durată nulă. În afară de cazul în care apar alte
specificaţii, se consideră că la un moment dat are loc un singur eveniment
(deoarece probabilitatea ca doua evenimente independente sa aiba loc
simultan este aproape nulă). Un eveniment poate fi identificat ca :
• acţiune specifică (ex: lansare operaţie);
• modificare necontrolabilă în cadrul unui proces (ex: defectarea unei
resurse dintr-un motiv oarecare);
• rezultatul satisfacerii simultane a mai multor condiţii.
Evenimentele sunt, de regulă, etichetate. Mulţimea evenimentelor legate
de funcţionarea unui proces oarecare formează un alfabet (mulţime finită
de simboluri) Σ, astfel încât ele îşi păstrează semnificaţia de fenomen
calitativ dependent de specificul aplicaţiei.
Din punct de vedere formal, un sistem cu evenimente discrete se mai poate
defini şi astfel:
Definiţie:
Un SED este un sistem care evoluează generând spontan evenimente şi
poate fi definit ca un quadruplu:

G = (Q, Σ, δ , q 0 )
unde:
Q = mulţimea stărilor sistemului;
Σ = alfabetul evenimentelor pe care le poate genera sistemul;
q0 = starea iniţială;
δ = funcţia de tranziţie de stare, cu
δ : Q × Σ→ Q.
5
Sisteme cu evenimente discrete

Observaţii
1. În funcţie de dimensiunea lui Q, SED se împart în sisteme cu număr
finit de stări şi respectiv sisteme cu număr infinit de stări; indiferent
de dimensiune, Q este numărabilă;
2. Funcţia de tranziţie δ nu este întotdeauna complet definită, ceea ce
înseamnă că nu este obligatoriu ca din fiecare stare a sistemului să
poată fi generate toate evenimentele din Σ; de regula, numarul de
evenimente care poate fi generat din fiecare stare este determinat de
caracteristicile fizice ale sistemului modelat;
3. Alfabetul Σ are întotdeauna un număr finit de evenimente.
În concluzie, modelarea unui proces real ca SED include, indiferent de
formalismul utilizat, următoarele etape:
1. Definirea variabilelor de stare, respectiv a formatului elementelor q
∈ Q; dacă mulţimea Q este finită, atunci se poate defini în întregime
prin enumerare;
2. Stabilirea stării iniţiale q0 ∈ Q;
3. Definirea tuturor evenimentelor din Σ - ca acţiuni care modifică
valoarea a cel puţin o variabilă de stare;
4. Definirea funcţiei de tranziţie δ, ceea ce revine de fapt la descrierea
explicită a modelului.
În funcţie de complexitatea procesului modelat, etapele 3 şi 4 pot fi
completate simultan.
Dacă se ia în considerare modul în care tratează timpul, modelele SED pot
fi împărţite în următoarele categorii:
• modele autonome sau logice – utilizate pentru analiza calitativă a
funcţionării sistemelor; în cazul acestor modele nu este luată în
considerare decât ordinea în care apar evenimentele, iar timpul (ca
moment precis al aparitiei unui eveniment sau ca intervalul dintre
două evenimente succesive) nu apare în mod explicit;

6
Sisteme cu evenimente discrete

• modele temporizate – utilizate atât pentru analiza calitativă cât şi,


mai ales, pentru analiza performanţelor sistemelor – intervalul de
timp dintre apariţiile a două evenimente succesive este specificat în
mod determinist;
• modele stochastice sau probabilistice – în care succesiunea
evenimentelor este modelata prin intermediul unor distribuţii de
probabilitate.

Problemă rezolvată

1) Să se modeleze ca SED procesul format dintr-un server şi o coadă de


aşteptare. Capacitatea serverului este unu (poate deservi numai un
client la un moment dat), iar capacitatea cozii este presupusă a fi
nelimitată. Atunci când un client intră în sistem, el intră în coada de
aşteptare. De îndată ce serverul este liber, preia câte un client din
coadă, în ordinea sosirii acestora. Intrarea clienţilor în sistem, precum
şi durata serviciului, sunt aleatoare. Se presupune că intervalul de timp
dintre iesirea unui client de la server si intrarea unuia nou, în cazul în
care coada este nevidă, este zero (nesemnificativ pentru problema).
Iniţial, serverul este liber.

Rezolvare:
Procesul propus va fi modelat ca SED autonom, întrucât nu exista nici o
indicaţie temporală.
Definirea Q: în mod evident, sistemul va avea un număr infinit de stări,
deoarece capacitatea cozii de aşteptare nu este limitată. În acest caz, se va
defini structura stărilor sistemului prin specificarea variabilelor de stare, şi
anume: s – starea serverului şi l – lungimea cozii de aşteptare.
Întrucât serverul nu poate fi decât liber sau ocupat, se poate considera ca
s ∈ {0, 1}, astfel: s = 0 semnifica server liber, iar s = 1 – server ocupat.
Q = {(s, l)  s ∈ {0, 1}, l ∈ }
7
Sisteme cu evenimente discrete
Datorită faptului că (din specificaţiile problemei) nu există situaţii în care
serverul să fie liber şi coada de aşteptare să conţină clienţi, spaţiul stărilor
poate fi rafinat sub forma:
Q = {(0, 0)} U {(1, l)  l ∈ }
Definirea stării iniţiale: q0 = (0, 0) – server liber şi coada de aşteptare
vidă.
Definirea alfabetului de evenimente Σ:
Alfabetul de evenimente va conţine două elemente, şi anume:
e1 – intrarea unui client în sistem;
e2 – ieşirea unui client din sistem.
Definirea funcţiei de tranziţie:
δ ((0,0), e1 ) = (1, 0)
δ ((1, l ), e1 ) = (1, l + 1)
respectiv intrarea unui client în sistem
• trece serverul în starea de “ocupat”, dacă acesta era liber sau
• incrementează lungimea cozii, dacă la momentul intrării serverul era
ocupat.
δ ((0,0), e2 ) = - (nu se defineşte; fizic nu este posibil ca
un client să iasă dintr-un sistem fără clienţi))
(1, l − 1) daca l ≥ 1
δ ((1, l ), e2 ) = 
 (0, 0) daca l = 0
respectiv ieşirea unui client din sistem
• nu se defineşte (dacă sistemul nu are nici un client) sau
• decrementează lungimea cozii, dacă aceasta era nevidă sau
eliberează serverul, în caz contrar.
Modelul autonom poate fi modificat în vederea analizei performanţelor
sistemului în cazul în care informaţia despre proces este completată cu
informaţii temporale. De exemplu, se presupun cunoscute duratele de timp
dintre două sosiri succesive şi de asemenea timpul de servire aferent
fiecărui client.
8
Sisteme cu evenimente discrete
În general, performanţele unui sistem sunt evaluate fie prin metode
analitice, fie prin simulare.
În cele ce urmează, se urmăreşte construirea unui model în vederea
analizei prin simulare. Simularea unui proces poate fi dependentă de timp -
se încheie după expirarea unei perioade precizate de timp - sau poate fi
dependentă de evenimente – se încheie în momentul înregistrării unui
număr precizat de evenimente.
Pentru procesul în discuţie se alege simularea dependentă de evenimente,
considerând că simularea se încheie în momentul în care cel de-al n-lea
client sosit în coada de aşteptare intră pe server.
Mărimile de interes, ale căror valori trebuie să rezulte în urma simulării
procesului, sunt:
• durata medie de aşteptare a clienţilor în coadă
n

∑D i
dˆ ( n) = i =1

n
unde:
Di reprezintă durata de aşteptare a fiecărui client în coadă (este
calculat ca diferenţa dintre momentul la care clientul i-1 a părăsit
sistemul şi momentul la care clientul i a sosit în coadă),
n este numărul de clienţi trataţi de către server.
Conform definiţiei, durata totală de aşteptare pentru fiecare
client, respectiv durata medie de aşteptare pot fi calculate/
actualizate doar în momentul intrării clientului la serviciu, ceea ce
echivalează cu momentul înregistrării unui eveniment de tip e2.
• lungimea medie a cozii de aşteptare
Valoarea estimată, rezultată din simulare este

qˆ (n) = ∑ i ⋅ pˆ i ,
i =0

9
Sisteme cu evenimente discrete

Ti ∑ i ⋅ Ti
unde
pˆ i = , qˆ (n) = i =0
T (n) T ( n)
cu următoarea semnificaţie a parametrilor:
Ti - suma intervalelor de timp în care coada are lungimea i
T(n) – durata totală de simulare (intervalul măsurat între
momentul începerii simulării şi momentul la care clientul n a
intrat pe server)
pi- procentul din timpul total de simulare T(n) în care coada are
lungimea i, Q(t) = i (unde Q(t) reprezintă lungimea cozii la
momentul t)

Termenul ∑i ⋅T
i =0
i reprezintă chiar aria de sub graficul lui Q(t)
calculată între momentele de început şi respectiv de sfârşit ale
simulării, prin urmare
T (n)

∫ Q(t )dt
qˆ (n) = 0

T ( n)

• gradul de utilizare a server-ului


Ti
uˆ ( n) =
T (n)
unde
Ti – suma intervalelor de timp în care server-ul este ocupat
(B(t) =1 )

B(t) reprezintă gradul de ocupare a serverului la momentul t şi


este definită ca
B(t) = 1 , server ocupat la momentul t

0 , server liber la momentul t
10
Sisteme cu evenimente discrete
Ca şi în cazul precedent, suma intervalelor de timp în care
severul este ocupat poate fi văzuta ca aria de sub curba B(t).
Deci
T (n)

∫ B(t )dt
uˆ (n) = 0

T ( n)

Spre deosebire de primul parametru, pentru a cărui estimare se utilizează o


mediere în raport cu numărul de clienţi n, fiind o mărime statistică
discretă, ultimii doi parametri sunt estimaţi în raport cu durata simulării
T(n), fiind mărimi statistice continue.
În procesele care implică resurse de tip server (de exemplu, roboţi în
sistemele de fabricaţie, calculatoare în operaţiile de procesare a datelor)
evaluarea acestor performanţe este utilă în scopul detectării blocajelor sau
a capacităţii în exces (utilizare scăzută).
Pentru elaborarea unui model, care sa permita estimarea celor trei mărimi
de interes specificate mai sus, sunt utile următoarele variabile (de
simulare):
• starea serverului;
• numărul de clienţi din coadă;
• o listă care ţine evidenţa evenimentelor de sosire în coadă;
• momentul apariţiei ultimului eveniment;
• o variabilă ceas care se actualizează la apariţia fiecărui eveniment;
• o listă de evenimente care înregistrează evenimentele de sosire şi de
plecare imediat următoare evenimentului în curs de tratare;
În vederea obţinerii valorilor mărimilor de performanţă stabilite anterior
este necesară actualizarea următorilor parametri:
• numărul clientului aflat în serviciu;
• întârzierea totală a clienţilor în coadă;
• aria de sub curba Q(t)
• aria de sub curba B(t)

11
Sisteme cu evenimente discrete
Se consideră următorul studiu de caz, în care se specifică intervalele dintre
sosirile clienţilor (Ai) şi duratele de procesare pe server pentru fiecare
client (Si). Se precizează că simularea se încheie în momentul în care
clientul cu numărul n = 6 ajunge la server.
A1 = 0,4; A2 = 1,2; A3 = 0,5; A4 = 1,7; A5 = 0,2; A6 = 1,6;
A7 = 0,2; A8 = 1,4;…
S1 = 2,0; S2 = 0,7; S3 = 0,2; S4 = 1,1; S5 = 3,7; S6 = 0,6;…
Rezultatele obţinute în urma simulării sunt:
d(6) = 5.7/6 = 0.95
q(6) = 9.9/8.6 = 1.15
u(6) = 7.7/8.6 = 0.9
Valorile lui q si u pot fi verificate pe baza graficelor de mai jos.
Q(t
)
3

t
0 1 2 3 4 5 6 7 8 9

e2 = 1,6 e8 = 4,0 e11 = 5,8


Sosiri
e1 = 0,4 e3 = 2,1 e7 = 3,8 e10 = 5,6 e12 = 7,2

e6 = 3,3
Plecări
e4 = 2,4 e5 = 3,1 e9 = 4,9 e13 = 8,6 = T(6)

Figura I.1. Evoluţia în timp a numărului de clienţi din coada de aşteptare.


12
Sisteme cu evenimente discrete

B(t
)
1

t
0 1 2 3 4 5 6 7 8 9

e2 = 1,6 e8 = 4,0 e11 = 5,8


Sosiri
e1 = 0,4 e3 = 2,1 e7 = 3,8 e10 = 5,6 e12 = 7,2

e6 = 3,3
Plecări
e4 = 2,4 e5 = 3,1 e9 = 4,9 e13 = 8,6 = T(6)

Figura I.2. Evoluţia în timp a ocupării serverului.

13
Sisteme cu evenimente discrete
Probleme propuse

2) Fie un sistem de calcul cu două procesoare P1 şi P2, care lucrează în


paralel. Modul în care taskurile sosesc spre procesare poate fi descris
în raport cu momentul de timp discret al apariţiei lor prin intermediul
unei funcţii binare a(t) , t ∈ , astfel: a(t)=1 dacă la momentul t
soseşte un task şi a(t) = 0 în caz contrar. Se presupune că nu pot sosi
simultan două sau mai multe task-uri.
Presupunem că pentru un interval de timp t = 0,1,..,10 funcţia a(t) are
valorile {1,1,1,0,1,0,1,1,0,0,1}.
La sosirea unui task sistemul de calcul aplică următoarea regulă de
alocare a acestuia: cele două procesoare lucrează alternativ, primul
fiind P1. Se presupune că dacă un task este trimis la Pi, i=1,2 şi acel
procesor este ocupat, atunci taskul va aştepta într-o coadă de
capacitate infinită. Durata de procesare a unui task la procesorul P1
alternează între 4 unităţi de timp şi o unitate de timp (începând cu 4),
iar durata de procesare pe P2 este de 2 unităţi de timp. Fie y(t) numărul
total de clienţi care părăsesc sistemul la momentul t, iar x1(t) , x2(t)
lungimile cozilor de aşteptare la procesoarele P1 respectiv P2.
a) desenaţi o diagrama de timp t-0,1,..., 10 indicând sosirile şi
plecările. Iniţial x1(0) = x2(0) = y(0) =0;
b) construiţi un tabel cu valorile x1(t), x2(t) , şi y(t) pentru toţi t =
0,1,…, 10;
c) presupunem că se lucrează în timp continuu. Sosirile au loc la
momentele 0,1; 0,7; 2,2; 5,2; 9,9. Duratele de procesare pe P1
alternează între 4,2 şi 1,1 iar pe P2 este fixat la 2 unităţi de timp.
Fie un model condus de evenimente cu setul de evenimente E =
{a, d1, d2}, unde “a” semnifica sosirea iar “di” plecarea de pe
procesorul Pi. Construiţi un tabel cu valorile x1(k), x2(k) , y(k), t(k)
unde : x1(k), x2(k) sunt lungimile cozilor de aşteptare ; y(k) este
numărul cumulativ de plecări după evenimentul k. (k = 1,2,…), iar
t(k) momentul de timp la care apare evenimentul k. Dacă două
evenimente apar simultan presupunem că o plecare apare
întotdeauna înaintea unei sosiri. Comparaţi numărul de actualizări
în acest model cu un model în timp cu eşantioane la 0,1 unităţi de
timp.
14
Sisteme cu evenimente discrete
3) Rezolvati problema precedenta cu următoarele reguli de alocare a
taskurilor (dacă două evenimente apar simultan se consideră că
plecarea este prioritară faţă de sosire):
a) trimite taskul procesorului P1 cât timp lungimea cozii este cel
mult 2, altfel trimite către procesorul P2.
b) trimite taskul către procesorul cu coada cea mai scurtă. În caz de
egalitate trimite către procesorul P2.
4) Un proces de fabricaţie simplu este compus din două maşini M1 şi M2
şi un robot care descarcă piesele prelucrate de pe M1 şi le transportă pe
M2. Nu există stocuri la cele două maşini , deci dacă o piesă este
furnizată lui M1 în timp ce aceasta funcţionează atunci piesa este
rejectată. Dacă robotul transportă piesa lui M2 în timp ce aceasta este
ocupată atunci el aşteaptă acolo până când M2 se eliberează. Se
consideră că timpul de revenire a robotului de la maşina M2 (după ce a
depus piesa) în poziţia iniţiala este diferit de zero , deci M1 poate fi
forţată ocazional să păstreze piesa prelucrată (şi să nu accepte altele)
până când robotul devine disponibil. Fie x1 şi x2 stările lui M1
respectiv M2, iar x3 starea robotului. Presupunem că timpii de
procesare pe M1 şi M2 sunt: 0,5 pe M1 şi 1,5 pe M2, iar timpii de
transport de la M1 la M2 de 0,2 sec iar de la M2 în poziţia iniţiala (M1)
de 0,1 sec. Presupunem că piesele sosesc la M1 după următoarea
schemă:
0,1 0,7 1,1 1,6 2,5 sec
a) identificaţi toate valorile posibile pentru x1 , x2 şi x3;
b) definiţi un set minimal de evenimente E pentru acest sistem;
c) pentru intervalul [0,0, 0,3] construiţi un tabel cu valorile lui x1(k),
x2(k), x3(k) şi t(k) unde x1, x2, x3 sunt stările maşinilor şi robotului
după al k-lea eveniment iar t(k) este momentul apariţiei al
evenimentului k. Dacă două evenimente apar simultan considerăm
că terminarea procesării apare întotdeauna înaintea sosirii unei noi
piese;
d) identificaţi toate stările pentru care M1 este forţată să aştepte până
când braţul robotului preia piesa finită (prelucrată) (de pe M1).

15
CAPITOLUL II
LIMBAJE FORMALE ŞI AUTOMATE

Breviar
Definiţii
• Un alfabet este o mulţime finită de simboluri.
• Un cuvânt este o secvenţă finită de simboluri ale aceluiaşi alfabet.
• Un limbaj este o mulţime de cuvinte cu simboluri ale aceluiaşi
alfabet.
Notaţii:
• Lungimea unui cuvânt w:
• Cuvântul vid: ε (corespunde evenimentului nul sau, mai precis, unui
eveniment neobservabil)
• Limbaj vid: φ
Evoluţia oricărui SED poate fi reprezentată complet printr-o pereche de
limbaje (L, Lm) cu următoarele proprietăţi:
• L , Lm sunt definite pe alfabetul de intrare
• L – reprezintă toate evoluţiile posibile ale SED si se numeste limbaj
generat
• Lm – reprezintă toate evoluţiile dorite ale SED si se numeste limbaj
marcat
• Lm ⊆ L
Operaţii pe limbaje
Fie L, L1, L2, limbaje definite peste alfabetul Σ. Cele mai utilizate operatii
pe limbaje sunt:
• Reuniunea
L = L1 ∪ L2 ={ v| v ∈ L1 sau (şi) v ∈ L2 }
• Concatenarea
L = L1⋅ L2 = {v | v = s⋅ t unde s∈ L1 şi t∈ L2}

16
Limbaje formale şi automate

• Închiderea iterativă (sau operatorul Kleene)


L = L*

*
L = U Li , Lk+1 = Lk ⋅L
i =0

L0 = {ε}
Obs. Operatia de inchidere iterativa se poate extinde si la un alfabet
(considerat ca un limbaj cu cuvinte de lungime 1) Σ : Σ* este mulţimea
tuturor cuvintelor care pot fi formate cu simbolurile lui Σ.
• Închiderea prefixată
pr (L) = L = {s ∈ Σ* | ∃ t ∈L a.î. s⋅w = t}
• Intersecţia
L = L1 ∩ L2 = {v | v ∈ L1 şi v ∈ L2}
• Proiecţia lui L peste o submulţime de evenimente Σ^ ⊆ Σ
L↑Σ^= {s↑Σ^ | s ∈ L} cu
σ , dacă σ ∈ Σ^
(∀) σ ∈ Σ, ⋅σ ↑Σ^ =
ε , altfel
(s↑Σ)⋅ σ , dacă σ ∈ Σ^
(∀) s ∈Σ*, σ ∈ Σ, s⋅σ ↑Σ^ =
s↑Σ^ , altfel
Proprietate:
Limbajul generat de către un SED este întotdeauna egal cu închiderea sa
prefixată (L = pr(L)).
Definiţie
Fie Σ un alfabet; atunci o expresie regulată (ER) se defineşte astfel:
• ε este o ER care modelează limbajul ce conţine doar evenimentul
nul;
• φ este o ER care modelează limbajul vid;
• (∀) a ∈ Σ , a este o ER care modelează limbajul reprezentat de {a}
• dacă a, b sunt ER, atunci (a⋅b), (a + b), a*, b* sunt ER

17
Limbaje formale şi automate

Proprietate:
Dacă α este ER, atunci : α* = ε + α⋅α*
Definiţie:
Un automat finit determinist AFD se defineşte ca un quintuplu :
G = (Q, Σ, q0 , δ, Qm)
unde:
Q = mulţimea (finită) a stărilor
Σ = alfabetul de evenimente
q0 = starea iniţială
δ = funcţia de tranziţie ;
δ : Q ×Σ Q
(∀) q ∈ Q si a∈Σ, w ∈Σ*,
δ (q, ε) = q şi δ(q, wa) = δ (δ (q, w), a) = q’ ∈Q
Qm = mulţimea stărilor marcate
Notaţii:

• stare;

• starea iniţială (unică !)

• stare marcată

• tranziţia sub evenimentul a

Observaţii:
1. Dacă Qm ≠ φ , atunci automatul se numeşte acceptor.
2. Două automate G1 si G2 sunt echivalente dacă limbajele lor
generate si respectiv cele marcate, sunt egale.
G1 echivalent cu G2 ⇔ L(G1) = L(G2) si Lm(G1) = Lm(G2)

18
Limbaje formale şi automate

Definiţie:
Un automat finit nedeterminist AFN se defineşte ca un quintuplu
G = (Q, Σ, δ, q0, QF)
unde singura diferenţă faţă de AFD este dată de modul de definire a
funcţiei de tranziţie, respectiv :
δ : Q ×Σ 2Q cu 2Q mulţimea tuturor submulţimilor lui Q
δ(q, ε) = q şi δ(q, a) = {p| p∈Q},
ceea ce înseamnă că, din starea q, prin evenimentul a, se poate ajunge
într-o mulţime de stări (evoluţia nu este unică).
Un cuvânt de intrare w ∈∑* este acceptat de un AFN dacă măcar una
dintre evoluţiile δ(q0, w) ∈ Qm.
Pentru orice AFN G se poate construi un AFD echivalent G’, numit
observatorul lui G.
G’ = (Q’, Σ, δ’, q0, QF’),
Definiţie:
Un AFN cu tranziţii ε (AFN-ε) se defineşte ca un quintuplu:
G = (Q, Σ ∪{ ε }, q0 , δ, Qm).
Diferenţa faţă de clasele de automate prezentate anterior este dată de
modul de definire al lui δ.
Pentru a defini funcţia de tranziţie a AFN-ε se introduce noţiunea de
închidere ε a unei stări q a automatului G (ε*G (q)), astfel:
ε*G (q) = δ(q, ε*) = mulţimea tuturor stărilor în care se ajunge pornind din
q sub o secvenţă (oricât de mare) de ε.
Atunci funcţia de tranziţie a unui AFN-ε se defineşte astfel:
δ : Q ×(Σ ∪{ ε })  2Q ;

δ(q, ε) = ε G* (q)

19
Limbaje formale şi automate

Pentru un cuvânt de intrare s ∈ (Σ ∪{ ε })* şi σ∈Σ ,


 
δ ( q , s σ ) = ε G* [δ (δ ( q , s ), σ )] = U  U G  ε *
(q " )
q '∈δ ( q , s )  q ''∈δ ( q ',σ ) 
Ca şi în cazul AFN, pentru orice AFN-ε se poate construi un observator
determinist.

Algoritmul de construcţie a unui observator determinist Gobs pentru


un automat nedeterminist general Gnd
Considerând că automatul determinist este definit ca:
Gobs = (Qobs, Σ, δobs, q0,obs, Qm,obs)
iar automatul nedeterminist ca:
Gnd = (Qnd, Σnd, δnd, q0,nd, Qm,nd),
în care
 Σ, daca avem un AFN
Σ nd = 
Σ ∪ {ε}, daca avem un AFN - ε
Şi folosind (pentru a putea rezolva cu algoritmul construcţia observatorului
atât pentru AFN cât şi pentru AFN-ε) următoarea funcţie:
UR: 2Qnd × Σnd→ 2Qnd
Cu definiţia:
 x, daca G nd este AFN
UR(x) =  *
ε G ( x), daca G nd este AFN - ε
algoritmul de construcţie a observatorului pentru un automat nedeterminist
este următorul:
Pas 1 q0,obs = UR(q0,nd) şi se introduce q0,obs în lista stărilor neexplorate
(LSN).
Pas 2 Atâta timp cât există stări în LSN:
Pas 2.1 Extragere a unei stări q din LSN.

20
Limbaje formale şi automate

Pas 2.2 Includere a stării q în mulţimea Qobs. Dacă ∃qnd∈qobs a.î


qnd∈Qm,nd atunci se adaugă qobs în Qm,obs.
Pas 2.3 Pentru fiecare eveniment e∈Σnd
Pas 2.3.1 Evaluare a stării q’obs în care evoluează qobs la apariţia
evenimentului e:
q’obs
=δobs(qobs,e)=UR(δnd(qobs,e))=UR( q U ∈q
δnd(qnd,e))
nd obs

Pas 2.3.2 Dacă q’obs∉Qobs


Introducere a lui q’obs în LSN.
Pas 2.4 Întoarcere la Pas 2.

Orice expresie regulata (ER) poate fi reprezentata printr-un AFN-ε, pe


baza definiţiei ER şi utilizând următoarele operaţii:
Fie r1 şi r2 ER care pot fi exprimate prin AFN- ε, respectiv
M1 = (Q1, Σ1, q1, δ1, {f1})
M2 = (Q2, Σ2 , q2, δ2, {f2})
Atunci:
1. AFN- ε M corespunzator concatenarii r = r1 r2 este
ε
q1 f1 q2 f2
M1 M2

M= (Q1 ∪Q2 , Σ1 ∪Σ2 , δ , q1 , {f2})


δ(q, a) = δ1 (q , a) dacă q ∈Q1 \ {f1} si a ∈ Σ1
δ(f1 , ε) = {q2}
δ(q , a) = δ2 (q , a) dacă q∈Q2 şi a ∈ Σ2

21
Limbaje formale şi automate

2. AFN- ε M corespunzător reuniunii r = r1 + r2 este

ε q1 f1 ε
M1
q0 ff0
0

ε ε
q2 f2
M2

M = (Q1 ∪Q2 ∪{q0 , f0 }, Σ1 ∪Σ2 , δ, q0 , {f0} )


δ(q0 , ε) = {q1 , q2 }
δ(q, a) = δ1 (q1, a) dacă q ∈Q1 \{ f1 }şi a ∈Σ1 ∪{ ε }
δ(q, a) = δ2 (q, a) dacă q ∈Q2 \{f2 } şi a ∈Σ2 ∪{ ε }
δ(f1, ε) = δ (f2, ε) = {f0}

3. AFN-ε M corespunzator operatorului Kleene r = r1* este:


ε

ε ε
q0 q1 f1 f0

M=(Q1 ∪{q0 , f0} , Σ1 ∪ {ε} , δ , q0 , {f0})


δ(q0 , ε) = {q1 , f0}
δ(q , a) = δ1 (q, a) pentru q ∈ Q1 \ {f1} şi a ∈ Σ1
δ(f1 , ε) = {q1 , f0}
22
Limbaje formale şi automate

Teoremă
Dacă L este un limbaj acceptat de un automat finit determinist, atunci L
poate fi scris ca expresie regulată.
Expresia Regulată (ER) a limbajului acceptat de către automat este o
reuniune
n
U 1k
R
toate
q k ∈Q m

a tuturor traiectoriilor care conduc de la starea iniţiala către o stare


marcată.
Ipoteza de lucru şi notaţii
Se presupune că automatul avut în vedere are n noduri, numerotate strict
crescător de la 1 (starea iniţială) la n.
Aceasta ipoteză nu are alt rol decât de a permite construcţia algoritmică a
expresiei regulate.
n
Cu aceasta ipoteza, Rij reprezintă toate traiectoriile de la qi la qj fără să
treacă printr-o stare cu un indice mai mare decât n.
R ijk = R ikk −1 ( R kkk−1 ) * R kkj−1 U R ijk −1

R ij0 = {a | δ(qi , a)=qj } dacă i ≠ j

{a + ε | δ(qi , a) = qj ∪{ε} } dacă i = j

Operaţii pe Automate
Operaţii unare:
Componenta accesibilă
Fiind dat un automat
G = (Q , Σ , δ , q0, Qm),

23
Limbaje formale şi automate

se defineşte componenta accesibilă ca fiind automatul ce conţine acea


parte din automatul iniţial ce conţine stările în care se poate ajunge pornind
de la starea iniţială (stările accesibile din starea iniţială):
Acc(G)=Gacc= (Qacc, Σ, δacc , q0, Qm acc),
în care:
Qacc = {q∈Q/ ∃s∈Σ* a.î. δ(q0, s)=q},
Qmacc = Qacc ∩ Qm
δacc: Qacc × Σacc → Qacc,
δ (q, σ ) daca q ∈ Qacc si δ (q, σ ) ∈ Qacc
δ acc (q, σ ) = 
− altfel
Componenta coaccesibilă
Fiind dat un automat
G =(Q , Σ , δ , q0, Qm),
se defineşte componenta coaccesibilă ca fiind automatul ce conţine acea
parte din automatul iniţial ce conţine stările de la care se poate ajunge la o
stare marcată:
CoAcc(G)=Gco= (Qco, Σ , δco , q0co , Qm),
în care:
Qco = {q∈Q/ ∃s∈Σ* a.î. δ(q, s)∈Qm},
q daca q0 ∈ Qco
q0 co =  0
− altfel
δco: Qco × Σ → Qco,
δ (q, σ ) daca q ∈ Qco si δ (q, σ ) ∈ Qco
δ co (q, σ ) = 
− altfel
Automatul trim
Fiind dat un automat
G = (Q , Σ , δ , q0, Qm),
se defineşte automatul trim ca fiind automatul ce conţine acea parte din
automatul iniţial ce conţine toate stările la care se poate ajunge din starea

24
Limbaje formale şi automate

iniţială şi care poate ajunge la o stare marcată. Automatul trim se obţine


prin aplicarea succesivă a celor două operaţii: componenta accesibilă şi
componenta coaccesibile (indiferent de ordine):
Trim(G) = CoAcc(Acc(G))=Acc(CoAcc(G))=Gtrim
Gtrim= (Qtrim, Σ, δtrim , q0trim ,Qmtrim),
în care:
Qtrim = {q∈Q/ ∃s∈Σ* şi ∃w∈Σ* a.î. δ(q0,s)=q şi δ(q, w)∈Qm},
q daca q0 ∈ Qtrim
q0 trim =  0
− altfel
δtrim: Qtrim × Σ → Qtrim,
δ (q, σ ) daca q ∈ Qtrim si δ (q, σ ) ∈ Qtrim
δ trim (q, σ ) = 
− altfel
Complementul unui automat
Fiind dat un automat
G = (Q , Σ , δ , q0, Qm),
se defineşte complementul să ca fiind automatul care generează toate
cuvintele ce se pot genera utilizând simboluri din Σ şi care marchează toate
cuvintele ce nu sunt marcate de automatul iniţial. Obţinerea
complementului unui automat constă în trei paşi:
• Pentru a afla cuvintele marcate de automatul iniţial se construieşte
automatul trim corespunzător automatului iniţial.
• Pentru a genera toate cuvintele posibile (Σ*) se completează
automatul trim cu o stare nouă (nemarcată) qd către care evoluează
orice stare a automatului care nu are o evoluţie complet definită. qd
va evolua în ea însăşi pe toate evenimentele alfabetului de
evenimente.
• În final, pentru a marca toate cuvintele ce nu sunt marcate de
automatul iniţial se va inversa fiecare stare a automatului obţinut la
pasul anterior: orice stare nemarcată a automatului de la pasul de
mai sus va deveni stare marcată a complementului, orice stare
marcată a automatului de la pasul anterior va fi stare nemarcată
pentru complement.

25
Limbaje formale şi automate

Exemplu de aplicare a operaţiilor unare pe automate


Vom aplica cele patru tipuri de operaţii unare pentru automatul din Figura
II.1

Figura II.1. Automatul iniţial

a) Componenta accesibilă (automatul ce conţine stările în care se poate


ajunge de la starea iniţială) nu conţine stările q4 şi q5 deoarece nu
satisfac cerinţa şi va fi (Figura II.2):

Figura II.2. Componenta accesibilă.

26
Limbaje formale şi automate

b) Componenta coaccesibilă (automatul ce conţine stările din care se


poate ajunge în stări marcate) a automatului iniţial (Figura II.1) nu va
conţine stările q6 şi q7, ele nesatisfăcând cerinţa.

Figura II.3. Componenta coaccesibilă.

c) Automatul trim se va obţine prin aplicarea celor două operaţii de mai


sus. Aplicarea în ordinea componentă accesibilă urmată de
componentă coaccesibilă va avea ca efect eliminarea prima dată a
stărilor q4 şi q5 (în urma aplicării componentei accesibile) urmată de
eliminarea stărilor q6 şi q7 (din componenta coaccesibilă).
Automatul trim va fi atunci:

Figura II.4. Automatul trim.

27
Limbaje formale şi automate

d) Complementul. Pasul 1 constă în obţinerea automatului trim,


automat prezentat în Figura II.4. Pasul

Figura II.5. Introducerea stării complementare qd.

Figura II.6. Complementul automatului iniţial.

28
Limbaje formale şi automate

Operaţii binare:
Compunerea sincronă
Definiţie
Fie două Automate Finite (Deterministe)

G1 = (Q1 , Σ1 , δ1, q01, Qm1)


G2 = (Q2 , Σ2 , δ2, q02, Qm2)

Se numeşte compunere sincronă a automatelor G1 şi G2 notată G1 || G2 un


automat G care are stările G =(Q , Σ , δ , q0, Qm) astfel:
Q =Q1 × Q2
Σ = Σ1 ∪ Σ2
q0 = (q01 , q02)
Qm = Qm1 × Qm2

Definirea funcţiei de tranziţie:

(∀) q = (q1 , q2) ∈ Q şi σ ∈ Σ

( δ1(q1, σ) , δ2(q2, σ) ) dacă σ ∈Σ1 ∩ Σ2 şi ∃ δ1 (q1, σ) şi ∃ δ2(q2, σ)

(δ1(q1, σ) , q2 ) dacă σ ∈ Σ1 \ Σ2 şi ∃ δ1 (q1, σ)


δ (q,σ) =
( q1, δ2(q2, σ) ) dacă σ ∈ Σ2 \ Σ1 şi ∃ δ2 (q2, σ)

Nu se defineşte pentru orice caz care nu corespunde celor definite mai sus

Observaţie
Dacă Σ1 = Σ2 atunci Lm(G1 || G2) = Lm (G1) ∩ Lm(G2) şi L(G1 || G2) =
L(G1)∩L (G2).

29
Limbaje formale şi automate

Compunerea total sincronă

Definiţie
Fie două Automate Finite (Deterministe)

G1 =( Q1 , Σ1 , δ1 , q01 ,Qm1)
G2 =( Q2 , Σ2 , δ2 , q02 ,Qm2)

Se numeşte compunere total sincronă a automatelor G1 şi G2 notată G1×G2


un automat G care are stările G =(Q , Σ , δ , q0, Qm) astfel:

Q =Q1 × Q2
Σ = Σ1 ∪ Σ2
q0 = (q01 , q02)
Qm = Qm1 × Qm2

Definirea funcţiei de tranziţie :

(∀) q = (q1 , q2) ∈ Q şi σ ∈ Σ


Lm (G1 || G2) = { s∈Σ* / s↑ Σ1 ∈ Lm (G1) şi s↑ Σ2 ∈ Lm (G2) }
L (G1 || G2) = { s∈Σ* / s↑ Σ1 ∈ L (G1) şi s↑ Σ2 ∈ L (G2) }

( δ1(q1, σ) , δ2(q2, σ) ) dacă σ ∈Σ1 ∩ Σ2 şi ∃ δ1 (q1, σ) şi ∃ δ2(q2, σ)


δ (q,σ) =
Nu se defineşte pentru orice alt caz

30
Limbaje formale şi automate

Automate cu ieşiri
Automatele studiate până acum pot fi considerate ca maşini de stare cu
ieşiri binare: faţă de un cuvânt de intrare dat w se poate specifica numai
dacă acesta este sau nu acceptat (respectiv daca δ(q0, w)∈Qm). În anumite
situaţii este de dorit să se diferenţieze stările marcate, respectiv nemarcate,
între ele. Pentru aceasta se folosesc aşa-numitele maşini de stare cu ieşiri :
Moore şi Mealy.

Definiţie
Maşina Moore se defineşte ca un sextuplu
Mo = (Q , Σ , ∆ , δ , λ , q0)
unde:
Q = mulţimea (finită) a stărilor
Σ = alfabetul de evenimente (finit şi el)
∆ = alfabetul ieşirilor
q0 = starea iniţială
δ = funcţia de tranziţie definită astfel:
δ : Q ×Σ Q
λ = funcţie de asociere a ieşirilor:
λ:Q→∆

Conform definiţiei, orice maşină Moore dă un răspuns λ(q0) asociat unei


intrări nule (ε).
Exemplu:
Să se proiecteze maşina Moore care calculează restul modulo 3 pentru un
şir binar de intrare (care are semnificaţia unui număr întreg în format
binar)
Evident, exista doar trei ieşiri posibile: ∆ = {0, 1, 2}, ceea ce înseamnă că
numărul maxim de stări este tot trei.

31
Limbaje formale şi automate

Pentru intrarea nulă (echivalentă cu numărul 0), ieşirea generată trebuie să


fie 0. Rezultă, prin definiţie, că λ(q0) = 0.
În continuare, se foloseşte următorul raţionament: dacă un şir de intrare
binar w corespunde numărului natural n, atunci w0 îi corespunde lui 2n şi
w1 lui (2n+1).
Rezultă următoarea structura pentru maşina Moore dorită:

Figura II.7. Maşina Moore.


Definiţie
O maşină Mealy este definită ca un sextuplu
Me = (Q, Σ, ∆, δ, λ, q0) unde :
Q = mulţimea (finită) a stărilor
Σ = alfabetul de evenimente (finit şi el)
∆ = alfabetul ieşirilor
q0 = starea iniţială
δ = funcţia de tranziţie definită astfel:
δ : Q ×Σ Q
λ = funcţie de asociere a ieşirilor:
λ:Q×Σ→∆
Conform definiţiei, pentru o intrare nulă (ε) o maşină Mealy generează o
ieşire nulă (ε).
Din punctul de vedere al puterii de modelare, maşinile Moore şi Mealy
sunt echivalente; din punctul de vedere al lungimii cuvântului de ieşire,
maşina Mealy va da un răspuns de lungime cu 1 mai mică decât maşina
Moore pentru aceeaşi lungime a cuvântului de intrare.
Pentru un şir de date a1 , a2 , … , an o maşină Mealy generează o ieşire
λ (q0 , a1) , … , λ (qn-1 , an) cu presupunerea că δ (qi-1 , ai)=qi

32
Limbaje formale şi automate

În acest mod, este evident că pentru şiruri de intrare de aceeaşi lungime |w|
răspunsul generat de o maşină Moore (WMo) şi răspunsul generat de o
maşină Mealy (WMe) sunt în relaţia:
| WMo |=|WMe |+1
WMo =b⋅ WMe în care b = λ Mo (q0)
Exemplu
Fie limbajul L=(a+b)*(aa+bb) peste Σ ={a, b} (cuvintele care se termină
cu două caractere identice).
Să se proiecteze maşina Mealy care generează orice cuvânt ce se poate
forma cu simbolurile lui Σ şi dă la ieşire "y" pentru cuvintele care aparţin
lui L şi "n" pentru cuvintele care nu aparţin lui L.
Maşina Mealy care îndeplineşte aceste condiţii are trei stări (Figura II.8):

Figura II.8. Maşină Mealy.


AFD echivalent cu maşina Mealy din (Figura II.8) este prezentat în (Figura
II.9):

Figura II.9. AFD corespunzător maşinii Mealy.

33
Limbaje formale şi automate

AFN pentru maşina Mealy din (Figura II.8) ar putea fi (Figura II.10):

Figura II.10. AFN corespunzător maşinii Mealy.

Echivalenţa între maşina Moore şi maşina Mealy


Transformarea unei maşini Moore în maşină Mealy
Teoremă:
Dacă M1 este o maşină Moore definită prin
M1 =(Q, Σ , ∆ , δ , λ , q0)
atunci (∃) o maşină Mealy
M2 =(Q, Σ , ∆ , δ , λ ’, q0)
echivalentă cu M1 unde
λ ’ (q, a) = λ (δ (q, a))
Mealy Moore

Observaţie:
Echivalenţa este privită în sensul că pentru acelaşi şir de intrare se
generează acelaşi şir de ieşire. Oricum afirmaţia trebuie privită în limitele
toleranţei formulei |WMo |=|WMe |+1 (adică şirul generat de maşina Moore
va fi cu 1 mai mare decât şirul generat de maşina Mealy).
De asemenea se va lua în considerare că λ (q0) = b neglijabil.
Observaţie:
Maşina Mealy este mai compactă.

34
Limbaje formale şi automate

Transformarea unei maşini Mealy în maşină Moore


Teorema:
Dacă M1 este o maşină Mealy definită prin
M1 = (Q, Σ , ∆ , δ , λ , q0)
atunci (∃) M2 o maşină Moore definită prin
M2 = (Q × ∆ , Σ , ∆ , δ ’, λ ’, q0’)
echivalentă cu M1.
Construcţie:
q0’ = [q0 ,b] , b∈ ∆ ales "arbitrar" (  de fapt se deduce din
contextul problemei)
δ’([q, b]) = [δ (q, a), λ (q,a)]
Moore Mealy
λ ’([q,b]) = b ∈ ∆ (funcţia care asociază ieşirile)
Exemplu:
Transformarea în maşină Moore a maşinii Mealy din Figura II.8.
∆ ={y, n}; Σ ={a,b}; Q={ q0 , q1 , q2 }
Q’= {[q0 , y], [q0 ,n], [q1 , y], [q1 , n], [q2 , y], [q2 , n]}
Observaţie:
În mod normal am putea alege drept stare iniţială perechea [q0, y] sau
[q0, n], dar [q0 , y] ar genera ieşirea ‘y’ pentru cuvântul nul, ceea ce este
incorect. Deci, vom alege ca stare iniţială perechea [q0 ,n] şi vom obţine
maşina din figura Figura II.11 în care se observă că în starea [q0, y] nu se
ajunge niciodată şi astfel ea nu va apărea în automat.

35
Limbaje formale şi automate

Figura II.11. Maşina Moore echivalentă.

Minimizarea automatelor:
Fie x, y ∈L. Atunci RL este o relaţie de echivalenţă asociata limbajului L
(sau x RL y) dacă şi numai dacă pentru (∀) z ∈ Σ*,
1. fie xz∈ L şi yz ∈ L
2. fie xz ∉L şi yz ∉L.
Relaţia RL împarte limbajul L în clase de echivalenţă. Numărul de clase de
echivalenţă se numeşte index.
Se poate demonstra că indexul unui limbaj regulat este finit.
Fie M= (Q, Σ, δ, q0, Qm) un AFD. Se defineşte relaţia de echivalenţă RM
asociata automatului M astfel:
pentru x , y ∈ Σ*, x RM y dacă şi numai dacă δ(q0, x) = δ(q0, y).
În plus, dacă x RM y, pentru (∀) z ∈Σ* avem xz RM yz. (Ceea ce revine
la δ(q0 , xz) = δ(δ(q0 , x), z) = δ(δ(q0 , y), z) = δ(q0 ,yz))
O relaţie de echivalenţă de acest tip se numeşte invariantă la dreapta (faţă
de operaţia de concatenare).

36
Limbaje formale şi automate

Teoremă (criteriul Myhill-Nerode): Următoarele afirmaţii sunt


echivalente:
1. Limbajul L ⊆ Σ* este acceptat de un automat finit;
2. L este reuniunea unor clase de echivalenţă determinate de o
relaţie de echivalenţă invariantă la dreapta cu index finit;
3. Fie relaţia de echivalenţă definită pe limbajul L astfel:
(∀) x, y ∈ L , x RL y dacă şi numai dacă (∀) z ∈ Σ* , xz ∈ L numai în
cazul în care şi yz ∈ L .
Ca o consecinţă a teoremei de mai sus, o stare p este echivalentă cu o stare
q a automatului M dacă şi numai dacă pentru orice şir de intrare x, δ(p, x)
este stare marcată numai atunci când δ(q, x) este o stare marcată.
Algoritmul de minimizare a unui automat
Start
Pas 1: pentru fiecare p∈ Qm şi q ∈Q \ Qm bifează în tabel locaţia
corespunzătoare (stările marcate nu sunt echivalente din punct de vedere al
obiectivului cu cele nemarcate);
Pas 2: pentru fiecare pereche de stări distincte (p, q) ∈ Qm × Qm sau
(p, q) ∈(Q/Qm)×(Q/Qm)
Pas 2.1 dacă (∀) a ∈ Σ , (δ(p, a), δ(q, a)) este bifată în tabel:
atunci
bifează (p, q);
bifează succesiv toate perechile din lista de echivalenţe a
perechii (p,q).
altfel
pentru toţi a∈Σ
introducere a perechii (p, q) în lista de echivalenţe a
perechii (δ(p,a), δ(q,a)) în afara cazului în care
δ(p,a) = δ(q, a).
Stop

37
Limbaje formale şi automate

Algoritmul de minimizare a automatelor a fost elaborat pe baza criteriului


Myhill – Nerode. Acest algoritm urmăreşte găsirea perechilor de stări care
sunt echivalente (au aceeaşi evoluţie). Acest lucru se realizează prin
eliminarea stărilor care nu sunt echivalente. Algoritmul verifică toate
perechile distincte de stări.
Fie automatul G = (Q, Σ, δ, q0, Qm). Se construieşte un tabel care să
conţină toate perechile de stări distincte. Din matricea care are pe linii şi pe
coloane toate stările se păstrează doar elementele de sub diagonala
principală a matricei.
În acest fel, toate perechile (p, q) rămase nemarcate reprezintă două câte
două stări echivalente.

38
Limbaje formale şi automate

Probleme rezolvate

5) Să se proiecteze un AFD peste alfabetul Σ = {a, b}care acceptă


cuvintele care nu conţin 3a consecutiv.
Rezolvare.
Se poate observa din cerinţa problemei că cea ce este de interes la acest
automat este numărul de simboluri ‚a’ consecutive în care se termină un
cuvânt (prefix). În momentul în care acest număr depăşeşte valoarea 2,
cuvintele care încep cu respectivul prefix nu pot satisface cerinţa
problemei.
În conformitate cu această logică, semnificaţia stărilor automatului din
Figura II.12 este următoarea (funcţie de semnificaţia cuvintelor care duc în
respectivele stări):
q0 – cuvinte care nu se termină în ‚a’ şi nu conţin subşirul „aaa”;
q1 – cuvinte care se termină într-un ‚a’ şi nu conţin subşirul „aaa”;
q2 – cuvinte care se termină în subşirul „aa” şi nu conţin subşirul „aaa”;
q3 – cuvinte care conţin subşirul „aaa”;

Figura II.12. Automatul corespunzător prolemei 5).

6) Să se proiecteze automatul finit determinist care pe alfabetul


Σ = {a, b} acceptă şirurile cu număr par de simboluri ‚a’ şi care nu
conţin subşirul „bb”.

39
Limbaje formale şi automate

Rezolvare.
Există două posibilităţi:
a) să consideram 0 ca fiind număr par de apariţii ale lui ‚a’, caz în
care starea iniţială este marcată deoarece satisface ambele
condiţii.
b) să considerăm că pentru un număr par de apariţii ale lui ‚a’ este
evoie de cel puţin două apariţii ale acestui sibol, caz în care starea
iniţială nu va mai fi marcată.
Pentru fiecare dintre aceste situaţii vom avea câte un automat.

Cazul a)

Semnificaţia stărilor:
q0 – cuvinte ce conţin un număr par de ‘a’ şi nu se termină în
‘b’
q1 – cuvinte ce conţin un număr impar de ‚a’ şi nu se termină în
‚b’.
q2 – cuvinte ce conţin un număr impar de ‘a’ şi se termină doar
într-un ‚b’;
q3 – cuvinte ce conţin un număr par de ‘a’ şi se termină doar
într-un ‚b’
q4 – cuvinte ce conţin subşirul „bb”;

40
Limbaje formale şi automate

Cazul b)

Semnificaţia stărilor:
q0 – şirul vid
q1 – cuvinte ce conţin un număr par de ‚a’ şi nu se termină în
‚b’;
q2 – cuvinte ce conţin un număr par de ‚a’ şi nu se termină în
‚b’;
q3 –sirul „b”;
q4 – cuvinte ce conţin un număr impar de ‚a’ şi se termină doar
într-un ‚b’;
q5 – cuvinte ce conţin un număr par de ‚a’ şi se termină doar
într-un ‚b’;
q6 – cuvinte ce conţin subşirul „bb”.

7) Să se proiecteze AFD peste alfabetul Σ = {a, b}care acceptă şirurile


“a”, “bb” şi “aba”.
Rezolvare.
Automatul trebuie să accepte cele trei cuvinte din enunţ şi doar pe acelea.

41
Limbaje formale şi automate

Figura II.13. Rezolvarea problemei 7).

8) Să se proiecteze automatul finit determinist care pe alfabetul


Σ = {a, b} care acceptă cuvintele în care perechea “aa” este urmată de
subşirul “bab”.

Rezolvare.
Semnificaţia stărilor acestui automat este următoarea:
1: cuvinte ce se termină în ‘b’ şi nu conţin subşirul „aa”;
2: cuvinte ce se termină în ‘a’ dar nu în „aa”;
3: cuvinte ce se termina în „aa”;
4: cuvinte ce se termină în ‘b’, nu în „bab” şi conţin „aa”;
5: cuvinte ce se termina în „ba” şi conţin „aa”;
6: cuvinte ce se termina în „bab” şi contin „aa” (stare marcată).

42
Limbaje formale şi automate

9) Să se proiecteze AFD care acceptă peste alfabetul Σ = {a, b, c}


cuvinte cu număr par de “a”, par de “b” şi impar de “c”.
Rezolvare.
Utilizând următoarele notaţii:
P = număr par de a, b sau c
I = număr impar de a, b sau c,
starea unui automat se va scrie ca o pereche de trei elemente (X, Y, Z) în
care:
• X se referă la numărul de ’a’-uri din cuvânt;
• Y se referă la numărul de ’b’-uri din cuvânt;
• Z se referă la numărul de ’c’-uri din cuvânt;
Considerând că zero este număr par de apariţii ale unui simbol, starea
iniţială a automatului va fi q0 = (P P P). Starea marcată va fi (P P I).
Pentru o mai uşoară înţelegere a legăturilor dintre stări vom reprezenta
funcţia de tranziţie sub formă tabelară.

Σ
Starea Q a b c
semnificatie

q1 PPP IPP PIP PPI


q2 IPP PPP IIP IPI
q3 PIP IIP PPP PII
q4 PPI IPI PII PPP
q5 IIP PIP IPP III
q6 IPI PPI III IPP
q7 PII III PPI PIP
q8 III PII IPI IIP

10) Să se proiecteze AFD care pe alfabetul Σ = {a, b, c} acceptă cuvintele


ce conţin cel puţin 2 simboluri ‚a’ (nu neapărat consecutive) şi nu
conţin subşirul „bb”.

43
Limbaje formale şi automate

Rezolvare.

Semnificaţia stărilor
1 = şirul vid;
2 = cuvantul “b”;
3 = cuvintele ce contin subşirul “bb”;
4 = cuvintele ce contin un singur ‚a’ şi se termina în ‚a’;
5 = cuvintele ce conţin un singur ‚a’ şi se termină în ‚b’.
6 = cuvintele ce contin cel putin 2 ‚a’ şi se termina în ‚a’;
7 = cuvintele ce conţin cel puţin 2 ‚a’ şi se termină în ‚b’;

11) Să se proiecteze AFD care peste alfabetul Σ = {a, b}acceptă cuvintele


ce conţin subşirul “aba” şi nu conţin subşirul “bb”:
Rezolvare.

Figura II.14. Soluţa problemei 11).

44
Limbaje formale şi automate

q0 - cuvântul vid
q1 – cuvintele ce se termina în ‚a’, nu conţin „aba” sau „bb”
q2 - cuvintele ce se termina în „ab”, nu contine „aba” sau „bb”
q3 - cuvintele ce conţin „aba”, nu conţin „bb” şi
se termină în ‚a’
q4 - cuvintele ce contine „bb”
q5 - cuvintele ce conţin „aba”, nu contine „bb” şi
se termină în ‚b’
q6 - cuvântul „b”

12) Să se construiască AFD peste alfabetul Σ= {1, 2, 3} care acceptă


cuvintele în care suma ultimelor două simboluri este 4.
Rezolvare.
Construim automatul cu 7 stări după cum urmează:
– starea iniţială;
– 3 stări după cum urmează:
• starea „1” pentru cuvintele care se termină în „1” şi pentru care
suma ultimelor 2 evenimente nu e 4;
• starea „2” pentru cuvintele care se termină în „2” şi pentru care
suma ultimelor 2 evenimente nu e 4;
• starea „3” pentru cuvintele care se termină în „3” şi pentru care
suma ultimelor 2 evenimente nu e 4;
– 3 stări marcate după cum urmează:
• starea „1+3” pentru cuvintele care se termina în „13”
• starea „2+2” pentru cuvintele care se termina în „22”
• starea „3+1” pentru cuvintele care se termina în „31”

Cu această semnificaţie a stărilor, soluţia problemei este:

45
Limbaje formale şi automate

Figura II.15. Soluţia problemei 12).

13) Să se proiecteze AFD care pe alfabetul Σ = {1, 2, 3} acceptă toate


cuvintele care se termină în subşirul “123”.
Rezolvare.
Cu următoarea semnificaţie a stărilor:
0 – starea iniţială; cuvintele care nu se termină în ‚1’, „12” sau
„123” (prefixele cerinţei problemei);
1 – cuvintele care se termină în ‚1’;
2 – cuvintele care se termina în subşirul „12”;
3 – cuvintele acceptate (care se termina cu subsirul „123”),
forma tabelară de reprezentare a automatului este:

1 2 3
q0 q1 q0 q0
q1 q1 q2 q0
q2 q1 q0 q3
q3 q1 q0 q0

iar forma grafică este:

46
Limbaje formale şi automate

Figura II.16. Soluţia problemei 13).

14) Să se construiască AFD care acceptă setul tuturor şirurilor din


alfabetul Σ = {0, 1} cu număr egal de 0 şi 1 astfel încât fiecare prefix
are cel mult încă un 0 în plus fata de numărul de 1 şi încă cel mult un
1 în plus faţă de numărul de zerouri.
Rezolvare.

Figura II.17. Soluţia problemei 14).

Semnificaţia stărilor:
q0 – număr egal de 0 şi de 1
q1 – numărul de 0 este cu 1 mai mare decât numarul de 1
q2 – numărul de 1 este cu 1 mai mare decât numărul de 0
q3 – prefixul are cel puţin două simboluri ‚0’ în plus faţă de
numărul de simboluri ‚1’ sau cel puţin două simboluri ‚1’ în plus
faţă de numărul de simboluri ‚0’

47
Limbaje formale şi automate

15) Ce şiruri acceptă automatul:

Rezolvare.
Automatul numără apariţiile evenimentului ‚a’ şi fiind marcate primele 2
stări, şirurile acceptate sunt cele care conţin maxim un "a". Expresia
regulată pentru aceste cuvinte este: ER: b*(a + ε)b*

16) Să se construiască AFD echivalent cu următorul AFN:

Rezolvare.
Stare AFD a b
x0 = {q1} x1 = {q2, q4} x2 = {q4}
x1 = {q2,q4} x3 = {q2,q3} x3 = {q2,q3}
x2 = {q4} --- x4 = {q3}
x3 = {q2,q3} x3 = {q2,q3} x3 = { q2,q3}
x4 = {q3} x4 = {q3} x4 = {q3}
Qm = {x3,x4} (deoarece conţin starea marcată din AFN – q3)
Cu aceste notaţii, observatorul (AFD) echivalent cu automatul din enunţul
problemei este:

48
Limbaje formale şi automate

17) Se dă automatul G definit astfel : G = {{p, q, r, s,}, {0,1}, δ, p, {q,s}},


unde δ este definit prin tabelul de mai jos. Se cere AFD echivalent.
0 1
P q,s q
Q r q, r
R s p
S - p

Modul de interpretare a informaţiilor furnizate de definirea automatului


G = {{p, q, r, s,}, {0,1}, δ, p, {q,s}}
este următorul:
{p, q, r, s} – spaţiul stărilor - Q
{0, 1} – alfabetul evenimentelor - Σ
p – starea iniţială – q0
{q,s} – mulţimea stărilor marcate - Qm
Q Σ 0 1
AFD AFN
x0 = {p} {q, s} {q}
x1 = {q, s} * {r} {p, q, r}
x2 = {q} * {r} {q, r}
x3 = {r} {s} {p}
x4 = {p, q, r} * {q, r, s,} {p, q, r}
x5 = {q, r} * {r, s} {p, q, r}
x6 = {s} * - {p}
x7 = {q, r, s} * {r, s} {p, q, r}
x8 = {r, s} * {s} {p}

49
Limbaje formale şi automate

18) Să se minimizeze automatul

Rezolvare:
1 4

2 5 6

3 1 2 3

0 1 2

Pas1 al algoritmului de minimizare: bifările de la 1 la 3 din tabelul de mai


sus corespund perechilor de tip (stare marcată, stare nemarcată).

Pas2:

a
(0,1) (1,1)
b (2,3) – stari neechivalente – bifarea 4 din tabel

(0,2) (1,0) – stari neechivalente – 5


a

a
(1,2) (1,0) – stari neechivalente – 6

Neexistând stări echivalente deducem că automatul iniţial este deja în


forma minimală.

50
Limbaje formale şi automate

19) Să se minimizeze automatul:

Rezolvare:

q1 8
q2 ● 9
q3 5 6 7
q4 1 2 3 4
q0 q1 q2 q3
Orice pereche compusă dintr-o stare nemarcată şi o stare marcată formează
o pereche de stări neechivalente. (bifările 1, 2, 3 şi 4 din tabel)
Vom aplica în continuare o variantă modificată a algoritmului de
minimizare. Modificarea constă în căutarea perechilor de stări care sigur
nu sunt echivalente după următoarea regulă:
(X, q3)  3
→ (Y, q4), ∀X ∈ Q − Qm , Y ≠ q 4 =>orice pereche de forma (X, q3) care
îndeplineste această conditie este o pereche de stări neechivalente. (bifările
5, 6 şi 7 din tabel).

(q0,q1) 2
→ (q2,q3) NU sunt echivalente (bifarea 8 din tabel)
(q2,q1) 2
→ (q2,q3) NU sunt echivalente (bifarea 8 din tabel)

1
(q2,q0) (q1,q1) => q2 si q0 sunt stări echivalente
2
3 (q2,q2)
(q2,q2)

51
Limbaje formale şi automate

Automatul minimal va fi:

20) Să se minimizeze automatul :


Σ a b
Q
1 0 6
0 0 7
2 5 7
3 5 3
4 0 8
5 0 8
6 0 6
7 2 3
8 4 3

în care q0 = 1 şi Qm = {2, 4}.


Rezolvare.
Folosind algoritmul de minimizare, eliminăm iniţial perechile de stări care
nu pot fi echivalente (stare marcată cu stare nemarcată), apoi verificăm
celelalte perechi de stări rămase. Toate acestea se completează în tabelul
urmǎtor.

52
Limbaje formale şi automate

0 15
2 2 1
3 ● 17 3
4 9 8 ● 10
5 20 ● 4 27 11
6 ● 29 5 ● 12 26
7 28 30 6 18 13 25 16
8 22 23 7 21 14 24 19 ●
1 0 2 3 4 5 6 7
Figura II.18. Tabelul corespunzător tuturor perechilor de stări.
Din tabel rezulta ca perechile de stari echivalente sunt :
• (1, 3)
• (2, 4)
• (0, 5)
• (1, 6)
• (3, 6)
• (7, 8)
Stările componente ale automatului minimal sunt :
• (1, 3, 6)
• (2, 4)
• (0, 5)
• (7, 8)
Automatul minimal rezultat este reprezentat în Figura II.19:

53
Limbaje formale şi automate

Figura II.19. Automatul minimal pentru problema 20).

21) Fie automatul de mai jos. Care este expresia regulată care descrie
limbajul acceptat de acest automat?

Rezolvare.
Numerotam starile : q0<> 1
q1<> 2
q2<> 3
Se obţine un automat cu 3 stări în care starea 3 e marcată.

Folosind formula : ER = U R1ni rezulta:


3
ER = R 13
qi∈Qm
Pentru calcule, se folosesc formulele următoare şi tabelul de mai jos în
k
care trecem valorile lui R ij pentru diverşi i, j şi k:

k k −1 k −1 k −1 k −1
• R ij = R ij + R ik (R kk )*R kj

54
Limbaje formale şi automate

k=0 k=1 k=2


k
R 11 b+ε b*
k
R 12 a b*a
k
R 13 b*a(ε +
- -
bb*a)*a
R k21 b bb*
R k22 ε ε + bb*a
R k23 a a
k
R 31 - -
k
R 32 - -
k
R 33
a+b+ε a+b+ε a+b+ε

3
Calculăm R 13 şi obţinem :

R 133 = = (ε+ )=

De unde rezultă că nu trebuie calculate decât 2 valori pentru k=2 : R 132 şi


R 332
Restul valorilor pentru k=2 nu le-am calculat.

Calculăm întâi pentru k=0, ştiind că R 130 înseamnă de fapt drumul direct de
la starea 1 la starea 3, dacă acesta există.

55
Limbaje formale şi automate

Pentru a calcula restul valorilor necesare vom folosi formulele


suplimentare :
a + - = a, a Σ
a *-=-, a Σ
(a + ε)* = a*, a Σ
+ a a* = a*, a Σ
pe care le considerăm cunoscute.

Vom obţine pentru k=1:

0 ∗
R 111 = R 11
0 0
+ R 11 ⋅ (R 11 0
) ⋅ R 11 = (b + ε ) + ( b +ε ) * (b + ε ) = (b + ε ) b * = b *
0 ∗
R 112 = R 12
0 0
+ R 11 ⋅ (R 11 0
) ⋅ R 12 = a + ( b +ε ) * a = a + b * a = b * a
0 ∗
R 113 = R 13
0 0
+ R 11 ⋅ (R 11 0
) ⋅ R 13 =−
0 ∗ 0 ∗
R 121 = R 021 + R 021 ⋅ (R 11 0
) ⋅ R 11 = R 021 (R 11 ) = b ( b +ε ) * = bb *
0 ∗
R 122 = R 022 + R 021 ⋅ (R 11 0
) ⋅ R 12 = ε + b( b +ε ) * a = ε + bb * a
0 ∗
R 123 = R 023 + R 021 ⋅ (R 11 0
) ⋅ R 13 =a
0 ∗
R 131 = R 31
0 0
+ R 31 (R 11 0
) ⋅ R 11 =−
0 ∗
R 132 = R 32
0 0
+ R 31 (R 11 0
) ⋅ R 12 =−
0 ∗
R 133 = R 33
0 0
+ R 31 ⋅ (R 11 0
) ⋅ R 13 0
= R 33 =a +b+ε

Pentru k=2 :

2
R13 = R113 + R112 ⋅ (R122 )∗ ⋅ R123 = b∗a(ε + bb∗a )∗ a = b∗a(bb∗a )∗ a
2
R 33 = R133 + R132 ⋅ (R122 )∗ ⋅ R123 = a + b + ε

Iar, în final vom obţine expresia regulată căutată:


ER = b*a(bb*a)*a(a + b + ε) * = b*a(bb*a)*a(a + b) *

56
Limbaje formale şi automate

22) Să se construiască automatul AFN-ε care marchează limbajul definit


de expresia regulată :
(a + g)(ba)* + a(ba)*a*, Σ ={a, b, g}
R= (a + g)(ba)* + a(ba)*a* = r1.r2 + r3.r4.r5
r1=a + g = r6 + r7

r6=a =>

r7=g =>

r1=a + g =>

r2= (ba)* = r8*


r8= ba = r9 . r10

r9= b =>

r10= a =>

r8= ba =>

r2 = r8* =>

r1.r2 =>

57
Limbaje formale şi automate

r3=a =>
r4= (ba)* = r11*
r11= ba = r12 . r13 =>

r4 = r11* =>

r5= a* = r12*
r12= a =>

r5 =>

r3.r4.r5 =>

R= (a + g)(ba)* + a(ba)*a* = r1.r2 + r3.r4.r5 =>

58
Limbaje formale şi automate

Probleme propuse

23) Să se proiecteze un AFD peste alfabetul Σ = {a, b}care acceptă


cuvintele ce conţin minim 3a şi nu se termina cu b.

24) Să se proiecteze AFD care acceptă peste alfabetul Σ = {a, b, c}


cuvinte care conţin minim 2 “c” (nu neapărat consecutivi) şi nu conţin
secvenţa “aca”.

25) Să se proiecteze un AFD care acceptă toate şirurile peste alfabetul


Σ={a, b} care conţin cel puţin 3 ”a” şi cel mult 2 ”b”.

26) Să se construiască un AFD peste alfabetul Σ = {a, b} care acceptă


cuvinte ce conţin număr par de “a” şi nu conţin subşirul “abb” .

27) Să se construiască un AFD peste alfabetul Σ = {a, b, c} care acceptă


şirurile ce conţin o singură dată subşirul “cab”.

28) Să se proiecteze AFD care, peste alfabetul de intrare {a, b, c}, acceptă
şirurile care conţin o singură dată subşirul “cab” şi nu se termină în
subşirul “ab”.

29) Să se proiecteze AFD peste alfabetul Σ = {1, 2, 3}, care acceptă toate
cuvintele care se termină cu subşirul “123”.

30) Care este automatul care peste alfabetul Σ = {a, b, c} recunoaşte


cuvintele ce conţin număr par de “a” şi număr impar de “c”?

31) Care este automatul care peste alfabetul Σ = {a, b} recunoaşte


cuvintele ce conţin număr impar de “b” şi care nu conţin subşirul
“bba”?

32) Fie un lacăt electronic prevăzut cu două butoane etichetate cu “a” şi


respectiv “b”. Lacătul se deschide dacă se apasă pe butoane în
combinaţia “aba”. Din poziţia “deschis” el poate fi închis numai prin
apăsarea butonului “b”. Să se modeleze funcţionarea lacătului printr-
un automat finit determinist.

59
Limbaje formale şi automate

33) Să se construiască AFD aferent unui sistem de parolare peste alfabetul


Σ = {a, b, c, d} care funcţionează după următoarele reguli:
• parola are trei caractere dintre care două trebuie sa fie identice dar
neconsecutive;
• caracterul d nu trebuie să facă parte din parolă – dacă da, atunci se
ajunge într-o stare de blocaj;
• parola corectă conduce într-o stare marcata în automat.

34) Ce şiruri accepta automatul:

35) Să se construiască observatorul următorului automat:


a b
0 1 2, 3
1 1, 2 3
2 4 1
3 1 3
4 2 0
în care: q0 = 0 şi Qm = {2}.

36) Construiţi automatul finit determinist echivalent cu :

60
Limbaje formale şi automate

37) Să se calculeze observatorul pentru automatul de mai jos:

38) Să se construiască observatorul următorului automat:

a b
0 1, 2 0
1 3 1
2 2 0
3 - 2

în care: q0 = 0 şi Qm = {1}.

39) Să se construiască AFD echivalent pentru următorul AFN-ε.


q1 b q2

q0 a
ε

a a

ε b

q3 q4
ε, b
a

61
Limbaje formale şi automate

40) Să se proiecteze AFD echivalent cu următorul automat AFN-ε:


a,b
q0 q1 a q2 q4
ε
b

b
a ε
b
a

q3 q5

41) Să se construiască AFN -ε pentru expresia regulata :


(ab)* + (a + bab)*

42) Să se construiască automatul AFD care recunoaşte cuvintele ce


descriu limbajul
a(ba)*a*

43) Se cere AFD corespunzător expresiei regulate peste alfabetul


Σ = {0,1}:
01 + (0+11)0*1

44) Să se găsească expresia regulata pentru automatul :


a
a
q0 q1
b

62
Limbaje formale şi automate

45) Să se determine expresia regulată pentru AFD din figura:


a b q1
q0 q2
b a

a b

46) Să se calculeze expresia regulată acceptată de automatul:


q0 q1 q2
a a a

b
b

47) Care este expresia regulată pentru automatul de mai jos ?


b a a,b
a b

q0 q2
q1

48) Să se determine expresia regulată pentru automatul :


A

0
1
1 0

0
C B
1

63
Limbaje formale şi automate

49) Să se găsească ER pentru automatul de mai jos:


0
1

q0 q1
1

0 1

q3
0

50) Să se găsească ER pentru automatul de mai jos:


1

0 0

q0 q2
1 q1

1 0

q3
0

51) Să se minimizeze automatul:


a b
0 1 5
1 1 2
2 3 2
3 3 4
4 3 3
5 1 6
6 1 6
în care: q0 = 0; Qm = {2, 3, 4, 6}.

64
Limbaje formale şi automate

52) Să se minimizeze automatul:

53) Să se minimizeze automatul:

65
Limbaje formale şi automate

54) Să se minimizeze automatul:

a b
0 1 0
1 3 7
2 1 0
3 8 2
4 6 0
5 8 4
6 5 7
7 6 7
8 9 6
9 6 2
în care: q0 = 0 şi Qm = {2, 4, 9}.

55) Să se minimizeze automatul:


a b
0 6 0
1 4 7
2 1 8
3 6 0
4 9 2
5 4 2
6 5 8
7 2 0
8 2 8
9 9 8
în care: q0 = 0 şi Qm = {3, 7, 9}.

66
Limbaje formale şi automate

56) Să se minimizeze automatul:


a b
0 1 0
1 3 8
2 6 8
3 9 5
4 4 8
5 1 0
6 9 7
7 2 0
8 2 8
9 4 2
în care: q0 = 0 şi Qm = {4, 5, 7}.

57) Să se minimizeze automatul:


a b
0 5 0
1 5 0
2 4 8
3 9 1
4 9 7
5 3 8
6 6 8
7 2 0
8 2 8
9 6 2

în care: q0 = 0 şi Qm = {1, 6, 7}.

67
Limbaje formale şi automate

58) Să se minimizeze automatul:

a b
0 1 4
1 1 7
2 1 7
3 3 5
4 1 8
5 9 8
6 3 4
7 2 6
8 3 4
9 3 5
în care: q0 = 0; Qm = {2, 9}.

59) Un procesor este precedat de o coada de capacitate 1 astfel ca întregul


sistem format din procesor şi coada are capacitatea totală de 2 job-uri.
Exista două tipuri diferite de job-uri J1 şi J2 care fac cerere către
procesor, J1 fiind mai prioritar decât J2. De aceea, dacă la sosirea
job-ului J1 el găseşte procesorul ocupat cu job-ul J2 atunci îl înlătură.
Job-ul J2 se reîntoarce în coada iar job-ul J1 primeşte serviciul. Orice
job nou sosit care găseşte sistemul plin este rejectat şi pierdut.
Construiţi un automat care să descrie funcţionarea acestui sistem.

60) Fie două procesoare P1 şi P2 care operează în paralel. Capacitatea


totală a lui P1 (coada plus procesor) este k1=1 iar capacitatea totala a
lui P2 este k2=2. Sistemul primeşte două tipuri de job-uri j1 şi j2 care
trebuie procesate pe procesorul P1 respectiv pe procesorul P2. După
procesare job-urile părăsesc sistemul. Daca un job găseşte coada plină
la sosire atunci el este rejectat. Construiţi AFD-ul sistemului.

68
Limbaje formale şi automate

61) Se consideră un lacăt electronic cu următoarele caracteristici:


• are în componenţă 3 butoane (A, B şi C);
• iniţial lacătul este închis;
• parola pentru deschidere satisface simultan condiţiile:
o conţine 3 simboluri
o nu conţine simbolul ‘C’
o simbolurile identice sunt consecutive
o nu există mai mult de două simboluri identice în parolă
• din starea lacăt deschis orice tastă acţionată va închide lacătul,
pentru redeschidere fiind necesară introducerea unei parole
corecte;
• introducerea în parolă a simbolului ‘C’ duce la blocarea
lacătului;
• deblocarea lacătului se realizează în urma secvenţei “CCA”
tastată din starea de blocaj;
• o parolă care are 3 simboluri dar nu blochează lacătul şi nici nu-
l deschide va necesita pentru deschiderea lacătului introducerea
unei secvenţe de 3 simboluri care să satisfacă cerinţele parolei
corecte.
Modelaţi prin intermediul automatelor evoluţia lacătului.

62) Se consideră un procesor care împarte un job în două taskuri. Primul


se executa taskul 1, după aceea taskul 2 moment în care jobul
părăseşte sistemul (la sfârşitul taskului 1). Se presupune că sistemul
are capacitatea de trei joburi. Procesorul trebuie să termine ambele
taskuri ale unui job înainte să înceapă procesarea următorului job.
Există un mecanism de time-out pentru fiecare job, care operează
astfel: când un job intra în sistem , taskului 1 i se acordă o unitate de
timp pentru execuţie; dacă jobul stă în sistem o unitate de timp şi
taskul 1 al său nu s-a executat, atunci jobul este terminat forţat şi
următorul job din coada, dacă există va fi procesat. Se consideră
sistemul iniţial gol. Presupunem următoarea scară de timp pentru
sosirile joburilor (0; 0,2; 0,9; 1,6; 2) şi pentru fiecare se dă timpul de
execuţie pentru fiecare task: I(0,8; 0,7); II(0,9; 0,7); III(0,3; 0,6);

69
Limbaje formale şi automate

IV(0,9; 0,5) şi V(0,1; 1,2). Construiţi o diagramă de timp incluzând


timpii de apariţie a evenimentelor şi tipul evenimentelor . Pe baza
acestei diagrame determinaţi care job se termină corect şi care se
termină forţat (time out). Construiţi o diagramă de stări- tranziţii.

63) Un sistem de fabricaţie simplu conţine două maşini M1 şi M2 şi un


buffer B poziţionat între maşini. Intrarea pieselor pe maşina M1 este
nelimitată. Când o piesă este procesată pe maşina M1 este plasată în
bufferul B care are capacitatea de o piesă. Piesa este apoi procesată pe
maşina M2. Fiecare maşină are posibilitatea de a se defecta. Iniţial
maşinile sunt libere. Comportamentul întregului sistem trebuie să
satisfacă următoarele cerinţe:
• M1 poate începe procesarea doar dacă bufferul B este gol;
• M2 poate începe procesarea doar dacă bufferul B este plin;
• M1 nu poate începe procesarea daca M2 este defectă;
• Dacă ambele maşini sunt defecte atunci M2 trebuie reparată
prima.
Construiţi automatul care descrie comportamentul admisibil al
sistemului.

64) Un sistem conţine 3 servere ca în figura următoare. Clienţii care intră


în sistem ajung mai întâi în coada de la serverul 1 şi după ce sunt
procesaţi pe serverul 1 ei sunt rutaţi pe serverele 2 sau 3. Politica de
rutare este trimiterea clientului întotdeauna către serverul cu coada cea
mai mică. În cazul în care cele două cozi sunt egale , clientul este rutat
către serverul 2. După procesarea pe serverul 2 sau 3 clienţii părăsesc
sistemul. Un client care soseşte din exterior este acceptat în sistem
atât timp cât numărul total de clienţi din sistem este maxim 2, altfel
clienţii sunt rejectaţi. Să se construiască automatul care descrie
funcţionarea sistemului.
2

70
Limbaje formale şi automate

65) O celula de fabricaţie este alcătuită din două maşini M1 şi M2 şi un


AGV. Automatele celor trei componente sunt :
M1 0
readyat1 1

loadat1

M2 0
giveto2 1

loadat2

AGV

1 giveto2 0 loadat2 2

loadat1 giveout

a) Să se construiască G = M1|| M2 ||AGV


b) Este G blocant?
66) Un sistem de fabricaţie conţine 2 maşini M1 şi M2 şi un robot R care
preia o piesă prelucrată de pe maşina M1 şi o depune pe maşina M2.
Nu exista nici un buffer pentru cele două maşini. Dacă o piesă este
furnizată lui M1 în timp ce aceasta este ocupată atunci piesa este
rejectată. Dacă robotul transportă piesa către M2 în timp ce aceasta
este ocupată el aşteaptă până când M2 o poate accepta. După ce
robotul a depus piesa pe M2 el revine în poziţia iniţială, de unde poate
lua o noua piesa de pe M1.
Să se construiască AFD care descrie funcţionarea procesului.

67) Fie un tronson de cale ferată care arată ca în figură. Fie alfabetul
Σ={i1,s1, i2, s2, i3, s3} unde ik reprezintă intrarea unui tren pe tronsonul
de cale ferată k, iar sk = ieşirea trenului de pe tronsonul k. Se notează
cu qi variabila de stare asociată trenului i care reprezintă prezenţa
trenului pe acel tronson. Astfel dacă qi = 1 atunci trenul se află pe

71
Limbaje formale şi automate

tronson, altfel qi = 0. Starea întregului sistem este q=(q1, q2, q3). Să se


construiască maşina Moore care modelează acest sistem şi generează
în fiecare stare valoarea lui q. Care este limbajul L care nu conduce în
starea de blocaj reprezentată pe figură?
i3 s2
i1
s1

i2
s3

68) Fie două maşini cu două stări posibile: liber şi ocupat şi setul de
evenimente Σ = {s1, f1, s2, f2}, unde si – reprezintă acţiunea de “start
funcţionare” pentru maşina i, iar fi – semnifică acţiunea de “sfârşit
funcţionare” pentru maşina i. Pentru fiecare maşină Mi, trecerea din
starea liber în starea ocupat se face în concordanţă cu apariţia
evenimentului si, iar trecerea din starea ocupat în starea liber se face la
apariţia evenimentului fi.
a) Să se construiască automatele ce descriu funcţionarea maşinilor şi
automatul ce descrie funcţionarea întregului sistem.
b) Se introduce o specificaţie de funcţionare: între cele două maşini
există un buffer X de capacitate 1 , care poate avea două stări: x0 –
buffer gol şi x1- buffer plin. Se cere automatul care descrie
funcţionarea stocului precizându-se evenimentele interzise şi cele
acceptate de fiecare stare.
M1 M2
X

69) Doi filosofi stau la o masă pe care se găsesc două farfurii, fiecare în
faţa câte unui filosof şi două furculiţe situate de o parte şi de alta a
filosofilor. Comportamentul fiecărui filosof este următorul: fiecare
filosof poate gândi sau poate mânca. Pentru a trece din starea
72
Limbaje formale şi automate

“gândeşte” în starea “mănâncă” filosoful trebuie să ridice ambele


furculiţe de pe masă, pe rând, în orice ordine. După ce filosoful
termina de mâncat, el depune ambele furculiţe pe masă şi revine în
starea “gândeşte”. Alegând un set de evenimente cât mai
reprezentativ, construiţi atât automatele aferente entităţilor sistemului
cât şi automatul care descrie funcţionarea întregului sistem.

70) Două procesoare partajează o memorie comună. Partajarea este


exclusivă. Fiecare procesor este liber până când trebuie să execute un
task, după care trece în starea de cerere acces memorie. Atunci când
memoria este liberă, procesorul o alocă, execută taskul şi apoi o
eliberează. În acest moment procesorul devine liber. Să se
construiască automatele care descriu funcţionarea subsistemelor
componente şi automatul corespunzător funcţionării întregului sistem.

73
CAPITOLUL III
REŢELE PETRI
Breviar
Definiţie
Reţelele Petri (RP) sunt grafuri orientate cu două tipuri de noduri: poziţii şi
tranziţii. Formal, o RP ordinară şi autonomă poate fi definită printr-un
cvintuplu:
RP = {P, T, Pre, Post, M0}
unde:
• P este mulţimea poziţiilor, simbolizate prin cercuri; poziţiile
modelează variabile de stare sau condiţii;
• T este mulţimea tranziţiilor, simbolizate prin bare sau dreptunghiuri;
tranziţiile modelează evenimente sau acţiuni;
Mulţimile P şi T sunt disjuncte P ∩T =∅
• Pre: PxT -> {0, 1} reprezintă arcele care duc de la poziţii la tranziţii;
• Post: PxT -> {0, 1} reprezintă arcele care duc de la tranziţii la
poziţii.
Într-o RP, întotdeauna un arc uneşte două noduri de tipuri
diferite (o poziţie şi o tranziţie).
M:P → N este vectorul de marcaj, definit pe mulţimea poziţiilor
reţelei, cu valori în mulţimea numerelor naturale; un element m(Pi)
al vectorului indică numărul de jetoane de marcaj din poziţia Pi a
reţelei la un moment dat.
Dacă se consideră poziţiile reţelei ca variabile de stare ale
sistemului astfel modelat, atunci marcajul (vectorul de marcaj)
reprezintă starea sistemului.
• M0 este marcajul iniţial la lansarea sistemului (starea iniţială).
Starea unei RP se modifică prin execuţia tranziţiilor.

74
Reţele Petri

Reguli pentru execuţia tranziţiilor:


1. O tranziţie se execută numai dacă este validă. O tranziţie Tj este
validă numai dacă toate poziţiile sale de intrare (adică toate
poziţiile Pi pentru care Pre(Pi,Tj)=1) sunt marcate (m(Pi)≥1).
2. Într-o RP ordinară autonomă se execută o singură tranziţie la un
moment dat (indiferent câte tranziţii sunt valide). Această regulă
are la bază două ipoteze:
• Două evenimente independente nu pot să aibă loc simultan,
• Fiecare tranziţie reprezintă un eveniment distinct.
3. Execuţia unei tranziţii Tj se face în doi paşi:
• Din fiecare poziţie de intrare a lui Tj se retrage câte un jeton de
marcaj,
• În fiecare poziţie de ieşire a lui Tj se pune un jeton de marcaj.
4. Execuţia unei tranziţii are durată nulă.
Din punctul de vedere al nivelelor de reprezentare SED, există următoarele
clase de RP:
• reţele Petri autonome – la nivel logic,
• reţele Petri temporizate, sincronizate şi interpretate – la nivel
temporal (determinist),
• reţele Petri stochastice – la nivel stochastic.
În afară de aceste clase distincte, a căror putere de modelare este diferită în
funcţie de modul de integrare al timpului în model, există o serie de
extensii ale modelelor RP, extensii care se pot aplica fiecărei clase, fără a
le modifica nici proprietăţile şi nici puterea de modelare. Rolul extensiilor
este de a realiza modele mai compacte.
Dintre acestea, cele mai cunoscute sunt:
• RP generalizate: se asociază ponderi (numere naturale) arcelor. În
mod implicit ponderea unui arc este 1. Se mai numesc şi RP cu arce
ponderate.
Pre: PxT → N şi Post: PxT → N

75
Reţele Petri

Pentru această clasă de reţele regulile de execuţie a tranziţiilor se


modifică astfel:
• dacă arcul Pi → Tj are ponderea q , Tj este validă dacă Pi conţine
cel puţin q jetoane.
• prin executarea lui Tj se retrag q jetoane din Pi ;
• dacă arcul Tj → Pk are ponderea m, prin executarea lui Tj se
adaugă m jetoane în poziţia Pk.
• RP cu capacităţi: se asociază capacităţi (numere naturale)
poziţiilor. În mod implicit, capacitatea unei poziţii este infinită.
Regulile de execuţie ale tranziţiilor se modifică astfel: o tranziţie
este executabilă dacă şi numai dacă prin execuţia ei nu se depăşeşte
capacitatea vreuneia dintre poziţiile sale de ieşire.

Tranziţii speciale:
• tranziţie sursă este o tranziţie care nu are nici o poziţie de intrare.
O astfel de tranziţie este în permanenţă validă;
• tranziţie capcană este o tranziţie care nu are nici o poziţie de ieşire.

Notaţii:
*
• M = mulţimea marcajelor accesibile plecând de la marcajul M;
• S = secvenţă de execuţie = succesiune de tranziţii ce se pot executa
în această ordine;
• M0(S → M2: executarea secvenţei S pornind de la marcajul M0
conduce la marcajul M2.
• Marcaj superior: M1 ≥ M2 ⇔ m1 (Pi ) ≥ m2 (Pi ), ∀ Pi ;
• Marcaj strict superior: M1 > M2 ⇔ M1 ≥ M2 şi ∃ Pi a.î. m1 (Pi ) > m2
(Pi ).

76
Reţele Petri

Proprietăţile reţelelor Petri.


Proprietatea 1: Mărginire
1. O poziţie Pi este mărginită pentru un marcaj iniţial M0 dacă
∀M∈*M0 , exista un număr natural m astfel încât, oricare ar fi
evoluţia reţelei, m(Pi)<m;
2. O RP este mărginită pentru un marcaj iniţial M0 dacă toate
poziţiile sale sunt mărginite pentru marcajul iniţial M0;
Se numeşte RP binară (sigură) pentru un marcaj iniţial M0 o reţea
mărginită în care marcajul nici unei poziţii nu depăşeşte valoarea 1.
Proprietatea 2: Viabilitatea
1. O tranziţie Tj este viabilă pentru un marcaj iniţial M0 dacă
∀M∈*M0, există o secvenţă de tranziţii S care porneşte din M şi
conţine Tj; o tranziţie Tj este cvasiviabilă pentru un marcaj
iniţial M0 dacă există cel puţin o secvenţă de tranziţii S care
porneşte din M0 şi conţine Tj ;
2. O RP este viabilă pentru un marcaj iniţial M0 dacă toate
tranziţiile sale sunt viabile pentru marcajul iniţial M0; o RP este
cvasiviabilă pentru un marcaj iniţial M0 dacă toate tranziţiile sale
sunt cel puţin cvasiviabile pentru marcajul iniţial M0;
O RP se numeşte conformă dacă este binară şi viabilă .
Proprietatea 3: Blocaje
1. Un blocaj este un marcaj pentru care nici o tranziţie nu mai este
validă.
2. O RP se numeşte fără blocaje pentru un marcaj iniţial M0 dacă
∀M∈*M0, M nu este un blocaj.
Proprietatea 4: Reiniţializabilitate
1. O RP are o stare de primire Ma pentru un marcaj iniţial M0 dacă
pentru toate marcajele accesibile Mi∈*M0, există o secvenţa de
tranziţii S a.î. Mi(S → Ma.
2. O RP este reiniţializabilă pentru un marcaj iniţial M0 dacă M0
este stare de primire.

77
Reţele Petri

Observaţie: Mărginirea, viabilitatea, absenţa/prezenţa blocajelor,


reiniţializabilitatea sunt proprietăţi care depind de marcajul iniţial.
Proprietatea 5: Invarianţi şi componente conservative
Fie o reţea Petri R şi P mulţimea poziţiilor sale. Spunem că avem un
invariant liniar al poziţiilor (sau invariant de marcaj) dacă există o
submulţime P’ = {P1, P2 ,..., Pr}, P’⊂P şi un vector de ponderi Q = {q1 , q2
,..., qr}, qi ∈N* a.î.
q1 m(P1)+ q2 m(P2)+. . .+ qr m(Pr) = Const. , ∀M∈*M0
Mulţimea P’ se numeşte componentă conservativă. Reţeaua R se numeşte
conservativă dacă şi numai dacă toate poziţiile reţelei sunt incluse într-o
componentă conservativă.
O secvenţă de tranziţii S se numeşte repetitivă dacă M 0 (S → M0 .

Investigarea proprietăţilor reţelelor Petri


Investigarea proprietăţilor Reţelelor Petri (RP) se poate face fie folosind
algebra liniară, fie folosind arborele de acoperire sau graful de marcaje.
Investigarea proprietăţilor RP cu ajutorul algebrei liniare.
Notaţii:
°Tj = {Pi∈P | Pre(pi, tj) > 0}
Tj°= {Pi∈P | Post(pi, tj) > 0}
°Pi = {Tj∈T | Post(pi, tj) > 0}
Pi°= {Tj∈T | Pre(pi, tj) > 0}
W = Post - Pre = [wij] matricea de incidenţă a reţelei (este
independentă de marcaj)
Ecuaţia fundamentală :
Mk = Mi + W S,
pentru o secvenţă de executii S a.î. M i (S → Mk , unde S este vectorul
caracteristic al secvenţei S (vector de dimensiune m în care sj corespunde
numă rului de validări ale tranziţiei Tj în secvenţa S.

78
Reţele Petri

Investigarea proprietăţilor RP cu ajutorul grafului de marcaje sau al


arborelui de acoperire.
Algoritmul de construcţie a arborelui de acoperire
Pas 1. Plecând de la marcajul iniţial M0 se indică toate tranziţiile valide
şi marcajele succesive corespunzătoare. Dacă unul din aceste
marcaje este strict superior lui M0 , se pune ω pentru fiecare
componentă superioară componentei corespunzătoare din M0 .
Pas 2. Pentru fiecare nou marcaj Mi al arborelui se face fie Pas 2.1. fie
Pas 2.2.
Pas 2.1. Dacă există un marcaj Mj = Mi care a fost explorat deja,
atunci Mi nu are succesor.
Pas 2.2. Dacă nu există un marcaj Mj = Mi pe calea de la M0 la Mi
atunci se prelungeşte arborele adăugându-se toţi succesorii
lui Mi . Pentru fiecare succesor Mk al lui Mi :
1) o componentă ω a lui Mi rămâne o componentă ω a lui
Mk ;
2) dacă există un marcaj Mj pe calea de la M0 la Mk a.î.
Mk > Mj , atunci se pune ω pentru fiecare componentă
a lui Mk superioară componentei corespunzătoare din
Mj .
Observaţie
Graful de acoperire (sau de marcaje accesibile) se obţine din arborele de
acoperire, prin concatenarea marcajelor care se repetă . Se obţin în acest
fel bucle în graful de acoperire, care în arbore nu apăreau.

79
Reţele Petri

Reţele Petri sincronizate


1. O RP sincronizată este un triplet <R, E, Sinc> unde:
• R - este o RP marcată;
• E - este o mulţime de evenimente externe;
• Sinc: T → E∪{e}, T fiind mulţimea tranziţiilor din R iar e
evenimentul sigur (întotdeauna activ).
2. O RP este total sincronizată dacă Sinc: T → E.
Executarea unei tranziţii se face
• dacă tranziţia este validă;
• atunci când se produce evenimentul asociat.

Notaţie
T(x,M) mulţimea tranziţiilor receptive la evenimentul x ∈ E∪{e} pentru
marcajul M.
Definiţii
1. Sk se numeşte secvenţă de simulare completă (SSC) în raport cu
evenimentul x, pentru marcajul M, dacă:
• Sk este o secvenţă de execuţii din marcajul M, compusă numai
din tranziţii aparţinând lui T(x,M);
• toate tranziţiile din T(x,M) apar cel mult odată în Sk ;
• toate secvenţele Sh obţinute permutând tranziţiile lui Sk sunt de
asemenea secvenţe de execuţie plecând de la M;
• nu există secvenţă de execuţii de lungime mai mare care să
conţină toate tranziţiile lui Sk şi care să îndeplinească primele
trei condiţii.
2. Se numeşte execuţie iterativă la apariţia evenimentului extern ei
o secvenţă compusă din executarea unei SSC sub apariţia lui ei,
urmată eventual de executarea tuturor SSC posibile sub apariţia
lui e. Dacă pentru un marcaj M nu este posibilă execuţia nici unei
SSC sub e, atunci M este numit marcaj stabil. În caz contrar, M
se numeşte instabil.

80
Reţele Petri

Algoritmul de interpretare a unei RP sincronizate


pas1. Iniţializări: 1) marcajul, 2) mulţimea momentelor la care au loc
evenimentele externe 3) evenimentul curent x.
Fie x = e. Salt la pas3.
pas2. Se consideră primul moment t la care are loc un eveniment extern ei
. Fie x = ei .
pas3. Se determină mulţimea de tranziţii executabile sub apariţia
evenimentului x. Dacă această mulţime este vidă, se suprimă t din
mulţimea momentelor la care au loc evenimente externe. Salt la
pas2.
pas4. Se efectuează o SSC. Se face x = e. Salt la pas3.

Proprietăţi suplimentare ale reţelelor Petri sincronizate.


O RP sincronizată este promptă dacă pentru toate marcajele accesibile
stabile şi pentru toate evenimentele ei, execuţia iterativă sub apariţia
evenimentului extern ei conţine un număr finit de SSC.
Dacă există un număr natural k astfel încât numărul de SSC ≤ k, atunci
spunem că reţeaua este k-promptă.
Proprietate
O RP sincronizată este promptă dacă îndeplineşte următoarele condiţii:
• toate tranziţiile sursă (fără nici o poziţie în amonte) au asociate
evenimente externe;
• pentru toate ciclurile P1T1P2T2 ... PqTq a.î. avem arcele Pi → Ti, Ti
→ Pi+1 si Tq → P1 există cel puţin o tranziţie care să fie sincronizată
pe un eveniment extern.
Observaţie
Proprietăţile RP autonome nu se conservă atunci când reţeaua este
sincronizată.

81
Reţele Petri

Reţele Petri temporizate


Retelele Petri temporizate sunt acele tipuri de reţele în care timpul
influenţează explicit evoluţia reţelei. Aceste reţele se împart în:
P-temporizate şi T-temporizate.

RP P-temporizate: se asociază fiecărei poziţii Pi o temporizare di. În mod


implicit, temporizarea asociata unei poziţii este nulă.
O RP P-temporizată este un dublet <R, Temp> unde:
• R este o RP marcată;
• Temp: P → Q+, unde Q+ reprezintă mulţimea de numere raţionale
pozitive a.î. Temp(pi )= di .
Se consideră că un jeton depus într-o poziţie Pi în momentul t este
indisponibil pe durata temporizării [t, t+di], după care devine disponibil. În
acest fel, la un moment de timp oarecare marcajul M al reţelei are două
componente: marcajul disponibil şi marcajul indisponibil. (M = Md + Ml).
Validarea unei tranziţii este făcută doar de componenta disponibilă a
poziţiilor sale de intrare.
Ipoteză de lucru
La momentul iniţial marcajul M0 este disponibil.
În vederea analizei RP temporizate se consideră că o tranziţie se execută
de îndată ce devine validă. Acest regim de funcţionare se numeşte
funcţionare la viteză maximală.
Se poate demonstra că pentru o RP temporizată mărginită şi cu temporizări
cu valori raţionale, funcţionarea la viteza maximală conduce după un timp
la un regim repetitiv – numit regim staţionar.
În cadrul regimului staţionar se face analiza cantitativă (evaluarea
performanţelor) sistemului. Pentru aceasta se definesc următoarele mărimi:
1. Frecvenţa de execuţie fj, a unei tranziţii Tj ca fiind numărul
mediu de execuţii ale lui Tj pe unitatea de timp.
2. Numărul mediu de marcaje într-o poziţie Pi ca fiind egal cu
produsul între suma frecvenţelor de execuţie ale tranziţiilor de
intrare în poziţia Pi şi durata sa asociată di.

82
Reţele Petri

Un alt regim de funcţionare este cel la viteză optimală: o RP P-temporizată


funcţionează la viteză optimală dacă nici un jeton nu rămâne într-o
poziţie un interval de timp mai mare decât durata sa de indisponibilitate.
Un model care are funcţionare la viteză optimală este considerat a fi un
model fără întârzieri (nici un jeton nu “aşteaptă” să fie utilizat).

Reţele Petri T-temporizate: se asociază fiecărei tranziţii Tj o durată de


execuţie dj. Implicit, durata de execuţie a unei tranziţii este nulă.
Definiţie: O RP T-temporizată este un dublet <R, Temp> unde:
• R este o RP marcată;
• Temp: T → Q+, cu Q+ o mulţime de numere raţionale pozitive a.î.
Temp(Ti )= di
Pentru această clasă de reţele vom face distincţie între momentul de timp
la care o tranziţie devine validă (care este momentul de timp în care avem
în fiecare poziţie de intrare în tranziţie un număr suficient de jetoane) şi
momentul de timp la care tranziţia este executabilă (care va fi egal cu
momentul de timp la care tranziţia a fost validată la care se va adăuga
temporizarea asociată tranziţiei). În general o tranziţie se va executa din
momentul în care devine validă după ce trece temporizarea asociată.
Excepţia este reprezentată de sitaţiile de conflict structural care sunt
rezolvate prin executarea primei tranziţii ce devine executabilă (nu vom
avea conflicte efective pentru reţelele T-temprozate decât dacă două
tranziţii ale unui conflict structural devin simultan executabile şi nu există
suficiente jetoane pentru a le executa pe ambele).
Noţiunile de funcţionare la viteza maximală, funcţionare la viteza proprie
şi frecvenţă de execuţie se pot extinde şi la reţele T-temporizate.
Reprezentare grafică:
• bară ( ) pentru o tranziţie a cărei temporizare este nulă;
• dreptunghi ( ) pentru o tranziţie a cărei temporizare este nenulă;

83
Reţele Petri

Observaţie
Orice reţea Petri T-temporizată poate fi transformată într-o reţea Petri
P-temporizată şi invers.

d d

T-temporizare P-temporizare

d d

P-temporizare T-temporizare

84
Reţele Petri

Probleme rezolvate

71) Să se studieze proprietăţile de mărginire, blocaje, viabilitate şi


reiniţializabilitate pentru reţelele Petri ilustrate în figura următoare:
-a- -b-

P1 P1 2 (3)
T4 T4
T1 T3 T1 T3

P2 P3 P2 P3
T2 T2

Figura III.1. Reţele Petri autonome.


Rezolvare.
Graful de marcaje al reţelei din figura a) este prezentat în Figura III.2:

Figura III.2. Graful de marcaje pentru cazul -a-.


Se observă pe acest graf de acoperire că în acest caz reţeaua este mărginită,
nu are blocaje şi de asemenea nu este viabilă. Despre această reţea se poate
spune că este cvasiviabilă deoarece tranzitiile T3 şi T4 se pot executa o
singură dată, după care se ajunge la o stare asemănătoare celei iniţiale care
are însă doar un jeton în P1 şi pentru care tranziţia T3 (şi deci şi T4) nu se
mai poate executa niciodată.
Proprietatea de reiniţializabilitate nu este îndeplinită deoarece nu există o
secvenţă de tranziţii care să conducă din marcajul M3 în marcajul iniţial.
Pentru reţeaua din figura b) avem două posibilităţi de valori pentru arcul
de la T4 la P1: valoare de 2 şi valoare mai mare de 2.
Pentru cazul în care ponderea arcului T4 → P1 egală cu 2, graful de
marcaje accesibile este ilustrat în Figura III.3. Din graf se deduce că
reţeaua este mărginită şi fără blocaje ca cea dinainte, în plus, prin buclele
care s-au format în graf, reţeaua este viabilă, pentru oricare marcaj din graf

85
Reţele Petri

şi oricare tranziţie putându-se găsi o secvenţă pornind de la acest marcaj


care să conţină tranziţia respectivă.

T1 T1
 2  1   0 
     
M0 =  0  1   2 
     
 0 T2  0  T2  0 

T3  0 
 
T4  0 
 
 1 

Figura III.3. Graful de marcaje pentru cazul -b- şi pondere 2.


Pe acest exemplu se mai poate face o observaţie. Prin buclele care s-au
format pe graf se pot identifica secvenţele repetitive (secvenţe de tranziţii
care, pornind de la M0, conduc la M0). Acestea sunt: S1 = T1T2,
S2 = T1T3T4, S3 = T1T1T2T2, S3 = T1T1T2T3T4. Se poate vedea uşor că din
toate marcajele accesibile de pe acest graf se poate ajunge în marcajul
iniţial, deci reţeaua este reiniţializabilă.
Să consideram un ultim caz în care ponderea arcului T4 → P1 este 3 (vezi
Figura III.1 -b-). În acest caz se obţine următorul graf de acoperire:
2 T1 1 T1 0
     
M 0= 0 M 1=  1  M 2=  2 
0 T2 0 T2 0
     
T3
0 T ω T1 ω T3 ω
  4      
M 3=  0  M 4=  0  M 5=  ω  M 6=  ω 
1 0 0 ω
       

T 1, T 2 T 1 , T 2, T 3, T 4

Figura III.4. Graful de marcaje pentru cazul -b- şi pondere 3.

Se observă că pe acest graf s-a substituit, conform algoritmului de


construcţie a arborelui de acoperire, valoarea 3 care s-ar fi obţinut după
prima executare a lui T4 cu ω. În continuare se poate observa că reţeaua
Petri are toate poziţiile nemărginite; în acest fel se deduce că reţeaua este
nemărginită. Se păstrează însă proprietăţile de viabilitate şi de fără blocaje.

86
Reţele Petri

72) Să se construiască graful de marcaje şi să se discute proprietăţile


reţelei sincronizate din Figura III.5. Să se compare aceste proprietăţi
cu cele ale reţelei nesincronizate.
P1

T1 e1 T2 e1

P2 P3

T3 e2

P4 P5

T4 e3 T5 e3

Figura III.5. Reţea Petri sincronizată.

Rezolvare.
Reţeaua Petri sincronizată este mărginită, fără blocaje, viabilă,
conservativă (există un invariant de marcaj ce conţine toate poziţiile
reţelei) şi reiniţializabilă aşa cum se poate vedea imediat din graful de
marcaje accesibile.
2  0 0
  1  0
0
1 2
{T 1, T 2}/e   T 3/e  
M0 = 0 M 1 = 1  M 2 = 0
     
0 0 1 
0  0  1 
 

{T 4, T 5}/e3

Figura III.6. Graful de marcaje pentru reţeaua sincronizată.


Invariantul de marcaj este: m(P1) + m(P2) + m(P3) + m(P4) + m(P5) = 2
Dacă însă considerăm aceeaşi reţea dar nesincronizată se poate vedea,
construind din nou graful de marcaje, că aceasta nu mai este viabilă şi că,
prin executarea de două ori la rând a tranziţiei T1 sau a tranziţiei T2
pornind de la marcajul iniţial, se ajunge la blocaj; de la aceste marcaje nici

87
Reţele Petri

o tranziţie nu va mai putea fi executată. Secvenţele T1T1 şi T2T2 nu sunt


posibile pentru reţeaua sincronizată.

0 
1 
 
M9 =  0 
  T5
0 0 
2 1 
T1
 
M3 =  0 
  1  0 
1  T1 0 0  0 
1  0     T5
  M7 =  0  M10= 1 
M1 =  0    T2  
  T2 0  0 T4 0
  0 
2 T1 0  1  0  1  1 
0 0   T3  
  M4= 1  M6 =  0 
M0 =  0     
  T1 0  1  1  0 
0 T2 1  0 1  T 0  1 
0 0    T1   T4
  M8 =  0  M11= 0
M2= 1  0    
  0 1  1 
0 T2   0 0
0 M5 =  2 
  T2
0 T4
0 
0 0 
  T4
M12= 1 
 
1 
0

Figura III.7. Graful de marcaje pentru reţeaua autonomă.

88
Reţele Petri

73) Construiţi graful de marcaje şi precizaţi proprietăţile următoarei


Reţele Petri:

Rezolvare.
Graful de marcaje pentru reţeaua temporizată de mai sus este prezentat în
figura următoare.
1  0   0   0   0  1(1)
 0 1(1)   0   0   0   0 
           
 0 T1 1(2) T2 1(1)  T4  0  T5  0  T7  0 
M5=  
M0 =   d = 0 M1=  0  d = 1 M2= 1(2) d = 1 M3 = 1(1) d = 1 M4 =  0  d=1
 0 
 0        
 0  0   0  1(1)  0   0 
           
0  0   0   0  1(1)  0 

T1
d=1

Marcajul iniţial este caracterizat (prin convenţie) de faptul că toate


jetoanele sunt disponibile. Acest lucru permite ca tranziţia T1 să fie validă

89
Reţele Petri

la momentul iniţial (d=0). Prin execuţia sa se depune câte un jeton de


marcaj în P2 şi P3. Valoarea duratei de indisponibilitate pentru jetoanele
nou depuse în poziţii va fi egală cu temporizarea asociată acestora.
Din marcajul M1 vor putea fi validate tranziţiile T2 (după o unitate de timp)
şi T4 (după două unităţi de timp). Datorită faptului că sistemul este analizat
la funcţionare la viteză maximală, prima se va executa tranziţia T2.
În marcajul M2 se poate observa că durata de indisponibilitate a jetonului
din poziţia P3 a fost micşorată (cu timpul scurs până la executarea tranziţiei
T2).
Este de remarcat şi faptul că marcajul M6 diferă de marcajul M0. Pentru ca
două marcaje ale unei reţele P-temporizate să fie identice trebuie ca ele să
conţină pentru fiecare poziţie:
- acelaşi număr de jetoane disponibile;
- acelaşi număr de jetoane indispnibile;
- aceleaşi durate de indisponibilitate asociate jetoanelor
indisponibile.
Din punct de vedere al proprietăţilor, reţeaua este mărginită, nu există
blocaje, nu este viabilă şi nici măcar cvasiviabilă (deoarece pe graful de
marcaje nu se regăsesc toate tranziţiile din reţea –T3 sau T6), nu prezintă
secvenţe repetitive şi nici nu este reiniţializabilă (datorită convenţiei care
spune că în marcajul iniţial toate jetoanele sunt disponibile)

90
Reţele Petri

74) Se consideră celula de fabricaţie din figura de mai jos care include:
• două maşini cu funcţionare similară M1 şi M2;
• o bandă rulantă (un conveior) de intrare CONV1 ca sursă infinită de
repere;
• un conveior de ieşire ca depozit infinit.
p2
M1 M2
p1

CONV1 CONV2

Celula poate produce două tipuri de piese: p1 şi p2, fiecare dintre ele
trebuind procesată pe ambele maşini. Duratele de procesare respective
sunt:
p1 p2
M1 3 unităţi de timp 2 unităţi de timp
M2 1 unitate de timp 4 unităţi de timp

Încărcarea pieselor de pe CONV1 pe oricare dintre maşini are durata


de 1 unitate de timp. De îndată ce operaţia de încărcare a fost
încheiată, procesarea piesei începe fără întârziere, iar descărcarea face
parte din procesare. Piesa de tip p1 este prelucrată întâi pe maşina M2
şi apoi pe maşina M1, iar piesa de tip p2 este prelucrată întâi pe maşina
M1 şi apoi pe maşina M2. Fiecare maşină posedă un buffer de intrare
cu o poziţie, pentru transferul pieselor procesate pe jumătate.
Se cere construirea reţelei Petri P-temporizată ce modelează această
celulă de fabricaţie.

91
Reţele Petri

Rezolvare:
Proiectarea utilizând reţele Petri presupune identificarea poziţiilor şi
tranziţiilor ce caracterizează sistemul respectiv.
Din punct de vedere al semnificaţiei, poziţiile unei reţele Petri modelează
variabile de stare (stări ale componentelor sistemului) sau condiţii iar
tranziţiile modelează acţiuni ce schimbă starea componentelor.
Pentru a putea modela sistemul trebuie să identificăm din enunţul
problemei componentele sistemului, stările în care acestea se pot afla şi
acţiunile care produc modificarea acestor stări.
Sistemul descris mai sus este alcătuit din şase componente: două maşini,
două benzi transportoare şi două buffere.
Fiecare dintre maşini (având capacitate unu şi putând procesa două tipuri
de piese) se poate afla într-una din următoarele stări:
- liberă;
- ocupată cu p1;
- ocupată cu p1;
- încărcând piesa de la CONV1 (reţeaua fiind P-temporizată încărcarea va
fi o stare a sistemului caracteruizată de o anumită durată);
În consecinţă fiecare maşină va fi modelată prin patru poziţii (câte una
pentru fiecare stare).
Conveioarele fiind de capacitate nelimitată vor fi modelate doar prin
numărul de piese de un anumit tip prezente pe conveior, pentru fiecare
având două poziţii: una corespunzătoare numărului de piese de tip p1
prezente şi alta corespunzătoare numărului de piese de tip p2 de pe
conveior.
Bufferele în care sunt depozitate piesele ce urmează a fi trecute pe cealaltă
maşină (având capacitate unu şi putând conţine doar un singur tip de piese)
se vor modela prin două poziţii cu următoarele semnificaţii: numărul de
piese ce pot intra în buffer şi numărul de piese existente în buffer.
În total vom avea un număr de 16 poziţii.
În ceea ce priveşte acţiunile care pot avea loc se pt identifica pentru fiecare
flux de procesare a unui tip de piesă un număr de 5 acţiuni realizate în
cadrul celulei şi de încă două prin care celula preia piese din exterior şi le

92
Reţele Petri

depune în exterior. Acţiunile realizate în cadrul celulei sunt: început


încărcare, sfârşit încărcare (ce coincide cu începutul procesării), depunere
în buffer (eliberare prima maşină), depunere pe ce-a de-a doua maşină şi
depunere pe CONV2.
Cu aceste informaţii stabilite şi încercând să aranjăm nodurile reţelei în aşa
fel încât să urmărim cele două fluxuri de prelucrare, reţeaua Petri care
modelează sistemul este:

iar semnificaţia nodurilor reţelei este:


P1 – numărul de piese de tip p1 de pe CONV1;
P2 – maşina 1 încarcă piesă p1;
P3 – maşina 1 procesează piesă p1;
P4 – maşina 1 liberă;

93
Reţele Petri

P5 – bufferul de intrare al maşinii 2 ocupat;


P6 – bufferul de intrare al maşinii 2 liber;
P7 – maşina 2 procesează piesă p1;
P8 – maşina 2 liberă;
P9 – numărul de piese de tip p1 de pe CONV2;
P10 – numărul de piese de tip p2 de pe CONV1;
P11 – maşina 2 încarcă piesă p2;
P12 – maşina 2 procesează piesă p2;
P13 – bufferul de intrare al maşinii 1 ocupat;
P14 – bufferul de intrare al maşinii 1 liber;
P15 – maşina 1 procesează piesă p2;
P16 – numărul de piese de tip p2 de pe CONV2;

T1 – început încărcare maşină 1 cu piesă p1;


T2 – sfârşit încărcare maşină 1;
T3 – depunere în bufferul maşinii 2;
T4 – începutul procesării pe maşina 2;
T5 – depunere a piesei p1 pe CONV2;
T6 – început încărcare maşină 2 cu piesă p2;
T7 – sfârşit încărcare maşină 2;
T8 – depunere în bufferul maşinii 1;
T9 – începutul procesării pe maşina 1;
T10 – depunere a piesei p2 pe CONV2;
T11 – depunere din exterior pe CONV1 a unei piese p1;
T12 – depunere din exterior pe CONV1 a unei piese p2;
T13 – scoatere în exterior de pe CONV2 a unei piese p1;
T14 – scoatere în exterior de pe CONV2 a unei piese p2.

94
Reţele Petri

Probleme propuse

75) Să se construiască graful de marcaje şi să se precizeze proprietăţile


următoarei reţele Petri:
P1

T1

P2 P3

T2 T3
P4
P5

T4
T5

P6

T6 T7

76) Se dă reţeaua Petri din figura de mai jos. Se cere studierea


proprietăţilor (mărginire, viabilitate, conflicte, conservativitate,
invarianţi) pe baza grafului de marcaje, pentru marcajul iniţial M0= [1
0 k 0].

P1
1
T2 k T1
1 1
P3
P4 1 P2
1 1

T4 T3
1 k 1

95
Reţele Petri

77) Să se construiască graful de marcaje şi să se precizeze proprietăţile


următoarei reţele Petri:
P1

T2
T1
P4
P3

P2
T4
2

P6
T3

P5

T6

T5

78) Fie reţeaua din figura de mai jos:


P1 P3 P5

T1 T3 T4

P2 P4 P6

T2

Se cer:
a) proprietăţile de mărginire, viabilitate, conflicte, siguranţă,
puritate;
b) invarianţii de marcaj;
c) limbajul generat de RP.

96
Reţele Petri

79) Se consideră RP din figura de mai jos. Să se construiască arborele de


acoperire şi să se studieze proprietăţile de mărginire, viabilitate
reversibilitate şi conservativitate. Care sunt invarianţii de marcaj şi de
execuţie?
P1 P2

T1

P3

T2

P4

T3

80) Să se construiască graful de marcaje şi să se precizeze proprietăţile


următoarei reţele Petri:
P1 P2

T1

P3

T2

P4 P5

T3 T4

97
Reţele Petri

81) Să se studieze proprietăţile reţelei Petri din figura de mai jos. Să se


precizeze invarianţii de execuţie şi limbajul reţelei.

T2

P1 P2

T1

P3 P4

T3

P5

T4

82) Să se realizeze graful de marcaje şi să se precizeze proprietăţile


(mărginire, viabilitate, blocaje, conflicte, invarianţi de marcaj,
invarianţi de execuţie, conservativitate) pentru reţeaua din figura de
mai jos.
P1 P2 P3

T1 T2

P4 P5

T3 T4

98
Reţele Petri

83) Să se determine proprietăţile Reţelei Petri din figura de mai jos


utilizând graful de marcaje.

84) Fie reţeaua Petri generalizată din figura de mai jos.


a) Care sunt tranziţiile valide din M0 ?
b) După execuţia a două tranziţii reţeaua se blochează. Care sunt
tranziţiile şi care este marcajul de blocaj?
c) Este reţeaua mărginită? Justificaţi răspunsul. Reţeaua este viabilă?
d) Demonstraţi că secvenţa T3T1 se poate executa maxim de două
ori.
P1

T1 T2
11
2
P2
P4

T4 T3

P3

85) Să se discute proprietăţile RP din figura de mai jos.

99
Reţele Petri

P1

T1
P3
P2

T2 T4
T7

P4 P5

T5
T3

P6

T6

86) Construiţi arborele de acoperire şi graful de marcaje accesibile pentru


reţeaua Petri din figura de mai jos. Studiaţi proprietăţile de mărginire,
viabilitate fără blocaje şi conservativitate.
P1

T1

P3 P2

T3
T2

100
Reţele Petri

87) Determinaţi secvenţa de simulare completa (SSC) în raport cu


evenimentul “a” pentru marcajele iniţiale pentru reţeaua Petri
sincronizata din figura de mai jos:
a) M0= [2 1 1 0 0 1]
b) M0 = [2 2 2 0 0 2]
Precizaţi care din SSC sunt maximale şi explicaţi răspunsul.
P1

T1 b a T2

P2 P3

T3 a a T4 a T5

P4 P5 P6

b T6

88) Să se construiască graful de marcaje pentru reţeaua din figura de mai


jos atât în cazul sincronizat cât şi în cazul autonom. Să se discute
proprietăţile reţelei în ambele situaţii.
P1

T1 e2 T2 e1
P2
T5 e3

T4 e2
T3 e1
P3

101
Reţele Petri

89) Pentru reţeaua Petri sincronizată din figura de mai jos să se


construiască graful de marcaje şi să se precizeze proprietăţile.

T1 e1 P2
P1

T2 e
T3 e2 T4 e1

P4 T5 e2 P3

90) Să se construiască graful de marcaje şi să se precizeze proprietăţile


următoarei reţele Petri:
P1

T2 e
T1 e1
P4
P2

T4 e1

P5
T3 e

P3

T5 e

102
Reţele Petri

91) Să se construiască graful de marcaje şi să se precizeze proprietăţile


următoarei reţele Petri atât pentru cazul sincronizat cât şi pentru cazul
autonom:
P1 P2

T1 e1

P3

T2 e

P4 P5

T3 e1 T4 e

92) Să se construiască graful de marcaje şi să se precizeze proprietăţile


următoarei reţele Petri atât pentru cazul sincronizat cât şi pentru cazul
autonom:

P1 P4

T5 e

T4 e1
T1 e1 P5 T3 e1

P2 P3
T2
e

103
Reţele Petri

93) Să se construiască graful de marcaje al RP din figură şi pe baza lui :


a) să se determine proprietăţile;
b) să se compare proprietăţile de la punctul a) cu cele ale reţelei
autonome.
P1

e1 T1
P2 P5
P4

T2 e e1 T4

P3 P6

T3 e2 e T5

94) Fie reţeaua P temporizată şi generalizată din figura, unde di reprezintă


durata asociată poziţiei Pi. Pentru marcajul iniţial reprezentat în figura
de mai jos se cer:
a) graful de marcaje accesibile;
b) proprietăţile reţelei.
P1

d1=1
P2
3
d2=1
T1 T2
P3
3

d3=1

104
Reţele Petri

95) Construiţi graful de marcaje şi precizaţi proprietăţile următoarei


Reţele Petri:
P1
d 1= 1

T1

P2 P3
d 2= 1 d 3= 2

T2 T3

P4 P5
d 4= 2 d 5= 1

T4 T5

P6
d 6= 1

T6

96) Construiţi graful de marcaje şi precizaţi proprietăţile următoarei


Reţele Petri:

105
Reţele Petri

97) Sistemul din figura de mai jos prelucrează două tipuri de piese: A
respectiv B, preluate din două depozite de intrare cu capacitate
infinită. Robotul R1 încarcă piesele de tip A pe maşina M1 şi piesele
de tip B pe maşina M2. După prelucrarea pe maşina M1, respectiv pe
maşina M2, piesele de tip A sunt transferate automat în bufferul B1 de
capacitate 4, iar piesele de tip B sunt transferate automat în bufferul B2
de capacitate 6. Robotul R2 preia piese din bufferele B1 şi B2 şi încarcă
maşina M3 întâi cu o piesă de tip A şi după aceea cu două piese de tip
B (pe rând). Astfel maşina M3 realizează operaţia de asamblare a unei
piese A şi a două piese B în ordinea A+B+B. După asamblare piesele
părăsesc sistemul.
Se presupune că maşinile pot prelucra o singură piesă la un moment
dat; de asemenea capacitatea de transfer a roboţilor este de o piesă. Se
cunosc timpii de prelucrare pe cele trei maşini: durata de prelucrare a
unei piese de tip A pe maşina M1 este d1 = 3 unităţi de timp;
prelucrarea unei piese de tip B pe maşina M2 se face în d2 = 2 unităţi
de timp; iar durata operaţiei de asamblare pe maşina M3 este das = 2
unităţi de timp.
Să se modeleze sistemul de producţie astfel încât reţeaua să fie
mărginită. Să se identifice invarianţii de marcaj.
A B
R1

M1 M2
d1=3 d2=2

B1 B2
(4) (6)

R2

M3
1A+ 2B
d_as = 2

Iesire din sistem

106
Reţele Petri

98) Considerăm execuţia de tip Round-Robin a mai multor taskuri.


Aceasta presupune transferul controlului succesiv fiecărui task pentru
execuţia unei părţi a sa. Taskurile în execuţie partajează o aceeaşi
unitate centrală, iar la fiecare control fiecare task poate executa una
sau mai multe instrucţiuni. Să se construiască RP care modelează
acest protocol, în următoarele cazuri :
a) Se consideră 4 taskuri, fiecare task executând câte o singură
instrucţiune când primeşte controlul;
b) Se consideră 2 taskuri, taskul 1 executând 3 instrucţiuni, iar
taskul 2 executând 5 instrucţiuni la primirea controlului.
Indicaţii:
a) Pentru fiecare task se vor considera următoarele poziţii:
• poziţie ai care marcata semnifica taskul în aşteptare;
• poziţie exi care marcată semnifică faptul că taskul i este în
execuţie pentru o instrucţiune;
• poziţie pi care dacă este marcată semnifică faptul că s-a dat
controlul taskului i.
b) Se utilizează o reţea Petri generalizată.

99) Se consideră un proces de producţie simplu, conţinând un consumator


şi un producător ce folosesc împreună un acelaşi stoc, acesta având o
capacitate limitată la 3 unităţi. Producătorul poate produce o singură
piesă la un moment dat, el putând depune piesa în stoc imediat ce a
terminat-o dacă stocul permite depunerea. Imediat după depunerea
piesei producătorul reîncepe procesul de producţie. Consumatorul la
rândul său, imediat ce a terminat de “consumat” o piesă (una singură
la un moment dat) ia o noua piesă din stoc dacă acesta nu este vid. Să
se modeleze cu RP funcţionarea acestui proces.
depunere retragere

produc ător stoc consumator

107
Reţele Petri

100) Fie un sistem de producţie care prelucrează un singur tip de piese


conform fluxului tehnologic descris în figura de mai jos. La intrare în
sistem, piesele sunt încărcate pe paletele preluate dintr-un stoc de
capacitate 3. Robotul R1 încarcă piesele alternativ pe maşinile M1 şi
M2, M1 fiind încărcată prima. Bufferele B1 (de capacitate 4) şi B2 (de
capacitate 3) sunt încărcate automat cu piese de pe maşinile M1
respectiv M2 de îndată ce acestea termina operaţia de prelucrare.
Robotul R2 încarcă maşina M3 preluând piese atât din bufferul B1 cât
şi din bufferul B2. După prelucrarea pe maşina M3 piesele părăsesc
sistemul iar paletele sunt reciclate la intrarea sistemului şi depuse în
stocul de palete. Ştiind că fiecare maşină poate prelucra o singură
piesă la un moment dat (capacitate 1), să se construiască reţeaua Petri
care modelează acest sistem de producţie.
Stoc palete

R1

M1 (1) M2 (1)

B1 B2

R2

M3 (1)

101) Se consideră un stoc ce poate conţine un număr infinit de piese.


Funcţionarea sa este sincronizată pe două evenimente externe:
evenimentul e1, sosirea unei piese şi evenimentul e2, sosirea unei
cereri de piesă. O cerere de piesă este satisfăcută imediat dacă există
piese în stoc.
108
Reţele Petri

Modelaţi comportamentul stocului de piese printr-o reţea Petri sincronizată


şi construiţi graful de marcaje accesibile pentru următoarele două situaţii:
a) se presupune ca o cerere de piesă nesatisfăcută (nefiind piesa în
stoc) este “pierdută” (utilizatorul trebuie să-şi reînnoiască
cererea);
b) se presupune că o cerere de piesă nesatisfăcută este memorată, şi
satisfăcută atunci când o nouă piesă soseşte în stoc.
e1 sosirea unei sosirea unei
e2
piese cereri de piesa

stoc
sosirea plecarea
pieselor pieselor

102) Patru filosofi, f1÷f4, stau în jurul unei mese, între ei fiind dispuse
baghetele b1÷b4. Un filosof se poate găsi într-una din următoarele
două stări: poate gândi sau poate mânca. Pentru a manca un filosof are
nevoie de cele două baghete aflate de o parte şi de cealaltă a sa. În
starea iniţială toţi filosofii gândesc şi baghetele se afla pe masă.
a) Descrieţi printr-o reţea Petri următorul protocol: când un filosof
doreşte să mănânce el ia mai întâi bagheta din dreapta sa, apoi pe
cea din stânga sa şi începe să mănânce. Când termină de mâncat
el depune pe masă mai întâi bagheta din mana dreaptă, apoi pe
cea din mana stângă şi trece astfel în starea în care gândeşte.
Indicaţi invarianţii minimali pentru reţeaua construită. Este
aceasta reţea viabilă? Dacă există un blocaj găsiţi secvenţa de
validări care conduce la acesta şi daţi o explicaţie a acestui
blocaj.
b) Definiţi un protocol astfel încât să nu mai poată apărea situaţie de
blocaj, şi construiţi reţeaua Petri corespunzătoare.

103) Se consideră două bile de biliard, A şi B, (figura de mai jos) care se


deplasează pe o aceeaşi dreaptă, paralelă cu una din margini. Fiecare
bilă are trei stări: deplasare la dreapta, deplasare la stânga sau
aşteptare (bila oprită). Se cere modelarea comportamentului celor
două bile printr-o reţea Petri, presupunând că: a) atunci când loveşte o
109
Reţele Petri

margine o bilă porneşte în sens invers cu aceeaşi viteza; b) dacă cele


două bile se ciocnesc, ambele fiind în mişcare cu aceeaşi viteză, ele
repornesc în sens invers; c) dacă o bilă oprită este lovită de cealaltă,
prima se pune în mişcare şi a doua se opreşte. Presupunem că bilele
realizează o mişcare ideală, fără încetinire datorată frecării. Să se
studieze, în funcţie de marcajul iniţial posibil, proprietăţile reţelei
construite, pe baza grafului de marcaje.

A B

104) Se consideră 6 taskuri a căror executare este condiţionată de


următoarele reguli: iniţial taskul 1 este executabil; taskurile 2 şi 3 nu
pot fi executate decât după taskul 1 (neînsemnând însă că vor începe
simultan sau imediat după terminarea taskului 1). Taskul 4 nu poate fi
executat decât după taskul 3, taskul 5 după taskurile 2 şi 4, iar taskul 6
după taskurile 4 şi 5. Taskul 1 nu poate fi reexecutat decât după
terminarea taskului 2, iar taskul 3 după taskurile 1 şi 6. Considerând
că execuţia fiecărui task are o durata di să se modeleze prin reţele Petri
P - temporizate acest sistem. Care este momentul la care începe prima
execuţie a taskului 5 ?
Indicaţie. Pentru fiecare task se introduc două poziţii: una
corespunzătoare execuţiei taskului şi una care asigură îndeplinirea
condiţiei de execuţie a taskului respectiv.

105) Se consideră o linie de asamblare cuprinzând două maşini fiecare cu


câte un stoc în intrare, aşa cum se vede în figura de mai jos. Stocurile
au o capacitate nelimitată. Sistemul prelucrează două tipuri de piese,
p1 şi p2, care sosesc într-o ordine aleatoare în stocul 1 dar prelucrarea
lor pe maşină făcându-se prin alternanţa. Se presupune că maşinile pot
prelucra o singură piesa la un moment dat.
Fie evenimentul ei “sosirea unei piese de tip pi”. O piesa de tipul 1 necesită
o prelucrare de 8 unităţi de timp pe maşina 1 şi de 3 unităţi de timp pe
maşina 2 iar o piesa de tipul 2 necesită câte 5 unităţi de timp pe fiecare
maşină.

110
Reţele Petri

a) Să se modeleze acest sistem printr-o reţea sincronizată şi


T-temporizată în condiţiile enunţate anterior;
b) Cum se modifică reţeaua în ipoteza că stocul 1 conţine permanent
cel puţin câte o piesă de fiecare tip ?
masina 1 masina 2

sosire plecare
stoc 1 stoc 2
piese piese
p1, p2 p1, p2

106) Să se modeleze prin intermediul reţelelor Petri comportamentul


unei pisici şi al unui şoarece în următorul labirint, ştiind că mişcările
pisicii sunt modelate de săgeţile P iar cele ale şoarecelui de săgeţile S.
4 2
P8

S5 P4 P7 P1

S2

P5 S6 S3 P2
S4
S1
Soarece
1
3
P6 P3
5 Pisica

107) Să se rezolve problema cu lupul, capra şi varza utilizând modelul


reţelelor Petri.

108) Se consideră un flux de fabricaţie compus din două maşini, fiecare


având un stoc de piese în intrare. În sistem există două palete, piesele
trecând între maşini purtate pe palete. Aceste palete sunt reciclabile,
adică ele se întorc în stocul 1 după ce piesele pe care le-au purtat sunt
terminate pe maşina 2. Maşina 1 poate trata o singură piesă la un
moment dat, timpul de servire fiind d1 = 2 unităţi de timp, în timp ce

111
Reţele Petri

maşina 2 poate trata două piese, pentru fiecare fiind necesare d2 = 3


unităţi de timp.
a) Să se construiască RP P-temporizată pentru acest sistem;
b) Să se construiască graful de marcaje pentru reţeaua P-temporizată
considerând funcţionarea cu viteză maximă. Care este durata unui
ciclu de fabricaţie?
masina 1 masina 2

stoc 1 d1=2 stoc 2 d2=3

109) Fie un sistem de fabricaţie flexibil care prelucrează două tipuri de


piese A şi B. Piesele sunt încărcate în sistem din două depozite de
intrare de capacitate infinită DIA, DIB şi sunt prelucrate conform
fluxurilor de fabricaţie din figura de mai jos cu următoarele
specificaţii:
• Piesele de tip A sunt prelucrate pe maşinile M1, M2 şi M4, iar
piesele de tip B pe maşinile M1, M3 şi M5; încărcarea maşinii M1
se face automat;
• Robotul R1 încărca maşina M2 cu piese de tip A şi maşina M3 cu
piese de tip B;
• Transferul pieselor de tip A de la maşina M2 în stocul A (de
capacitate 8) se face automat; piesele de tip B sunt transferate de
asemenea automat de la maşina M3 la maşina M5.
• Robotul R2 este implicat în următoarele operaţii de transfer:
încarcă câte 2 piese din stocul A pe maşina M4; descarcă câte 2
piese de pe maşina M4 către ieşirea A a sistemului; descarcă câte
o piesă de pe maşina M5 în stocul B de capacitate 5.
• Stocul B este golit automat când devine plin.
• Maşinile M1, M3 şi M5 prelucrează o singură piesă la un moment
dat; maşina M2 poate prelucra 3 piese simultan iar maşina M4
poate prelucra 2 piese simultan;

112
Reţele Petri

• Duratele de prelucrare ale celor două tipuri de piese pe maşini


sunt indicate în figura, astfel maşina M1 prelucrează o piesa de tip
A în 3 unităţi de timp, iar o piesa de tip B în 2 unităţi de timp;
durata de prelucrare a piesei A pe maşina M2 este de 7 unităţi de
timp iar pe maşina M4 de 5 unităţi de timp; durată de prelucrare a
piesei B pe maşina M3 este de 6 unităţi de timp iar pe maşina M5
de 4 unităţi de timp.
Se cere modelul RP temporizat pentru acest sistem de fabricaţie.

dA= 7 dA= 5
DIA Iesire A
M2 StocA M4
A (3) (8) (2)
A, B
M1
(1)
R1 R2

dA= 3 Iesire B
DIB dB=2 B M3 M5
(1) (1) stocB

dB=6 dB = 4

110) Activitatea de obţinere a vizelor la consulatul X este organizată după


următoarele reguli:
• există două cozi , una pentru vize profesionale (C1), cealaltă
pentru vize turistice (C2);
• coada C1 este deservită de un ghişeu, iar coada C2 de către trei
ghişee;
• în clădirea consulatului se intră astfel: grupuri de câte 4
persoane pentru coada C1 şi grupuri de câte 12 persoane pentru
coada C2;
• un grup intră în momentul în care toţi cei din grupul anterior au
trecut pe la ghişeu;
• dacă numai există solicitanţi pentru coada C1 atunci ghişeul de
la coada C1 deserveşte coada C2;
Să se modeleze acest sistem prin intermediul unei reţele Petri.

113
Reţele Petri

111) Fie un sistem de fabricaţie care prelucrează două tipuri de piese A şi


B, preluate din două stocuri de capacităţi infinite DIA şi DIB, ca în
figura de mai jos. Robotul R1 descarcă maşinile M1 şi M2 şi încarcă
maşina M3 care asamblează o piesa A şi o piesa B, fără restricţii de
ordine. Robotul R2 descarcă M3 într-un buffer de capacitate 10, care se
goleşte automat când este plin. Fiecare maşină poate prelucra o piesă
la un moment dat. Prelucrarea piesei A pe maşina M1 durează d1 = 5
unităţi de timp, prelucrarea piesei B pe maşina M2 durează d2 = 6
unităţi de timp, iar maşina M3 execută operaţia de asamblare în d3 = 4
unităţi de timp. Se presupune că transportul pieselor de către roboţi
necesită câte o unitate de timp.
Să se modeleze acest sistem utilizând reţele Petri cu tranziţii
temporizate.
DIA DIB

d1 = 5 d2 = 6
M1 (1) M2 (1)

R1

M3 (1) d_as = 4

R2

Buffer
(10)

Iesire sistem

112) Fie un sistem de producţie care prelucrează două tipuri de piese p1 şi


p2 conform unui flux tehnologic specificat în figura de mai jos.
Maşina M1 prelucrează alternativ piese de tip p1 şi p2, maşina M2
prelucrează numai piese de tip p1 iar maşina M3 prelucrează numai
piese de tip p2. Piesele sunt încărcate pe palete la intrarea în sistem,
din stocul S1 şi transferate între maşini. După ce piesele părăsesc staţia

114
Reţele Petri

de ieşire I paletele sunt reciclate la intrarea sistemului. Exista 2 palete


disponibile pentru piesele de tip p1 şi 3 palete disponibile pentru
piesele de tip p2. Robotul R1 efectuează operaţia de transfer a pieselor
de tip p1 de pe maşina M1 în stocul S2 de la intrarea maşinii M2 şi a
pieselor de tip p2 de pe maşina M1 în stocul S3 de la intrarea maşinii
M3. Robotul R2 descarcă maşinile M2 şi M3 către staţia de ieşire I.
Capacitatea de prelucrare pentru toate maşinile este de o piesă, iar
capacitatea de stocare pentru stocurile S2 şi S3 este de 4 piese. Se
cunosc timpii de prelucrare pe fiecare maşina: M1 prelucrează piesa p1
în 4 unităţi de timp şi piesa p2 în 5 unităţi de timp; M2 prelucrează
piesa p1 în 5 unităţi de timp, iar M3 prelucrează piesa p2 în 3 unităţi de
timp. Timpii de încărcare/descărcare pentru roboţi sunt de o unitate de
timp.
Să se modeleze cu reţele Petri T –temporizate sistemul de producţie.
S2
M2
p1 (p1)
p1, p2, B

M1 p1, p2, B
(p1,p2) R1 I
R2
S1

p2 M3
(p2)
S3

113) Fie sistemul de producţie din figura următoare:


Stoc1
M1

M3

M2

Stoc2

Toate maşinile pot avea pană. După reparaţie maşinile M1 şi M2


continuă piesa începută, iar maşina M3 face excepţie, revenind în
starea iniţială. Piesa de pe M3 se depozitează într-un stoc de rebuturi.
Să se construiască modelul Petri al acestui sistem în care să se
evidenţieze numărul de rebuturi şi numărul de defectări ale maşinilor.

115
Reţele Petri

114) Să se modeleze cu RP T-temporizate sistemul de producţie ilustrat în


figura de mai jos. Să se construiască graful de marcaje şi să se
studieze comportamentul în timp al sistemului în regim staţionar:

p1, p2, p3
p1, p2, p3
p1, p2 p1
M1 M2 I

R1
p2, p3

p2
p3 M3

Sistemul prelucrează trei tipuri de piese p1, p2 şi p3 în următoarele


fluxuri de fabricaţie:
p1 : M1- M2 –I (staţia de ieşire)
p2: M1-M2-M3-I
p3: M1-M3- I
Piesele sunt transportate pe paletele preluate din stocul de la intrarea
maşinii M1. Există câte 3 palete disponibile pentru fiecare tip de piesă.
Acestea se reciclează la intrare după ce piesele părăsesc staţia de ieşire
I. Transferul pieselor pe traseele M1-M2, M1-M3, M2-M3 se face
automat. Robotul R1 descarcă maşinile M2 şi M3 la staţia de ieşire I,
durata transportului fiind de 2 unităţi de timp. Timpii de prelucrare
pentru fiecare tip de piesă sunt specificaţi în următorul tabel:
p1 p2 p3
M1 3 unitati de timp 4 u.t. 5 u.t.
M2 8 u.t. 6 u.t. -
M3 - 5 u.t. 3 u.t.

116
Reţele Petri

115) Fie un sistem de producţie alcătuit din trei maşini M1, M2 şi M3 care
prelucrează piesele p1, p2 şi p3 conform fluxului tehnologic din figura
de mai jos. Sensurile săgeţilor indică ordinea în care piesele sunt
prelucrate pe fiecare din cele trei maşini. (Piesele de tip p1 şi p2 sunt
prelucrate pe toate cele trei maşini, iar piesa de tip p3 este prelucrată
doar pe maşinile M1 şi M2).
p2 p3 p2
p2 p2
p1 p1
p1 p1
M1 M2 M3

p3 p3

Se cer:
a) reţeaua Petri P –temporizată care modelează sistemul;
b) timpii la care piesele p1, p2 şi p3 părăsesc sistemul ştiind ca
prioritatea de prelucrare a piesei p2 > prioritatea piesei p1 >
prioritatea piesei p3. Duratele de prelucrare pe maşini pentru
fiecare tip de piesă sunt specificate în tabelul de mai jos.

p1 p2 p3
M1 1 unitate de timp 1 u.t. 2 u.t.
M2 1 u.t. 2 u.t. 1 u.t.
M3 1 u.t. 1 u.t. -

116) La o piscină sosesc clienţi în număr nelimitat. Aceştia utilizează


piscina în felul următor: clientul ia un coş (există 5 coşuri
disponibile), intră în cabina (există 3 cabine), se schimbă, pune
lucrurile în coş, eliberează cabina şi apoi intră în piscină. După ce iese
din piscină, clientul intră mai întâi în cabină, se îmbracă, eliberează
cabina şi coşul şi pleacă. Să se modeleze cu RP protocolul de utilizare
a piscinei şi să se deducă invarianţii reţelei.

117
Reţele Petri

117) Să se modeleze cu RP temporizate sistemul de producţie descris în


figura de mai jos :
AGV1
IA EA (pA)
M1 M3
pA

R1 M2
R2

AGV2 EB (pB)
IB
M4 M5
pB

Sistemul prelucrează două tipuri de piese pA şi pB preluate din


depozite de capacitate infinita IA şi IB. Piesele de tip A sunt încărcate
de către robotul R1 pe maşina M1 sau pe maşina M2, încărcarea
făcându-se prin alternanţă. Se presupune că maşina M1 este încărcată
prima. Piesele de tip B sunt încărcate de asemenea de către robotul R1
pe maşina M4. După prelucrare pe maşinile M1 respectiv M2, piesele
de tip A sunt transportate cu ajutorul căruciorului AGV1 (automated
guided vehicle) la maşina M3. Piesele de tip B sunt transportate de la
maşina M4 la maşina M5 cu ajutorul căruciorului AGV2, după ce
operaţia de prelucrare pe maşina M4 s-a efectuat. Încărcarea maşinilor
M3 şi M5 cu piese de tip A respectiv B se face de către robotul R2.
După prelucrarea pe maşinile M3 şi M5 piesele sunt depozitate în
buffere de capacitate infinită. Se presupune ca maşinile pot prelucra o
singură piesă la un moment dat, iar capacitatea de transport a
cărucioarelor este de o piesă. Se cunosc timpii de prelucrare pe
maşini: pe M1 de 2 unităţi de timp (u.t.), pe M2 de 3 u .t., pe M4 de 4
u.t., pe M3 de o unitate de timp şi pe M5 de 3 u.t. timp. Încărcarea
maşinilor se face într-o unitate de timp. De asemenea transportul
efectuat de fiecare cărucior durează o unitate de timp.

118
Reţele Petri

118) Să se construiască modelul RP T-temporizate pentru sistemul de


producţie descris în figura de mai jos.
Stoc1 (10)

M1 (2) d1 = 10

M2 (1) M2 (1) d2 = 4
(1)

Stoc2 (2)

M3 (1) d3 = 5

Stoc3 (5)

Stocul de intrare Stoc1 conţine 10 palete disponibile pe care sunt


încărcate piesele brute care intră în sistem în număr nelimitat.
Ansamblul piesă – paleta este transferat către maşina M1, care poate
prelucra două piese la un moment dat. După prelucrarea pe maşina
M1, piesele sunt încărcate alternativ pe cele două maşini M2, care pot
prelucra o singură piesa la un moment dat. După prelucrarea pe
maşinile M2, piesele sunt depuse în stocul 2 de capacitate 3 iar paletele
sunt eliberate şi aduse la intrarea sistemului în stocul 1. Robotul R
preia piesele din stocul 2 şi le încarcă pe maşina M3 care are
capacitatea 1. Transferul pieselor de pe maşina M3 în stocul 3 (de
capacitate 5) se face automat, urmând ca de aici piesele sa fie depuse
la ieşirea sistemului în loturi de câte 3. Duratele de prelucrare pe cele
trei maşini sunt specificate în figura.

119
Reţele Petri

119) Să se modeleze ca RP următoarea structură de celulă flexibilă (figura


de mai jos). Robotul R1 încarcă maşinile M1 şi M2 dintr-un stoc de
capacitate infinită iar robotul R2 descarcă maşinile respective într-un
buffer de capacitate 4. Când bufferul se umple el este golit automat.
Maşinile M1 şi M2 se pot defecta în timpul funcţionării, ceea ce
implică depozitarea piesei ca rebut într-un container de rebuturi. Se
presupune ca maşinile prelucrează o singură piesă la un moment dat.
Să se evidenţieze totodată numărul de piese rebut.
Intrare infinita

R1

M1 (1) M2 (1)

R2
Rebuturi

120) Să se modeleze cu RP sistemul de producţie reprezentat în figura de


mai jos, ştiind că intrarea sistemului este descrisă de o sursă infinită
iar ieşirea se face fără restricţii. Piesele sunt încărcate automat pe
maşina M1 care poate prelucra o singură piesă la un moment dat.
Robotul R1 descarcă maşina M1 şi încarcă bufferul (de capacitate 4) de
la intrarea maşinii M2. Piesele depuse în buffer sunt preluate automat
de către maşina M2. Capacitatea de prelucrare a maşinii M2 este de 2
piese. După prelucrarea pe maşina M2, piesele sunt descărcate, pe
rând, de pe maşina M2 şi transferate la ieşire.
R1

Iesire

M1 M2

120
Reţele Petri

121) Se consideră un proces de producţie condus prin etichete. Acest


sistem este compus din două posturi de producţie înseriate. Fiecare
post de producţie este compus la rândul său dintr-un sistem de
producţie şi un stoc de produse finite în aval. Piesele brute se găsesc în
stocul 0. Pentru ca o piesa din stocul i-1 să intre în sistemul de
producţie i trebuie să poarte eticheta i a acestui post (i = 1,2). Când
prelucrarea ei este terminată ea este depusă în stocul i, eticheta
rămânându-i deocamdată ataşată. Când o piesa este retrasă din stocul i
pentru a satisface o cerere din aval (de la un client exterior pentru
stocul 2, sau de la postul 2 - prin sosirea unei etichete a acestuia -
pentru stocul 1) se scoate de pe piesa eticheta i şi se adaugă eticheta
i+1 (respectiv eticheta “sigur” pentru stocul 2). O etichetă i, detaşată
de pe o piesă, este întoarsă la intrarea sistemului de producţie i.
Reprezentaţi acest sistem de producţie printr-o reţea Petri
T-temporizată, cu următoarele ipoteze:
a) pentru fiecare post de producţie i avem o poziţie pentru piese în
sistemul de producţie i şi o poziţie pentru piese în stocul i,
trecerea dintr-una în cealaltă făcându-se prin validarea unei
tranziţii ce corespunde prelucrării unei piese. O singură piesă este
tratată la un moment dat;
b) sunt trei etichete pentru postul 1 şi două etichete pentru postul 2;
c) nu s-au făcut încă cereri de piese din aval de sistem iar în stocul 0
sunt 3 piese brute;
d) tratarea unei piese are o durata de 10 unităţi de timp în sistemul de
producţie 1 şi 12 unităţi de timp în sistemul de producţie 2.
Fiecare buclă de întoarcere a unei etichete de la ieşirea la intrarea
unui sistem de producţie are o durata de 1 unitate de timp. Toate
celelalte operaţii au durată nulă.
sosirea
unei satisfacerea
piese unei cereri

stoc 0 sistem de stoc 1 sistem de stoc 2


productie productie
1 2

121
Reţele Petri

122) Să se modeleze prin intermediul reţelelor Petri autonome următorul


sistem:
pe masura ce sosesc semifabricate,
Nr total de palete = 10
paletele goale din WS1 se incarca
WS1 WS2
cereri
M1 M2

ST1 ST2

Iniţial toate paletele sunt la WS1, cu 5 deja incarcate cu semifabricate


în ST1.
Pe măsură ce WS2 primeşte cereri, le transmite către M1, care preia
semifabricatele de la ST1.
Fluxul tehnologic este următorul:
ST1 -> M1 -> M2 -> ST2 -> out -> ST1
Transferul pieselor se realizează numai pe palete (nr total = 10).
Dacă la WS1 nu mai este nici o paletă libera, WS2 respinge cereri (fără
a le memora).
Pe măsură ce paletele sunt eliberate în WS2, se întorc în WS1 şi se
reîncarcă cu semifabricate.

123) Fie sistemul descris de fluxul tehnologic din figura de mai jos.
Sistemul prelucrează două tipuri de piese A şi B preluate din stocuri
de capacitate infinită. Piesele de tip A sunt încărcate pe palete de câte
2 poziţii (capacitate 2 piese) iar piesele de tip B sunt încărcate pe
palete de câte 4 poziţii. Robotul R1 încarcă paletele cu piese de ambele
tipuri în buffere corespunzătoare, astfel: paletele cu piese de tip A sunt
încărcate în bufferul BA de capacitate 3 (palete) iar paletele cu piese
de tip B sunt încărcate în bufferul BB de capacitate 2 palete. Prin
urmare bufferul BA poate accepta maxim 6 piese A iar bufferul BB
poate accepta maxim 8 piese B. Robotul R2 descarcă cele două buffere
şi încarcă maşinile M1 şi M2 cu câte o piesa A respectiv câte o piesa B.
Maşinile M1 şi M2 pot prelucra o singură piesă la un moment dat. În
momentul în care o paletă devine liberă (au fost preluate toate piesele

122
Reţele Petri

de pe ea) ea este reciclată la intrarea sistemului în stocul


corespunzător. După prelucrarea pe maşinile M1 şi respectiv M2
piesele de tip A sunt depuse automat în bufferul B1 (de capacitate 3
piese) iar piesele de tip B sunt depozitate automat în bufferul B2 de
capacitate 4. Maşina M3 realizează operaţia de asamblare a unei piese
A şi a două piese B în ordinea B+A+B. Încărcarea maşinii M3 se face
automat din bufferele B1 şi B2. Piesele asamblate sunt depuse într-un
stoc de capacitate 3 care se goleşte automat când se umple.
Să se construiască reţeaua Petri a acestui sistem astfel încât ea să fie
mărginită.
FA FB

R1

BA BB

R2
M1 (1) M2 (1)

B1 B2

M3 B+A + B

123
Reţele Petri

124) Celula de fabricaţie din figură prelucrează două tipuri de piese p1 şi


p2 care se găsesc în număr nelimitat la intrarea în sistem. Piesele sunt
mai întâi prelucrate alternativ pe maşina M1 (de capacitate 1), prima
dată executându-se prelucrarea unei piese de tip p1. După terminarea
operaţiei, maşina M1 este descărcată de către robotul R1 care depune
piese de tip p1 într-un depozit Dp1 şi piese de tip p2 într-un depozit
Dp2. Cele două depozite Dp1 şi Dp2 au capacitate limitată şi anume 5
şi respectiv 6 poziţii (locuri). Robotul R2 încarcă maşina M2 cu piese
de tip p1 din depozitul Dp1 şi încarcă maşina M3 cu piese de tip p2 din
depozitul Dp2. Capacitatea maşinii M2 este de 2 piese, iar a maşinii M3
de o singură piesă. Piesele prelucrate pe maşina M2 sunt descărcate de
către robotul R2 la ieşirea sistemului. În urma operaţiei de prelucrare
pe maşina M3 piesele de tip p2 sunt descărcate automat pe căruciorul
AGV care poate transporta câte 2 piese la ieşirea sistemului.
Să se construiască modelul Petri temporizat al celulei, considerând că
fiecare operaţie de prelucrare durează d1 unităţi de timp (pe fiecare
maşină) şi fiecare operaţie de transfer (încărcare, descărcare,
transport) durează d2 unităţi de timp atât pentru roboţi cât şi pentru
cărucior.
P1 P2

M1

Dp1 Dp2

Cap5 R1 Cap6

Cap2 M2
R2 M3 Cap1

AGV

124
Reţele Petri

125) Fie două maşini identice M1 şi M2 de capacitate 1 care prelucrează


piese de un singur tip. Piesele sunt preluate dintr-un stoc infinit ce
conţine palete de câte 2 obiecte (cu 2 poziţii) şi încărcate pe maşini de
către robotul R1. Încărcarea maşinilor M1 şi M2 se face prin alternanţă,
prima maşină încărcată fiind M1. Robotul R2 preia piesele prelucrate
de pe maşinile M1 şi M2 şi le încarcă pe maşina M3. Capacitatea
maşinii M3 este de 2 piese.
Să se modeleze cu RP acest sistem ştiind că ieşirea este fără restricţii.
Să se găsească invarianţii de marcaj.

R1
M1 (1) M2 (1)

R2

M3 (2)

126) Să se modeleze ca RP marginită şi autonomă următorul sistem:


S2
B1
S1 S4

B2 S3

125
Reţele Petri

Serverul S1 procesează două tipuri de joburi (A şi B) în mod


alternativ: două joburi A şi unul B. Joburile de tip A sunt depuse în
B1, de capacitate 3, apoi trec pe serverul S2 şi apoi pe S4. Joburile de
tip B sunt depuse în B2 de capacitate 2 şi apoi în S3 şi respectiv S4.
Severul S4 are capacitate 2 şi joburile de tip B au totdeauna prioritate
la procesarea pe acesta: dacă există măcar un job B pe S3 (chiar şi
numai în curs de procesare), joburile A vor trebui să aştepte.
Sistemul astfel specificat este blocant ? Justificati raspunsul.

126
BIBLIOGRAFIE

1. Cassandras C., Lafortune S., - Introduction to Discrete Event


Systems, Kluwer Academic Publishers, Londra, septembrie 1999.
2. David R., Alla H.- Du Grafcet au Reseaux de Petri, Ed. Hermes,
Paris, 1997.
3. R. David and H. Alla - Discrete, Continuous, and Hybrid Petri Nets,
Springer, Heidelberg, ISBN: 978-3-540-22480-8, 2005
4. Stănescu A.M. & colectiv - Sisteme Dinamice cu Evenimente
Discrete, UPB, 1996

127