Documente Academic
Documente Profesional
Documente Cultură
BREVIAR
Un sistem dinamic cu evenimente discrete (SDED) 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. 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 determină astfel elementele unui alfabet (mulţime
finită de simboluri) astfel încât ele îşi păstrează semnificaţia de fenomen calitativ
dependent de specificul aplicaţiei.
Astfel, din punct de vedere formal, un sistem cu evenimente discrete se defineşte
astfel:
Definiţie: Un SED este un sistem care evoluează generând spontan evenimente şi
poate fi definit ca un quadruplu:
G (Q, , , q0 )
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, definită astfel;
: Q .
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 însă de dimensiune, Q
este numărabilă;
2. Funcţia de tranziţie nu este definită întotdeauna pentru toate perechile din (Q
), ceea ce înseamnă că nu este obligatoriu ca din fiecare stare a sistemului să
poată fi generate toate evenimentele din ;
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.
În funcţie de modul în care tratează timpul, modelele SED pot fi împărţite în
următoarele categorii:
- modele autonome – 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 şi nu intervalul de timp dintre apariţia a două evenimente
succesive;
- 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 stocastice sau probabilistice – în care succesiunea evenimentelor este
dată prin intermediul unor distribuţii de probabilitate.
Problemă rezolvată
1. Să se modeleze ca SED procesul constând dintr-un server şi o coadă de aşteptare.
Capacitatea serverului este de 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, el preia câte un client din coada de
aşteptare, în ordinea sosirii acestora. Intrarea clienţilor în sistem ca şi durata
serviciului sunt aleatoare. Se presupune că durata de schimbare a clientului servit în
cazul în care coada este nevidă este nesemnificativă. Iniţial, serverul este liber.
Rezolvare:
Procesul propus va fi modelat ca SED autonom, întrucât nu exista nici o indicaţie
temporală.
1. 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 }
2. Definirea stării iniţiale: q0 = (0, 0) – server liber şi coada de aşteptare vidă.
3. 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.
4. Definirea funcţiei de tranziţie:
( s, l 1) daca s 1
((s, l ), e1 )
( s 1, l ) daca s 0
respectiv intrarea unui client în sistem incrementează lungimea cozii, dacă la momentul
intrării serverul era ocupat sau trece serverul în starea de “ocupat”, dacă era liber
( s, l 1) daca l 1
((s, l ), e2 )
( s 1, l ) daca l 0
respectiv ieşirea unui client din sistem 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.
Aceste informaţii vor însoţi cele două tipuri de evenimente stabilite anterior, în
maniera următoare: se presupun cunoscute duratele de timp dintre două sosiri succesive şi
de asemenea timpul de servire aferent fiecărui client.
A1 = 0.4; A2 = 1.2; A3 = 0.5; A4 = 0.7; A5 = 0.2; A6 = 0.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;…
În conformitate cu datele de mai sus, evoluţia numărului de clienţi din coada de aşteptare
este cea prezentată în figura următoare:
Q(t)
t
0 1 2 3 4 5 6 7 8 9
e6 = 3.3
Plecări
e4 = 2.4 e5 = 3.1 e9 = 4.9 e13 = 8.6 = T(6)
Ocuparea serverului este cea prezentată în figura de mai jos. După cum se poate observa,
serverul procesează clienţi o durată de timp de 7,7 unităţi de timp din totalul de 8,6 unităţi
de timp. Aceasta reprezintă o ocupare de 89,53%.
B(t)
t
0 1 2 3 4 5 6 7 8 9
e6 = 3.3
Plecări
e4 = 2.4 e5 = 3.1 e9 = 4.9 e13 = 8.6 = T(6)
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 reprezintă numărul de simboluri care compun
cuvântul.
Cuvântul vid: (corespunde evenimentului nul sau, mai precis, unui eveniment
neobservabil).
Limbaj vid: (reprezintă limbajul fără nici un cuvânt).
Evoluţia oricărui SED poate fi reprezentată complet printr-o pereche de limbaje (L, Lm)
cu următoarele proprietăţi:
L şi Lm sunt definite pe alfabetul de intrare;
L – reprezintă toate evoluţiile posibile ale SED şi se numeşte limbaj generat;
Lm – reprezintă toate evoluţiile dorite ale SED şi se numeşte limbaj marcat;
Lm L.
Operaţii pe limbaje
Fie L, L1, L2, limbaje definite peste alfabetul . Cele mai utilizate operaţii 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}
Închiderea iterativă (sau operatorul Kleene)
L = L*
L = *
i 0
Li , Lk+1 = Lk L, L0 = {ε}
stare marcată;
a
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 şi respectiv
cele marcate, sunt egale:
G1 echivalent cu G2 L(G1) = L(G2) şi Lm(G1) = Lm(G2)
Definiţie : Un automat finit nedeterminist AFN se defineşte ca un quintuplu
G = (Q, , , q0, Qm)
unde singura diferenţă faţă de AFD este dată de modul de definire al funcţiei de tranziţie,
respectiv :
: Q 2Q cu 2Q - mulţimea tuturor submulţimilor lui Q.
şi
(q, ) = q
(q, a) = {p| pQ}, 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:
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, *) ={q’ |q’ Q} - mulţimea tuturor stărilor în care se ajunge
pornind din q sub o secvenţă de .
Atunci funcţia de tranziţie a unui AFN- se defineşte astfel:
: Q ( { }) 2Q ;
(q, ) = G* (q)
Pentru un cuvânt de intrare s ( { })* si ,
(q, s ) G* [ ( (q, s), )] G *
q"
q ' q , s q '' q ',
Ca şi în cazul AFN, pentru orice AFN- se poate construi un observator determinist.
Orice expresie regulată (ER) poate fi reprezentată 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- corespunzător reuniunii r = r1 + r2 este
q1 f1
M1
f
q0 1
f0
q f
0 0
q2 M2 f2
q f
2 2
q1 M1 f1 q2 M2 f2
f q ff
1 2 20
M= (Q1 Q2 , 1 2 , , q1 , {f2})
(q, a) = 1 (q , a) dacă q Q1 \ {f1} si a 1 { }
(q, a) = 2 (q , a) dacă qQ2 şi a 2 { }
({f1}, ) = {q2}
q0 q1 M1 f1 f0
q f f
0 1 0
Teoremă: Dacă L este un limbaj acceptat de un automat finit determinist, atunci L poate
fi scris ca expresie regulată.
n
Observaţie: Rij reprezintă toate traiectoriile de la qi la qj fără să treacă printr-o stare cu
un număr mai mare decât n.
Definiţii:
R ijk R ikk 1 (R kkk1 )* R kkj1 R ijk 1
Nu se defineşte pentru orice caz care nu corespunde celor definite mai sus
1 0
1 2
0
1
q0 q1 q2
0
1 0
b
q2 q3 a,b
q0 q1
a a a
b
b
Figura 2.1
3. Să se proiecteze AFD peste alfabetul = {a, b}care acceptă şirurile “a”, “bb” şi
“aba”.
Rezolvare.
AFD cerut este ilustrat în figura 2.2.
a
b a,b
q02 q10 q20 q30
b a a,b
a
q5 q40
a
b b
Figura 2.2
Probleme propuse
4. Să se proiecteze un AFD peste alfabetul = {a, b}care acceptă cuvintele ce conţin
minim 3a şi nu se termina cu b.
6. Care este AFD care peste alfabetul = {a, b} acceptă şirurile cu număr par de “a”
şi nu conţin subşirul “bb”?
7. 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”.
8. 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”.
9. Să se construiască peste = {a, b} un AFD care acceptă şirurile ce conţin cel puţin
2 ”a” şi nu conţin subşirul “bb”.
10. 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”.
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”,.
12. Să se construiască AFD peste alfabetul = {1, 2, 3} care acceptă cuvintele în care
suma ultimelor două simboluri este 4.
13. 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” .
14. Să se proiecteze AFD peste alfabetul = {1, 2, 3}, care acceptă toate cuvintele care
se termină cu subşirul “123”.
15. 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”?
16. 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”?
17. 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.
18. 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.
19. 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 corecta conduce într-o stare marcata în automat.
20. Ce şiruri accepta automatele:
a) b b a,b
a a
b) b
a b
b a b
a a
?