Documente Academic
Documente Profesional
Documente Cultură
1 Automate finite
Definitia 1 Un automat finit determinist (sau AFD)este un 5-tuplu (Q, , , q0 , F ) unde
1. Q este o multime finita ale carei elemente se numesc stari,
2. este o multime finita numita alfabet,
3. : Q Q este functia de tranzitie,
4. q0 Q este starea de start (sau initiala) si
5. F Q este multimea starilor finale (sau de acceptare)
0 1
q1 q1 q2
q2 q1 q2
0 1
1
start q1 q2
1
1.1 Calculabilitate
A = (Q, , , q0 , F ).
Un cuvant este un sir finit de elemente w = a1 a2 . . . an cu ai pentru 1 i n.
Numarul n se numeste lungimea cuvantului w.
Multimea tuturor cuvintelor cu elemente din este .
este cuvantul cu lungimea 0.
Functia de tranzitie se poate extinde sa fie definita recursiv : Q Q astfel:
q daca w = ,
(q, w) =
((q, a), w0 ) daca w = aw0 .
1
0
0
2. Un automat care recunoaste toate cuvintele din {0, 1} care contin 001:
1 0 0,1
0
q q0 0 q00 1 q001
start
1
2
1.3 Operatii regulate
In general, un limbaj este o multime de cuvinte din .
Definitia 2 Operatiile regulate cu limbaje sunt:
Reuniune: A B = {w | w A sau w B}.
Produs: AB = {vw | v A, w B}.
Inchidere (Kleene): A = {w1 w2 . . . wn | w1 , w2 , . . . , wn A, n 0}. Observam ca
[
A = {} A AA AAA . . . = An .
n=0
3
2 Nedeterminism
Nedeterminismul este un concept foarte important n teoria computationala. Ideea princi-
pala este de a permite unui automat finit sa aleaga care sa fie starea (q, a) n care trece
atunci cand este ntr-o stare q si citeste un simbol a . Formal, acest lucru nseamna ca n
loc sa avem o functie care determina starea urmatoare (q, a), un automat nedeterminist
are o relatie pentru care (q, a) este o multime de stari urmatoare plauzibile.
Definitia formala a unui automat finit nedeterminist este
Definitia 3 Un automat finit nedeterminist (sau AFN) este on 5-tuplu (Q, , , q0 , F )
unde
1. Q este o multime finita ale carei elemente se numesc starile automatului,
2. este o multime finita numita alfabetul de intrare al automatului,
3. : Q 2Q este functia de tranzitie, unde := {} si 2Q este multimea
submultimilor lui Q,
4. q0 este o stare speciala numita starea de start (sau initiala) si
5. F Q este multimea starilor finale (sau de acceptare).
La fel ca automatele finite obisnuite (care sunt deterministe), si automatele finite nedeter-
ministe pot fi reprezentare cu diagrame de stari. De exemplu:
0,1 0,1
1 0, 1
start q1 q2 q3 q4
2.1 Calculabilitate
Presupunem ca A = (Q, , , q0 , F ) este un automat finit nedeterminist.
Si automatele finite nedeterministe calculeaza acceptand cuvinte.
Spunem ca automatul finit nedeterminist A accepta un cuvant w daca putem
scrie w = y1 y2 . . . yn cu y1 , y2 , . . . , yn si putem gasi starile q1 , q2 , . . . , qn Q astfel
ncat q1 (q0 , y1 ), q2 (q1 , y2 ), . . . , qn (qn1 , yn ) si qn F .
4
Multimea cuvintelor acceptate de un AFN N este un limbaj, L(N ).
Nedeterminismul poate fi considerat o forma de calcul paralel n care procese sau thread-uri
independente pot fi executate concurent. De exemplu, cand un AFN se afla n o stare q,
citeste simbolul a si (q, a) = {q1 , q2 , q3 }, automatul are de ales una din trei alternative. In
astfel de situatii, automatul nedeterminist creaza procese independente, cate unul pentru
fiecare alternativa. Aceste procese vor fi executate concurent.
Calculul nedeterminist poate fi vizualizat ca un arbore de stari posibile. Radacina ar-
borelui este starea de start iar ramurile arborelui reprezinta calcule alternative. Fiii unui
nod sunt starile alternative n care poate trece automatul cand citeste simbolul de intrare.
Automatul accepta cuvantul citit daca cel putin una din ramuri se termina cu o stare finala.
De exemplu, calculul efectuat de automatul nedeterminist N1 din Figura 1 cand citeste
cuvantul 010110 poate fi ilustrat astfel:
Ramurile ngrosate indica executii care se termina cu succes, ntr-o stare finala.
5
0,1
1 0,1 0,1
start q1 q2 q3 q4
mai are 3 simboluri de citit. In acel moment, daca simbolul de intrare este 1 automatul trece
n starea q2 si apoi foloseste starile q3 si q4 pentru a ,,verifica daca banuiala a fost corecta.
Daca vrem sa construim un automat finit determinist pentru limbajul A avem nevoie de
cel putin 8 stari. Automatul ilustrat mai jos este cel mai mic automat finit determinist care
recunoaste limbajul A.
0
0
1 0 1 1 0
1 0
0 1
q001 q101 q011 q111 1
1
1
a b c
q1 q2 q3
start
6
2. Pentru orice AFN N se poate construi un AFD M echivalent cu N .
Fie N = (Q, , , q0 , F ) un AFN cu n stari. Atunci Q are 2n submultimi. Fie Q0 multimea
tuturor submultimilor lui Q. In continuare explicam cum poate fi construit un AFD M
echivalent cu N .
Pentru nceput consideram cazul n care N nu contine -tranzitii. In acest caz automatul
finit determinist M = (Q0 , , 0 , {q0 }, F 0 ) poate fi definit astfel:
0 : Q Q, 0 (Q0 , a) = qQ0 (q, a) pentru toti Q0 Q si a },
S
F 0 = {Q Q0 | Q F 6= }.
Este usor de verificat ca L(M ) = L(N ), deci AFD-ul M este echivalent cu AFN-ul N .
Daca N contine -tranzitii atunci este util sa definim operatia E(Q0 )pentru fiecare
submultime Q0 a lui Q astfel: E(Q0 ) := Q0 {q Q | exista o secventa q 0 . . . q
0 0 0
de 1 sau mai multe -tranzitii de la o stare q Q la q}. Operatia E(Q ) se numeste
-nchiderea lui Q0 . Cu ajutorul acestei operatii putem defini automatul finit determinist
M = (Q0 , , 0 , E({q0 }), F 0 ) n felul urmator:
0 : Q Q, 0 (Q0 , a) = E(R) unde R = qQ0 (q, a) pentru toti Q0 Q si
S
a },
F 0 = {Q Q0 | Q F 6= }.
Si n acest caz se poate demonstra ca L(M ) = L(N ), deci AFD-ul M este echivalent cu
AFN-ul N .
3 Expresii regulate
In aritmetica putem folosi operatii aritmetice pentru a construi expresii precum
(5 + 3) 4.
Aceasta expresie are valoarea 32. Intr-un mod asemanator putem folosi operatiile regulate
pentru a contrui expresii care descriu limbaje. Expresiile construite n acest fel se numesc
expresii regulate. De exemplu, expresia
(0 1)0
este regulata si are ca valoare limbajul cuvintelor care ncep cu 0 sau 1 urmat de orice
numar de 0. Acest rezultat se obtine daca se analizeaza partile expresiei regulate. Mai ntai
7
Figure 4: Constructia unui automat care recunoaste limbajul A1 A2
8
Figure 6: Constructia unui automat care recunoaste limbajul A
9. (0 )1 = 01 1 .
10. (0 )(1 ) = {, 0, 1, 01}.
11. 1 = . Concatenarea multimii vide la orice limbaj produce multimea vida.
12. = {}.
9
3.1 Echivalenta cu automatele finite
Expresiile regulate si automatele finite sunt echivalente din punct de vedere al puterii de
descriere, deoarece:
1. orice limbaj acceptat de un automat finit este valoarea unei expresii regulate, si
2. orice limbaj care este valoarea unei expresii regulate este acceptat de un automat finit.
In continuare vom demonstra aceste doua afirmatii.
1. Daca un limbaj este descris de o expresie regulata atunci limbajul este
acceptat de catre un automat finit. Sa presupunem ca limbajul este descris de o expresie
regulata R. Vom a arata cum putem converti R ntr-un AFN. Distingem 6 cazuri.
1. Daca R = a pentru un a atunci L(R) = {a} = L(N ) unde N este AFN-ul cu
diagrama de stari
a
start
4. R = R1 R2 .
5. R = R1 R2
6. R = R1 .
In ultimele 3 cazuri folosim constructiile ilustrate n figurile 4, 5 si 6 care au fost folosite
pentru a demonstra ca limbajele regulate sunt nchise n raport cu operatiile regulate. Altfel
spus, construim un AFN pentru R din AFN-urile pentru R1 si R2 (sau doar R1 n cazul 6).
Exemplul 4 Expresia regulata (ab a) poate fi convertita n un AFN efectuand secventa
de cinci pasi ilustrata mai jos.
10
Exemplul 5 Expresia regulata (ab) aba poate fi convertita n un AFN efectuand secventa
de sase pasi ilustrata n Figura 7.
Starea de pornire are arcuri spre fiecare alta stare dar nu are arcuri care sa vina de la
alta stare.
Exista o singura stare finala n care vin arcuri de la toate celelalte stari dar din care
nu pleaca nici un arc. Cu exceptia starilor initiala si finala, exista un arc ntre orice
doua stari si deasemenea de la orice stare la ea nsasi.
11
Figure 7: Constructia unui automat finit nedeterminist pentru (a b) aba
12
Figure 8: Un automat finit nedeterminist generalizat (AFNG)
Se adauga o stare finala noua mpreuna cu arcuri cu eticheta de la toate starile finale
vechi la starea finala noua.
Daca exista mai multe arcuri de la o stare la alta, le nlocuim cu un singur arc a carui
eticheta este reuniunea etichetelor arcurilor nlocuite.
13
4 Limitari ale automatelor finite. Limbaje neregulate
Automatele finite deterministe au o putere limitata. Este important sa ne dam seama ce nu
pot face automatele finite deterministe.
Pentru nceput vom lua n considerare limbajul L = {0n 1n | b N}. Daca ncercam sa
gasim un AFD pentru L, ne vom da seama ca automatul trebuie sa retina cati 0 au fost
cititi pana la un moment dat. Deoarece numarul de 0 nu este limitat, automatul ar trebui sa
tina evidenta unui numar nelimitat de posibilitati. Dar acest lucru este imposibil deoarece
numarul de stari al unui AFD este finit.
In continuare vom descrie Lema de Pompare, un rezultat teoretic care ne ajuta sa definim
o metoda de demonstrare a faptului ca unele limbaje sunt neregulate.
2. |y| > 0.
3. |xy| p.
14
Distingem 2 cazuri. Primul caz este cel n care L nu contine cuvinte de lungime p. In
acest caz Lema de Pompare este evident adevarata deoarece toate cuvintele cu lungime mai
mare sau egala cu p satisfac orice conditii fiindca astfel de cuvinte nu exista. Al doilea caz
este cel mai interesant. Daca w = a1 a2 . . . an L are lungimea n p, atunci M trece prin
urmatoarea secventa de stari cand citeste cuvantul w:
a a a a ak+1 aj aj+1 a
q0 1 q1 2 q2 3 . . .
k n
qk . . . qj . . . qn
Demonstratie. Daca L ar fi regulat atunci ar exista p > 0 astfel ncat orice cuvant 0n 1n
cu lungimea 2n p se poate descompune n 0n 1n = xyz cu |y| > 0, |xy| < p si xy i z L
pentru toti i 0. Daca i = 0 atunci xz L, deci xz = 0m 1m pentru m 0. Daca i = 1
atunci xyz = 0m+r 1m+r L pentru un numar r > 0 deoarece |y| > 0. Acest lucru este
posibil doar daca x = 0m , y = 0r 1r si z = 0m . Insa n acest caz zx2 z = 0m+r 1n 0r 1m+r 6 L,
ceea ce contrazice Lema de Pompare. Deci L nu poate fi limbaj regulat.
Exercitii
1. Inversul oricarui cuvant w = a1 a2 . . . an este cuvantul wR = an . . . a2 a1 .
2. Sa se demonstreze ca daca A si B sunt limbaje regulate de cuvinte cu alfabetul ,
atunci si limbajele A B, A ai A B sunt regulate.
3. Sa se demonstreze ca urmatoarele limbaje nu sunt regulate. Pentru demonstrare se
poate folosi Lema de Pompare si faptul ca reuniunea, intersectia si complementul
limbajelor regulate sunt regulate.
(a) {0n 1m 0n | m, n 0}.
(b) {0m 1n | m 6= n}.
(c) {w {0, 1} | w nu este palindrom}. Daca A este un limbaj atunci inversul lui
A este limbajul AR = {wR | w A}. Sa se arate ca daca A este limbaj regulat
atunci si AR este limbaj regulat.
(d) {wtw | w, t {0, 1}+ }.
4. Fie Bn = {ak | k este un multiplu de n}. Sa se arate ca pentru orice n 1, limbajul
Bn este regulat.
15
Bibliografie
1. M. Sipser. Introduction to the Theory of Computation. Second Edition. Thomson
Course Technology. 2006.
16