Sunteți pe pagina 1din 10

CAPITOLUL 6

Modelarea comportamentului unui sistem dinamic


cu evenimente discrete prin limbaje şi automate

6.1 Modele logice

Un sistem cu evenimente discrete este, în general, un sistem dinamic, cu un


spaţiu al stărilor de natură discretă, care evoluează în funcţie de apariţia unor
evenimente, la intervale neregulate şi de obicei necunoscute. Aplicaţiile
sistemelor cu evenimente discrete conduc, în general, la probleme de control
pentru a asigura ordonarea fluxului de evenimente şi, din acest motiv, sunt
necesare modele care să reflecte funcţionarea fizic posibilă a procesului.
Un proces dinamic cu evenimente discrete poate fi modelat ca un sistem
caracterizat de un spaţiu al stărilor discret, pentru care tranziţia de la o stare la
alta se produce la momente de timp impredictibile.
În figura 6.1 este reprezentată o traiectorie tipică de stare pentru un SDED.
Tranziţiile de la o stare la alta se produc sub acţiunea evenimentelor, care pot fi
etichetate ca elemente ale unui alfabet. Aceste etichete, de obicei, sunt asociate
fenomenului fizic care generează schimabarea de stare. De exemplu, într-un
protocol de comunicaţie, evenimentele tipice sunt "pachet primit", "pachet
trimis", în vreme ce într-un sistem de asamblare evenimentele tipice sunt
"maşina în stare de funcţionare", "maşină defectă", "componente de bază în
buffer", etc.
Aspectele comportamentale relevante ale procesului dinamic cu evenimente
discrete, care trebuie să fie surprinse în model, au condus la dezvoltarea unei
varietăţi de modele . De exemplu, o presupunere simplificatoare ar fi să se
ignore momentul de timp la care apar evenimentele, dacă este mai importantă
ordinea lor de apariţie. Modelele astfel obţinute se numesc modele logice
pentru SED. În aceste modele, traiectoria sistemului este specificată numai
prin listarea în ordine a evenimentelor care determină tranziţiile de stare. De
exemplu, pentru sistemul din fig 6.1, traiectoria parţială ca model logic este
redusă la şirul de evenimente …
2 Partea I -Modelare si analiza
Modelele logice ale proceselor cu evenimente discrete se utilizează pentru
studiul sistemelor în care dinamica este determinată de succesiunea
evenimentelor şi nu este influenţată de momentele de timp la care acestea se
produc, de manieră explicită .

stare

x3

 
x2
 
x1

 timp

t1 t2 t3 t4 t5 t6
Figura 6.1 Traiectoria de stare a unui SDED

Modelele logice pentru SDED sunt utilizate pentru studiul proprietăţilor


calitative ale acestor sisteme şi pentru rezolvarea problemei de conducere prin
supervizare.
Pentru obţinerea unui model logic al unui proces cu evenimente discrete,
mai întâi se specifică mulţimea secvenţelor posibile de evenimente (mulţimea
secvenţelor de evenimente fizic posibile). O secvenţă de evenimente poate fi
reprezentată prin secvenţa stărilor între care se fac tranziţiile determinate de
evenimentele din secvenţă. Specificarea mulţimii traiectoriilor poate fi
realizată prin specificarea tranziţiilor de stare (utilizând automate sau reţele
Petri), cu ajutorul ecuaţiilor algebrice (algebrele dioizilor) sau prin calcul logic
(utilizând specificaţii temporale logice).

6.2 Limbaje şi automate

Evenimentele într-un proces cu evenimente discrete se consideră că apar


spontan, asincron şi instantaneu, fiind etichetate cu literele unui alfabet.
Cap. 6 - Modelarea prin limbaje si automate 3
Fie , mulţimea finită de etichete asociate evenimentelor, şi * mulţimea
tuturor şirurilor finite de (etichete de) evenimente din , inclusiv şirul vid,
etichetat cu 1. Şirul vid joacă rolul de identitate la operaţia de concatenare a
şirurilor:
1s=s1=s.

Prin convenţie, un element din  se consideră a fi un eveniment şi un şir din


* un cuvânt.
Un şir
u = 12…k*,
se numeşte secvenţă parţială dacă mai pot urma şi alte evenimente după k.
Mulţimea tuturor traiectoriilor admisibile (fizic posibile) este deci o
submulţime L *.

Se spune despre L că este un limbaj peste alfabetul . Ca o consecinţă,


comportamentul unui SDED poate fi caracterizat de limbajul secvenţelor de
tranziţii.

Definiţia 6.1: Un şir u * este un prefix al unui şir v  * dacă există
şiruri w  *, pentru care este adevărată relaţia:
v = uw.

Definiţia 6.2: Se numeşte închidere prefix ( notată L ) a unui limbaj L 


*, limbajul format din toate prefixele şirurilor din L:
L  {u : pentru care  v  Σ  a.i. uv  L v  Σ  } .

