Documente Academic
Documente Profesional
Documente Cultură
CURS10 BSA 3AR Limbaje Si Automate SDED
CURS10 BSA 3AR Limbaje Si Automate SDED
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)
(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
2. 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
3. Să se proiecteze un AFD peste alfabetul = {a, b}care acceptă cuvintele ce conţin
minim 3a şi nu se termina cu b.
5. Care este AFD care peste alfabetul = {a, b} acceptă şirurile cu număr par de “a”
şi nu conţin subşirul “bb”?
6. 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”.
7. 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”.
8. 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”.
9. 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”.
10. Să se proiecteze AFD care peste alfabetul = {a, b}acceptă cuvintele ce conţin
subşirul “aba” şi nu conţin subşirul “bb”,.
11. Să se construiască AFD peste alfabetul = {1, 2, 3} care acceptă cuvintele în care
suma ultimelor două simboluri este 4.
12. 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” .
13. Să se proiecteze AFD peste alfabetul = {1, 2, 3}, care acceptă toate cuvintele care
se termină cu subşirul “123”.
14. 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”?
15. 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”?
16. 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.
17. 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.
18. 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.
19. Ce şiruri accepta automatele:
a) b b a,b
a a
b) b
a b
b a b
a a
?