Observaţie: Pentru orice limbaj L  *, este adevărată relaţia L L


.Conform definiţiei 1 L şi
u  L , u1  L , deci L  L ,
sau, cu alte cuvinte, orice şir este propriul său prefix.

Definiţia 6.3: Un limbaj L  *, se spune că este prefix închis dacă:


LL.

Se spune despre un limbaj prefix închis, că modelează un comportament


închis.

Exemplu
4 Partea I -Modelare si analiza
Limbajul
L = {1, , }

este un limbaj prefix închis, deoarece


L  L = {1, , }.

Limbajul
L= {1, , }

nu este prefix închis, deoarece


L = {1, , , , }  L.

Definiţia 6.4: Un automat G se defineşte printr-un cvintuplu:


G = (Q, , , q0, Qm)
unde:
Q = {q1, q2, …, qi,…} este mulţimea stărilor q;
este alfabetul sau mulţimea de evenimente care generează
tranziţiile de stare;
 Q  Q, este funcţia de tranziţie a stării;
q0 este starea iniţială;
Qm  Q este o mulţime de stări marker.
Stările marker sunt stări de interes, care pot fi stări finale, şi marcheză
încheierea unei secvenţe de taskuri.
Pentru o stare q şi un eveniment notaţia
 q)!

are semnificaţia "există tranziţie din starea q la apariţia evenimentului ", sau
cu alte cuvinte " funcţia  q) este definită".

Definiţia 6.5: O stare q Q este o stare accesibilă dacă:


 w*, astfel încât (w,q0)=q.
Mulţimea stărilor accesibile ale automatului G se notează Qac.

Definiţia 6.6: O stare q Q este o stare coaccesibilă dacă


v*, astfel încât (v,q)Qm.
Mulţimea stărilor coaccesibile ale automatului G se notează Qac,m.
Cap. 6 - Modelarea prin limbaje si automate 5
Exemplu
Limbajul cel mai simplu care modelează comportamentul unei maşini de
asamblare care ia o piesă dintr-un buffer (evenimentul ) şi o asamblează,
după care o depune în alt buffer (evenimentul ), peste alfabetul
 = {},

este dat de relaţia următoare:


L(G) = {1, , , …}.

Dacă se notează cu |w| numărul de apariţii ale evenimentului  în şirul w,


atunci limbajul L, care trebuie să reflecte faptul că o piesă este depusă în
bufferul de ieşire după ce a fost prelucrată, se mai poate scrie şi sub forma:
L(G) = {w*: pentru orice prefix u al lui w avem 1|u|-|u|0}.

Se vede imediat că în acest caz


L(G )  L(G ) .

Definiţia funcţiei de tranziţie a stării


 Q  Q ,

poate fi extinsă pe mulţimea cuvintelor peste , prin:


**Q  Q

după legea
*(1, q) = q
*s, q) =  *(s, q)),
dacă q' = *(s, q) şi  q')!, pentru   şi s * .

În termenii grafului automatului G, notaţia *(s, q)! înseamnă că există un


drum pe graf, care începe din starea q şi este etichetat prin elementelele
consecutive ale şirului s.
Definiţia 6.7: Limbajul generat de automatul G, L(G), este definit de relaţia:
L(G) = {w: w* a.î. (w,q0)!}.
Definiţia 6.8: Un automat G se numeşte generator al limbajului L, dacă
L(G) = L.
Limbajul generat de automatul G, notat L(G), este un limbaj prefix închis şi se
spune că G are un comportament închis, deoarece fiecare cuvânt (şir de
evenimente)
6 Partea I -Modelare si analiza

u L(G )

este un drum posibil (parţial) în L(G), deci


L(G )  L(G),

şi cum

L(G)  L(G ) ,

rezultă imediat că
L(G )  L(G )

Reprezentarea pe stare a generatorului G nu are în mod necesar un număr finit


de stări (de exemplu în cazul limbajelor generate de contori sau alte
dispozitive cu o infinitate de stări).
Generatorul G este un automat, care începând din q 0 execută tranziţii de stare
şi, deci, generează evenimente, urmărind graful de tranziţii. Automatul G
poate fi nedeterminist, în sensul că într-un nod fixat al grafului se poate
întâmpla să fie mai multe evenimente posibile, deci mai multe drumuri.

Definiţia 6.9: Limbajul marcat de automatul G în L(G) este:


Lm(G) = {w: w* a.î.(w,q0)Qm }.
Observaţie: Limbajul L(G) ar putea corespunde comportamentului fizic
posibil, în vreme ce limbajul marcat ar putea descrie
comportamentul corespunzător îndeplinirii unor obiective.

Limbajul generat de automatul G şi limbajul marcat sunt în relaţia:


Lm(G)  L(G).

Limbajul L(G) poate fi interpretat ca mulţimea tuturor secvenţelor posibile de


evenimente care pot apărea, în vreme ce
Lm(G)  L(G)

este o submulţime distinctă de secvenţe, care pot fi “marcate” sau înregistrate,


cu semnificaţia de taskuri încheiate (sau secvenţe de taskuri) de procesul fizic
pe care G îl modelează.
Stările marker sau marcate nu sunt în mod necesar stări finale, deoarece
acţiunile generatoare ale secvenţelor de evenimente care duc în aceste stări pot
continua după atingerea stărilor marcate.
Cap. 6 - Modelarea prin limbaje si automate 7
Pentru un generator G oarecare, este totdeauna adevărată afirmaţia că: dacă
v este un drum admisibil, atunci toate prefixele sale sunt şi ele drumuri
admisibile.
Generatorul G, în general, conţine în mulţimea stărilor Q numai stările care
pot fi atinse sau accesibile din starea q0 . Fie
Qac = {q:  w*, (w,q0)=q}
Qac,m = Qac  Qm
ac =(Qac).

Componenta accesibilă a automatului G se notează Ac(G) şi este definită prin:


Ac(G) = (Qac, , ac, q0,, Qac,m).

Definiţia 6.10: Un automat G este accesibil dacă G = Ac(G).

Definiţia 6.11: Un automat G este coaccesibil dacă orice şir din L(G) poate fi
completat până la un şir din Lm(G):
w  L(G)   s a. î. ws Lm(G).

Definiţia 6.12: Un automat G accesibil şi coaccesibil este numit trim.

Comportamentul închis al limbajului generat de automatul G se defineşte ca


fiind limbajul prefix închis:
L = L(G) = {w: w  * şi w, q0!}.

Deoarece
Lm(G)  L(G)

şi
L(G) = L(G) ,

rezultă imediat că:


Lm (G )  L(G ) .

Relaţia de mai sus arată că orice prefix al unui şir din L m(G) este un şir din
L(G), dar mai sunt în L(G) şiruri de evenimente care nu sunt prefixe de şiruri
din Lm(G), deci, aceste şiruri nu pot fi continuate până la atingerea unei stări
marcate. De obicei, procesele cu evenimente discrete fiind caracterizate de
8 Partea I -Modelare si analiza
ciclicitate, ar fi de dorit ca orice traiectorie parţială de evenimente să poată fi
continuată până la un task "încheiat".
Definiţia 6.13: Un generator G este non-blocant, dacă orice şir din L(G) poate
fi continuat până la un şir care duce într-o stare marcată:
L m (G )  L(G ) .

Observaţii
1. Proprietatea de “non-blocaj” (nonblocking) este diferită de proprietatea de
“a fi fără blocaje” a reţelelor Petri, care înseamnă că mulţimea de marcaje
accesibile nu conţine nici un marcaj “mort” - din care nu se mai poate continua
nici o evoluţie.
2. Pentru obţinerea unui comportament dorit, non-blocajul este o proprietate
mai "tare" decât proprietatea de "fără blocaje". Pe de alta parte, un sistem non-
blocant poate să aibă marcaje “moarte” - cu conditia ca acestea sa fie marcaje
finale.
Reamintim că un limbaj regulat se poate scrie utilizând operatorii de
concatenare între şiruri:
- s1 +s2 înseamnă şirul s1 sau şirul s2;
- s1s2 înseamnă şirul s1 urmat de şirul s2;
- s* este o notaţie pentru mulţimea
s* = (1+ s + ss+ sss + ssss+…).

Exemplu
Fie G1 generatorul limbajului L(G1) peste alfabetul
 = {},
descris de graful din figura 6.2:

Qm={q0}

q1
q0   


Figura 6.2 Automat generator
Cap. 6 - Modelarea prin limbaje si automate 9
Limbajul generat de automatul din figura 6.2 este:
L(G1) = ()*(1++*).

Limbajul marcat de G în L(G) este:


Lm(G1) = ()*,

de unde se vede imediat că:


L m (G 1 )  ( * ) * (1    * ) .

Deci, se poate trage concluzia că G1 este fără blocaje, deoarece


L(G1) = L m (G 1 ) .

Exemplu
Se consideră un generator G2 al limbajului L(G2) peste alfabetul
 = { , },

descris de graful din figura 6.3:

Qm={q0}

q0   
 
q1 q2

Figura 6.3 Automat generator

Limbajul generat de G2 este:


L(G2) = )*(1++*).

Limbajul marcat de G2 în L(G2) este:


Lm(G2) = ()*,

L m (G 2 )  (αα)(αβ*  () * (1  ) .
Se vede imediat că
L(G2)  L m (G 2 )
10 Partea I -Modelare si analiza
şi generatorul G2 este blocant, deoarece din starea q2 (în care se ajunge cu şirul
 sau cu
()*()

nu mai poate fi atinsă starea marcată q0.

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