Sunteți pe pagina 1din 107

Prefat a

Cartea cont ine materia pentru student ii informaticieni din anul III,
nvat amant la distant a. Cont inutul cart ii este mpart it n cinci teme.
Fiecare tema este formata dintr-o prezentare teoretica, insistandu-se
pe clasicarea not iunilor introduse si mai put in pe demonstrarea tu-
turor teoremelor, dupa care urmeaza cate un set de exercit ii rezolvate
si propuse spre rezolvare.
Cu toate ca lipsesc demonstrat iile unor teoreme, cartea este utila
si student ilor din anul II de la nvat amant de la zi.
Sper ca munca depusa n redactarea acestui material sa e de folos
student ilor informaticieni.
Autorul
i
Cuprins
Prefat a
Tema 1. Limbaje si gramatici generative
1. Not iuni introductive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2. Gramatici generative si limbaje generate de gramatici . . . . . . . . 5
3. Exemple rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Tema 2. Automate nite si gramatici de tip 3
1. Automate nite. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2. Caracterizarea limbajelor regulate cu
ajutorul relat iilor de echivalet a. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3. Construct ia automatului minimal . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4. Automate nedeterministe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5. Limbaje regulate si limbaje de tip 3. . . . . . . . . . . . . . . . . . . . . . . . . 36
6. Exercit ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
ii
Tema 3. Limbaje independente de context si
automate pushdown nedeterministe
1. Automate pushdown nedeterministe . . . . . . . . . . . . . . . . . . . . . . . . 53
2. Exemple rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Tema 4. Forme normale. Arbori de derivare.
Teorema lui Ogden si aplicat ii.
Automate pushdown deterministe.
1. Forme normale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
2. Arbori de derivare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
3. Automate pushdown deterministe. . . . . . . . . . . . . . . . . . . . . . . . . . . 84
4. Exercit ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Tema 5. Familiile de limbje L
0
si L
1
.
1. Proprietat i de nchidere pentru framille L
0
si L
1
. . . . . . . . . . . . 89
2. Gramatici monotone si limbaje independente de context. . . . .92
3. Masini Turing si limbaje de tip 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4. Automate liniar marginite si limbaje de tip 1 . . . . . . . . . . . . . . 101
5. Exercit ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6. Bibliograe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
iii
Tema 1
Limbaje si gramatici
generative
1 Not iuni introductive
Prelucrarea informat iilor cu ajutorul calculatoarelor electronice
presupune lucrul cu siruri de caractere, de aceea este important de
studiat proprietat ile si modurile de generare a sirurilor de caractere.

In acest paragraf vom introduce not iunile de baza pentru limbaje for-
male si teoria automatelor.
Denit ia 1.1.1. O mult ime nita si nevida V se numeste alfabet.
Elementele lui V se numesc simboluri sau simboli.
Denit ia 1.1.2. Se numeste cuvant peste alfabetul V o aplicat ie
p : {1, 2, . . . , n} V . Numarul n se numeste lungimea cuvantului p
si se noteaza cu l(p) sau |p|.
Cuvantul p se noteaza cu p(1)p(2) . . . p(n). Mult imea cuvintelor
peste alfabetul V se noteaza cu V
+
.
Exemplul 1.1.3. Fie V = {a, b, c, d} si cuvantul p : {1, 2, 3} V
denit prin p(1) = a, p(2) = c, p(3) = d. Acest cuvant se scrie acd.
Fie u : {1, 2, 3, 4, 5} V denit prin u(1) = b, u(2) = a, u(3) = c,
u(4) = d si u(5) = a. Acest cuvant se scrie bacda.
1
Pe mult imea cuvintelor peste un alfabet se poate deni operat ia
de concatenare.
Denit ia 1.1.4. Fie p : {1, 2, . . . , n} V si
q : {1, 2, . . . , m} V . Atunci concatenarea cuvintelor p si q este
cuvantul p q : {1, 2, . . . , n +m} V denit prin
p q(j) =

p(j) daca i j n
q(j n) daca n + 1 j n +m
Concatenarea cuvintelor p si q se noteaza cu p q sau simplu pq.
Din denit ie urmeaza ca pq = p(1) . . . p(n)q(1) . . . q(m).
Vom nota cu V

= V
+
{}, unde este un element nou, V
+
pentru care extindem operat ia de concatenare p = p = p pentru
orice p V
+
si = . Vom deni l() = 0. Cuvantul se numeste
cuvant vid sau cuvant nul.
Observat ia 1.1.5. Operat ia de concatenare este o operat ie aso-
ciativa, adica: (pq)r = p(qr) p, q, r V

.
Observat ia 1.1.6. (V

, ) este monoid, se numeste monoidul liber


generat de V .
Observat ia 1.1.7. Aplicat ia l : V

N care asociaza unui


cuvant p V

lungimea sa l(p) este un homomorsm, adica l(pq) =


l(p) +l(q); lungimea unui cuvant p se mai noteaza si cu |p|.
Semigrupul (V

, ) se numeste monoidul liber peste alfabetul V . De


asemenea vom identica cuvintele de lungime unu cu simbolurile lui
V . Vom nota cu |V | numarul simbolurilor alfabetului V .
Lema 1.1.8. Numarul cuvintelor de lungime k peste alfabetul V
este egal cu |V |
k
.
Demonstrat ie. Fie n = |V |. Numarul cuvintelor de lungime 1
este egal cu n; numarul cuvintelor de lungime 0 este 1. Presupunem
proprietatea adevarata pentru cuvinte de lungime cel mult k 1 si o
demonstram pentru cuvinte de lungime k. Deci numarul cuvintelor de
2
lungime k 1 este n
k1
. Cuvintele de lungime k le putem obt ine din
cuvinte de lungime k 1 adaugand la sfarsit un simbol din V . Deci
din ecare cuvant de lungime k 1 obt inem n cuvinte de lungime k.
Deci numarul cuvintelor de lungime k este n
k1
n = n
k
.
Observat ia 1.1.9. Mult imea cuvintelor peste un alfabet V este
o mult ime numarabila, ca reuniune numarabila de mult imi nite.
V

= {}

k=1
{p | p V

, l(p) = k}.
Observat ia 1.1.10. Monoidul (V

, ) nu este comutativ.
De exemplu, daca luam V = {a, b} si cuvintele p = ab si q = bb,
avem p q = q p.
Denit ia 1.1.11. Cuvantul q este prex al cuvantului p daca
v V

, p = qv si este prex propriu daca v V


+
. Cuvantul q este
sux al cuvantului p daca u V

, p = uq si este sux propriu daca


u V
+
.
Lema 1.1.12. Orice aplicat ie : V S, unde S este un semi-
grup cu operat ia , se extinde n mod unic la un homomorsm de
semigrupuri : V
+
S.
Demonstrat ie. Fie p = i
1
. . . i
n
un cuvant oarecare din V
+
. Vom
deni (p) prin (i
1
. . . i
n
) = (i
1
) (i
2
) . . . (i
n
). Se verica
imediat ca aplicat ia astfel extinsa este un homomorsm de la V
+
la
S.
Sa demonstram unicitatea lui . Sa presupunem ca ar mai exista
un homomorsm : V
+
S cu (i) = (i), oricare ar i V . Sa
demonstram ca (p) = (p), oricare ar p V
+
. Vom demonstra
prin induct ie dupa lungimea cuvintelor. Pentru cuvinte de lungime 1,
propozit ia este adevarata. Presupunem propozit ia adevarata pentru
un cuvant de lungime cel mult k si o demonstram pentru cuvinte de
lungime k + 1. Fie p cu l(p) = k + 1. Atunci p = qi, cu l(q) = k si
l(i) = 1. Avem (p) = (q i) = (q) (i) = (q) (i) = (qi) =
(p).
3
Denit ia 1.1.13. Vom numi limbaj peste V orice submult ime a
lui V

.
Un limbaj ind o mult ime de cuvinte, putem utiliza operat iile cu
mult imi ca: reuniune, intersect ie si complementariere.
Limbajele ind mult imi specice ale caror elemente sunt cuvinte,
putem deni operat ii proprii acestor mult imi.
Denit ia 1.1.14. Operat ia de produs a limbajelor este denita
pe P(V

) P(V

) cu valori n P(V

), care ataseaza ecarei perechi


(L
1
, L
2
) un limbaj notat prin L
1
L
2
denit prin:
L
1
L
2
= {p | p = uv, u L
1
si v L
2
}
Produsul L
1
L
2
se mai noteaza simplu prin L
1
L
2
.
Prin denit ie avem L = L = pentru orice L P(V

).
Observat ia 1.1.15. Limbajul {} este element neutru,
deoarece se poate verica imediat ca:
{} L = L {} = L, L P(V

).
Observat ia 1.1.16. Se poate verica usor ca operat ia de produs a
doua limbaje este asociativa.
Din denit ia produsului de limbaje, se poate verica ca pentru
orice trei limbaje L
1
, L
2
si L
3
peste alfabetul V avem: (L
1
L
2
) L
3
=
L
1
(L
2
L
3
). Mult imea P(V

) nzestrata cu operat ia de produs este


un semigrup cu element neutru {}.
Denit ia 1.1.17. Puterea unui limbaj L se deneste inductiv
prin:
L
0
= {}
L
1
= L
L
n+1
= L
n
L, n N.
Vom nota cu L
+
=

n=1
L
n
si cu L

n=0
L
n
. Limbajul L

se numeste
iteratul limbajului L.
4
2 Gramatici generative si
limbaje generate de gramatici
Un program ntr-un limbaj de programare poate privit ca un
sir de caractere generat dupa niste reguli precizate, pornind de la
un alfabet. Generarea sirurilor de caractere se poate formaliza prin
introducerea not iunii de gramatica.
Denit ia 1.2.1. O gramatica este un 4-uplu G = (V
N
, V
T
, x
0
, P)
unde:
- V
N
este o mult ime nita si nevida, elementele sale se numesc
neterminali sau variabile;
- V
T
este o mult ime nita si nevida, elementele sale se numesc
terminali si V
N
V
T
= ;
- x
0
V
N
este un simbol special numit simbol init ial sau simbol de
start;
- e V = V
N
V
T
, atunci P este o mult ime nita si P V

V
N
V

.
Mult imea P se numeste mult imea regulilor de generare sau
mult imea product iilor gramaticii G. Vom nota perechea (u, v) P
prin u v. Se observa ca n orice regula u v cuvantul u cont ine
cel put in un simbol neterminal.
Vom deni o relat ie binara peste V

numita derivare directa, notata


cu
G
V

.
Denit ia 1.2.2. Vom spune ca perechea (, )
G
daca exista o
regula u v P si =
1
u
2
, =
1
v
2
.
Deci doua cuvinte si sunt n relat ie de derivare directa daca
se obt ine din prin nlocuirea membrului stang al unei reguli prin
membrul drept al regulii (adica u prin v). Daca (, )
G
, vom nota
aceasta prin
G
, care este mai sugestiva, se obt ine din prin
aplicarea unei reguli din G.

Inchiderea reexiva si tranzitiva a relat iei
5

G
o vom nota cu

G
si o vom numi relat ia de derivare. Deci vom spune
ca

G
daca are loc una din urmatoarele situat ii:
i) = (nchiderea reexiva);
ii) exista cuvintele u
1
, . . . , u
n
V

astfel ncat = u
1
, = u
n
si
u
i

G
u
i+1
, n 2, i 1, n 1.
Denit ia 1.2.3. O derivare n gramatica G este un sir de cuvinte
u
1
, . . . , u
n+1
, u
j
V

, 1 j n+1, astfel ncat u


i

G
u
i+1
, 1 i n.
Deci o derivare este un sir de cuvinte care se obt ine unul din altul
prin aplicarea unei reguli din G, numarul n din denit ia de mai sus
se numeste lungimea derivarii. Deci lungimea derivarii este numarul
regulilor care se aplica pentru a obt ine u
n+1
din u
1
. Vom considera ca

printr-o derivare de lungime 0, adica nu se aplica nici o regula


din G.
Atunci cand nu exista posibilitatea de confuzie, vom renunt a la
indicele G din notat iile
G
si

G
si vom folosi si

.
Denit ia 1.2.4. Limbajul generat de gramatica G, notat cu L(G),
este denit prin:
L(G) = {p | p V

T
, x
0

G
p}.
Remarcam ca limbajul generat de gramatica G este format din toate
cuvintele peste V
T
(alfabetul terminalilor) care se obt in din simbolul
de start aplicand reguli din G. Aici se vede rolul special care l are x
0
;
toate derivarile care ne dau cuvinte din L(G) ncep cu simbolul x
0
.
Denit ia 1.2.6. Doua gramatici G
1
= (V
N
1
, V
T
1
, x
01
, P
1
) si
G
2
= (V
N
2
, V
T
2
, x
02
, P
2
) se numesc echivalente daca L(G
1
) = L(G
2
).
Deci gramaticile sunt echivalente daca genereaza acelasi limbaj.
Vom considera o cale simpla de a obt ine gramatici echivalente.
Vom da o metoda de construire a gramaticilor echivalente.
Data o gramatica G = (V
N
, V
T
, x
0
, P) construim gramatici G

=
(V

N
, V
T
, x

0
, P

) unde V

N
= {x

| x V
N
} iar P

se obt ine nlocuind n


ecare regula din P simbolii x cu x

.
6
Se poate arata ca cele doua gramatici sunt echivalente.
Observat ia
1) Din cele de mai sus rezulta ca nu conteaza cum notam terminalii,
conteaza numai forma regulilor.
2) Daca lucram cu doua sau mai multe gramatici si ne intereseaza
limbajele generate de gramatici putem considera ca gramaticile
au mult imile simbolilor neterminale disjuncte.
Fie G = (V
N
, V
T
, x
0
, P) o gramatica. Vom construi o gramatica G

echivalenta cu G. Consideram mult imea V

N
= {x

| x V
N
}. Con-
sideram biject ia : V
N
V

N
denita prin (x) = x

. Vom extinde
biject ia la V prin:
h(y) =

(y) daca y V
N
y daca y V
T
Aplicat ia considerata h : V V

se poate prelungi n mod unic,


conform lemei 1.1.12., la un homomorsm de semigrupuri prin h(pi) =
h(p)h(i) de la V

la V

, V

= V
T
V

N
. Cuvantul h(p) se obt ine
din cuvantul p prin nlocuirea simbolurilor x din V
N
prin x

din V

N
si simbolii terminali raman neafectat i. Consideram gramatica G

=
(V

N
, V
T
, x

0
, P

), unde P

= {h(u) h(v) | u v P}.


Vom arata ca gramaticile G si G

sunt echivalente, adica L(G) =


L(G

). Pentru aceasta vom demonstra ca u


G
v daca si numai daca
h(u)
G

h(v).

Intr-adevar, daca u
G
v, avem ca u = u
1
u
2
, v = u
1
u
2
si
P. Din P avem ca h() h() P

si din h(u) =
h(u
1
)h()h(u
2
) si h(v) = h(u
1
)h()h(u
2
) rezulta ca h(u)
G

h(v).
Invers, din h(u)
G

h(v) avem ca h(u) = z


1
h()z
2
, h(v) =
z
1
h()z
2
, h() h() P

, z
1
, z
2
(V

N
V
T
)

. Exista t
1
si t
2
cu
z
1
= h(t
1
), z
2
= h(t
2
); t
1
si t
2
se obt in din z
1
si z
2
prin nlocuirea sim-
bolilor x

din V

N
prin simboli x din V
N
. Din h(u) = h(t
1
)h()h(t
2
) =
7
h(t
1
t
2
), h(v) = h(t
1
)h()h(t
2
) = h(t
1
t
2
) si h() h() P

, avem
ca u = t
1
t
2
, v = t
1
t
2
si P, deci u
G
v.
Aplicand la ecare pas rezultatul de mai sus, avem derivarea
x
0

G
u
1

G
. . .
G
u
n
daca si numai daca
h(x
0
)
G

h(u
1
)
G

. . .
G

h(u
n
)
Daca u
n
V

T
avem h(u
n
) = u
n
si x
0

G
u
n
daca si numai daca
x

u
n
, deci L(G) = L(G

).
Din cele de mai sus, rezulta ca putem schimba simbolurile netermi-
nale ale unei gramatici (prin punerea de accente ca mai sus sau n alt
mod, schimband corespunzator si n regulile gramaticii) fara ca limba-
jul sa se schimbe. Aceasta ne permite ca atunci cand lucram cu doua
gramatici G
1
= (V
N
1
, V
T
1
, x
01
, P
1
) si G
2
= (V
N
2
, V
T
2
, x
02
, P
2
) si suntem
interesat i de limbajele generate, putem presupune ca V
N
1
V
N
2
= .
Dupa forma regulilor gramaticilor, gramaticile se pot mpart i n di-
verse clase. Vom da mai jos cea mai cunoscuta ierarhie a gramaticilor,
cunoscuta sub numele de ierarhia lui Chomsky.
Denit ia 1.2.7. 1) Gramaticile de tip 0 sunt acele gramatici care
nu au restrict ii asupra regulilor lor, altele decat cele prezentate n
denit ia gramaticii.
2) Gramaticile de tip 1 sunt acele gramatici care au regulile de
forma uxv urv, unde u, v V

, x V
N
, r V
+
sau de forma
x
0
, caz n care simbolul init ial x
0
nu apare n partea dreapta a
vreunei reguli.
3) Gramaticile de tip 2 sunt acele gramatici care au regulile de
forma x r, unde x V
N
si r V

.
4) Gramaticile de tip 3 sunt acele gramatici care au regulile de
forma x px

sau x p, unde x, x

V
N
si p V

T
.
Observat ia 1.2.8.

In gramaticile de tip 1, regulile de forma
uxv urv descriu generarea cuvantului r din simbolul neterminal
8
x, dar numai n contextul u v (x si r sunt precedati de u si urmat i
de v), de aceea acestea se mai numesc gramatici dependente de context
(sensibile la context). Pentru gramaticile de tip 2, regulile de generare
sunt de forma x r, deci genereaza cuvantul r din neterminalul x
indiferent de context, de aceea aceste gramatici se numesc si gramatici
independente de context.
Denit ia 1.2.9. Un limbaj L este de tipul j daca exista o gra-
matica G de tipul j astfel ncat L(G) = L, unde j {0, 1, 2, 3}.
Vom nota cu L
j
clasa limbajelor de tipul j, unde j {0, 1, 2, 3}.
Cu L
j
(V ) vom nota clasa limbajelor de tipul j peste alfabetul V , unde
j {0, 1, 2, 3}.
Observat ia 1.2.10. Au loc incluziunile evidente L
1
L
0
si
L
3
L
2
, deoarece orice gramatica de tipul 1 este si de tip 0 si orice
gramatica de tip 3 este si de tip 2.
Vom demonstra ca are loc si incluziunea L
2
L
1
, care nu este
evidenta. De asemenea, vom arata mai tarziu ca incluziunile L
3

L
2
L
1
L
0
sunt de fapt incluziuni stricte.
Teorema 1.2.11. (Teorema de localizare) Fie G = (V
N
, V
T
, x
0
, P),
o gramatica de tipul 2 si derivarea y
1
. . . y
n

G
. Atunci se poate
scrie sub forma
1
. . .
n
astfel ncat avem y
j

j
, 1 j n.
Demonstrat ie. Vom proceda prin induct ie dupa lungimea de-
rivarii y
1
. . . y
n

G
. Fie aceasta lungime k.
Pentru k = 0 armat ia teoremei este evident adevarata luand

j
= y
j
, 1 j n.
Sa presupunem armat ia teoremei adevarata pentru derivari de
lungime cel mult k 1 si e y
1
. . . y
n

G
o derivare de lungime k.
Vom pune n evident a ultimul pas al derivarii; avem
y
1
. . . y
n

G
u
G
.
Derivarea y
1
. . . y
n

G
u are lungimea k1 si pe baza ipotezei inductive,
9
u are forma u = u
1
. . . u
n
si y
j

G
u
j
, 1 j n.

In ultimul pas al
derivarii de lungime k, se obt ine din u prin aplicarea unei reguli de
forma x r, simbolul x al regulii x r apart ine lui u, deci exista
un l astfel ncat u
l
= u

l
xu

l
, 1 l n. Atunci se descompune n

1
. . .
n
cu

j
=

u
j
daca j = l
u

l
ru

l
daca j = l
Astfel avem y
j

G
u
j
=
j
, 1 j n, j = l si y
l

G
u

l
xu

l

G
u

l
ru

l
=

l
, deci y
j

j
, 1 j n.
Observat ia 1.2.12. Din demonstrat ia teoremei se observa ca
lungimea derivarilor y
j

j
, 1 j n, este mai mica sau cel mult
egala cu lungimea derivarii y
1
. . . y
n

G
.
Teorema Pentru orice gramatica G = (V
N
, V
T
, x
0
, P) de tipul 2
exista o gramatica G, de tipul 2 care nu are reguli de forma x si
pentru care avem L(G
1
) = L(G) \ {}.
Denit ia Daca gramatica G nu are reguli de forma x atunci
L(G) si putem lua G
1
= G si L(G
1
) = L(G) = L(G) \ {}.
Daca gramatica G cont ine reguli de forma x , vom considera
urmatorul sir de mult imi:
U
1
= {x | x P}
U
n+1
= U
n
{x | x r P, r U

n
}, n 1.
Sirul de mult imi are proprietat ile:
(1) U
1
U
2
. . . U
n
U
n+1
. . . V
N
.
(2) Deoarece V
N
este nita rezulta ca exista un k astfel ca U
k
= U
k+1
.
(3) Se poate arata prin induct ie dupa j ca U
k
= U
k+j
, j 1.
(4) Se poate demonstra ca, x U
k
daca si numai daca x

G
.
Construct ia gramaticii G
1
.
G
1
= (V
N
, V
T
, x
0
, P
1
), unde P
1
se obt ine din P n modul urmator:
pentru ecare regula din P, x r, cu r = se punn P
1
toate regulile
10
de forma x r
1
si r
1
se obt ine din r prin stergerea a 0, 1, . . . simboli
din U
k
.
Se poate arata ca L(G
1
) = L(G) \ {}.
Teorema 1.2.14. Fie G = (V
N
, V
T
, x
0
, P) o gramatica de tip 2.
Daca L(G), atunci exista o gramatica G

de tipul 2, echivalenta
cu G care are ca unica regula cu n partea dreapta, regula x

0
,
unde x

0
este simbolul de start al gramaticii G

si x

0
nu apare n partea
dreapta a vreunei reguli din G

.
Demonstrat ie. Consideram gramatica G

= (V
N
{x

0
}, V
T
, x

0
,
P
1
{x

0
x
0
, x

0
}), unde x

0
V
N
si P
1
se obt ine din P ca n
teorema precedenta. Sa demonstram ca L(G) = L(G

).
Incluziunea L(G) L(G

). Fie p L(G); exista atunci derivarea


x
0

G
p. Daca p = , atunci n G

avem regula x

0
P

si derivarea
x

0

G

, deci p L(G

). Daca p = , atunci p L(G)\{} L(G


1
)
L(G

), deoarece regulile din G


1
le avem si n G

si avem si regula
x

0
x
0
, care ne permite ca oricarei derivari de forma x
0

G
1
sa-i
corespunda x

0

G

x
0

. Gramatica G
1
este gramatica din teorema
precedenta. Deci si n cazul p = avem p L(G

).
Sa demonstram acum incluziunea inversa, adica L(G

) L(G).
Fie p L(G

); deci exista derivarea x

p. Prima regula care se


aplica n aceasta derivare poate x

0
sau x

0
x
0
. Daca prima
regula care se aplica este x

0
, atunci p = L(G). Daca prima
regula care se aplica este x

0
x
0
, atunci derivarea este de forma
x

0

G

x
0

p, dar n derivarea x
0

p se aplica numai reguli din G


1
si deci avem x
0

G
1
p, p L(G
1
) L(G).

In ambele situat ii avem
p L(G) ceea ce demonstreaza incluziunea L(G

) L(G).
Daca L(G), atunci consideram G

= (V
N
{x

0
}, V
T
, x

0
, P
1

{x

0
x
0
}) si avem L(G

) = L(G) si G

este o gramatica fara reguli


cu n partea dreapta. Se demonstreaza imediat ca L(G) = L(G

).
Consecint a 1.2.15. Din teorema precedenta rezulta ca L
2
L
1
.
11

Intr-adevar, orice limbaj L L


2
poate generat de o gramatica G

de tipul celei din teorema precedenta care este si de tip 1, deci L L


1
.
Teorema 1.2.16. Fiecare din familiile L
j
cu 0 j 3 cont ine
toate limbajele nite.
Demonstrat ie. Limbajul vid este generat de o gramatica de
forma G = ({x, y}, V
T
, x, {x y}) care este de tip j cu j {0, 1, 2, 3}.
Fie L = {p
1
, . . . , p
n
} un limbaj nit si e V
T
= {i
1
, . . . , i
m
}. L este
generat de gramatica
G = ({x
0
}, {i
1
, . . . , i
m
}, x
0
, {x
0
p
1
, . . . , x
0
p
n
}),
care este o gramatica de tip j cu j {0, 1, 2, 3}.
Teorema 1.2.17. Fiecare din familiile L
j
cu j {0, 1, 2, 3} este
nchisa la operat ia de reuniune.
Demonstrat ie. Va trebui sa demonstram ca daca L
1
, L
2
L
j
,
0 j 3, atunci si L
1
L
2
L
j
. Fie j xat cu j {0, 1, 2, 3}, atunci
exista gramaticile G
k
= (V
N
k
, V
T
k
, x
0k
, P
k
), k {1, 2}, de tipul j astfel
ncat
L
1
= L(G
1
) si L
2
= L(G
2
). Putem presupune ca V
N
1
V
N
2
= .
Consideram gramatica
G = (V
N
1
V
N
2
{x
0
}, V
T
1
V
T
2
, x
0
, P
1
P
2
{x
0
x
01
, x
0
x
02
}),
unde x
0
V
N
1
V
N
2
. Gramatica G este de acelasi tip cu gramaticile
G
1
si G
2
deoarece regulile x
0
x
01
si x
0
x
02
nu schimba tipul
gramaticii.
Vom demonstra ca L(G) = L
1
L
2
.
Fie p L(G); rezulta ca exista derivarea x
0

G
p. Prima regula
aplicata n aceasta derivare este x
0
x
01
sau x
0
x
02
, deci derivarea
x
0

G
p este de forma x
0

G
x
01

G
p sau de forma x
0

G
x
02

G
p.

In
derivarea x
01

G
p se aplica numai reguli din G
1
deoarece x
01
V
N
1
si
V
N
1
V
N
2
= , deci putem scrie x
01

G
1
p si p L(G
1
) = L
1
. Analog,
12
n cazul x
02

G
p derivarea revine la x
02

G
2
p si p L(G
2
) = L
2
. Deci
n ambele cazuri p L
1
L
2
.
Invers, e p L
1
L
2
. Din p L
1
L
2
rezulta ca p L
1
sau
p L
2
. Daca p L
1
= L(G
1
) rezulta ca exista derivarea x
01

G
1
p
si atunci avem x
0

G
x
01

G
p si p L(G).

In mod analog, pentru
p L
2
= L(G
2
), avem ca p L(G).
Exemple rezolvate
1) Se da gramatica G = ({x
0
}, {a, b}, x
0
, {x
0
ab, x
0
ax
0
b}). Sa
se arate ca L(G) = {a
n
b
n
| n 1}.
Rezolvare: Conform denit iei limbajului generat avem ca L(G) =
{p | pGV

T
x
0

G
p}, deci sunt toate cuvintele din V

T
care se obt in din
x
0
prin derivari in G. Pentru a demonstra egalitatea din enunt , trebuie
sa demonstram dubla incluziune.
{a
n
b
n
| n 1} L(G).
Pentru n = 1 avem: x
0

G
ab, deci ab L(G).
Pentru n = 2 avem: x
0

G
ax
0
b aabb, deci a
2
b
2
L(G).
Pentru n 3 avem: x
0

G
ax
0
b

G
. . .

G
a
n1
x
0
b
n1

G
a
n
b
n
, deci
a
n
b
n
L(G).
Sa demonstram ca L(G) {a
n
b
n
| n 1}.
Fie p L(G). Din denit ia lui L(G) rezulta ca exista derivarea
x
0

G
p si p V

T
.
Daca la primul pas al derivarii se aplica regula x
0
ab, atunci
avem x
0

G
ab si p = ab {a
n
b
n
| n 1}. Alta posibilitate este sa
aplicam la nceput regula x
0
ax
0
b de ori si apoi regula x
0
ab
ca sa eliminam neterminalul x
0
, atunci avem:
x

G
ax
0
b

G
. . .

G
a

x
0
b

si a
+1
b
+1
G{a
n
b
n
| n 1}.
Acestea ind regulile posibilitat ilor avem L(G) {a
n
b
n
| n 1}.
13
2. Se da gramatica G = ({x
0
, x}), {a, b}, x
0
, P) cu P dat prin
1) x
0
ax
0
.
2) x
0
ax.
3) x bx.
4) x b.
Sa se arate ca L(G) = {a
n
b
m
/n, m 1}.
Rezolvare: Incluziunea .
Pentru n = 1, m = 1,, avem x
0

G
ax
G
ab. Deci ab L(G).
Pentru n si m arbitrari se aplica regula 1 de n 1 ori, dupa care se
aplica regula 2 si apoi se aplica regula 3 de m1 ori si la sfarsit regula
4.
X
0

G
ax
0

G
. . .
G
a
n1
x
0

G
a
n
x
G
a
n
bx
G
. . .
G
a
n
b
m1
x
G
a
n
b
m
.
Deci a
n
b
m
L(G).
Sa demonstram acum ca L(G) {a
n
b
m
/n, m 1} Fie p L(G);
atunci avem x
0

G
p si p {a, b}

.
Sa analizam cum poate derivarea. La nceput trebuie sa se aplice
regulile 1) sau 2) dupa care trebuie sa se aplice 3) si n nal regula 4).
Deci putem considera ca se aplica regula 1) de l ori, cu l 0 (daca
l = 0 regula 1) nu se aplica) dupa care obligatoriu se aplica regula 2)
ca sa eliminam x
0
. Aplicarea regulei 2) ne genereaza neterminalul x,
deci mai departe se pot aplica regulile 3) de k ori cu k 0 (daca k = 0
regula 3) nu se aplica) si apoi regula 4) pentru a elimina neterminalul
x. Derivarea are forma:
x
0

G
ax
0
. . .
G
a
l
x
0

G
a
l+1
x a
l+1
bx . . .
G
a
l+1
b
k
x a
l+1
b
k+1
.
si avem a
l+1
b
k+1
{a
n
b
m
|n, m 1}.
3. Fie gramatica G = ({x
0
, x}, {a, b, c}, x
0
, P) cu P dat prin:
14
1. x
0
ax
0
xc
2. x
0
abc
3. cx xc
4. bx bb
Sa se arate ca L(G) = {a
n
b
n
c
n
|n 1}.
Rezolvare. Sa demonstram ntai ca {a
n
b
n
c
n
|n 1} L(G).
Pentru n = 1. Din regula 2) avem x
0
abc, deci abc L(G).
Pentru n = 2. Aplicam ntai regula 1) si apoi regula 2) si apoi
regulile 3) si 4). Avem:
x
0
ax
0
xc a
2
bcxc a
2
bxc
2
a
2
b
2
c
2
.
Pentru n > 2. Vom aplica regula 1) de (n 1) ori si apoi regula 2
si obt inem:
x
0
ax
0
xc

a
n1
x
0
(xc)
n1
a
n
bc(xc)
n1
.
Mai departe aplicam regula 3) ncat sa comutam tot i x cu c si apoi
aplicam de (n 1) n regula 4). Avem:
x
0

G
a
n
bc(xc)
n1

G
a
n
bx
n1
c
n

G
a
n
b
n
c
n
.
Acum sa demonstram ca L(G) {a
n
b
n
c
n
|n 1}.
Fie p L(G). Atunci avem x
0

G
p si p {a, b, c}

. Derivarea
x
0

G
p poate ncepe cu regula 2) sau cu regula 1). Daca ncepe cu
regula 2) avem x
0

G
abc si abc {a
n
b
n
c
n
|n 1}. Daca se aplica la
nceput regula 1) de l ori dupa care trebuie sa aplicam regula 2) sa
eliminam x
0
.
Avem: x
0

a
l
x
0
(xc)
l

G
a
l+1
bc(xc)
l
.
Mai departe trebuie sa eliminam tot i neterminalii x. Acest lucru
se face prin comutarea neterminalilor x cu c si apoi se aplica reg-
ula 4). Comutarea x cu c se poate face cate un x si apoi aplicam
regula 4), efectul este acelasi. Acestea sunt singurele posibilitat i de
derivare. Deci obt inem x
0

G
a
l+1
bc(xc)
l

a
l+1
b
l+1
c
l+1
, a
l+1
b
l+1
c
l+1

{a
n
b
n
c
n
|n 1} si prin urmare.
4. Fie gramatica G = ({x
0
, x
1
, x
2
}, {a, b, c}, x
0
P) cu P dat prin:
15
1. x
0
abc
2. x
0
ax
1
bc
3. x
1
b bx
1
4. x
1
c x
2
bcc
5. bx
2
x
2
b
6. ax
2
aax
1
7. ax
2
aa
Sa se arate ca L(G) = {a
n
b
n
c
n
|n 1}.
Sa demonstram ca {a
n
b
n
c
n
|n 1} L(G).
Pentru n=1. Aplicand regula 1) avem x
0
abc, deci abc L(G).
Pentru n=2. Aplicam ntai regula 2) si apoi 3), 4), 5) si 7) avem
x
0

G
ax
1
bc
G
abx
1
c
G
abx
2
bcc
G
ax
2
bbcc
G
a
2
b
2
c
2
, deci a
2
b
2
L(G).
Vom demonstra ca daca avem un cuvant
() a
j
x
1
b
j
c
j
I
a
j+1
b
j+1
c
j+1

II a
j+1
x
1
b
j+1
c
j+1
Sa analizam posibilitat ile de derivare din ajx
1
b
j
c
j
. Se poate analiza
numai regula 3) de j ori.
a
j
x
1
b
j
c
j

a
j
b
j
x
1
c
j
.
Mai departe se poate aplica regula 4) si apoi regula 5) de j ori si
acestea sunt singurile reguli care se pot aplica. Avem:
a
j
x
1
b
j
c
j
Ca
j
b
j
x
1
c
j
a
j
b
j
x
2
bc
j+1

a
j
x
2
b
j+1
c
j+1
.
Acum avem doua posibilitat i. Putem aplica sau regula 6) sau
regula 7).
a
j
x
2
b
j+1
c
j+1
I
a
j+1
b
j+1
c
j+1

II a
j+1
x
1
b
j+1
c
j+1
16
Acum sa aratam ca pentru n 3, a
n
b
n
c
n
L(G). x
0
ax
1
bc, dar
ax
1
bc este de forma a
j
x
1
b
j
c
j
cu j = 1. Vom aplica relat ia (*) varianta
II de (n 2) ori, la ecare aplicare creste exponentul lui a, b si c cu o
unitate si aplicam I deci obt inem:
x
0

G
ax
1
bc
II
a
n1
x
1
b
n1
c
n1
I
a
n
b
n
c
n
.
deci a
n
b
n
c
n
L(G).
Sa demonstram ca L(G) {a
n
b
n
c
n
/n 1}.
Fie p L(G). Din denit ia lui L(G) rezulta ca avem x
0

G
p si
p {a, b, c}

.
In derivarea x
0

p se poate aplica la primul pas sau regula 1) sau


regula 2). Daca se aplica regula 1) avem x
0
abc si abc {a
n
b
n
c
n
|n
1}.
Daca se aplica regula 1), avem x
0
ax
1
bc si ax
1
bc este de forma
a
j
x
1
b
j
c
j
cu j = 1. Din relat ia (*) avem ca singurile cuvinte care se
obt in din x
0
si cont in numai terminali sunt de forma a
j
b
j
c
j
si a
j
b
j
c
j

{a
n
b
n
c
n
|n 1}.
Tema de Control (1)
1) Sa se arate ca gramatica G = ({x
0
, x, y}, {a, b, c}, x
0
, P).
Cu P :
1) x
0
xy
2) x axb
3) x ab
4) y cy
5) y c
genereaza limbajul L(G) = {a
n
b
n
c
m
|n, m 1}.
2) Sa se construiasca o gramatica care genereaza limbajele
{a
n
b
n
c
m
|n, m 1} si {a
n
b
m
c
n
|n, m 1}.
3) Sa se arate ca gramatica G = ({x
0
x
3
, x
2
}, {a, b, c}, x
0
)P, cu P :
17
1) x
0
ax
0
x
1
x
2
2) x
0
ax
1
x
2
3) x
1
x
2
x
1
x
2
4) ax
1
ab
5) bx
1
bb
6) bx
2
bc
7) cx
2
cc
genereaza limbajul {a
n
b
n
c
n
|n 1}.
4) Sa se arate ca gramatica G = ({A, B, C, E, F}, {M, b, c}, A, P)
cu p :
1) A aAB
2) A abC
3) CB EB
4) EB EF
5) EF BF
6) BF BC
7) C c
8) bB bbc
genereaza limbajul L(G) = {a
n
b
n
c
n
|n 0}.
5) Sa se arate ca gramatica G = ({S, A, B, C}, {a}, S, P) cu P :
1) S BAB
2) BA BC
18
3) CA AAC
4) CB AAB
5) A a
6) B x
genereaza limbajul L(G) = {a
2
n
|n 0}.
6) Sa se arate ca gramatica G = ({S, X, A, B}, {, a}, S, P) cu P :
1) S
2) S B
3) S AABB
4) A XA
5) XA AX
6) XB AAB
7) X B
8) A a
9) B a
genereaza limbajul L(G) = {a
n
2
|n 0}.
19
Tema 2
Automate nite si gramatici
de tip trei
1 Automate nite

In acest capitol vom introduce not iunea de automat nit, vom


studia proprietat ile lui si vom arata ca familia limbajelor acceptate de
automatele nite este egala cu familia L
3
.
Denit ia 2.1.1. Un automat determinist este un 5-uplu
A = (S, , , s
0
, F) unde:
- S este o mult ime nevida, numita mult imea starilor;
- este o mult ime nevida si nita numita alfabet de intrare;
- este o funct ie : S S numita funct ie de tranzit ie directa;
- s
0
S se numeste stare init iala;
- F S este mult imea starilor nale.
Daca S este nita, atunci automatul este automat nit si n prac-
tica, acest tip de automate intereseaza.
Un model pentru un automat nit este format dintr-un dispozitiv
de control care se poate aa la un moment dat ntr-o stare din S si
care este prevazut cu un cap de citire cu acces la o banda de intrare pe
care este scris un cuvant din

. Automatul aandu-se n starea s si


citind de pe banda un simbol c va trece n starea (s, c) si va deplasa
capul de citire cu o locat ie la dreapta.
21
a
b
c d c a
d
Unitate
de control
`
Fig. 2.1. Model pentru automat determinist
Specicarea unui automat nit revine la precizarea mult imilor
S, , F, a starii init iale s
0
si la denirea funct iei de tranzit ie directa .
Denirea funct iei de tranzit ie se poate face e tabelar, e cu ajutorul
unui graf orientat etichetat, care descrie funct ionarea automatului sau
ca expresie analitica. Descrierea funct iei de tranzit ie tabelar se face
utilizand o matrice de dimensiune |S| ||, cate o linie pentru ecare
s S.
i
.
.
.
s (s, i)
.
.
.
Fig. 2.2. Tabelul funct iilor de tranzit ie
Al doilea procedeu consta n atasarea unui graf orientat etichetat
numit graful tranzit iilor (sau uneori diagrama de tranzit ie a automa-
tului).
Denit ia 2.1.2. Graful tranzit iilor automatului nit
A = (S, , , s
0
, F) este un cuplu (G, ) unde G = (S, U) este un graf
orientat, avand ca mult ime de noduri, mult imea starilor automatului
S si ca mult ime de arce mult imea U = {(s
j
, s
k
), i , (s
j
, i) = s
k
},
iar : U P() este o funct ie de etichetare a arcelor denita n
modul urmator: pentru ecare arc u U (u) = {i | i , u =
(s
j
, s
k
), (s
j
, i) = s
k
}.
Convenim ca pentru starile nale sa desenam doua cercuri, iar
starea init iala sa o marcam printr-o sageata.
22
Exemplul 2.1.3. Consideram automatul
A = ({s
0
, s
1
, s
2
}, {0, 1}, , s
0
, {s
1
, s
2
})
si funct ia denita ca n Figura 2.3.
0 1
s
0
s
1
s
2
s
1
s
1
s
0
s
2
s
2
s
1
Fig. 2.3. Funct ia de tranzit ie
denita tabelar
__ __
_

-
`

,
s
2
s
1
s
0
0
1
0
1
0
1
Fig. 2.4. Graful de tranzit ii
Funct ia de tranzit ie : S S o putem extinde la S

astfel ncat pentru o stare s si un cuvant p

starea (s, p) sa e
starea n care ajunge automatul dupa parcurgerea celor l(p) simboli
ai cuvantului p.
Denit ia 2.1.4. Fie A = (S, , , s
0
, F) un automat. Denim
extensia lui ,

: S

S prin:
1)

(s, ) = s, s S;
2)

(s, ua) = (

(s, u), a); s S, u

, a .
Pentru simplitatea notat iei convenim sa notam n continuare n loc
de

. Se justica acest lucru deoarece

(s, u) = (s, u) s S, a .
Teorema 2.1.5. Fie A = (S, , , s
0
, F) si p, q

. Atunci are
loc egalitatea:
(s, pq) = ((s, p), q), s S. (1)
Demonstrat ie. Vom demonstra egalitatea (1) prin induct ie dupa
lungimea cuvantului q.
Pentru l(q) = 0, deci q = , avem: (s, p) = ((s, p), ), care
revine la (s, p) = (s, p) si deci (1) este adevarata.
Presupunem egalitatea (1) adevarata pentru cuvinte de lungime
cel mult n si o demonstram pentru cuvinte de lungime n + 1. Fie
q

= qi cu i si q

cu l(q) = n, deci l(q

) = n + 1.
23
Avem (s, pq

) = (s, pqi) = ((s, pq), i) = (((s, p), q), i) =


((s, p), qi) = ((s, p), q

). S-a folosit ipoteza inductiva si egalitatea


2) din Denit ia 2.1.4.
Denit ia 2.1.6. Limbajul acceptat de un automat
A = (S, , , s
0
, F) este denit prin:
L(A) = {w | w

, (s
0
, w) F}.
Denit ia 2.1.7. Un limbaj L este regulat daca exista un au-
tomat nit A pentru care sa avem L = L(A).
Mult imea limbajelor regulate o notam cu L
R
.
Teorema 2.1.9. Orice limbaj L P(

) este acceptat de un
automat convenabil ales.
Demonstrat ie. Fie automatul A = (

, , , , L), unde (p, i) =


pi, p

si i . Automatul A este innit deoarece mult imea


starilor

este innita.
Funct ia o putem extinde :

ca n Denit ia 2.1.4. si
avem (p, q) = p q.
Sa aratam ca L = L(A).
Fie q L atunci avem q = (, q), de unde rezulta ca q L(A).
Invers, e q L(A); rezulta ca (, q) L, dar (, q) = q L.
2 Caracterizarea limbajelor regulate cu
ajutorul relat iilor de echivalent a

In acest paragraf vom da o alta caracterizare a limbajelor regulate


decat aceea ca sunt acceptate de automate nite deterministe.
Fie L un limbaj, L

. Vom considera funct ia caracteristica:

L
:

{0, 1} denita prin


L
(p) =

1 daca p L
0 daca p L.
24
Denit ia 2.2.1. Fiecarui limbaj L i atasam relat ia
L
denita
prin
L
= {(p, q) | p, q

,
L
(pr) =
L
(qr), r

}.
Relat ia
L
se poate deni si n modul urmator: cuvintele p si q
sunt n relat ia
L
daca pr si qr apart in sau nu limbajului L pentru
orice r

.
Observat ia 2.2.2. Relat ia
L
este o relat ie de echivalent a.
Observat ia 2.2.3. Echivalent a
L
este compatibila cu con-
catenarea la dreapta, adica (p, q)
L
implica (pu, qu)
L
oricare
ar u

Intr-adevar, oricare ar r

avem

L
((pu)r) =
L
(p(ur)) =
L
(q(ur)) =
L
((qu)r).
Denit ia 2.2.4. O relat ie de echivalent a peste o mult ime M
este de rang nit, daca |M/| este nit.
Denit ia 2.2.5. Fie A = (S, , , s
0
, F). Consideram relat ia
A,s
0
atasata automatului A denita prin

A,s
0
= {(p, q) | p, q

, (s
0
, p) = (s
0
, q)}.
Observat ia 2.2.6. Relat ia
A,s
0
este o relat ie de echivalent a.
Relat ia
A,s
0
este compatibila cu concatenarea la dreapta.
Teorema 2.2.7. Daca limbajul L este acceptat de automatul
A = (S, , , s
0
, F) atunci
A,s
0

L
.
Demonstrat ie. Trebuie sa demonstram ca (p, q)
A,s
0
implica
(p, q)
L
. Din (p, q)
A,s
0
avem ca (s
0
, p) = (s
0
, q). Fie r

un
cuvant arbitrar, atunci avem pr L daca si numai daca (s
0
, pr) F
daca si numai daca ((s
0
, p), r) = ((s
0
, q), r) = (s
0
, qr) F daca
si numai daca qr L. Deci
L
(pr) =
L
(qr), ceea ce implica (p, q)

L
.
Teorema 2.2.8. Fie A = (S, , , s
0
, F); exista o inject ie
25
:

/
A,s
0
S.
Demonstrat ie. Denim funct ia :

/
A,s
0
S prin ([p]) =
(s
0
, p), oricare ar [p]

/
A,s
0
. Funct ia este bine denita; nu
depinde de reprezentatul clasei. Fie q [p]

A,s
0
, atunci [q]
a,s
0
=[p]

A,s
0
.
Avem ([q]

A
,s
0
) = (s
0
, q) = (s
0
, p) = ([p]

A,s
0
). Se verica ime-
diat ca este injectiva.

Intr-adevar, ([p]

A,s
0
) = ([q]

A,s
0
) implica
(s
0
, p) = (s
0
, q), care nseamna [p]

A,s0
= [q]

A,s
0
.
Teorema 2.2.9. Limbajul L este acceptat de un automat nit
daca si numai daca
L
are rang nit.
Demonstrat ie. Sa demonstram ca, L acceptat de un automat A
nit implica
L
are rang nit. Din teorema 2.2.8. rezulta ca exista
inject ia
:

/
A,s
0
S, de unde rezulta ca |

/
A,s
0
| |S|. Din teorema
2.2.7. rezulta ca
A,s
0

L
care implica ca |

/
L
| |

/
A,s
0
| |S|.
Cum |S| este nit, rezulta ca |

/
L
| este nit, deci
L
are rang nit.
Invers, sa demonstram ca,
L
are rang nit implica L este limbaj
regulat.
Consideram automatul A
L
= (

/
L
, , , []

L
, {[w]

L
| w L}).
Denim funct ia de tranzit ie :

/
L

/
L
prin
([p]

L
, i) = [pi]

L
, p

si i .
Sa observam ca funct ia este bine denita, adica nu depinde de
reprezentantul clasei. Fie q [p]

L
. Din q [p]

L
rezulta (p, q)
L
care implica (pi, qi)
L
, i si astfel [pi]

L
= [qi]

L
. Prelungim
funct ia de tranzit ie la

prin ([p]

L
, q) = [pq]

L
. Automatul A
L
este automat nit, deoarece este nit si |

/
L
| este nit.
Sa demonstram ca L = L(A
L
). Fie p L, rezulta ca [p]

L

{[w]

L
| w L}. Dar ([]

L
, p) = [p]

L
{[w]

L
| w L}, de unde
p L(A
L
).
Invers, e p L(A
L
), rezulta ca ([]

L
, p) {[w]

L
| w L}, de
unde [p]

L
{[w]

L
| w L}. Deci exista w L cu (p, w)
L
, care
implica
L
(pr) =
L
(wr), oricare ar r

. Luam r = , avem

L
(p) =
L
(w) = 1, de unde p L.
26
Consecint a 2.2.10. Daca L este un limbaj regulat, atunci au-
tomatul A
L
este, conform teoremei 2.2.9., automatul cu cele mai
put ine stari care accepta limbajul L.
Demonstrat ie.

Intr-adevar, daca A = (S, , , s
0
, F) un automat
nit care accepta limbajul L, atunci din demonstrat ia teoremei prece-
dente avem ca |

/
L
| |S|. Dar automatul A
L
are ca mult ime de
stari

/
L
si am aratat ca accepta limbajul L.
Automatul A
L
l vom numi, din acest motiv, automatul minimal
al limbajului L.
Teorema precedenta se poate utiliza pentru a arata ca unele lim-
baje nu sunt limbaje regulate. Pentru aceasta se arata ca relat ia de
echivalent a atasata limbajului nu are rang nit.
Fie limbajul L = {a
n
b
n
| n 1}, peste alfabetul {a, b}. Acest
limbaj este un limbaj independent de context, ind generat de o gra-
matica care are regulile x
0
ax
0
b si x
0
ab, care satisfac condit iile
pentru acest tip de gramatica. Sa aratam ca acest limbaj nu este reg-
ulat. Presupunem ca limbajul L este regulat. Consideram echivalent a

L
atasata limbajului L, care are rang nit deoarece L este regulat.
Consideram sirul de cuvinte a, a
2
, . . . , a
n
, . . .. Deoarece
L
are rang
nit, exista i < j astfel ncat (a
i
, a
j
)
L
. Relat ia
L
este compa-
tibila cu concatenarea la dreapta, deci (a
i
b
j
, a
j
b
j
)
L
. Aceasta este
imposibil, deoarece a
j
b
j
L si a
i
b
j
L, deci
L
(a
i
b
j
) =
L
(a
j
b
j
).
Teorema precedenta ne permite sa gasim pentru un limbaj regulat
un automat nit A
L
care sa accepte acest limbaj.
Vom deni o alta relat ie de echivalent a care sa caracterizeze
mult imea limbajelor regulate.
3 Construct ia automatului minimal
Fie A = (S, , , s
0
, F) un automat nit determinist.
Denit ia 2.3.1. Denim funct ia caracteristica a mult imii F,
27
: S {0, 1}, prin (s) =

1 daca s F
0 daca s F.
Denit ia 2.3.2. Starile s
1
si s
2
se numesc k- inseparabile n raport
cu F, notat s
1
k
s
2
, daca pentru orice p

cu l(p) k, avem
((s
1
, p)) = ((s
2
, p)). Se verica imediat ca relat ia
k
S S este
o relat ie de echivalent a, adica este reexiva, simetrica si tranzitiva.
Denit ia 2.3.3. Starile s
1
si s
2
sunt inseparabile n raport cu F
daca si numai daca ele sunt k-inseparabile n raport cu F pentru orice
k N.
Vom nota aceasta relat ie cu . Se poate arata ca este o relat ie de
echivalent a. Din denit ia lui rezulta ca =

k=0
{
k
|k N}.
Denit ia 2.3.4. Fie A = (S, , , s
0
, F) un automat nit deter-
minist. O stare s S este accesibila daca exista p

astfel ncat
s = (s
0
, p) si inaccesibila n caz contrar.
Denit ia 2.3.5. Un automat A = (S, , , s
0
, F) se numeste redus
daca nu are stari inaccesibile.
Fiind dat un automat nit determinist A = (S, , , s
0
, F), e S

starile sale accesibile si F

= S

F. Consideram automatul A

=
(S

, , , s
0
, F

). Automatul A

este redus si n plus L(A) = L(A

).

Intr-adevar, p L(A) (s
0
, p) F (s
0
, p) F

p L(A

).
Dam fara demonstrat ie urmatoarea lema:
Lema 2.3.6 Pentru orice k 1, s
1
, s
2
S avem s
1
k
s
2
daca si
numai daca s
1
k1
s
2
si (s
1
, i)
k1
(s
2
, i), i .
Din lema precedenta rezulta ca
k

k1
, k 1.
Teorema 2.3.9. Fie automatul A = (S, , , s
0
, F) cu |S| = n.
Starile s
1
si s
2
sunt inseparabile n raport cu F daca si numai daca ele
sunt (n 2)-inseparabile n raport cu F.
28
Demonstrat ie.
Daca starile s
1
si s
2
sunt inseparabile atunci ele sunt si (n 2)-in-
separabile. Acest fapt decurge din denit iile date.
Invers, sa demonstram ca daca starile s
1
si s
2
sunt (n 2)-insepa-
rabile atunci ele sunt si inseparabile.
Din incluziunea
k

k1
, oricare ar k 1, rezulta urmatorul sir
de incluziuni:
(1) . . .
k

k1

k2
. . .
1

0

Clasele de echivalent a pentru relat ia


0
sunt F si S F, deoarece
singurul cuvant de lungime 0 este si (s, ) = s, oricare ar s S,
asadar avem ca s
1
0
s
2
daca si numai daca s
1
, s
2
F sau s
1
, s
2
/ F.
Din sirul de incluziuni (1) rezulta urmatorul sir de inegalitat i:
(2) 2 = |S/
0
| |S/
1
| . . . |S/
k
| . . . |S/| |S| = n
Deoarece mult imea S este nita, rezulta ca exista un k pentru care
avem |S/
k
| = |S/
k+1
|. Fie k cel mai mic numar natural pentru
care avem |S/
k
| = |S/
k+1
|. Deci n (2) avem
(3) 2 < |S/
1
| < . . . < |S/
k
| n
Deoarece primele k inegalitat i din (3) sunt stricte rezulta ca
k + 2 |S/
k
| n
de unde rezulta k n 2.
Se poate demonstra prin induct ie dupa j ca S/
k
= S/
k+j
, oricare ar
j 1. Atunci relat ia (1) devine:
(1

)
0

1
. . .
k
=
k+1
= . . . =
n2
. . . =
Deci =
n2
.
Vom construi automatul minimal care sa accepte un limbaj L,
recunoscut de un automat A = (S, , , s
0
, F). Putem considera, dupa
29
cum am vazut mai nainte, ca automatul A este redus. Am aratat
nainte ca automatul A
L
este minimal, adica are cele mai put ine stari
si este echivalent cu A (i.e. recunosc acelasi limbaj).
Consideram automatul A

= (S/, ,

, [s
0
]

, {[s]

, s F}) cu

([s]

, i) = [(s, i)]

, s S si i . Funct ia

este bine denita,


nu depinde de reprezentantul clasei [s]

.

Intr-adevar, din (s
1
, s
2
)
avem ca ((s
1
, i), (s
2
, i)) (Lema 2.3.6).
Denit ia 2.3.10. Doua automate A
1
= (S
1
, ,
1
, s
01
, F
1
) si A
2
=
(S
2
, ,
2
, s
02
, F
2
) sunt izomorfe daca exista o biject ie h : S
1
S
2
,
compatibila cu funct iile de tranzit ie, adica: h(
1
(s, i)) =
2
(h(s), i)),
s S si i .
Se poate demonstra usor urmatoarea lema:
Lema 2.3.7 Doua automate izomorfe A
1
= (S
1
, ,
1
, s
01
, F
1
) si
A
2
= (S
2
, ,
2
, s
02
, F
2
), cu izomorsmul h : S
1
S
2
care satisface
condit iile h(s
01
) = s
02
si h(F
1
) = F
2
, recunosc acelasi limbaj.
Teorema 2.3.11. Fie L

un limbaj regulat acceptat de


automatul redus A = (S, , , s
0
, F). Automatul A
L
este izomorf cu
automatul A

= (S/, ,

, [s
0
]

,{[s]

, s F}).
Demonstrat ie. Stim ca A
L
= (

/
L
, ,

, []

L
,{[p]

L
, p L}),
cu

([p]

L
, i) = [pi]

L
, p

, i .
Denim aplicat ia h :

/
L
S/ prin h([p]

L
) = [(s
0
, p)]

.
Se poate arata ca funct ia h este bine denita, adica nu depinde de
reprezentantul clasei [p]

L
.
Sa aratam ca h este biject ie.

In primul rand h este surjec-
tiva, deoarece oricare ar [(s
0
, p)]

S/ exista [p]

L
astfel ncat
h([p]

L
) = [(s
0
, p)]

.
Funct ia h este injectiva.

Intr-adevar, din h([p]

L
) = h([q]

L
)
avem [(s
0
, p)]

= [(s
0
, q)]

, de unde rezulta (((s


0
, p), r)) =
(((s
0
, q), r)), deci ((s
0
, pr)) = ((s
0
, qr)), r

. Dar
ultima egalitate implica faptul ca (s
0
, pr), (s
0
, qr) F sau
(s
0
, pr), (s
0
, qr) F, de unde pr, qr L sau pr, qr L, r

,
deci [p]

L
= [q]

L
.
30
Se poate arata ca h este compatibila cu funct iile de tranzit ie, deci
A

si A
L
sunt izomorfe, si ca h([]

L
) = [s
0
]

si h({[p]

L
| p L}) =
{[s]

| s F}, deci L(A


L
) = L(A

). Deoarece ntre starile celor doua


automate exista o biject ie, rezulta ca cele doua automate au acelasi
numar de stari, deci amndoua sunt minimale pentru limbajul L.

In continuare vom prezenta algoritmul de construct ie a automat-


ului minimal echivalent cu un automat A.

Intai vom construi un
automat redus echivalent cu A, prin algoritmul ACC dat mai jos, ce
determina starile accesibile, iar apoi vom construi automatul minimal
prin algoritmul MIN.
Algoritmul ACC
Intrare: Un automat A = (S, , , s
0
, F)
Iesire: Starile accesibile S

, F

= F S

si automatul redus
A

= (S

, ,

, s
0
, F

).
Pas1. G
0
= {s
0
}; i = 0;
Pas2. i = i + 1; G
i
= G
i1
(G
i1
, );
Pas3. Daca G
i
= G
i1
, atunci S

= G
i
; treci la Pas4,
altfel treci la Pas2.
Pas4. F

= F S

si A

= (S

, ,

, s
0
, F

), unde

este restrict ia lui la S

.
Se poate demonstra usor ca o stare este accesibila daca si numai
daca ea apart ine mult imii S

calculate de algoritmul ACC.


Algoritmul de construct ie a automatului minimal este:
Algoritmul MIN
Intrare: Un automat A = (S, , , s
0
, F) care recunoaste limbajul
L.
Iesire: Automatul minimal A
min
care recunoaste L.
Pas1 Se aplica algoritmul ACC si se determina automatul redus
A

= (S

, ,

, s
0
, F

).
Pas2 Se calculeaza S

/.
Pas3 A
min
= (S

/, ,

, [s
0
]

, {[s]

, s F

}).
31
4 Automate nedeterministe
Denit ia 2.4.1. Un automat nedeterminist este un 5-uplu
A = (S, , , s
0
, F) unde:
- S este o mult ime nevida, mult imea starilor automatului nedeter-
minist;
- este o mult ime nevida si nita, alfabetul de intrare a automat-
ului nedeterminist;
- : S P(S), funct ia de tranzit ie;
- s
0
S este starea init iala a automatului;
- F S este mult imea starilor nale.
Daca S este nita, atunci automatul nedeterminist este nit.
Vom considera mai departe numai automate nedeterministe nite.
Faptul ca pentru un (s, i) S , (s, i) este o mult ime, se inter-
preteaza ca automatul nedeterminist ind n starea s si primind ca
intrare simbolul i, poate trece n oricare din starile mult imii (s, i), de
unde si denumirea de nedereminist deoarece starea urmatoare nu este
unic determinata, ea va aleasa dintr-o mult ime de st ari.
Ca si la automate deterministe nite, denit ia funct iei de tranzit ie
se poate face e tabelar e cu ajutorul grafului de tranzit ie atasat
automatului. Funct ia de tranzit ie se poate da ca o matrice cu |S| linii
si || coloane, iar elementele matricei sunt (s, i).
Exemplul 2.4.2. Fie automatul nit nedeterminist
A = ({s
1
, s
2
, s
3
}, {a, b}, , s
1
, F) unde este denita prin:
S
\

a b
s
1
{s
1
} {s
1
, s
2
}
s
2
{s
1
, s
3
} {s
3
}
s
3
{s
1
, s
2
} {s
2
}
Fig. 2.4.2.
32
O alta posibilitate de a da funct ia de tranzit ie este cu ajutorul grafului
de tranzit ie.
Denit ia 2.4.3. Graful tranzit iilor automatului nit nedetermin-
ist A = (S, , , s
0
, F) este cuplul (G, ) unde G = (S, U) este un
graf orientat avand ca mult ime de varfuri mult imea starilor S, iar ca
mult ime de arce mult imea U denita prin U = {(s
j
, s
k
) | s
j
, s
k

S, i , s
k
(s
j
, i)}. Funct ia de etichetare : U P() este
denita prin (u) = {i | i , u = (s
j
, s
k
), s
k
(s
j
, i)}, u U.
Graful tranzit iilor automatului nit nedeterminist A din exemplul
precedent este urmatorul:

_
-

.
-

a, b
s
1
a
s
3
a, b
a, b
s
2
b
a
Fig. 2.4.3.
Un automat nedeterminist pentru care |(s, i)| = 1, (s, i) S
poate privit ca un automat determinist. Deci automatele nedeter-
ministe sunt mai generale (se identica mult imile cu un element, cu
elementul nsusi).
Funct ia de tranzit ie : S P(S) se poate extinde la S

prin:
1.

(s, ) = {s}, s S;
2.

(s, pi) =

{(s

, i) | s


(s, p)} s S, p

, i .
Denit ia 2.4.4. Limbajul acceptat de automatul nit nedeter-
minist A = (S, , , s
0
, F) este L(A) = {p|p

, (s
0
, p) F = }.
33
Conform acestei denit ii, un cuvant p

este n limbajul L(A)


daca automatul, primind la intrare simbolurile cuvantului p, are posi-
bilitatea sa ajunga ntr-o stare nala din starea init iala, sau n graful
tranzit iilor exista cel put in un drum cu arcele etichetate cu sim-
bolurile lui p de la s
0
la o stare din F.
Observat ia 2.4.5. Se poate deni limbajul acceptat de un au-
tomat nedeterminist si prin L(A) = {p | p

si (s
0
, p) F}, dar
aceasta denit ie este mai restrictiva.
Fiecarui automat nit determinist A = (S, , , s
0
, F) i core-
spunde un automat nit nedeterminist A

= (S, ,

, s
o
, F) astfel ncat
L(A) = L(A

).
Denim

(s, i) = {(s, i)}, (s, i) S . Se verica imediat


prin induct ie dupa lungimea cuvantului p

ca

(s, p) = {(s, p)},


(s, p) S

.
Folosind denit iile limbajelor acceptate de automate nite deter-
ministe si nedeterministe, avem:
L(A

) = {p | p

(s
0
, p) F = }={p | p

, (s
0
, p) F =
}={p | p

, (s
0
, p) F} = L(A).
De aici rezulta ca limbajele acceptate de automatele nite deter-
ministe sunt acceptate si de automatele nite nedeterministe.
Interesant este ca mult imea limbajelor acceptate de automatele -
nite nedeterministe coincide cu mult imea limbajelor acceptate de au-
tomatele nite deterministe. Pentru aceasta, trebuie sa mai aratam
ca pentru orice limbaj care este acceptat de un automat nit nede-
terminist exista un automat nit determinist care sa accepte acest
limbaj.
Teorema 2.4.6. Fie L un limbaj acceptat de un automat nit
nedeterminist A = (S, , , s
0
, F). Exista un automat nit determinist
care accepta limbajul L.
Demonstrat ie. Consideram automatul nit determinist
A

= (P(S), , , {s
0
}, F

) unde F

= {S

| S

S, S

F = } si

: P(S) P(S) este denita prin:


34

(S

, i) =


{(s, i)|s S

}, S

P(S), daca S

=
, daca S

= .
Putem extinde

: P(S)

P(S) prin
1.

(S

, ) = S

, S

P(S);
2.

(S

, pi) =

(S

, p), i), S

P(S), p

, i .
Sa demonstram acum urmatoarea egalitate:
(s, p) =

({s}, p), s S, p

. (1)
Egalitatea (1) o demonstram prin induct ie dupa lungimea cuvantului
p.
Pentru l(p) = 0, adica p = , avem (s, ) = {s} =

({s}, ).
Presupunem proprietatea adevarata pentru cuvinte de lungime cel
mult n si o vom demonstra pentru cuvinte de lungime n + 1. Fie
q cu l(q) = n si i ; atunci p = qi are lungimea n + 1. Avem
(s, p) = (s, qi) =

{(s

, i)|s

(s, q)}. Pentru membrul drept


al egalitat ii (1) avem

({s}, p) =

({s}, qi) =

({s}, q), i) =

{(s

, i) | s

({s}, q)} =

{(s

, i) | s

(s, q)}; din egalitatea


(1). Aici am folosit ipoteza inductiva ca

({s}, q) = (s, q) = . Daca


(s, q) =

({s}, q) = , atunci avem

({s}, p) = = (s, p).


Luand s = s
0
avem:
(1

) (s
0
, p) =

({s
0
}, p), p

.
Vom arata ca L = L(A

). Fie p L; rezulta ca p L(A) = L, de


unde (s
0
, p)F = , deci (s
0
, p) F

. Deoarece (s
0
, p) =

({s
0
}, p)
avem ca

({s
0
}, p) F

, deci p L(A

).
Invers, e p L(A

); atunci avem

({s
0
}, p) F

, deci

({s
0
}, p)
F = . Din nou, din

({s
0
}, p) = (s
0
, p) avem ca (s
0
, p) F = ,
deci p L(A) = L.
35
5 Limbaje regulate si limbaje de tip 3

In acest paragraf vom arata ca mult imea limbajelor regulate, L


R
,
coincide cu mult imea limbajelor de tip trei, L
3
.
Teorema 2.5.1. Orice limbaj regulat este un limbaj de tip trei.
Demonstrat ie. Fie L un limbaj regulat. Exista un automat nit
determinist A = (S, , , s
0
, F) astfel ncat L = L(A).
Consideram gramatica G = (S, , s
0
, P), cu P = {s is

| s

=
(s, i)} {s i | (s, i) F} P
0
, unde
P
0
=

{s
0
}, daca s
0
F
, daca s
0
F.
Aceasta gramatica G este de tipul trei. Sa aratam acum ca
L = L(G). Sa demonstram L L(G). Fie p L, p = ; atunci
p = i
1
. . . i
n
, n 1, i
j
, 1 j n. Din p L rezulta
p L(A), deci (s
0
, p) F. Consideram urmatorul sir de stari:
s
0
, s
1
= (s
0
, i
1
), . . . , s
j
= (s
j1
, i
j
), . . . , s
n
= (s
n1
, i
n
). Deoarece
s
n
= (s
n1
, i
n
) = ((s
n2
, i
n1
), i
n
) = (s
n2
, i
n1
i
n
) = . . . =
(s
0
, i
1
. . . i
n
) = (s
0
, p) F, avem ca s
n
F.
Corespunzator sirului de stari considerate mai sus, avemn grama-
tica G regulile: s
0
i
1
s
1
, s
1
i
2
s
2
, . . ., s
n2
i
n1
s
n1
, s
n1
i
n
.
Ultima regula este s
n1
i
n
deoarece s
n
F si s
n
= (s
n1
, i
n
).
Utilizand aceste reguli obt inem n G urmatoarea derivare:
s
0
i
1
s
1
i
1
i
2
s
2
. . . i
1
. . . i
n1
s
n1
i
1
. . . i
n
deci p L(G).
Daca L, atunci (s
0
, ) = s
0
F si prin urmare n G avem regula
s
0
si derivarea s
0
, deci L(G).
Invers, sa demonstram incluziunea L(G) L.
Fie p L(G) cu p = . Din p L(G) rezulta ca exista n gramatica
G derivarea s
0

p. Daca p = i
1
. . . i
n
, n 1, atunci n derivarea
s
0

p se aplica succesiv regulile de forma s


0
i
1
s
1
, s
1
i
2
s
2
,
. . ., s
n2
i
n1
s
n1
, s
n1
i
n
, ceea ce antreneaza s
j
= (s
j1
, i
j
),
1 j n si (s
n1
, i
n
) F. Dar (s
n1
, i
n
) = ((s
n2
, i
n1
), i
n
) =
. . . = (s
0
, i
1
. . . i
n
) = (s
0
, p) F, deci p L.
36
Daca p = L(G) atunci p se obt ine din derivarea s
0
. Deci
n gramatica G exista regula s
0
. Dar aceasta regula exista numai
daca s
0
F si prin urmare, (s
0
, ) F, deci L.
Pentru a demonstra incluziunea L
3
L
R
sunt necesare unele rezul-
tate privind limbajele de tip trei. O parte din rezultate le vom demon-
stra n cadrul mai general al gramaticilor independente de context.
Denit ia 2.5.2. Fie G = (V
N
, V
T
, x
0
, P) o gramatica indepen-
denta de context. Vom spune ca derivarea w
1
w
2
. . . w
n
, n 2
este o derivare stanga a lui w
n
daca pentru ecare i, 1 i n 1,
w
i
=
i
A
i
, w
i+1
=
i
u
i

i
, A u
i
P si
i
V

T
.
O derivare stanga este acea derivare n care se nlocuieste simbolul
neterminal cel mai din stanga din cuvant.
Teorema 2.5.3. Fie G = (V
N
, V
T
, x
0
, P) o gramatica indepen-
denta de context si w L(G). Exista o derivare stanga a lui w din x
0
n gramatica G.
Demonstrat ie. Vom demonstra mai general ca ecarei derivari
A

w, cu A V
N
si w V

i corespunde o derivare stanga A



w.
Demonstrat ia acestei proprietat i o facem prin induct ie dupa lungimea
derivarii.
Daca A

w este de lungime 1, atunci A w P si aceasta
derivare A

w este o derivare stanga.
Presupunem proprietatea adevarata pentru toate derivarile de
lungime cel mult k si e A y

w o derivare de lungime k + 1.
Fie y = y
1
. . . y
n
cu y
i
V
N
V
T
, 1 i n. Aplicand teorema de
localizare pentru derivarea y
1
. . . y
n

G
w, avem ca w = w
1
. . . w
n
si
y
i

G
w
i
, 1 i n. Derivarile y
i

G
w
i
, 1 i n au lungimile
cel mult k, deci putem aplica pasul inductiv si exista derivarile stangi
y
i

w
i
1 i n. Cum derivarea A y
1
. . . y
n
este o derivare stanga
si apoi aplicam de la stanga spre dreapta derivarile st angi y
i

w
i
,
1 i n, avem A y
1
. . . y
n
w
1
y
2
. . . y
n
. . . w
1
. . . w
n
care
este o derivare stanga.
37
Luand A = x
0
avem armat ia teoremei.
Observat ia 2.5.4. Pentru gramatici de tipul 2 sau 3, atunci cand
ne va interesa limbajul generat de gramatica, vom putea considera ca
acest limbaj este generat numai prin derivari stangi. Derivarile stangi
le vom nota cu
st
.
Denit ia 2.5.5. O gramatica G este fara redenumiri daca ea nu
cont ine reguli de forma x y cu x, y V
N
.
Evident, o regula de forma x y cu x, y V
N
nu genereaza nimic,
schimba numai numele simbolului neterminal din x n y, de aceea o
astfel de regula se numeste redenumire.
Teorema 2.5.6. Orice limbaj L de tipul 2 (sau 3) poate generat
de o gramatica de tipul 2 (sau 3) fara redenumiri.
Demonstrat ie. Fie G = (V
N
, V
T
, x
0
, P) o gramatica de tipul 2
sau 3 cu L = L(G). Putem considera ca singura regula cu n partea
dreapta, daca exista, este x
0
si n acest caz x
0
nu apare n partea
dreapta a vreunei reguli.
Daca gramatica G nu are redenumiri, atunci ea satisface cerint ele teo-
remei.

In caz contrar, daca G are redenumiri, atunci consideram gra-
matica G
1
= (V
N
, V
T
, x
0
, P
1
), cu P
1
= P

, unde:
P

= {x r | x r P si r V
N
},
P

= {x r | x
+

G
y, y r P si r V
N
}.
Mult imea P

cont ine toate regulile din P care nu sunt redenumiri,


iar P

cont ine reguli care le formam cu ajutorul redenumirilor. Se


poate arata usor ca L(G) = L(G
1
), adica cele doua gramatici sunt
echivalente.
Observat ia 2.5.7. Conform acestei teoreme, limbajele de tipul 2
sau 3 le putem considera ca ind generate de gramatici de tipul 2 sau
3 fara redenumiri.
Vom arata mai departe ca limbajele de tip 3 pot generate de
gramatici de tip 3 care au o forma particulara numita forma normala.
38
Teorema 2.5.8. Fie L un limbaj de tip trei. Exista o gramatica
de tip trei, G = (V
N
, V
T
, x
0
, P) care genereaza limbajul L si G are
regulile de forma x
1
ix
2
, x i sau x
0
, caz n care x
0
nu apare
n partea dreapta a vreunei reguli, unde x
1
, x
2
, x V
N
si i V
T
.
Demonstrat ie. Din L L
3
, rezulta ca exista o gramatica de tipul
trei fara redenumiri G
1
= (V
N
1
, V
T
1
, x
0
, P
1
) astfel ncat L = L(G
1
).
Daca L, atunci avem regula x
0
caz n care x
0
nu apare n
partea dreapta a vreunei reguli si aceasta este singura regula cu n
partea dreapta.
Regulile din P
1
de forma x
1
px
2
au l(p) 1, deoarece nu avem
redenumiri.
Daca l(p) = 1, atunci p V
T
si x
1
px
2
este de forma ceruta n
teorema.

In cazul cand l(p) 2, e p = i


1
. . . i
n
, n 2. Vom introduce n1 sim-
boli neterminali noi z
1
, . . . , z
n1
. Regulii x
1
px
2
P
1
i corespunde
n G urmatorul sir de reguli x
1
i
1
z
1
, z
1
i
2
z
2
,. . . ,z
n2
i
n2
z
n1
,
z
n1
i
n
x
2
, care au forma ceruta n teorema. Acest lucru l facem
pentru ecare regula de acest tip.
O regula de forma x p P
1
, cu l(p) = 1, o punem si n P. Unei
reguli de forma x p P
1
, cu p = i
1
. . . i
n
, n 2 si i
j
V
T
, 1
j n, i va corespunde n P regulile x i
1
v
1
, v
1
i
2
v
2
,. . . ,v
n2

i
n1
v
n1
, v
n1
i
n
, unde v
1
, . . . , v
n
sunt simboli neterminali noi.
Procedam analog pentru ecare regula x p P
1
.
Fie gramatica G = (V
N
Z V, V
T
, x
0
, F), unde Z este mult imea
simbolilor neterminali noi adaugat i pentru toate regulile de forma
x
i
px
2
si V este mult imea simbolilor noi adaugat i pentru reguli
de forma x p. Se observa ca aplicarea regulei x
1
px
2
si apli-
carea succesiva a regulilor x
1
i
1
z
1
, z
1
i
2
z
2
,. . . ,z
n1
i
n
x
2
are
acelasi efect, adica generarea cuvantului p si n plus ultimul sir de
reguli se pot aplica numai succesiv toate, deoarece z
1
, . . . , z
n1
sunt
simboli noi. Acelasi lucru se poate spune despre o regula de forma
x p si sirul x i
1
v
1
, . . . , v
n1
i
n
. Din cele de mai sus, avem ca
x
0

G
1
p x
0

G
p, deci L = L(G).
39

In continuare vom demonstra incluziunea L


3
L
R
. Acest rezultat
este stabilit n teorema urmatoare.
Teorema 2.5.9. Orice limbaj de tip trei este un limbaj regulat.
Demonstrat ie. Fie L un limbaj de tip 3. Atunci exista o gra-
matica G = (V
N
, V
T
, x
0
, P) de tip 3 care genereaza L. Daca L(G)
atunci exista regula x
0
P si x
0
nu apare n partea dreapta
a vreunei reguli din P. Putem presupune ca gramatica G este sub
forma normala, adica regulile sale sunt de forma x ix

sau x i,
cu x, x

V
N
si i V
T
.
Pentru a arata ca L este regulat, vom arata ca exista un automat
nit nedeterminist care sa accepte limbajul L. Pentru aceasta, con-
struim automatul nit nedeterminist A = (V
N
{ x}, V
T
, , x
0
, F), unde
este denita prin: (x, i) = {x

| x ix

P} B, unde
B =

{ x}, daca x i P
, n caz contrar.
Mult imea F este data prin:
F =

{ x, x
0
}, daca x
0
P
{ x}, n caz contrar.
Sa aratam ca L(G) = L(A). Demonstram ntai incluziunea
L(G) L(A). Fie p L(G). Vom considera doua cazuri:
1) daca p = , atunci exista n gramatica G regula x
0
P, si
prin urmare (x
0
, ) = {x
0
} F, de unde rezulta ca L(A).
2) daca p = , atunci p = i
1
. . . i
k
, k 1 si i
j
V
T
pentru orice
1 j k. Deoarece p L(G) rezulta ca exista derivarea x
0

G
p.
Din faptul ca gramatica G este n forma normala rezulta ca aceasta
derivare are forma:
x
0

G
i
1
x
1

G
i
1
i
2
x
2

G
. . .
G
i
1
i
2
. . . i
k1
x
k1

G
i
1
. . . i
k
.
Deci n gramatica G exista regulile
(1) x
0
i
1
x
i
, x
1
i
2
x
2
, . . . , x
k2
i
k1
x
k1
si x
k1
i
k
.
40
Din denit ia funct iei de tranzit ie , corespunzator sirului (1) avem:
(2)
x
1
(x
0
, i
1
) , x
2
(x
1
, i
2
) , . . . , x
k1
(x
k2
, i
k1
) si x (x
k1
, i
k
) .
T innd cont da faptul ca (x, p) (x

, i

p) daca x (x

, i

), pentru
orice x, x

V
N
, i V
T
si p V

T
, proprietate ce se demonstreaza prin
induct ie dupa lungimea cuvantului p, avem:
x (x
k1
, i
k
) (x
k2
, i
k1
i
k
) . . . (x
0
, i
1
. . . i
k
) ,
deci x (x
0
, p)F, de unde rezulta ca (x
0
, p)F = , deci p L(A).
Sa demonstram acum incluziunea inversa, L(A) L(G). Fie p
L(A), rezulta ca (x
0
, p) F = . Vom considera doua cazuri:
1) daca p = , atunci avem (x
0
, ) F = , de unde x
0
F si prin
urmare exista regula x
0
P. Din x
0
P rezulta ca exista
derivarea x
0

G
, deci L(G).
2) daca p = , atunci p = i
1
. . . i
k
, k 1 si i
j
V
T
pentru 1 j k.
Din (x
0
, i
1
. . . i
k
) F = rezulta ca exista starile x
1
, . . . , x
k1
, x cu
(3)
x
1
(x
0
, i
1
) , x
2
(x
1
, i
2
) , . . . , x
k1
(x
k2
, i
k1
) si x (x
k1
, i
k
) .
Ultima apartenent a este x (x
k1
, i
k
) si nu x
0
(x
k1
, i
k
) deoarece
daca am avea x
0
(x
k1
, i
k
), atunci n gramatica G ar exista regula
x
k1
i
k
x
0
, ceea ce contrazice presupunerea ca n regulile lui G, x
0
nu apare n partea dreapta. Din apartenent ele din sirul (3) si din
denit ia funct iei rezulta ca n gramatica G avem regulile
(4) x
0
i
1
x
1
, x
1
i
2
x
2
, . . . , x
k2
i
k1
x
k1
si x
k1
i
k
.
Atunci n gramatica G putem scrie derivarea:
x
0

G
i
1
x
1

G
i
1
i
2
x
2

G
. . .
G
i
1
. . . i
k1
x
k1

G
i
1
i
2
. . . i
k
,
prin urmare p L(G).
Teorema 2.5.10. Familia L
3
este nchisa la produs.
Demonstrat ie. Fie L
1
, L
2
L
3
; rezulta ca exista gramaticile de
tip 3 G
1
= (V
1
N
, V
1
T
, x
1
0
, P
1
) si G
2
= (V
2
N
, V
2
T
, x
2
0
, P
2
) cu L
1
= L(G
1
) si
41
L
2
= L(G
2
) si V
1
N
V
2
N
= . Consideram gramatica G = (V
1
N
V
2
N
, V
1
T

V
2
T
, x
1
0
, {x px

| x px

P
1
}{x px
2
0
| x p P
1
}P
2
).
Gramatica G este de tip 3.
Vom demonstra prin dubla incluziune ca L
1
L
2
= L(G).
Sa demonstram ntai ca L
1
L
2
L(G). Fie p L
1
L
2
atunci
p = p
1
p
2
cu p
1
L
1
si p
2
L
2
. Din p L
1
rezulta ca exista derivarea
x
1
0

G
1
p
1
si din p L
2
avem x
2
0

G
2
p
2
.

In derivarea x
1
0

G
1
p
1
se aplica
reguli de forma x qx

cu except ia ultimei reguli care este de forma


x q, cu q V

T
; dar n G avem regula corespunzatoare x qx
2
0
.
Deci putem scrie n G urmatoarea derivare x
1
0

G
p
1
x
2
0

G
p
1
p
2
, ceea ce
nseamna ca p L(G).
Invers, L(G) L
1
L
2
. Fie p L(G) rezulta ca exista derivarea
x
1
0

G
p. Din construct ia gramaticii G si din V
1
N
V
2
N
= , deoarece
numai regulile din P
2
pot elimina neterminali, avem ca derivarea de
sus este de forma x
1
0

G
p
1
x
2
0

G
p
1
p
2
.

In derivarea x
1
0

G
p
1
x
2
0
regulile
aplicate sunt cele din G
1
cu except ia ultimei reguli care este de forma
x x
2
0
cu V

T
, dar atunci x P
1
. Deci putem scrie n G
1
,
x
1
0

G
1
p
1
si prin urmare p
1
L
1
. Din p
1
x
2
0

G
p
1
p
2
avem ca x
2
0

G
p
2
,
dar aici se aplica numai reguli din P
2
, deci x
2
0

G
2
p
2
si p
2
L
2
. Dar
p
1
L
1
, p
2
L si p = p
1
p
2
implica p L
1
L
2
.
Teorema 2.5.11. Familia L
3
este nchisa la operat ia .
Demonstrat ie. Fie L L
3
; trebuie sa demonstram ca L

L
3
.
Din L L
3
rezulta ca exista o gramatica G = (V
N
, V
T
, x
0
, P) cu
L(G) = L. Vom construi o gramatica G

= (V
N
, V
T
, x
0
, P {x
px
0
| x p P} {x
0
}). Gramatica G

este de tipul 3. Putem


considera ca n gramatica G, x
0
nu apare n membrul drept al vreunei
reguli din P. Vom demonstra ca L(G

) = L

.
Incluziunea L(G

) L

. Fie p L(G

); rezulta ca x
0

G
p.

In
aceasta derivare punemn evident a cuvintele care cont in x
0
. Simbolul
x
0
poate sa apara numai n urma aplicarii unei reguli de forma x
x
0
. Deci avem x
0

G
p
1
x
0

G
p
1
p
2
x
0

G
. . .

G
p
1
. . . p
l1
x
0

G
p
1
. . . p
l1
p
l
.

In aceasta derivare apar derivarile x
0

G
p
i
x
0
, 1 i
42
l 1 si x
0

G
p
l
.

In derivarile x
0

G
p
i
x
0
, 1 i l 1 se aplica numai
reguli din G cu except ia ultimei reguli care este de forma x x
0
,
dar atunci n gramatica G avem regula x . Deci n gramatica G
putem scrie derivarile x
0

G
p
i
, 1 i l 1, deci p
i
L, 1 i l 1.
Iar derivarea x
0

G
p
l
este de fapt n G, deci p
l
L. T inand cont ca
p = p
1
. . . p
l
si p
i
L, 1 i l, rezulta ca p L

.
Incluziunea L

L(G

). Fie p L

; rezulta ca exista k 0
astfel ncat p L
k
. Vom considera trei cazuri:
1. k = 0. Atunci p = si n gramatica G

avem x
0

G
, deci
p L(G

);
2. k = 1. Atunci p L si cum regulile lui G sunt si n G

, avem
x
0

G
p, deci p L(G

);
3. k > 1.

In acest caz p = p
1
. . . p
k
si p
i
L, 1 i k, deci
avem x
0

G
p
i
, 1 i k. Din construct ia gramaticii G

avem
derivarile x
0

G
p
i
x
0
1 i < k si x
0

G
p
k
. Deci putem scrie
x
0

G
p
1
p
2
x
0

G
. . .

G
p
1
. . . p
k1
x
0

G
p
1
. . . p
k
, prin urmare
p L(G

).
Teorema 2.5.12. Familia L
3
este nchisa la operat iile de complemen-
tariere si intersect ie.
Demonstrat ie. Fie L L
3
; trebuie sa demonstram ca

L
L
3
. Din L L
3
rezulta ca exista un automat nit determinist A =
(S, , , s
0
, F) cu L = L(A). Consideram automatul nit determinist
A

= (S, , , s
0
, S F). Sa aratam ca L(A

) =

L, ceea ce este
echivalent cu p L(A

) daca si numai daca p L(A).


Din p L(A

) avem (s
0
, p) S F, deci p L(A).
Din p L(A) avem (s
0
, p) F, deci (s
0
, p) S F si rezulta
p L(A

). Vom nota L =

L.
Pentru nchiderea la intersect ie, folosim L
1
L
2
= L
1
L
2
si cum
L
3
este nchis la reuniune si complementariere, rezulta c a este nchis
la intersect ie.
43
O alta proprietate a limbajelor regulate este descrisa de urmatorul
rezultat, pe care-l vom aminti fara demonstrat ie:
Lema BarHillel. Fie L un limbaj de tip 3. Exista un numar
k astfel ncat oricare ar w L cu |w| k, are o descompunere de
forma w = xyz, unde 0 < |y| k si xy
i
z L oricare ar i 0.
Exercit ii rezolvate
1) Sa se arate ca automatul A = ({s
0
, s
1
, s
2
}, {a, b}, , s
0
, {s
0
, s
1
}),
cu denita prin graful de tranzit ie din gura urmatoare, accepta
limbajul L = {a
i
b
j
| i, j 0}.
`
_

_
`
_

a
b
a


b
a,b
s
0
s
1
s
2
Rezolvare: Trebuie sa demonstram ca L(A) = L. Aratam mai
ntai incluziunea L L(A). Sa luam cteva cuvinte: pentru i = j = 0,
a
i
b
j
= , (s
0
, ) = s
0
F, deci L(A). Pentru i = j = 1,
a
i
b
j
= ab, (s
0
, ab) = ((s
0
, a), b) = (s
0
, b) = s
1
F, deci L(A).
Pentru i, j 0 arbitrari, avem:
(s
0
, a
i
b
j
) = ((s
0
, a
i
), b
j
) = (s
0
, b
j
) =

s
0
F, daca j = 0
s
1
F, n caz contrar
,
deci a
i
b
j
L(A).
Invers, sa aratam incluziunea L(A) L. Fie p L(A). Atunci
p {a, b}

si (s
0
, p) F. Vom arata ca p = a
i
b
j
cu i, j 0. Pentru
aceasta, consideram mai multe cazuri posibile:
1. p = , atunci (s
0
, ) = s
0
F si p = = a
0
b
0
.
2. p = a
i
, cu i 1, atunci (s
0
, a
i
) = s
0
F si p = a
i
b
0
.
44
3. p = b
j
, cu j 1, atunci (s
0
, b
j
) = s
1
F si p = a
0
b
j
.
4. p = a
i
b
j
, cu i, j 1, atunci (s
0
, a
i
b
j
) = ((s
0
, a
i
), b
j
) =
(s
0
, b
j
) = s
1
F si p = a
i
b
j
.
5. p = a
i
b
j
au, cu i 0, j 1 si u {a, b}

. Atunci (s
0
, a
i
b
j
au) =
((s
0
, a
i
), b
j
au) = (s
0
, b
j
au) = ((s
0
, b
j
), au) = (s
1
, au) =
((s
1
, a), u) = (s
2
, u) = s
2
F si prin urmare acest caz este
imposibil, deoarece contrazice faptul ca p L(A).
Deci cuvintele din L(A) sunt de forma a
i
b
j
, cu i, j 0.
2) Sa se arate ca automatul A = ({s
0
, s
1
, s
2
, s
3
, s
4
, s
5
}, {a, b, c}, , s
0
, {s
4
}),
cu denita prin graful de tranzit ie din gura urmatoare, recunoaste
limbajul L = {ab
2
c
n
| n 1}.
`
_
`
_
`
_
`
_
`
_
`
_


.
`
`
_
s
0
s
1
s
2
s
3
s
4
s
5
a b b
c
c
b, c
a, c
a, c
a, b
a, b
a, b, c
Rezolvare: Trebuie sa demonstram ca L(A) = L. Aratam
mai ntai incluziunea L L(A). Pentru n 1 arbitrar, avem:
(s
0
, ab
2
c
n
) = ((s
0
, a), b
2
c
n
) = (s
1
, b
2
c
n
) = ((s
1
, b), bc
n
) =
(s
2
, bc
n
) = ((s
2
, b), c
n
) = (s
3
, c
n
) = ((s
3
, c), c
n1
) = (s
4
, c
n1
) =
s
4
F, deci ab
2
c
n
L(A).
Invers, sa aratam incluziunea L(A) L. Fie w L(A). Atunci
w {a, b, c}

si (s
0
, w) F. Vom arata ca w = ab
2
c
n
cu n 1.
Pentru aceasta, convenim sa notam cu first(w) primul simbol al
cuvantului w, daca w = . Consideram mai multe cazuri:
1. w = , atunci (s
0
, ) = s
0
F, ceea ce contrazice ipoteza, deci
acest caz nu este posibil.
45
2. daca first(w) = b sau first(w) = c, atunci w = bw
1
sau w =
cw
1
si (s
0
, w) = (s
5
, w
1
) = s
5
F, ceea ce contrazice ipoteza.
Deci w nu poate ncepe cu b sau c, prin urmare avem w = aw
1
.
3. w = aw
1
, atunci (s
0
, aw
1
) = ((s
0
, a), w
1
) = (s
1
, w
1
). Acum
trebuie sa t inem cont de faptul ca trebuie sa ajungem n starea
nala s
4
.
Daca first(w
1
) = a sau first(w
1
) = c, atunci (s
1
, w
1
) =
s
5
F, ceea ce contrazice ipoteza. Deci first(w
1
) = b,
prin urmare w
1
= bw
2
si avem (s
1
, bw
2
) = ((s
1
, b), w
2
) =
(s
2
, w
2
).
Daca first(w
2
) = a sau first(w
2
) = c, atunci (s
2
, w
2
) =
s
5
F, ceea ce contrazice ipoteza. Deci first(w
2
) = b,
prin urmare w
2
= bw
3
si avem (s
2
, bw
3
) = ((s
2
, b), w
3
) =
(s
3
, w
3
).
Daca first(w
3
) = a sau first(w
3
) = b, atunci (s
3
, w
3
) =
s
5
F, ceea ce contrazice ipoteza. Deci first(w
3
) = c,
prin urmare w
3
= cw
4
si avem (s
3
, cw
4
) = ((s
3
, c), w
4
) =
(s
4
, w
4
).
Cuvantul w
4
trebuie sa cont ina numai simboli c, deoarece
n caz contrar, daca ar cont ine macar un a sau b, atunci
automatul ar trece n starea s
5
pe care nu ar mai parasi-
o, deci nu am putea ajunge n nal la s
4
. Prin urmare,
w
4
= c
k
, cu k 0, si avem ca w = aw
1
= abw
2
= abbw
3
=
abbcw
4
= ab
2
c
k+1
.
Deci cuvintele din L(A) sunt de forma w = ab
2
c
n
cu n 1.
3) Sa se construiasca automatul minimal corespunzator automatu-
lui A = ({s
0
, s
1
, s
2
, s
3
, s
4
, s
5
, s
6
, s
7
}, {0, 1}, , s
0
, {s
3
, s
4
, s
5
, s
7
}), cu
denita prin graful de tranzit ie din gura urmatoare.
46
`
_
`
_

_
`
_
`
_
`
_
`
_
`
_
`
_

_
`
_


-
-


s
0
s
1
s
2
s
3
s
4 s
5
s
6
s
7
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0, 1
Rezolvare: Pentru a construi automatul minimal parcurgem
urmatorii pasi:
1) Determinam starile accesibile utilizand algoritmul ACC si gasim
automatul redus echivalent cu A.
2) Calculam clasele de echivalent a ale relat iei n automatul redus.
3) Construim automatul minimal echivalent cu automatul A, A
min
=
(S

/, ,

, [s
0
]

, {[s]

, s F

}).
Sa parcurgem pasii de mai sus:
1) G
0
= {s
0
}, G
1
= G
0
(G
0
, ) = {s
0
}{s
1
, s
2
} = {s
0
, s
1
, s
2
}; cum
G
0
= G
1
, continuam calculul mult imilor G
i
. G
2
= G
1
(G
1
, ) =
{s
0
, s
1
, s
2
} {s
3
, s
5
, s
6
} = {s
0
, s
1
, s
2
, s
3
, s
5
, s
6
}, G
1
= G
2
. G
3
= G
2

(G
2
, ) = {s
0
, s
1
, s
2
, s
3
, s
5
, s
6
} {s
4
, s
5
} = {s
0
, s
1
, s
2
, s
3
, s
4
, s
5
, s
6
},
G
2
= G
3
. G
4
= G
3
(G
3
, ) = G
3
si deci algoritmul ACC se opreste
cu S

= G
3
= G
4
.
Asadar, starile accesibile sunt S

= {s
0
, s
1
, s
2
, s
3
, s
4
, s
5
, s
6
}, iar auto-
matul redus este A

= ({s
0
, s
1
, s
2
, s
3
, s
4
, s
5
, s
6
}, {0, 1},

, s
0
, {s
3
, s
4
, s
5
}),
unde

este restrict ia lui la S

.
2) Sa construim clasele de echivalent a ale relat iei pentru A

.
Clasele de echivalent a pentru relat ia
0
sunt F

si S

, deoarece
singurul cuvant de lungime 0 este si (s, ) = s, oricare ar s S,
asadar avem ca s
1
0
s
2
daca si numai daca ((s
1
, )) = ((s
2
, )),
daca si numai daca (s
1
) = (s
2
), daca si numai daca s
1
, s
2
F

sau
s
1
, s
2
/ F

. Deci S

/
0
= {F

, S

} = {{s
3
, s
4
, s
5
}, {s
0
, s
1
, s
2
, s
6
}}.
Pentru a determina clasele de echivalent a pentru relat ia
1
aplicam
47
lema: s
1
k
s
2
daca si numai daca s
1
k1
s
2
si (s
1
, i)
k1
(s
2
, i),
i . Deci pentru ca doua stari sa e n aceeasi clasa fat a de
relat ia
k
, ele trebuie sa fost n aceeasi clasa fat a de relat ia
k1
si, n
plus, (s
1
, i) si (s
2
, i) sa fost si ele n aceeasi clasa fat a de relat ia
k1
, si aceasta pentru tot i simbolii i ai alfabetului de intrare.
Pentru
1
, luam deci ecare clasa pentru
0
si vericam daca este
ndeplinita condit ia a doua.
I. Pentru clasa {s
3
, s
4
, s
5
} avem:
1) Pentru perechea {s
3
, s
4
} avem (s
3
, 0) = s
5
, (s
4
, 0) = s
5
, si
(s
3
, 1) = s
4
, (s
4
, 1) = s
4
. Deoarece s
5
0
s
5
si s
4
0
s
4
, rezulta
ca s
3
1
s
4
.
2) Pentru perechea {s
3
, s
5
} avem (s
3
, 0) = s
5
, (s
5
, 0) = s
5
, si
(s
3
, 1) = s
4
, (s
5
, 1) = s
5
. Deoarece s
5
0
s
5
si s
4
0
s
5
, rezulta
ca s
3
1
s
5
.
Cum
1
este o relat ie de echivalent a, rezulta ca {s
3
, s
4
, s
5
}
formeaza o clasa de echivalent a fat a de relat ia
1
.
II. Pentru clasa {s
0
, s
1
, s
2
, s
6
} avem:
1) Pentru perechea {s
0
, s
1
} avem (s
0
, 0) = s
1
, (s
1
, 0) = s
2
, si
(s
0
, 1) = s
2
, (s
1
, 1) = s
6
. Deoarece s
1
0
s
2
si s
2
0
s
6
, rezulta
ca s
0
1
s
1
.
2) Pentru perechea {s
0
, s
2
} avem (s
0
, 0) = s
1
, (s
2
, 0) = s
3
, si
(s
0
, 1) = s
2
, (s
2
, 1) = s
5
. Deoarece s
1

0
s
3
, rezulta ca s
0

1
s
2
.
3) Pentru perechea {s
0
, s
6
} avem (s
0
, 0) = s
1
, (s
6
, 0) = s
1
, si
(s
0
, 1) = s
2
, (s
6
, 1) = s
2
. Deoarece s
1
0
s
1
si s
2
0
s
2
, rezulta
ca s
0
1
s
6
.
Cum
1
este o relat ie de echivalent a, rezulta ca {s
0
, s
1
, s
6
}
formeaza o clasa de echivalent a fat a de relat ia
1
, iar {s
2
}
formeaza separat o alta clasa fat a de
1
.
48
Deci pentru
1
clasele de echivalent a sunt:
S

/
1
= {{s
3
, s
4
, s
5
}, {s
0
, s
1
, s
6
}, {s
2
}}.
Similar, pentru
2
, luam ecare clasa pentru
1
si vericam daca
este ndeplinita condit ia a doua din lema amintita mai sus.
III. Pentru clasa {s
3
, s
4
, s
5
} se constata, facand calculele ca la etapa
precedenta, ca {s
3
, s
4
, s
5
} formeaza o clasa de echivalent a fat a
de relat ia
2
.
IV. Pentru clasa {s
0
, s
1
, s
6
} avem:
1) Pentru perechea {s
0
, s
1
} avem (s
0
, 0) = s
1
, (s
1
, 0) = s
2
, si
(s
0
, 1) = s
2
, (s
1
, 1) = s
6
. Deoarece s
1

1
s
2
, rezulta ca s
0

2
s
1
.
2) Pentru perechea {s
0
, s
6
} avem (s
0
, 0) = s
1
, (s
6
, 0) = s
1
, si
(s
0
, 1) = s
2
, (s
6
, 1) = s
2
. Deoarece s
1
1
s
1
si s
2
1
s
2
, rezulta
ca s
0
2
s
6
.
Deci pentru
2
clasele de echivalent a sunt:
S

/
2
= {{s
3
, s
4
, s
5
}, {s
0
, s
6
}, {s
1
}, {s
2
}}.
Apoi, pentru
3
, luam ecare clasa pentru
2
si vericam daca este
ndeplinita condit ia a doua din lema amintita mai sus.
Facand calculele ca la etapa precedenta, se constata c a clasele
{s
3
, s
4
, s
5
}, {s
1
}, si {s
2
} ramn neschimbate. Pentru perechea {s
0
, s
6
}
din calculele de mai sus se observa ca s
0
3
s
6
, si prin urmare
3
=
2
.
Deci clasele de echivalent a ale relat iei pentru A

sunt:
S

/ = {{s
0
, s
6
}, {s
1
}, {s
2
}, {s
3
, s
4
, s
5
}} = {[s
0
], [s
1
], [s
2
], [s
3
]} ,
unde prin [s
0
] = {s
0
, s
6
} am notat clasa lui s
0
, prin [s
1
] = {s
1
} clasa
lui s
1
, s.a.m.d.
3)

In nal obt inem ca automatul minimal echivalent cu automatul A
este urmatorul: A
min
= ({[s
0
], [s
1
], [s
2
], [s
3
]}, {0, 1},

, [s
0
], {[s
3
]}), cu

denita prin graful de tranzit ie din gura urmatoare.


49
`
_
`
_
`
_
`
_


`
_
`
[s
0
] [s
1
]
[s
2
] [s
3
]
0
1
1
0
0, 1
0, 1

4) Sa se arate ca limbajul L = {a
n
b
n
| n 1} nu este limbaj regulat
(de tip 3).
Rezolvare: Presupunem prin reducere la absurd ca L este limbaj
regulat. Atunci, aplicand lema Bar-Hillel (lema de pompare), rezulta
ca exista un numar k N astfel ncat cuvintele w L cu |w| k au
proprietat ile din lema.
Alegem un cuvant w = a
n
b
n
cu |w| = 2n k. Consideram
toate cazurile posibile de descompunere a lui w si vom arata ca n
nici un caz nu sunt satisfacute toate proprietat ile din lema. Vom face
rat tionamentul dupa cuvantul y (cel care se pompeaza).
Cazul I: w = xyz cu y = a
l
b
t
, l, t 1, si x = a
nl
, z = b
nt
.
Atunci, stim din lema ca xy
i
z L, i 0. Dar, luand i = 2, avem
ca xy
2
z = a
nl
a
l
b
t
a
l
b
t
b
nt
= a
n
b
t
a
l
b
n
/ L, din cauza ca apare a dupa
b n acest cuvant (ntruct l, t 1).
Cazul II: y = a
l
, l 1, si x = a
nlt
, z = a
t
b
n
, cu t 0.
Luam i = 0 si avem ca xy
0
z = xz = a
nlt
a
t
b
n
= a
nl
b
n
/ L, din
cauza ca n l < n.
Cazul III: y = b
l
, l 1, si x = a
n
b
t
, z = b
nlt
, cu t 0.
Luam i = 0 si avem ca xy
0
z = xz = a
n
b
t
b
nlt
= a
n
b
nl
/ L, din
cauza ca n > n l.
Acestea ind singurele posibilitat i de descompunere w = xyz,
rezulta ca presupunerea pe care am facut-o, aceea ca limbajul L ar
regulat, este falsa, deci L nu este limbaj regulat.
50
Tema de control (2)
1) Sa se arate ca automatul A = ({s
0
, s
1
, s
2
, s
3
}, {a, b}, , s
0
, {s
2
}),
cu denita prin graful de tranzit ie din gura urmatoare, recunoaste
limbajul L = {a
n
b
m
| n, m 1}.
`
_
`
_
`
_

_
`
_

a
b
a a


b
a,b
s
0
s
1
s
2
s
3

b
2) Se considera automatul A = ({s
0
, s
1
, s
2
, s
3
}, {0, 1}, , s
0
, F), cu
denita prin graful de tranzit ie din gura urmatoare.
`
_
`
_
`
_
`
_

.
s
0
s
1
s
2
s
3
0, 1
1
0
0
1 1
0
a) Sa se gaseasca L(A) pentru F = {s
0
} ;
b) Sa se gaseasca L(A) pentru F = {s
1
} ;
c) Sa se gaseasca L(A) pentru F = {s
2
} ;
d) Sa se gaseasca L(A) pentru F = {s
3
} .
3) Sa se arate ca automatul A = ({s
0
, s
1
, s
2
, s
3
, s
4
}, {a, b, c}, , s
0
, {s
3
}),
cu denita prin graful de tranzit ie din gura urmatoare, recunoaste
limbajul L = {a
n
cb
m
| n, m 1}.
51
`
_
`
_
`
_
`
_
`
_


.
`
`
_
s
0
s
1
s
2
s
3
s
4
a c
b
b
b, c
b
a, c
a, c
a, b, c

a
4) Sa se arate ca limbajul L
m
= {a
n
b
n+m
| n 1}, cu m 1 xat, nu
este limbaj regulat (de tip 3).
52
Tema 3
Limbaje independente de
context si automate
pushdown
1 Automate pushdown nedeterministe

In capitolul precedent am vazut ca familia L


3
coincide cu familia lim-
bajelor acceptate de automate deterministe sau nedeterministe. Pen-
tru limbajele din clasa L
2
exista un alt tip de automat care sa accepte
limbajele din L
2
si anume automate pushdown nedeterministe.
Un model pentru un automat pushdown nedeterminist este dat n
Figura 3.1.1.
Modelul prezentat mai sus consta dintr-o banda de intrare pe care
sunt plasate simboluri dintr-un alfabet de intrare, , o memorie nu-
mita memorie pushdown n care sunt plasate simboluri dintr-un alfa-
bet si o unitate de comanda. Unitatea de comanda este prevazuta
cu doua capete de citire, unul pentru banda de intrare, care se poate
deplasa spre dreapta, si unul pentru memoria pushdown care vizeaza
numai primul simbol din memorie. Unitatea de comanda care se aa
ntr-o stare s si vizeaza pe banda de intrare simbolul a
i
si n memo-
ria pushdown simbolul z
1
va trece ntr-o noua stare s

, capul de citire
de pe banda de intrare se va deplasa cu o locat ie spre dreapta sau
ramane pe loc, iar simbolul z
1
din memoria pushdown se nlocuieste
53
-
6
banda
de
intrare
Unitatea
de
comanda
memorie
pushdown
z
1
z
2
.
.
.
z
n
.
.
.
a
1
a
2
a
3
a
4
a
5
. . . a
i
. . .
Fig. 3.1.1.
cu un cuvant peste alfabetul .

Inlocuirea lui z
1
cu se face cu
mpingerea n jos a simbolurilor z
2
, . . . , z
n
, daca || > 1, astfel ca se
plaseaza n capul stivei, de aici denumirea de pushdown (cu toate ca
daca || = 0 simbolurile din memoria pushdown urca, iar cand || = 1
aceste simboluri raman pe loc).
Denit ia 3.1.1. Un automat pushdown nedeterminist este un
7-uplu P = (S, , , , s
0
, z
0
, F), unde:
1. S este o mult ime nita si nevida, numita mult imea starilor au-
tomatului pushdown;
2. este o mult ime nita si nevida, numita alfabetul de intrare;
3. este o mult ime nita si nevida numita alfabetul pushdown;
4. este o funct ie : S ( {}) P(S

), numita
funct ie de tranzit ie;
54
5. s
0
S se numeste starea init iala a automatului pushdown;
6. z
0
se numeste simbolul pushdown init ial;
7. F S se numeste mult imea starilor nale.
Denit ia 3.1.2. Se numeste congurat ie a unui automat pushdown
o tripleta (s, w, ) S

.
Pe modelul dat, cele trei elemente ale unei congurat ii le putem
interpreta n felul urmator:
1. s S reprezinta starea n care se aa unitatea de comanda n
momentul considerat;
2. w

reprezinta partea necitita de pe banda de intrare, adica


partea delimitata la stanga de capul de citire si la dreapta de
ultimul simbol diferit de blanc, inclusiv;
3. reprezinta cont inutul memoriei pushdown, primul caracter al
lui este cel vizat.

In cazul = spunem ca memoria push-
down este vida.
O congurat ie reprezinta starea automatului la un moment dat. Pe
mult imea congurat iilor C, denim o relat ie binara

P
C C care
deneste miscarea automatului pushdown.
Denit ia 3.1.3. Congurat ia (s, aw, z) este n relat ia

P
cu
congurat ia (s

, w, ), scris (s, aw, z)

P
(s

, w, ), daca (s

, )
(s, a, z), unde s, s

S, a {}, z , w

si ,

.
Observam ca pentru a posibila miscarea automatului dintr-o
congurat ie n alta congurat ie, memoria pushdown trebuie
sa e nevida. Daca memoria pushdown este vida, miscarea automat-
ului pushdown nu mai este posibila.
Consideram nchiderea reexiva si tranzitiva a relat iei

P
pe care
o notam cu

P
. Atunci cand automatul pushdown este subnt eles, noi
vom renunt a la indicele P si vom scrie

n loc de

P
.
55
Denit ia 3.1.4. Limbajul acceptat de un automat pushdown cu
stari nale P = (S, , , , s
0
, z
0
, F) este
L(P) = {w | w

, (s
0
, w, z
0
)

P
(s, , ), s F,

}
Exemplu. Fie P = ({s
0
, s
1
, s
2
, s
3
}, {0, 1}, {0, z}, , s
0
, z, {s
3
}) unde:
1. (s
0
, 0, z) = {(s
1
, 0z)}
2. (s
1
, 0, 0) = {(s
1
, 00)}
3. (s
1
, 1, 0) = {(s
2
, )}
4. (s
2
, 1, 0) = {(s
2
, )}
5. (s
2
, , z) = {(s
3
, )}
6. (s, a, ) = n celelalte cazuri.
Sa vedem daca cuvantul 0011 apart ine limbajului L(P). Con-
sideram secvent a de tranzit ii:
(s
0
, 0011, z)

(s
1
, 011, 0z)

(s
1
, 11, 00z)

(s
2
, 1, 0z)

(s
2
, , z)

(s
3
, , );
cum s
3
este starea nala, rezulta ca 0011 L(P).

In Denit ia 3.1.4 observam ca pentru ca un cuvant w sa apart ina


limbajului trebuie ca sa existe un sir de tranzit ii din congurat ia
init iala (s
0
, w, z) ntr-o congurat ie (s, , ) cu s F si

.
Putem deni un nou limbaj acceptat de un automat pushdown n
care sa slabim condit ia ca starea s sa apart ina mult imii F si vom lasa
aceasta stare arbitrara din S, dar vom ntari condit ia

, vom
cere ca = .
Denit ia 3.1.5. Fie P = (S, , , , s
0
, z
0
, ) un automat push-
down. Vom numi limbaj acceptat de automatul pushdown P cu mem-
orie pushdown vida, urmatorul limbaj:
L

(P) = {w | w

, (s
0
, w, z
0
)

(s, , ), s S}

In exemplul dat nainte se observa ca 0011 este un cuvant acceptat de


automatul pushdown cu memorie pushdown vida.
56
Problema care se pune este ce legatura este ntre cele doua familii
de limbaje?

In urmatoarele doua teoreme vom arata ca cele doua
familii de limbaje sunt egale.
Teorema 3.1.6. Fie P = (S, , , , s
0
, z
0
, ) un automat push-
down cu memorie pushdown vida. Exista un automat pushdown P

astfel ncat L(P

) = L

(P).
Demonstrat ie. Fie P

= (S {s

0
, s
f
}, , {x},

, s

0
, x, {s
f
}),
unde s

0
, s
f
S, x si funct ia

este denita prin:


1.

(s

0
, , x) = {(s
0
, z
0
x)};
2.

(s, a, z) = (s, a, z) pentru s S, a {} si z ;


3.

(s, , x) = {(s
f
, )} pentru s S;
4.

(s, a, z) = n celelalte cazuri.


Egalitatea L(P

) = L

(P) o vom demonstra prin dubla incluziune.


a) Sa demonstram L

(P) L(P

). Fie w L

(P); atunci exista


s S astfel ncat avem
(s
0
, w, z
0
)

P
(s, , ) (1)
Folosind denit ia lui

si anume punctul 1), avem:


(s

0
, w, x)

(s
0
, w, z
0
x). (2)
Folosind punctul 2) din denit ia lui

, avem:
(1

) (s
0
, w, z
0
)

(s, , )
Folosind relat iile (2), (1) si punctul 3) din denit ia lui

, putem scrie
urmatorul sir de tranzit ii n P

:
(s

0
, w, x)

(s
0
, w, z
0
x)

(s, , x)

(s
f
, , ),
deci (s

0
, w, x)

(s
f
, , ), ceea ce nseamna w L(P

).
57
b) Sa demonstram incluziunea inversa, L(P

) L

(P). Fie
w L(P

); atunci exista un ( {x})

astfel ncat
(s

0
, w, x)

(s
f
, , ) (3)
Din denit ia lui

rezulta ca primul pas al tranzit iilor din (3) se face


dupa punctul 1) si anume avem:
(3

) (s

0
, w, x)

(s
0
, w, z
0
x)

(s
f
, , )
Dar modul de denire al funct iei

ne arata ca automatul P

poate
intra n starea s
f
numai conform punctului 3) din denit ia lui

, deci
ultimul pas al tranzit iilor din (3) trebuie sa e dupa cum urmeaza:
(3

) (s

0
, w, x)

(s
0
, w, z
0
x)

(s, , x)

(s
f
, , )
si n plus, pe port iunea (s
0
, w, z
0
x)

(s, , x) se aplica numai punctul


2) din denit ia lui

, deci aceste tranzit ii le avem si n automatul


pushdown P:
(s
0
, w, z
0
)

P
(s, , ), (4)
ceea ce arata ca w L

(P).
Cu aceasta am aratat ca orice limbaj acceptat de un automat
pushdown cu memorie pushdown vida este acceptat de un automat
pushdown cu stari nale. Urmatoarea teorema stabileste incluziunea
inversa.
Acum sa demonstram incluziunea inversa si anume ca orice limbaj
acceptat de un APD cu stari nale poate acceptat de un APD cu
memoria vida.
Teorema 3.1.7. Un limbaj L acceptat de un automat pushdown
cu stari nale este acceptat si de un automat pushdown cu memorie
pushdown vida.
Demonstrat ie. Fie P = (S,

, , , s
0
, z
0
, F) cu L = l(P). Fie
automatul pushdown cu memorie vida: P

= (S {s

0
, s

},

, {x},

, s

0
, x, ), unde s

0
, s

S, x si

este denit prin:


58
1.

(s

0
, , x) = {(s
0
, z
0
x)};
2. (a)

(s, a, z) = (s, a, z) pentru s S, a



si z ;
(b)

(s, , z) = (s, , z) pentru s S \ F, z ;


(c)

(s, , z) = (s, , z) {(s

, ) pentru s F si z ;
3.

(s, , x) = {(s

, )} pentru s F;
4.

(s

, , z) = {(s

, )} pentru z {x};
5.

(s, a, z) = n celelalte cazuri.


Se poate arata prin dubla incluziune ca L(P) = L

(P

).
Cele doua teoreme demonstreaza ca L
f
APD
= L

APD
, adica familia
limbajelor acceptate de automatele pushdown ca stari nale este egala
cu familia limbajelor acceptate de automatele pushdown cu memorie
vida, de aceea vom nota aceasta familie cu L
APD
, adica familia lim-
bajelor acceptate de automatele pushdown. Vom arata mai departe
ca L
APD
= L
2
. Aceasta egalitate o demonstram n urmatoarele doua
teoreme.
Teorema 3.1.8. Fie L un limbaj independent de contact, adica
L L
2
. Exista un automat pushdown P

astfel ncat L = L

(P

).
Teorema 3.1.9.Fie L un limbaj independent de context. Exista
un automat pushdown P

astfel ncat L = L

(P

).
Demonstrat ie. Din L L
2
, rezulta ca exista o gramatica de tipul
doi G = (V
N
, V
T
, x
0
, P) astfel ncat L = L(G). Consideram urmatorul
automat pushdown P

= ({s}, V
T
, V
N
V
T
, , s, x
0
, ). Funct ia de
tranzit ie este:
1. (s, , X) = {(s, ) | X P};
2. (s, a, a) = {(s, )}, a ;
3. (s, a, z) = n celelalte cazuri.
59
Pentru a demonstra ca L(G) = L

(P

) vom demonstra n prealabil


urmatoarea proprietate:
X
m

G
w, w V

T
, X V
N
daca si numai daca (s, w, X)

n
P

(s, , ) (1)
pentru m 1 si n 1 convenabil ales; m si n reprezinta numarul de
pasi n derivare sau n tranzit ie, respectiv.
Implicat ia n sens direct o demonstram prin induct ie dupa m.
Pentru m = 1, e w = i
1
. . . i
k
, k 0. Atunci avem X
G
i
1
. . . i
k
,
deci exista regula X i
1
. . . i
k
P si dupa 1) si 2) putem scrie
urmatorul sir de tranzit ii:
(s, i
1
. . . i
k
, X)

(s, i
1
. . . i
k
, i
1
. . . i
k
)

(s, , ).
Presupunem implicat ia directa (1) adevarata pentru toate de-
rivarile de lungime cel mult l 1 si e X
l

G
w, cu l > 1. Din aceasta
derivare vom pune n evident a primul pas al derivarii:
A
G
x
1
. . . x
t
cu x
i
V
N
V
T
, 1 i t.
Pentru derivarea x
1
. . . x
t
l1
=
G
w se aplica teorema de localizare si
obt inem w = w
1
. . . w
t
si exista derivarile
x
i
l1

G
w
i
, 1 i t. (2)
Derivarile (2) au lungimea cel mult l 1. Daca x
i
V
N
, atunci,
conform pasului inductiv, avem:
(s, w
i
, x
i
)

n
i

(s, , ). (3)
Daca x
i
V
T
, atunci x
i
= w
i
si utilizand punctul 2) din denit ia lui
, avem:
(3

) (s, x
i
, x
i
)

(s, , )
Deci din (3) si (3) avem:
(3

) (s, w
i
, x
i
)

(s, , ), 1 i t.
60
Din X x
1
. . . x
k
P, avem, conform punctului 1) din denit ia lui
, urmatoarea tranzit ie:
(s, w, X)

(s, w, x
1
. . . x
k
) (4)
Din (4) si (3) obt inem:
(s, w, X)

(s, w
1
. . . w
k
, x
1
. . . x
k
)

(s, , ).
Cu aceasta, implicat ia directa este demonstrata.
Sa demonstram implicat ia inversa. Aceasta implicat ie va demon-
strata prin induct ie dupa n.
Pentru n = 1, avem (s, w, X)

(s, , ). Deoarece X V
N
si
w V

T
rezulta can aceasta tranzit ie nu se poate aplica direct punctul
1) din denit ia lui , deci exista X P si n plus, w = . Din
X P, rezulta ca avem X
G
.
Presupunem implicat ia adevarata pentru n l si sa o demonstram
pentru n = l + 1. Fie deci tranzit ia
(s, w, X)

l+1
P

(s, , ), cu l 1. (5)
Prima miscare a lui P

trebuie sa e de forma
(s, w, X)

(s, w, x
1
. . . x
k
),
unde X x
1
. . . x
k
P si x
i
V
N
V
T
, 1 i k.
Dar din congurat ia (s, w, x
1
. . . x
k
) trebuie sa se ajunga n l pasi
n (s, , ) conform relat iei (5), deci avem:
(s, w, x
1
. . . x
k
)

l
P

(s, , ) (6)
Din (6) rezulta ca w =
1
. . .
k
, unde
1
este format din simbolii lui
w care sunt parcursi pana ce x
2
ajunge primul simbol din memoria
pushdown,
2
este format din simbolii lui w de la prima vizare a lui
x
2
si pana ce x
3
ajunge primul simbol din memoria pushdown, s.a.m.d.
Deci putem scrie:
(s,
i
, x
i
)

l
i

(s, , ), 1 i k (7)
61
si numarul de pasi l
i
ai acestor tranzit ii este mai mic sau cel mult egal
cu l.
Daca x
i
V
T
, se poate aplica numai punctul 2) din denit ia lui ,
ceea ce implica
i
= x
i
si tranzit ia este de forma:
(7

) (s, x
i
, x
i
)

(s, , )
ntr-un pas.
Daca x
i
V
N
, atunci, aplicand ipoteza inductiva, avem x
i

i
. Deci
n total avem
x
1
. . . x
k

1
. . .
k
.

In plus, t inand cont ca n P exista regula X x


1
. . . x
k
, avem
X
G
x
1
. . . x
k

1
. . .
k
= w, deci X

G
w.
Luand X = x
0
, proprietatea (1) devine: x
0

G
w daca si numai
daca (s, w, x
0
)

(s, , ) ceea ce nseamna ca w L(G) daca si numai


daca w L

(P

).
Sa demonstram acum ca limbajul acceptat de un automat push-
down este independent de context.
Teorema 3.1.10. Fie R = (S, , , , s
0
, z
0
, ) un automat push-
down. Limbajul L

(R) este un limbaj independent de context.


Demonstrat ie. Vom construi o gramatica independenta de con-
text care sa genereze limbajul L

(R). Gramatica G o consideram de


forma G = (V
N
, , x
0
, P) unde:
V
N
= (S S) {x
0
}, unde x
0
S S;
regulile din P ale gramaticii G le denim n felul urmator:
1. Pentru a {} si (r,
1
. . .
k
) (s, a, z), k 1 si
i
,
1 i k. Vom considera n G toate regulile de forma:
[sz
k
] a[r
1

1
] . . . [
k1

k
]
pentru ecare secvent a de stari
1
. . . ,
k
S.
62
2. Pentru a {} si (r, ) (s, a, z) consideram regula [szr]
a.
3. Pentru ecare s S consideram regula x
0
[s
0
z
0
s].

In denirea regulilor de mai sus, am notat un element (s, z, s

)
S S cu [szs

]. Se observa ca gramatica G denita mai sus este


independenta de context. Se poate demonstra prin induct ie ca:
[szr]

G
w daca si numai daca (s, w, z)

R
(r, , )
pentru orice w

.
(1)
Aceasta dubla implicat ie ne permite sa demonstram ca L(G) =
L

(R).
2 Proprietat i de nchidere
pentru familia L
2

In acest paragraf vom studianchiderea familiei L


2
la unele operat ii
ca: produs, iterat ie si substitut ie. Reamintim ca am demonstrat ca
L
2
este nchisa la reuniune.
Teorema 3.2.1. Familia L
2
este nchisa la operat ia de produs.
Demonstrat ie. Vom demonstra ca daca L
1
, L
2
L
2
, atunci
L
1
L
2
L
2
. Din L
1
, L
2
L
2
rezulta ca exista gramaticile de tipul
doi G
1
= (V
N
1
, V
T
1
, x
01
, P
1
) si G
2
= (V
N
2
, V
T
2
, x
02
, P
2
) cu L
1
= L(G
1
)
si L
2
= L(G
2
) si n plus V
N
1
V
N
2
= .
Consideram gramatica G = (V
N
1
V
N
2
{x
0
}, V
T
1
V
T
2
, x
0
, P
1

P
2
{x
0
x
01
x
02
}), unde x
0
V
N
1
V
N
2
. Gramatica G este de tipul
2 deoarece regulile din P
1
si P
2
sunt reguli ale gramaticilor de tip doi
si la fel, regula x
0
x
01
x
02
.
Trebuie sa demonstram ca L(G) = L
1
L
2
. Aceasta egalitate o
vom demonstra prin dubla incluziune.
63
Incluziunea L(G) L
1
L
2
. Fie p L(G); rezulta ca exista
derivarea x
0

G
p, dar primul pas al derivarii este x
0

G
x
01
x
02

G
p.
Pentru derivarea x
01
x
02

G
p aplicam teorema de localizare si obt inem
p = p
1
p
2
si x
01

G
p
1
si x
02

G
p
2
. Din faptul ca V
N
1
V
N
2
= , rezulta
ca derivarile precedente din G sunt n G
1
si G
2
, respectiv. Deci avem
x
01

G
1
p
1
si x
02

G
2
p
2
, de unde p
1
L
1
si p
2
L
2
, ceea ce ne da ca
p = p
1
p
2
L
1
L
2
.
Incluziunea inversa L
1
L
2
L(G). Fie p L
1
L
2
= L(G
1
)
L(G
2
); rezulta ca p = p
1
p
2
cu p
1
L(G
1
) si p
2
L(G
2
), de unde avem
x
01

G
1
p
1
si x
02

G
2
p
2
. Dar cum regulile din G
1
si G
2
sunt si n G,
iar n G avem n plus regula x
0
x
01
x
02
, rezulta ca avem derivarea
x
0

G
x
01
x
02

G
p
1
p
2
, deci p L(G).
Lema 3.2.2. Fie G o gramatica de tipul 2; atunci daca ntr-un
cuvant u se pot aplica doua sau mai multe reguli, nu are important a
ordinea de aplicare a acestor reguli; aplicand regulile posibile n orice
ordine, se obt ine acelasi cuvant.
Demonstrat ie. Vom considera cazul cand n u se pot aplica
doua reguli; cazul general rezulta imediat, din cel considerat. Fie
u = u
1
xu
2
yu
3
cu x, y V
N
si n gramatica G exista regulile:
1. x r
1
si
2. y r
2
.
Atunci daca aplicam cele doua reguli n ordinea 1) si apoi 2), sau 2)
si apoi 1) obt inem:
a) u
G
u
1
r
1
u
2
yu
3

G
u
1
r
1
u
2
r
2
u
3
;
b) u
G
u
1
xu
2
r
2
u
3

G
u
1
r
1
u
2
r
2
u
3
;
de unde se vede ca n cele doua derivari, cuvantul obt inut din u este
acelasi, adica u
1
r
1
u
2
r
2
u
3
.
Teorema 3.2.3. Familia limbajelor libere de context, L
2
, este
nchisa la operat ia de iterat ie.
64
Demonstrat ie. Fie L un limbaj de tipul doi; trebuie sa demon-
stram ca L

L
2
. Din L L
2
rezulta ca exista o gramatica G de
tipul doi, G = (V
N
, V
T
, x
0
, P) care sa genereze L, adica L = L(G).
Pentru a arata ca L

este de tipul doi, vom construi o gramatica G

de tipul doi care sa genereze limbajul L

. Sa consideram gramatica:
G

= (V
N
{y
0
}, V
T
, y
0
, P {y
0
, y
0
y
0
x
0
}), unde y
0
V
N
. (1)
Se observa imediat, din forma regulilor de generare, ca G

este o gra-
matica de tipul doi. Sa demonstram egalitatea L

= L(G

).
a) Incluziunea L

L(G

). Fie p L

n=0
L
n
; rezulta ca
exista k 0 astfel ncat p L
k
.
Daca k = 0, rezulta p = si n gramatica G

avem regula y
0
,
deci si derivarea y
0

G
, de unde p = G

.
Daca k 1, atunci din p L
k
, rezulta ca p = p
1
. . . p
k
si p
j
L(G),
1 j k. Din p
j
L(G), 1 j k, rezulta ca exista derivarile:
x
0

G
p
j
, 1 j n. (2)
Folosind derivarile (2) putem scrie n G

:
y
0

G
y
0
x
0

G
y
0
x
0
x
0

G
. . .
G
y
0
x
0
. . . x
0

kori

G
x
0
. . . x
0

kori

G
p
1
x
0
. . . x
0

G
p
1
p
2
x
0
. . . x
0

G
. . .

G
p
1
p
2
. . . p
k
.
(3)
Deci avem y
0

G
p, de unde p L(G

).
b) Incluziunea inversa, L(G

) L

. Fie p L(G

), deci exista
derivarea y
0

G
p. Singurele reguli cu y
0
sunt y
0
si y
0
y
0
x
0
;
deci n derivarea y
0

G
p la primul pas se aplica una din aceste reguli.
Daca se aplica prima regula, atunci derivarea devine y
0

G
si avem
= p L

. Daca la primul pas se aplica cea de a doua regula cu y


0
n partea stanga, atunci derivarea devine y
0

G
y
0
x
0
. Mai departe se
pot aplica reguli din P sau din nou o regula cu y
0
n partea stanga.
Conform lemei precedente, putem considera ca toate regulile care se
65
aplica n derivarea y
0

G
p si au y
0
n partea stanga se aplica la
nceput, ultima regula cu y
0
este y
0
, deoarece y
0
trebuie eliminat
si aceasta este singura regula care sterge y
0
. Deci putem considera ca
n derivarea y
0

G
p se aplica de m ori regula y
0
y
0
x
0
, dupa care se
aplica y
0
. Deci putem scrie:
y
0
m

G
y
0
x
0
. . . x
0

m ori

G
x
0
. . . x
0

m ori

G
p
Acum consideram derivarea x
0
. . . x
0

G
p si aplicam teorema de lo-
calizare, rezulta p = p
1
. . . p
m
si
x
0

G
p
j
, 1 j m. (4)
Dar n derivarile (4) se aplica numai reguli din P, celelalte le-am apli-
cat nainte. Deci avem:
(4

) x
0

G
p
j
, 1 j m,
de unde p
j
L, 1 j m, deci p L
m
L

.
3 Exemple rezolvate
I. Sa se arate ca automatul pushdown nedeterminist P = ({s
0
, s
1
, s
2
, s
3
},
{0, 1}, {z, 0}, , s
0
, z, {s
3
}) cu denit prin:
1) (s
0
, 0, z) = {(s
1
, 0z)}
2) (s
1
, 0, 0) = {(s
1
, 00)}
3) (s
1
, 1, 0) = {(s
2
, )}
4) (s
2
, 1, 0) = {(s
2
, )}
5) (s
2
, , z) = {(s
3
, )}
6) (s, 0, z) = n celelalte cazuri.
66
recunoaste limbajul {0
n
1
n
|n 1}.
Rezolvare:
Consideram cateva cazuriparticulare. Sa aratam ca {0
n
1
n
|n
1} L(P).
Pentru n = 1 avem:
(s
0
, 01, z) (s
1
, 1, 0z) (s
2
, , z) (s
3
, , )
Pentru n = 2 avem:
(s
0
, 0011, z) (s
1
, 011, 0z) (s
1
, 11, 00z) (s
2
, 1, 0z) (s
2
, , z)
(s
3
, , )
Pentru n > 2 avem:
(s
0
, 0
n
1
n
, z) (s
1
, 0
n1
1
n
, 0z)

(s
1
, 1
n
, 0
n
z) (s
2
, 1
n1
, 0
n1
z)

(s
2
, , z) (s
3
, x, ).
Invers, sa aratam acum ca L(P) {0
n
1
n
|n 1}.
Fie w L(P). Sa aratam ca w = 0
n
1
n
. Vom arata ca w nu
poate avea alta forma. Din w L(P) avem conform denit iei ca
(s
0
, w, z)

(s
3
, , ).
Consideram w = , avem (s
0
, , z) se blocheaza, deci w = nu
apart ine lui L(P). Deci w L(P) trebuie sa e diferit de .
2) w = 1w

, adica w ncepe cu 1, avem: (s


0
, 1w

, z) se blocheaza,
deci w L(P). De aici rezulta ca w nu ncepe cu 1, deci ncepe cu 0.
3) w = 0
n
, n 1, avem (s
0
, 0
n
, z)

(s
1
, , 0
n
z) si se blocheaza. Nu
putem ajunge n s
3
deci 0
n
L(P).
4) w = 0
n
1
k
w

cu w

= sau w

ncepe cu 0.
Vom arata mai ntai ca nu putem avea n < k si nici n > k, deci n
trebuie sa e egal cu k. Apoi aratam ca w trebuie sa e egal cu .
a) Cazul n < k. Atunci avem:
(s
0
, 0
n
1
k
w

, z)

(s
1
, 0
n1
1
k
, 0z)

(s
1
, 1
k
, 0
n
z) (s
2
, 1
k1
, 0
n1
z)

(s
2
, 1
kn
, z)

(s
3
, 1
kn
, ). Am ajuns n starea nala s
3
dar
k n > 0, cuvantul 0
n
1
k
w

nu este acceptat.
b) Cazul n > k.
67
(s
0
, 0
n
1
k
w

, z)

(s
1
, 0
n1
1
k
, 0z)

(s
1
, 1
k
, 0
n
z) (s
2
, 1
k1
, 0
n1
z)
(s
2
, x, 0
nk
z) si se blocheaza deoarece n k > 0. Deci tre-
buie sa avem n = k.
Sa aratam ca w

= . Avem (s
0
, 0
n
1
n
w

, z) (s
1
, 0
n1
1
n
, w

, 0z)

(s
1
, 1
n
w

, 0
n
, z) (s
2
, 1
n1
w

, 0
n1
z)

(s
2
, w

, z)

(s
3
, w

, )
si ca sa e acceptat trebuie sa ajungem la (s
3
, , ), deci
w

= . Prin urmare w = 0
n
1
n
cu n 1.
II. Fie automatul pushdown nedeterminist P = ({s
0
, s
1
, s
2
}, {a, b}, {z, a, b},
s
0
, z, {s
2
}) cu denit prin:
1) (s
0
, a, z) = {(s
0
, az)};
2) (s
0
, b, z) = {(s
0
, bz)};
3) (s
0
, a, a) = {(s
0
, aa), (s
1
, )};
4) (s
0
, a, b) = {(s
0
, ab)};
5) (s
0
, b, a) = {(s
0
, ba)};
6) (s
0
, b, b) = {(s
0
, bb), (s
1
, )};
7) (s
1
, a, a) = {(s
1
, )};
8) (s
1
, b, b) = {(s
1
, )};
9) (s
1
, , z) = {(s
2
, )};
10) = n alte cazuri.
Sa se arate ca limbajul L(P){w w|w {a, b}
+
}, unde w w este
inversatul lui w.
Rezolvare. Sa aratam ntai ca {w w|w {a, b}
+
} L(P).
Cateva ocazii particulare:
1) w = ab, w w = ba.
68
s
0
, abba, z) (s
0
, bba, az) (s
0
, ba, baz) (s
1
, a, az)
(s
1
, , z) (s
2
, , )
2) w = abb si w w = bba.
(s
0
, abbbba, z) (s
0
, bbbba, az) (s
0
, bbba, baz) (s
0
, bba, bbaz)
(s
1
, ba, baz) (s
1
, a, az) (s
1
, , z) (s
2
, , )
Cazul general. Fie w = i
1
. . . i
n
, n 1 si i
j
{a, b} pentru 1 j
n. Atunci w = i
n
. . . i
1
. Avem
(s
0
, i
1
. . . i
n
i
n
. . . i
1
, z) (s
0
, i
2
. . . i
n
i
n
. . . i
1
, i
1
, z)

(s
0
, i
n
. . . i
1
, i
n
. . . i
1
z)

(s
1
, i
n1
. . . i
1
, i
n1
. . . i
1
z)

(s
1
, i
1
, i
1
z) (s
1
, i
1
, i
z
) (s
1
, , z)
(s
2
, , ).
Deci w w L(P).
Sa demonstram incluziunea inversa L(P) {w w|w {0, b}
+
}.
Fie p L(P). Din denit ia limbajului avem ca (s
0
, p, z)

(s
2
, , ).
Vom demonstra ca p = w w. Vom considera mai multe cazuri:
1) p = . Avem (s
0
, , z) se blocheaza de ci L(P).
2) p = . Fie p = i
1
. . . i
k
, k 1, i
j
{a, b}, 1 j k. Din denit ie
avem ca (s
0
, i
1
. . . i
k
, z)

(s
2
, , ). Sa vedem cum poate evolua
aceasta tranzit ie.
(s
0
, i
1
. . . i
k
, z) (s
0
, i
2
. . . i
k
, i
1
, z)

(s
0
, i
l+1
. . . i
k
, i
l
. . . i
1
z).
Ca sa nu se blocheze si sa poata evolua pentru a ajungen starea s
2
,
trebuie ca, l = kl deci k = 2l si n plus i
l+1
= i
l
, i
l+2
= i
l1
, . . . , i
2l
=
i
1
. In aceste condit ii avem:
(s
0
, i
l+1
. . . i
2l
, i
l
. . . i, z)

(s
1
, i
l+2
. . . I
2l
, i
l1
. . . i
1
z)

(s
1
, , z) (s
2
, , ).
Dar atunci p = i
1
. . . i
l
i
l
. . . i
1
= w w.
69
Tema de control (3).
1. Fie automatul pushdown nedetrminist P = ({s
0
, s
1
, s
2
, s
3
}, {a, b, c},
{z, a}, , s
0
, z, {s
3
}) cu denit prin:
1) (s
0
, a, z) = {(s
1
, aaz)};
2) (s
1
, a, a) = {(s
1
, aaa)};
3) (s
1
, b, a) = {(s
2
, )};
4) (s
1
, c, a) = {(s
2
, )};
5) (s
2
, b, a) = {(s
2
, )};
6) (s
2
, c, a) = {(s
2
, )};
7) (s
2
, , z) = {(s
3
, )};
8) = n celelalte cazuri.
Sa se arate ca L(P) = {a
n
w|w {b, c}
+
, |w| = 2n, n 1}.
2. Fie automatul pushdown nedeterminist P = ({s
0
, s
1
, s
2
, s
2
}, {a, b, c},
{a, z}, , s
0
, z, {s
3
}) cu denit prin:
1) (s
0
, a, z
0
) = {(s
1
az
0
)};
2) (s
1
, a, a) = {(s
1
, aa};
3) (s
2
, b, a) = {(s
1
)};
4) (s
2
, b, a) = {(s
2
, )};
5) (s
2
, c, z) = {(s
3
, z)};
6) (s
3
, c, z) = {(s
3
, z)};
7) = n celelalte cazuri.
70
Sa se arate ca L(P) = {a
n
b
n
c
m
|n, m 1}.
3. Fie automatul pushdown nedeterminist P = ({s
0
, s
1
, s
2
, s
3
, s
4
},
{a, b, c}, {b, z}, , s
0
, z, {s
4
}) cu denit prin:
1) (s
0
, a, z) = {(s
1
, z)};
2) (s
1
, a, z) = {(s
1
, z)};
3) (s
1
, b, z) = {(s
2
, bz)};
4) (s
2
, b, z) = {(s
2
, bz)};
5) (s
2
, c, b) = {(s
3
, )};
6) (s
3
, c, b) = {(s
3
, )};
7) (s
3
, , z) = {(s
4
, )};
8) = n celelalte cazuri.
Sa se arate ca L(P) = {a
n
b
m
c
m
|n, m 1}.
71
Tema 4
Forme normale. Arbori de
derivare. Teorema lui Ogden
si aplicat ii. Automate
pushdown deterministe
1 Forme normale

In unele demonstrat ii cat si n unele aplicat ii este util sa consideram


gramatici de tipul doi de anumite forme particulare dar care sa nu
micsoreze puterea de generare, adica aceste gramatici de forme par-
ticulare sa genereze tot L
2
.
Vom considera trei clase de gramatici, numite forme normale si
anume: forma normala Chomsky, forma normala Greibach si forma
normala operator.
Denit ia 4.1.1. O gramatica independenta de context este sub
forma normala Chomsky daca regulile sale sunt de forma x yz sau
x a unde x, y, z V
N
si a V
T
.
Teorema 4.1.2. Orice limbaj independent de context, L, care nu
cont ine cuvantul vid , poate generat de o gramatica independenta
de context sub forma normala Chomsky.
73
Demonstrat ie. Deoarece L este un limbaj independent de con-
text si nu cont ine , rezulta ca L poate generat de o gramatica
G = (V
N
, V
T
, x
0
, P), care nu cont ine reguli de forma x y sau x ,
cu x, y V
N
. Deci regulile n G sunt de forma:
x y
1
. . . y
n
, cu n 1 si x V
N
. (1)

In (1) pentru n = 1, obt inem : x y


1
si din faptul ca gramatica
G nu cont ine redenumiri, rezulta ca y
1
V
T
, deci regula x y
1
este de forma ceruta pentru gramatici sub forma normala Chomsky.
Fiecarui i V
T
i punem n corespondent a un nou simbol neterminal
x
i
. Pentru ecare regula de forma (1) cu n 2 procedam n felul
urmator: ecare simbol terminal y
i
cu 1 i n, l nlocuim n
regula x y
1
. . . y
n
cu un simbol nou x
y
i
si adaugam regula x
y
i

y
i
, astfel ca regula care s-a obt inut din x y
1
. . . y
n
prin nlocuirea
lui y
i
cu x
y
i
si regula x
y
i
y
i
mpreuna au acelasi efect ca regula
x y
1
. . . y
n
. Mult imea regulilor obt inute din regulile de forma x
y
1
. . . y
n
n care amnlocuit simbolurile terminale y
i
cu simbolurile noi
x
y
i
si mpreuna cu noile reguli de forma x
y
i
y
i
o vom nota cu P
1
. De
asemenea notam cu Z = {x
i
| i V
T
} mult imea tuturor simbolurilor
x
y
i
adaugat i. Consideram gramatica G
1
= (V
N
Z, V
T
, x
0
, P
1
) care
este o gramatica de tip doi si este echivalenta cu G.
Vom construi o gramatica G
2
independenta de context sub forma
normala Chomsky si care sa e echivalenta cu G
1
deci si cu G. Regulile
n G
1
sunt de forma x a sau de forma x A
1
. . . A
n
, n 2, unde
x, A
i
V
N
Z, 1 i n si a V
T
. Regulile de forma x a si
x A
1
A
2
le lasam neschimbate, adica le punem si n G
2
, pentru ca
ele sunt corespunzatoare gramaticilor sub forma normala Chomsky.
Unei reguli din G
1
de forma:
x A
1
. . . A
n
, n > 2, x, a
i
V
N
Z, 1 i n, (2)
74
i punem n corespondent a n G
2
, urmatoarele reguli:

x A
1
B
1
B
1
A
2
B
2
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
B
n3
A
n2
B
n2
B
n2
A
n1
A
n
(3)
unde B
1
, B
2
, . . . B
n2
sunt simboluri noi. Aplicarea regulilor de forma
(2) sau a sirului (3) au acelasi efect, adica generarea din x a sirului
A
1
. . . A
n
. Deoarece B
1
, . . . , B
n2
sunt simboluri noi, rezulta ca ecare
din ei nu sunt afectat i de alte reguli. Fie B mult imea tuturor sim-
bolurilor B
i
adaugat i n regulile de forma (3). Consideram gramati-
ca independenta de context: G
2
= (V
N
Z P, V
T
, x
0
, P
2
) unde
P
2
este formata din regulile de forma x a sau x A
1
A
2
, cu
x, A
1
, A
2
V
N
Z si a V
T
din G
1
- si mult imea tuturor regulilor
de forma (3), corespunzatoare regulilor de forma (2) din G
1
. Din
observat iile facute mai sus, asupra legaturii dintre regulile de forma
(2) si cele de forma (3), rezulta ca G
2
este echivalenta cu G
1
.
Observat ia 4.1.3. Faptul ca L nu este esent ial. Deoarece
daca L, atunci consideram L

= L {}, care este tot un limbaj


de tip doi si el poate generat de o gramatica sub forma normala
Chomsky G

, deci L

= L(G

). Atunci daca G

= (V

N
, V

T
, x

0
, P

),
consideram gramatica G = (V

N
{x
0
}, V

T
, x
0
, P

{x
0
, x
0
x

0
})
care genereaza L.
Denit ia 4.1.4. O gramatica G = (V
N
, V
T
, x
0
, P) de tipul doi
este sub forma normala Greibach daca regulile sale sunt de forma:
X a, unde x V
N
, a V
T
si V

.
Gramatica G este sub forma normala m-standard daca este sub
forma normala Greibach si || m.
Denit ia 4.1.5. Fie G = (V
N
, V
T
, x
0
, P) o gramatica indepen-
denta de context. Un neterminal x V
N
se numeste stang-recursiv
75
(drept-recursiv) daca n gramatica G exista derivarea x
+
x, V

(respectiv x
+
x). O gramatica G se numeste stang-recursiva (drept-
recursiva) daca ea are cel put in un simbol neterminal stang-recursiv
(drept-recursiv).
Se poate demonstra urmatoarea teorema:
Teorema Orice limbaj L L

cu X L poate generat de o
gramatica sub forma normala Greibach.
A treia forma normala pentru gramaticile de tip doi este forma
normala operator.
Denit ia 4.1.6. O gramatica de tip doi G = (V
N
, V
T
, x
0
, P) este
sub forma normala operator, daca oricare ar o regula x P,
n nu apar doi simboli din V
N
consecutivi.
Se poate demonstra ca oricare ar un limbaj L L
2
cu L
exista o gramatica G sub forma normala operator cu L = L(G).
2 Arbori de derivare
Reprezentarea derivarilor n gramatici independente de context
prin arbori de derivare, este o modalitate utila pentru simplicarea
anumitor demonstrat ii.
Fie G = (X, E) un graf orientat. Daca (x, y) E, vom spune ca x
este precedent direct al lui y si y este succesor direct al lui x.
Denit ia 4.2.1. Un graf orientat G este un arbore orientat si
ordonat daca sunt ndeplinite urmatoarele proprietat i:
1. existan G un nod, numit radacina, care nu are precedent i direct i
si de la care exista un drum la ecare nod al grafului;
2. orice nod diferit de radacina are exact un precedent;
3. mult imea succesorilor direct i ai unui nod este ordonata.
76
Vom reprezenta arborii pe nivele, radacina va reprezentata pe
primul nivel, iar succesorii direct i ai unui nod vor reprezentat i
pe nivelul urmator nivelului nodului, ordinea succesorilor ind data
de reprezentarea lor de la stanga spre dreapta. Nodurile care au
descendent i direct i se numesc noduri interioare si cele care nu au
descendent i n G se numesc noduri frunze sau noduri terminale.
Denit ia 4.2.2. Un nod x este precedent al lui y daca drumul
de la radacina la y trece prin x (y este succesor al lui x sau y este
descendent al lui x).
Convent ia de reprezentare pe nivele permite renunt area la saget i,
orientarea ind de sus n jos ca n gura ce urmeaza.


Fig. 4.2.1.
Denit ia 4.2.3. Fie G = (V
N
, V
T
, x
0
, P) o gramatica independenta
de context. Un arbore de derivare pentru gramatica G este un
arbore A = (X, E) mpreuna cu funct ia de etichetare a nodurilor
f : X V
N
V
T
{} cu proprietat ile:
1. f(r) = x
0
, daca r este radacina arborelui;
2. daca x X are descendent i, atunci f(x) V
N
;
3. daca x are descendent i direct i x
1
, x
2
, . . . , x
n
n aceasta ordine,
atunci n G avem f(x) f(x
1
)f(x
2
) . . . f(x
n
);
4. daca f(x) = , atunci x este singurul descendent al precedentu-
lui sau.
77
Exemplul 4.2.4. Fie G = (V
N
, V
T
, x
0
, P) cu V
N
= {x
0
, x
1
, x
2
}, V
T
=
{a, b}, P = {x
0
ax
1
x
2
|bx
2
a, x
1
x
0
x
1
, x
2
}. Un exemplu de
arbore de derivare este:
h



x
0
a
x
1
x
2
x
1

x
0
b
x
2
a
Fig. 4.2.2.
Denit ia 4.2.5. Un subarbore al unui arbore de derivare este un nod
din arbore care devine radacina pentru subarbore mpreuna cu tot i
descendent ii sai. Daca radacina subarborelui are eticheta x, l vom
numi x-arbore. Astfel un arbore de derivare este un x
0
-arbore.

In gura de mai jos avem un x


1
-arbore

x
1
x
0 x
0
b
x
2 a
Fig. 4.2.3.
Ordinea de la stanga la dreapta a descendent ilor direct i ai unui nod
induce o ordine de la stanga la dreapta n mult imea frunzelor unui
arbore de derivare.
Denit ia 4.2.6. Fie x, y descendent ii direct i ai aceluiasi nod si x
la stanga lui y; atunci
i) x este la stanga oricarui descendent al lui y;
ii) orice descendent al lui x este la stanga lui y;
78
ii) orice descendent al lui x este la stanga oricarui descendent al lui
y.
Consideram atunci cuvantul obt inut din etichetele frunzelor unui ar-
bore de derivare, n ordinea n care apar ele n arbore. Numim acest
cuvant frontiera arborelui de derivare.
Teorema 4.2.7. Fie G = (V
N
, V
T
, x
0
, P) o gramatica indepen-
denta de context. Oricare ar x V
N
si (V
N
V
T
)

, avem x

daca si numai daca exista un x-arbore de derivare cu frontiera .


Fie w L(G). Consideram ca anumite pozit ii din w le marcam.
Teorema 4.2.8. (Teorema iterat iei. Teorema lui Ogden)
Pentru orice limbaj L independent de context, exista o constanta
n N (care depinde numai de limbajul L) astfel ca orice w L
cu m pozit ii marcate, m n, admite o factorizare w = xyzuv cu
proprietat ile:
1. yu are cel put in o pozit ie marcata;
2. yzu are cel mult n pozit ii marcate;
3. i 0, xy
i
zu
i
v L.
Demonstrat ie. Fie L L
2
si e G = (V
N
, V
T
, x
0
, P) sub forma
normala Chomsky, astfel ca L(G) = L {}. Daca |V
N
| = k atunci
consideram n = 2
k
+ 1. Fie w L(G) cu |w| n si n w avem m n
pozit ii marcate.

In arborele de derivare corespunzator derivarii x
0

G
w
construim inductiv un drum D astfel:
i) D = {r}, r este radacina arborelui.
ii) Fie t ultimul nod plasat n D. Daca t este un nod nal
(frunza), drumul este construit. Daca t nu este nod terminal, el are doi
descendent i (pentru ca gramatica G este sub forma normala Chom-
sky). Avem 2 cazuri:
a) numai unul din descendent ii lui t are descendent i nali marcat i.
atunci l adaugam pe acesta la D si repetam ii).
79
b) ambii descendent i ai lui t au descendent i nali marcat i. Atunci
t se numeste punct de ramicare. Se adauga la D nodul cu cel mai
mare numar de descendent i marcat i si apoi se repeta ii).
Din construct ia drumului D se constata ca ecare punct de rami-
care are cel put in jumatate din descendent ii nali marcat i ai prece-
dentului punct de ramicare din D. Cumn arborele de derivare avem
cel put in n = 2
k
+1 pozit ii marcate n w si toate aceste pozit ii marcate
sunt descendent i ai radacinii, nseamna ca avem cel put in k+1 puncte
de ramicare n drumul D.
Cum |V
N
| = k, exista cel put in 2 puncte de ramicare n D, n
1
, n
2
etichetate la fel, cu un neterminal x. Alegem aceste puncte asa fel ca
n
1
este mai aproape de radacina decat n
2
si pe port iunea de drum
D de la n
1
la frontiera arborelui nu mai avem alta pereche de
puncte etichetate cu aceeasi eticheta. Deci port iunea de drum
D de la n
1
la frontiera cont ine cel mult k + 1 puncte de ram-
icare. Descompunem w = xyzuv ca n gura 3.4.7. Consideram
subarborele cu radacina n n
1
; frontiera sa yzu cont ine cel mult n
pozit ii marcate (altfel ar exista de la el la frontiera, pe drumul D,
mai mult de k + 1 puncte de ramicare). Deci am demonstrat 2).
Fie z frontiera subarborelui cu radacina n n
2
. cum n
1
si n
2
sunt
pe drumul D, z este subcuvant din w
1
, unde w
1
= yzu si yu are cel
put in o pozit ie marcata, deoarece n
1
si n
2
sunt puncte de ramicare.
Deci am demonstrat 1).
80


X
x
0
n
1
X
n
2
y
z
u
v x
X
n
2
z
Fig. 4.2.7 Fig. 4.2.8
Consideram subarborele cu radacina n n
2
ca n Figura 3.4.8. Daca
X este eticheta celor doua noduri, avem:
(1) X

G
z
deoarece z este frontiera subarborelui cu radacina n
2
care are eticheta
X.
Consideram subarborele cu radacina n n
1
din care scoatem sub-
arborele cu radacina n n
2
, dar lasam pe n
2
.
X
X
y
u
Fig. 4.2.9.
atunci avem
(2) X

G
yXu
81
Consideram arborele de derivare din care am scos subarborele cu
radacina n n
1
dar lasam n
1
. Avem
(3) x
0

G
xXv.
x
0
X
x
v
Fig. 4.2.10.
Sa demonstram acum proprietatea 3) din teorema utilizand (1), (2),
(3). Pentru i = 0 avem:
x
0

G
xXv

G
xzv.
Pentru i = k > 0 avem:
x
0

xXv

G
xy
k
Xu
k
v

G
xy
k
zu
k
v.
Corolar 4.2.9.(Lema Bar-Hillel pentru limbaje de tip 2).
Pentru orice limbaj de tip 2 exista o constanta n astfel ca daca w
L, |w| n, atunci exista o descompunere w = xyzuv cu proprietat ile:
1. |yu| 1;
2. |yzu| n;
3. i 0, xy
i
zu
i
v L.
Demonstrat ie. Dacan lema lui Ogden consideram toate pozit iile
cuvantului w marcate, se obt ine lema Bar-Hillel.
Folosind lema lui Bar-Hillel, putem demonstra ca familia L
2
nu
este nchisa la intersect ie si nici la complementara. Acest rezultat este
dat de urmatoarea teorema:
82
Teorema 4.2.10. Familia L
2
nu este nchisa la intersect ie si nici
la complementara.
Demonstrat ie. Limbajele L
1
= {a
i
b
i
c
j
|i, j 1} si L
2
=
{a
i
b
j
c
j
|i, j 1} sunt limbaje independente de context; ele sunt gener-
ate de gramaticile G
1
= ({S, A, B}, {a, b, c}, S, {S AB, A aAb,
A ab, B Bc, B c}) si G
2
= ({S, A, B}, {a, b, c}, S, {S AB,
A aA, A a, B bBc, B bc}), respectiv.
Se poate verica, aplicand lema Bar-Hillel, ca limbajul L
1
L
2
=
{a
i
b
i
c
i
|i 1} nu este limbaj independent de context, deci L
2
nu este
nchisa la intersect ie. CumL
2
estenchisa la reuniune si nu estenchisa
la intersect ie, rezulta ca L
2
nu este nchisa la complementara.
Interesant este ca daca intersectam un limbaj independent de con-
text cu un limbaj regulat, se obt ine tot un limbaj independent de
context. Acest rezultat este dat n teorema ce urmeaza.
Teorema 4.2.11. Daca L L
2
si R L
3
atunci L R L
2
.
Demonstrat ie. Din L L
2
rezulta ca exista un automat
pushdown P = (S
1
, , ,
1
, s
1
0
, z
0
, F
1
) cu L = L(P). Din R L
3
rezulta ca exista un automat nit determinist A = (S
2
, ,
2
, s
2
0
, F
2
)
cu R = L(A). Vom construi un automat pushdown P

care sa
recunoasca limbajul L R. Automatul pushdown P

este: P

=
(S
1
S
2
, , , , (s
1
0
, s
2
0
), z
0
, F
1
F
2
) unde este denit prin: ((s

1
,
s

2
), ) ((s
1
, s
2
), a, z) daca si numai daca (s

1
, )
1
(s
1
, a, z) si
s

2
=
2
(s
2
, a).
Se poate arata ca L(P

) = LR. Construct ia lui P

este ilustrata
n gura de mai jos.
83
. . .
P

A P .
.
.
-
6
Fig. 4.2.11.
3 Automate pushdown deterministe
Pentru automate nite am vazut ca puterea de recunoastere este
aceeasi pentru automate nite deterministe sau automate nite nede-
terministe.

In cazul automatelor pushdown acest lucru nu mai este
adevarat.
Denit ia 4.3.1. Un automat pushdown M = (S, , , , s
0
, F)
este determinist daca sunt ndeplinite condit iile:
1. |(s, a, z)| 1, a {}, s S, z ;
2. daca (s, , z) = , atunci (s, a, z) = , a .
Vom nota cu L
2DET
clasa limbajelor acceptate de automate pushdown
deterministe prin stari nale, adica L
2DET
= {L | M automat push-
down determinist astfel ca L = L(M)}.
O subclasa de automate pushdown deterministe sunt cele sub
forma normala.
84
Denit ia 4.3.2. Un automat pushdown determinist M =
(S, , , , s
0
, z
0
, F) este sub forma normala daca s S, a
{}, z si (s

, ) = (s, a, z) are loc una din situat iile:


1. = (automatul sterge un simbol din memoria pushdown);
2. = z (nu modica memoria pushdown);
3. = yz (se adauga simbolul y la memoria pushdown).
Se poate demonstra ca pentru orice limbaj L L
2DET
exista un au-
tomat pushdown determinist sub forma normala care sa accepte L.
Deoarece automatele pushdown deterministe sunt o subclas a a au-
tomatelor pushdown nedeterministe rezulta ca L
2DET
L
2
. De fapt
aceasta incluziune este stricta deoarece L
2DET
este nchisa la comple-
mentariere si L
2
nu este nchisa la complementariere, deci cele doua
familii de limbaje nu pot egale.
Exercit ii rezolvate
I) Sa se arate ca limbajul L = {a
n
b
n
c
n
| n 1} nu este limbaj inde-
pendent de context.
Rezolvare: Vom aplica teorema lui Ogden. Presupunem ca lim-
bajul L este independent de context. Alegem un cuvant w = a
n
b
n
c
n
,
marcam a
n
si alegem n mai mare decat numarul k din teorema lui
Ogden. Conform teoremei lui Ogden w = xyzuv cu proprietat ile din
teorema.
Vom arata ntai ca y nu poate cont ine decat o litera. Sa pre-
supunem ca y = a
l
b
n
c
j
, n, l, j 1. Atunci u = c
m
, m 0 si luand
xy
2
zu
2
v avem a
nl
a
l
b
n
c
j
a
l
b
n
c
j
c
nj+m
care ar trebui sa apart ina lim-
bajului L conform teoremei lui Ogden, dar acest cuvant nu apart ine
lui L deoarece are b-uri si c-uri nainte de simbolul a. Analog se arata
85
ca y nu poate cont ine doi simboli diferit i (adica a si b, sau b si c).

In
aceeasi maniera se arata ca nici u nu poate cont ine trei sau doi simboli
diferit i.
Prin urmare atat y cat si u trebuie sa cont ina un singur simbol.
Cuvantul y trebuie sa cont ina numai simboluri a, deoarece yu trebuie
sa aiba cel put in un simbol marcat si numai simbolurile a sunt mar-
cate. Deci descompunerea lui w = xyzuv se poate face ntr-unul din
urmatoarele moduri: 1) y si u cont in a-uri; 2) y cont ine a-uri si u
cont ine b-uri; 3) y cont ine a-uri si u cont ine c-uri. Sa consideram cele
trei cazuri posibile:
1) x = a
l
, y = a
t
, z = a
s
, u = a
r
, v = a
n(l+t+s+r)
b
n
c
n
cu t + r 1.
Conform teoremei lui Ogden trebuie ca xy
i
zu
i
v L, i 0.
Luam i = 0 si atunci xy
0
zu
0
v = a
l
a
s
a
n(l+t+s+r)
b
n
c
n
= a
n(t+r)
b
n
c
n

L deoarece n (t + r) < n. Contradict ie.


2) x = a
l
, y = a
t
, z = a
n(l+t)
b
r
, u = b
s
, v = b
n(r+s)
c
n
cu t 1.
Consideram din nou i = 0 si avem xy
0
zu
0
v = a
l
a
n(l+t)
b
r
b
n(r+s)
c
n
=
a
nt
b
ns
c
n
L deoarece n t < n. Deci din nou contradict ie.
3) x = a
l
, y = a
t
, z = a
n(l+t)
b
n
c
s
, u = c
r
, v = c
n(r+s)
cu t
1. Consideram i = 0 si avem xy
0
zu
0
v = a
l
a
n(l+t)
b
n
c
s
c
n(r+s)
=
a
nt
b
n
c
nr
L deoarece n t < n. Contradict ie.
Deoarece n toate cele trei cazuri posibile am obt inut contradict ie,
rezulta ca limbajul L = {a
n
b
n
c
n
| n 1} nu este limbaj independent
de context.
II) Sa se arate ca limbajul L = {a
i
b
j
c
k
| i, j, k 1, i = j, i = k} nu
este limbaj independent de context.
Rezolvare: Consideram cuvantul de forma w = a
n
b
n+n!
c
n+2n!
cu
pozit iile lui a marcate si n k, k ind cel din teorema lui Ogden. Con-
form teoremei lui Ogden w se descompune n xyzuv cu proprietat ile
din teorema. Analog ca la exercit iul precedent se arata ca y si u nu
pot cont ine mai mult de un simbol. Deci cazurile de descompunere
posibile sunt: 1) y si u cont in simboluri a; 2) y cont ine simboluri
a si u cont ine simboluri b; 3) y cont ine a-uri si u cont ine c-uri. Sa
consideram cele trei cazuri posibile:
1) x = a
l
, y = a
t
, z = a
s
, u = a
r
, v = a
n(l+t+s+r)
b
n+n!
c
n+2n!
cu
86
t + r 1. Notez cu q = t + r. Conform teoremei lui Ogden avem:
1 q n. Deci q divide n!. Avem n! = q j si atunci xy
i
zu
i
v =
a
l
a
ti
a
s
a
ri
a
n(l+t+s+r)
b
n+n!
c
n+2n!
= a
n+(i1)(t+r)
b
n+n!
c
n+2n!
. Alegem i
astfel ncat (i 1)q = n!, deci i =
n!
q
+1 = j +1.

In acest caz xy
i
zu
i
v
apart ine lui L, dar pe de alta parte xy
i
zu
i
v = a
n+n!
b
n+n!
c
n+2n!
L
deoarece exponentul lui a este egal cu exponentul lui b. Contradict ie.
2) x = a
l
, y = a
t
, z = a
n(l+t)
b
s
, u = b
r
, v = b
n+n!(r+s)
c
n+2n!
cu
1 t n. Calculam
xy
i
zu
i
v = a
l
a
ti
a
n(l+t)
b
s
b
ri
b
n+n!(r+s)
c
n+2n!
= a
n+t(i1)
b
n+n!+r(i1)
c
n+2n!
.
Deoarece 1 t n, avem ca t divide n!. Alegem i astfel ncat
t(i 1) = 2n!, deci i =
2n!
t
+ 1.
Pe de o parte xy
i
zu
i
v L pentru orice i 0, iar pe de alta parte
pentru i =
2n!
t
+1 avem xy
i
zu
i
v = a
n+2n!
b
n+n!+
r
t
2n!
c
n+2n!
L, deoarece
are acelasi exponent pentru a si c. Deci din nou contradict ie.
3) x = a
l
, y = a
t
, z = a
n(l+t)
b
n+n!
c
s
, u = c
r
, v = c
n+2n!(r+s)
cu
1 t n. Calculam
xy
i
zu
i
v = a
l
a
ti
a
n(l+t)
b
n+n!
c
s
c
ri
c
n+2n!(r+s)
= a
n+t(i1)
b
n+n!
c
n+2n!+r(i1)
.
Deoarece 1 t n, avem ca t divide n!. Alegem i astfel ncat
t(i 1) = n!, deci i =
n!
t
+ 1.
Din teorema lui Ogden xy
i
zu
i
v L pentru orice i 0. Pe de
alta parte pentru i =
n!
t
+ 1 avem xy
i
zu
i
v = a
n+n!
b
n+n!
c
n+2n!+
r
t
n!
L,
deoarece are acelasi exponent pentru a si b. Contradict ie.
Deoarece n toate cele trei cazuri posibile am obt inut contradict ie,
rezulta ca limbajul L = {a
i
b
j
c
k
| i, j, k 1, i = j, i = k} nu este de tip
2.
Tema de control (4)
1) Sa se arate ca limbajul L = {a
n
b
n+2
c
n+3
| n 1} nu este limbaj de
tip 2.
2) Sa se arate ca limbajul L = {a
i
b
j
c
k
| i, j, k 1, i = j, i = k, j = k}
nu este de tip 2.
87
89
Tema5
FamiliiledelimbajeL
0
s i L
1
Dup ce am studiat familiile de limbaje
3
L si L
2
, acum ne vom
preocupa de propriettwile familiilor L
0
si L
1
.
1. Propriett i denchiderepentru familiileL
0
s i
L
1
nainte de a prezenta propriettile de nchidere vom da un rezultat
care ne arat c o subclas de gramatici de tip 0 sau de tip 1 au aceeasi
putere de generare ca si ntreaga clas de gramatici de tip 0 sau 1.
Teorema5.1.1. Pentru orice gramatic
( )
0
, , ,
N T
G V V x P = de tip
0 sau 1, exist o gramatic
( )
'
0
, , ,
N T
G V V x P = de acelasi tip cu G si
echivalent cu G astfel nct dac o regul din P, u v , cont>ine un
simbol terminal ea are forma x i , cu
'
N
x V si
T
i V .
Observat5 ie 5.1.2. O gramatic de tip 0 sau 1 este sub form
standard dac regulile sale sunt de forma cu
*
,
N
V sau de
forma x i cu
N
x V si
T
i V .
Observat ie 5.1.3. Conform teoremei 5.1 pentru orice gramatic G
de tip 0 sau 1, exist o gramatic G sub form standard echivalent cu G.
Observatd ie5.1.4. Orice limbaj L L
0
(L L
1
) poate fi generat de
o gramatic sub form standard de tip 0 (sau 1).
Teorema5.1.5. Familiile limbajelor L
0
si L
1
sunt nchise la produs.
Demonstrat* ie. Vom face demonstrat*ia pentru L
1
; analog se face s*i
90
pentru L
0
. Fie L
1
,L
2
L
1
. Exist gramaticile
( )
1 1 1
1 0 1
, , ,
N T
G V V x P = si
( )
2 2 2
2 0 2
, , ,
N T
G V V x P = de tip 1 care satisfac conditiile din teorema
precedent s$i n plus
1 1
( ) L L G = s$i
2 2
( ) L L G = . Putem considera
1 2
N N
V V = I . Considerm gramatica
{ } { }
1 2 1 2 1 2
0 0 1 2 0 0 0
( , , , )
N N T T
G V V x V V x P P x x x = U U U U U , cu
1 2
0 N N
x V V U .
Aceast gramatic este de acelasQi tip cu
1
G sQi
2
G . Vom demonstra c
( )
1 2
L G L L = g .
S demonstrm incluziunea ( )
1 2
L G L L g . Fie ( ) p L G ; exist
derivarea
*
1 2
0 0 0
G G
x x x p . Deoarece
1 2
N N
V V = I , avem c lui
1
0
x si
simbolilor care se obtin din el se aplic numai reguli din
1
P si analog
pentru
2
0
x . Deci cuvntul
1 2
p p p = cu
1
*
1
0 1
G
x p s`i
*
2
0 2
2 G
x p , prin urmare
1 1
p L ,
2 2
p L si
1 2
p L L .
I ncluziunea invers
( )
1 2
g L L L G . Din
1 2
p L L avem
1 2
p p p = g si
1 1
p L ,
2 2
p L . Deci avem
1
*
1
0 1
G
x p ,
*
2
0 2
2 G
x p si
*
1 2
0 0 0 1 2
G G
x x x p p , ( ) p L G .
Dm fr demonstratie urmtoarea teorem.
Teorema 5.1.6. Pentru orice gramatic de tip 1 sau 0 exist o
gramatic G` de acelasi tip cu G, astfel nct
( ) ( ) { }
'
L G L G =
Teorema 5.1.7. Familiile de limbaje L
0
si L
1
sunt nchise la
iteratUie.
Demonstrat ie. Deoarece
{ }
* *
( ) L L = , rezult c nu
restrngem generalitatea dac presupunem c L . Conform Teoremei
5.1., putem presupune c ( ) L L G = , unde
( )
0
, , ,
N T
G V V x P = si
regulile care contbin terminali sunt de forma ,
N
x i x V si
T
i V .
91
Considerm gramatica
{ } { }
{ }
* 0 1 0 0 0 0 1 0
1 1 0 1 0
( , , , , ,
, | )
N T
T
G V y y V y P y x y yx
yi yxi yi xi i V
=

U U U
Gramatica
*
G este de acelasi tip cu G, pentru c regulile adaugate nu
schimb tipul (0 sau 1) gramaticii
*
G . S demonstrm c
( )
*
*
L L G = .
S demonstrm nti incluziunea
( )

*
*
L L G . Fie
*
p L ; atunci
, 0
k
p L k .
1) 0 k= , atunci p = si avem
*
0
G
y .
2) 1 k , atunci
1
...
k
p p p = shi , ,1
j j
p L p j k . Din
j
p L
rezulta
*
0
,1
j
G
x p j k .n acest caz considera m derivarea
* * * * * * *
* * * * *
0 1 0 1 1 0 1 2 0 2 1...
... ... ...
k k k k k
G G G G G G G
y yx y p yx p y p p x p p p p .
Deci avem ( )
*
*
0 *
,
G
y p p L G s i ( )
*
*
L L G .
I ncluziunea ( )
*
*
L G L . Fie ( )
*
p L G ; reazulta ca avem
derivarea
* * *
0
...
G G G
y q p .
Dacaq = , avem
0
y , deci p = .
Dacac
0
q x = , atunci avem
*
0
G
x p , deci p L .
Daca
1 0
q yx = , atunci avem derivarea
* * * * * *
* *
0 1 0 1 1 0 1 1 1
... ...
k k k k k
G G G G G G
y yx y p yx p y p p p p

sui n plus
*
*
0
,1 ,
j
G
x p j k deci
j
p L . Din ,1
j
p L j k , rezulta
* k
p L L , deci ( )
*
*
L G L .
Din cele douaincluziuni, rezulta egalitatea dorita .
Das m n continuare o teoremas de nchidere pentru toate familiile de
limbaje Lj, 0 3 j .
92
Teorema 5.1.8. Familiile Lj, 1 j 1 3 j , sunt nchise la
operatia de oglindire.
Demonstrat ie. Fie L un limbaj de tip , 0 3 j j . Exista o
gramatica( ( )
0
, , ,
N T
G V V x P = de tip , 0 3 j j , cu ( ) L G L = .
Considera m gramatica
( )
' '
0
, , ,
N T
G V V x P = , unde
%
{ }
'
| P u v u v P =
%
. Gramatica
'
G este de acelasi tip cu G. Sa
aratam ca

( )
'
L L G = , unde

{ }
| L p p L = . Deci trebuie sa aratam ca
p L dac s0i numai daca0

( )
'
p L G , adica0
*
0
x P daca0s0i numai daca0

*
0
G
x p = .
Pentru aceasta este suficient saLaraL taL m caL
1 2
G
w w dacaLsLi numai
dacax
'
~ ~
1
2
G
w w .
Daca
1 2
G
w w , atunci
' ''
1 1 1
w wuw = ,
' ''
2 1 1
w wvw = si u v P .
Dar atunci avem
%
'
u v P
%
,


%
'' '
1 1 1
w wuw = si

'' '
1 1 1
w wvw =
%
, deci

1 2
' G
w w .
Invers, daca

1 2
' G
w w , atunci avem


%
'' '
1 1 1
w wuw = ,

'' '
2 1 1
w wvw =
%
si
%
' u v P
%
. Dar atunci avem
' ''
1 1 1
w wuw = ,
' ''
2 1 1
w wvw = si u v P , deci
1 2
G
w w .
2. Gramatici monotone s9 i limbaje independente
decontext
Definit ie 5.2.1. O gramtica
( )
0
, , ,
N T
G V V x P = se numeste
monotonaTdacaTpentru orice regulaTu v P , avem | | | | u v .
93
Observat ie 5.2.2. O gramaticade tip 1 care nu contine regula
0
x este o gramatica monoton.
Definitie5.2.3. Se numeste pondereagramaticii G,
( ) { } max | | / pond G v u v P = .
Teorema 5.2.4. Pentru orice gramatica monotona
( )
0
, , ,
N T
G V V x P = , exista o gramatica monotona
( )
' ' '
0
, , , '
N T
G V V x P = ,
de pondere cel mult doi, echivalentazcu G.
Teorema5.2.5. Orice limbaj L generat de o gramaticamonotona
poate fi generat de o gramatica)senzitiva)de context.
Demonstrat ie. Fa raa restrnge generalitatea putem considera,
conform teoremei precedente, ca gramatica monotona
( )
0
, , ,
N T
G V V x P = care genereaza limbajul L are ponderea cel mult
doi. Deci regulile gramaticii G sunt de forma:
1) A a ,
N
A V si
T
a V , contextul ( ) , ;
2) A B , ,
N
A B V contextul ( ) , ;
3) A BC , , ,
N
A B C V contextul ( ) , ;
4) AB AD , , ,
N
A B D V contextul ( ) , A ;
5) AB CB , , ,
N
A B C V contextul ( ) , B ;
6) AB CD , A C si B D , nu mai este senzitiva`de context.
O regulade forma 6) o vom nlocui cu reguli de forma 4) si 5), si
anume:
6.1) AB EB , contextul ( ) , B
6.2) EB EF , contextul ( ) , E
6.3) EF CF , contextul ( ) , F
6.4) CF CD , contextul ( ) , C
Consideram
( )
'
0
' , , , '
N T
G V V x P = unde
{ }
'
, | , ,
N N
V V E F AB CD P A C B D = U
94
{ } ' { , , , P P AB CD P AB EB EB EF EF CF CF = U
| } CD AB CD P
Se poate arai ta caicele douaigramatici sunt echivalente.
Teorema 5.2.6. Orice limbaj L L
1
care nu contine poate fi
generat de o gramaticamonotona .
Demonstratie. Din L L
1
si L rezulta ca exista o gramatica
( )
0
, , ,
N T
G V V x P = senzitivaode context care nu contoine
0
x soi care
genereazaL. Dar regulile gramaticii G sunt de forma uxv urv cu
N
x V sXi r V
+
, deci avem | | | | uxv urv si prin urmare gramatica G este
monotona .
3. Mas ini Turings i limbajedetip0
Vom prezenta masinile Turing ca acceptori de limbaje.
3.1. Mas]ini Turingcuobanda]deintrarecuocaleinfinita]
Un model pentru o masinaTuring cu o bandade intrare cu o cale infinita
este format dintr-o banda marginita la stnga, mpartita n locatii n
fiecare locatBie se plaseazaBcte un simbol dintr-un alfabet sBi o unitate de
control prevae zutae cu un cap de citire/scriere. n urma operateiei de
citire/scriere capul se poate deplasa la stnga sau dreapta cu o locatie.
Prezenta m mai jos n Figura 5.1 modelul considerat.
Figura5.1. Model masinaTuring
a
1
a
2
a
n B B B

B
UC
95
O masinaTuring face urma toarele operatii:
cerceteaza o locatie pe banda de intrare si nlocuieste simbolul
scris n ea;
schimba1starea;
miscacapul de citire la dreapta sau la stnga cu o locatie;
Formal, o masMinaMTuring (TM) o definim prin:
0
( ) M S s B F = , , , , , ,
unde:
S este o multimefinitadestari;
este alfabetul deintrare, si B
/
;
este o multime finitade simboli, alfabetul delucrual masinii
Turing;
B un simbol din , numit blanc;

0
s S este stareainitiala;
F S este multimeastarilor finale;
{ } S S L R : , este functia detranzitiesi este o functie
partiala , deci pot exista perechi ( ) s z S , pentru care nu
este definita .
Vom numi configuratie(descriere instantanee) a lui M , o tripleta
1 2
s
cu
1 2


, si s S . Fie C multimea configuratiilor masinii M .
Pe modelul considerat mai sus, o configuratie
1 2
s are urma toarea
semnificatie: s semnificastarea curentaa unita tii centrale;
1
reprezinta
cuvntul format din simbolii cuprins|i ntre marginea din stnga a benzii
si capul de citire iar
2
este cuvntul format din simbolii cuprinsi ntre
capul de citire (inclusiv simbolul vizat) si ultimul simbol neblank de pe
banda .
Pe multimea configuratiilor C definim o relatie binara
M
C C ,
numitarelatiedetranzitie
1) Configurat*ia
12 1 M i i n
xxxsxx


1 1 2 1 1 i i n
xx sx yx x
+
daca* 1 i > si
( ) ( )
i
s x s y L , = , ,
n cazul 1 i = , pentru canu existapozitia 1 i , ceea ce nseamna- pe
model - capul de citire/scriere nu se poate misca la stnga marginii din
stnga.
Dacarexistarsufix n
1 1 i i n
x yx x
+
format din blanc, acest sufix se srterge
96
din acest cuvnt.
2) Configuratia
1 2 1 i i n
xx x sxx
1 1 1 M i i n
xx ysx x
+
daca
( ) ( )
i
s x s y R , = , , .
Vom nota cu
*
M
nchiderea tranzitivasi reflexivaa relatiei
M
. Putem
renuntca la indicele M atunci cnd nu este posibilitatea de confuzie sci
scriem
*
n loc de
*
M
.
Definim limbajul acceptat de o masMinaM Turing M prin
*
0 M
( ) { L M w w sw

= | ,
1 2 1 2
si } s s F

, , .
Limbajul acceptat de mas6ina Turing M este mult6imea cuvintelor w

,
care, plasate pe banda de intrare n partea stngaa benzii, unitatea
centralaOfiind n starea
0
s sOi capul de citire/scriere pozitOionat pe prima
locatie, n urma tranzitiilor definite ca mai nainte, se ajunge ntr-o stare
finala .
Vom presupune cao masinaTuring se opreste ori de cte ori intrarea este
acceptata , iar pentru cuvintele neacceptate este posibil sanu se opreasca.
Definitia 5.3.1.1. Un limbaj acceptat de o masina Turing se numeste
limbaj recursiv-enumerabil.
Enumerabilitatea derivaedin faptul caeaceste limbaje sunt formate din
cuvinte care pot fi listate.
3.2. Masini Turingcubandadeintrarecudouacai infinite
O masina Turing cu banda de intrare infinita n ambele directii, este
definita prin
0
( ) M S s B F = , , , , , , , unde cele sapte elemente
0
S s B , , , , , , s}i F au aceleas}i semnificat}ii ca n modelul precedent.
FunctNia de tranzitNie
M
este definitaNca n modelul original cu, exceptNia
cazului cnd sx
M
sBy , daca. ( ) ( ) s x s y L , = , , .
Pentru mas!ini Turing cu banda de intrare cu o cale nu se fa! cea tranzit!ia.
n plus,
M
sx s dacaD ( ) ( ) s x s B R , = , , (n cazul precedent B apare
n stnga lui s ).
Limbajul acceptat de o masainaaTuring cu banda de intrare cu douaacaa i
este:
*
0 M
( ) { L M w w sw

= | ,
1 2 1 2
} s s F

, , , .
97
Teorema 5.3.2.1. Un limbaj L este acceptat de o masin Turing cu
band de intrare cu dou ci infinite dac si numai dac el este acceptat
de o masin Turing cu o cale infinit.
Demonstrat ie. Demonstratia cao masinaTuring cu banda de intrare cu
doua]ca] i infinite poate simula o mas]ina]Turing cu o banda]de intrare cu o
cale infinita , este usoara . n primul rnd marca m locatia din stnga
pozitiei initiale cu un simbol special "" si apoi simula m masina Turing
cu o cale infinita. Daca n timpul simularii se atinge locatia marcata cu
"", se trece ntr-o stare nouacare nu o mai pa ra seste si care nu este
starea finala# . Fie
1
1 1 1 1 1 0 1
( ) M S s B F = , , , , , , o mas#ina#Turing cu banda
de intrare cu o cale infinita si fie
2 2
2 1 0 1 1 2 0 1
( { } { } ) M S s s s s B F = , , , , , , , , cu
2
definita prin:
1.
2
2 0
( ) ( ) s a s a L , = , , ;
2.
2 0
( ) ( ) s B s R , = , , ;
3.
2 1 1 1 1
( ) ( ) ( ) ( ) s a s a s S a s a dom , = , , , , , ;
4.
2
( ) ( ) s s L , = , , .
Este evident caI
1 2
( ) ( ) L M L M = .
Invers, sa)ara) ta) m ca)o mas)ina)Turing
2
M cu o banda)de intrare cu doua)
cai infinite poate fi simulata de o masina Turing
1
M cu o banda de
intrare cu o cale infinita . Vom construi
1
M cu banda de intrare cu doua
piste - o pistareprezintalocatiile din dreapta pozitiei initiale (inclusiv
pozitia initiala ), cealaltapistareprezintalocatiile din stnga locatiei
init"iale ca n Figura 5.2.
Figura5.2. Construct% iabenzii lui
1
M dinceaalui
2
M


-3 -2 -1 0 1 2 3
0 1 3
2
-3 -2 -1
98
Prima locatie a lui
1
M contine pe pista de jos, un simbol special " "
care semnificacaeste cea mai din stnga celulasi
1
M nu se poate misca
la stnga acestei locataii. Masaina Turing
1
M va fi construitaasaasimuleze
masina Turing
2
M n modul urma tor:
cnd
2
M lucreazaAla dreapta pozitAiei initAiale, masAina
1
M lucreazaApe
pista de sus, fa cnd aceleasi operatii ca si
2
M ; cnd
2
M lucreazala
stnga pozit!iei init!iale,
1
M lucreaza! pe pista de jos, fa! cnd aceleas!i
nlocuiri ca si
2
M si miscndu-se n directia opusalui
2
M .
Fie masina Turing
2 2 2 2 2 2 2
( ) M S s B F = , , , , , , ; atunci
1 1 1 1 1 1
( ) M S s B F = , , , , , unde:

1 1 2
{ } {[ ] [ ] } S s sU s D s S = , , , | , U semnificaca
1
M lucreazape
pista de sus si D semnificafaptul ca
1
M lucreazape pista de jos.

1
{[ ] } a B a = , , ;

1 2
{[ ] x y x y y = , | , , poate fi s`i }
Blancul n
1
M este identificat cu [ ] B B , ;

1 2
{[ ] [ ] } F s U s D s F = , , , | .
Functia
1
o definim dupacum urmeaza :
1.
1 1
( [ ]) ([ ] [ ] ) s a B s U x R , , = , , , , daca
2 2
( ) ( ) s a s x R , = , , pentru
2
{ } a B ;
2.
1 1
( [ ]) ([ ] [ ] ) s a B s D x R , , = , , , , daca
2 2
( ) ( ) s a s x L , = , , pentru
2
{ } a B ;
3.
1
([ ] [ ]) ([ ] [ ] ) sU x y s U z y A , , , = , , , , daca\
2
( ) ( ) s x s z A , = , , pentru
1
[ ] x y , , y si A L = sau A R = ;
4.
1
([ ] [ ]) ([ ] [ ] ) s D x y s D x z A , , , = , , , , daca
2
( ) ( ) s y s z A , = , , pentru
1
[ ] x y , , y , A L = daca{A R = si invers;
5.
1 1
([ ] [ ]) ([ ] [ ]) ([ ] [ ] ) sU x s D x s C y R , , , = , , , = , , , , daca;
2
( ) ( ) s x s y A , = , , , unde C U = , daca A R = si C D = , daca
A L = .
Din definirea lui
1
, se vede ca
1
M simuleaza
2
M , pastrnd starea lui
2
M n prima componentaa sta rii, fa cnd aceleasi nlocuiri ca si pe pista
99
de sus - daca
2
M lucreazala dreapta pozitiei initiale - si pe pista de jos -
daca
2
M lucreazala stnga pozitiei initiale. Cnd
2
M trece prin pozitia
initaialaa , de la dreapta la stnga, sau invers, masaina
1
M trece de pe pista
de sus pe pista de jos, sau invers.
Este evident cab
1 2
( ) ( ) L M L M = .
3.3. Maslini Turingcumai multebenzi
Un model pentru masini Turing, este cel din Figura 5.3.
Figura5.3. MasLinaLTuringcumai multebenzi
Modelul pentru massina Turing cu mai multe benzi constasdin:
n benzi infinite n ambele directii;
o unitate de control preva' zuta' cu n capete de citire/scriere
care vizeazaj cte o locatjie de pe fiecare bandaj sji care se misjcaj
independent. Miscarea depinde de starea unita tii de control si de
simbolul cercetat pe fiecare banda , de capul de citire/scriere.
banda 1
banda n
Unitate de
control

-1 0 1



-1 0 1

100
n urma cerceta rii simbolurilor de pe cele n benzi si de starea n care se
afla unitatea de control, masina Turing face urmatoarele operatii:
schimbastarea unita tii de control;
scrie un nou simbol n fiecare locat-ie cercetata-de capetele
de citire/scriere;
misIcaIcapetele sale de citire/scriere, independent unul de
altul, cu o locatie la stnga sau la dreapta.
Formal, o maskinakTuring cu n benzi se poate defini n felul urmak tor:
0
( ) M S s B F = , , , , , , , unde

0
S s B , , , , sci F sunt ca la mascina Turing cu o bandac ;
{ }
n n n
S S L R : , .
O configuratBie este
1 1 2 2
( )
k k
s s a s , , . O tranzitBie de la o
configuratwie la alta, se face ca la maswinile Turing cu o bandaw , lucrnd pe
fiecare componenta , tinnd cont de modificarea si de miscarea definitade
functia de tranzitie pentru componenta respectiva .
*
0 0 0 1 1
( ) { | ( ) ( , ) }
k k
M
L M w w s ws s s s s F

= , , , , , ,
Pentru a vedea dac un cuvnt w este acceptat, se pune cuvntul pe
banda 1, pe celelalte benzi se pune blanc, se pozit7ioneaz capetele de
citire/scriere pe pozit[iile originale, unitatea de control se pune n starea
0
s si se d drumul mas[inii s funct[ioneze, dupa[funct[ia . Daca[mas[ina
intraIntr-o stare finalaI , se acceptaI w; n caz contrar, cuvntul w nu se
acceptaj .
Da m, fa rademonstratie, urma toarea teorema .
Teorema 5.3.3.1. Un limbaj, acceptat deo masinaTuringcumai multe
benzi, esteacceptat deomasinaTuringcuobanda.
3.4. Mas\ini Turingnedeterministe
Un model pentru o masinaTuring nedeterministaconstadintr-o unitate
de control sAi o bandaAde intrare cu o cale infinitaA . Pentru fiecare stare sAi
simbol cercetat pe banda de intrare, masina are un numa r finit de
posibilita ti de alegere, fiecare alegere constnd din o nouastare a unita tii
de control, un simbol scris pe banda si o deplasare stnga sau dreapta a
capului de citire/scriere.
101
Formal, o masinaTuring nedeterministaeste:
0
( ) M S s B F = , , , , , , , unde
( { })
f
S P S L R : , .
Celelalte elemente ale masinii Turing M sunt definite ca la masina
Turing determinista{ , iar
f
P nseamna{mult{imea pa{ rt{ilor finite.
Configuratiile, tranzitiile
M
si
*
M
se definesc n mod analog ca la masini
Turing deterministe. Limbajul acceptat de o masVinaV Turing
nedeterministaeste
0
( ) { | L M w w s w

= ,
*
M 1 2
, } s s F .
Ca sOi la automate finite, nedeterminismul nu maO resOte puterea de generare
a masinilor Turing. De fapt, combinarea nedeterminismului cu orice
extensie privind benzile de intrare (benzi de intrare cu douarcar i infinite,
benzi de intrare multiple) nu mareste puterea de generare.
Teorema 5.3.4.1. Daca+L este un limbaj acceptat de o mas+ina+
Turing nedeterminista;
1
M , atunci L este acceptat de o mas;ina;Turing
determinista
2
M .
Se poate arta c familia limbajelor recursiv enumerabile (familia
limbajelor acceptate de masVini Turing) este egal cu familia limbajelor de
tio 0. Au loc urmtoarele teoreme:
Teorema 5.3.4.2. Dac L L
0
atunci el este un limbaj acceptat de
o masin Turing.
Are loc si teorema reciproc.
Teorema5.3.4.3. Dac L este un limbaj recursiv enumerabil (adic
acceptat de o mas,in Turing) atunci el este un limbaj de tip 0.
4. Automateliniar mrginites i limbajedetip1
Vom introduce un nou dispozitiv de acceptare de limbaje sGi vom araG ta caG
acest dispozitiv va accepta tocmai clasa limbajelor senzitive de context
L
1
.
Definit ia 5.4.1. Un automat liniar marginit ( LBA) este o masinaTuring
102
nedeterministacare satisface urma toarele douaconditii:
1) Alfabetul de intrare include doi simboli speciali si , care se
numesc marcatori lastngasi ladreapta, respectiv;
2) ( ) ( ) s s R , = , , si ( ) ( ) s s L , = , , .
Un automat liniar ma rginit este de forma
0
( ) M S s F = , , , , , , , ,
unde
0
S s , , , , si F sunt, ca la masina Turing, nedeterministe; si
sunt doi simboli speciali din si blancul nu face parte din .
Limbajul acceptat de un automat liniar marginit, M , este
( ) { | ( { }) L M w w

= , ,
*
0 M
s w s , } s F .
Din definitia lui ( ) L M , se vede ca marcatorii si nu fac parte din
cuvntul acceptat de automatul liniar ma rginit; acesti simboli sunt pusi pe
banda numai pentru a delimita cuvntul de intrare.
Se poate araY ta caYfamilia limbajelor acceptate de automatele liniar
mai rginite este familia L
1
.
Teorema5.4.2. DacaIunlimbaj LL
1
si L
/
, atunci existaIunautomat
liniar ma:rginit caresa:accepte L .
Demonstrat] ie. Demonstrat]ia este similara] cu cea a teoremei 4.2.5.1.
DacamLL
1
, existamo gramaticam
0
( )
N T
G V V x P = , , , cu ( ) L L G = . Un
cuvnt w L dacasi numai daca
*
0
G
x w .
Noi vom considera un automat liniar ma rginit, cu banda de intrare cu
doua-piste, pe prima pista-vom plasa cuvntul w si pe a doua pista-vom
simula deriva rile din G, pornind cu
0
x .
Automatul liniar ma rginit face urma toarele operatii:
1. Dacacontinutul pistei a doua este , alege nedeterminist
o pozitie i n , 1 i | | .
2. Se selecteaza o regula u v P .
3. Daca' u apare n ncepnd cu pozit'ia i , nlocuim u
prin v, eventual deplasnd simboli la dreapta daca
u v | |<| | . Dacarezultatul nlocuirii lui u cu v este mai
lung dect w, se respinge acest cuvnt si se ncepe cu
0
x
pe pista a doua si se trece la pas 1.
4. Compara m cuvntul rezultat pe pista a doua, cu cuvntul
w de pe pista unu. Daca continutul celor doua piste este
103
identic, se acceptaw, dacanu, se trece la pasul 1.
Dacanu se mai poate aplica nici o regulasi continutul celor douapiste
difera9 , cuvntul w se respinge.
Din algoritmul de mai sus, se vede ca ( ) w L M dacasi numai daca
exista o derivare
*
0
G
x w , deci ( ) w L G , ceea ce ne arata ca
( ) ( ) L G L M = .
Sademonstra m acum caorice limbaj din
LBA
L este un limbaj din L
1
.
Teorema 5.4.3. Fie ( ) L L M = cu M un automat liniar maFrginit,
0
( ) M S s F = , , , , , , , , atunci { } L esteunlimbaj dinL
1
.
Exercitii rezolvate:
1)Fie masina Turing
{ }{ }{ } { } ( )
0 1 2 3 4 0 4
, , , , , 0,1 , 0,1, , , , , , M s s s s s x yB s B s = cu
definit pentru:

0 1 x y B
0
s
( )
1
, , s x R

( )
3
, , s y R

1
s
( )
1,
0, s R ( )
2
, , s y L

( )
1
, , s y R

2
s
( )
2
, 0, s L

( )
0
, , s x R ( )
2
, , s y L

3
s
( )
3
, , s y R ( )
4
, , s B R
4
s
S se arate c ( ) { }
0 1 | 1
n n
L M n = .
Rezolvare:
Sa demonstra m ca

{ }
{ }
( )
*
| 0,1 ww w L M . Sa considera m
cteva cazuri particulare:
104
1) w = , atunci
~
w = . Deci avem
0 7
s Bs . Starea
7
s este starea
finala , rezultaca este acceptat.
2) 01 w= , atunci 10 w= si avem:
* *
0 1 3 5 5 0 2 2 4 6 0 7
0110 110 110 11 0 1 1 11 11 1 1 1 s s s s s s B s s s s s s s
1


3) Sa considera m acum cazul general
1
... , 1
k
w i i k = . Atunci
~
1 1
...
k k
w i i i

= . Avem urma toarele succesiuni de tranzitii.


i) Cazul
1
0 i =
* *
0 2 2 1 2 2 2 2 2 2 3 2 3 5 2
0 ... 0 ... ... 0 ... ... 0 ... ... 0 ... ...
k k k k k k k k k k
s i i i i si i i i i i i i s i i i i s i i i i si
1


5 2 2 0 2 2
... ... ... ...
k k k k
s Bi i i i s i i i i .
ii) Cazuk
1
1 i = se trateazacanalog.
*
0 2 2 1 2 2 2 2 2 2 3
1 ... 1 ... ... 1 ... ... 1 ... ... 1
k k k k k k k k
s i i i i si i i i i i i i s i i i i s
1

*
2 3 5 2 5 2 2 0 2 2
... ... ... ... ... ...
k k k k k k
i i i i si s Bi i i i s i i i i .
DacaRavem:
*
0 1 1 0 2 2 0 0 7
... ... ... ... .......
k k k k k k
s i i i i s i i i i s i i s s s . Deci orice
cuvnt de forma
1 1
... ...
k k
i i i i este acceptat de mas2ina Turing M.
Sademonstra m acum ca ( ) { }
{ }
~
| 0,1 L M ww w . Fie un cuvnt
( ) p L M . Fie
1
... , 0
n
p i i n = si { } 0,1
j
i . Din ( ) p L M avem
*
0 1 7 2
s p s

. Sa vedem cum poate evolua masina M din
0
s n
7
s .
ConsideraS m
0 1
...
n
s i i . Avem douaScazuri:
1
0 i = sau
1
1 i = . Ambele cazuri
se trateaza3analog as3a ca3vom considera numai cazul
1
0 i = :
*
0 2 1 2 2 1 2 1 3
0 ... ... ... ...
n n n n n
s i i si i i i s i i si

.
Daca 1
n
i = atunci ( )
3
,1 s = , deci se blocheaza . Trebuie ca 0
n
i = . n
acest caz avem:
*
2 1 3 2 2 5 1 5 2 1 0 2 1
... 0 ... ... ...
n n n n n
i i s i i si s Bi i s i i

.
Procednd n acelsi fel avem:
1 n
i i =
2 1 n
i i

=
105
.
.
.
1 j n j
i i
+
=
Dacan ar fi impar, 2 1 n k = + atunci am obtine:
0 1 k
s i
+
. Avem iar doua
cazuri
1
0
k
i
+
= si
1
1
k
i
+
= .
0 1 2
0 s s s s}i ne-am blocat.
Analog cazul
1
1
k
i
+
= .
0 2 4
1 s s s si se blocheaza .
Deci n trebuie sa]fie par, 2 n k = si avem
1 2 1
2 , 2 1,...,
k k
i k i k i i
+
= = = .
Deci
~
1 1
... ...
k k
p i i i i ww = = .
TemaDdecontrol:
Fie mascina Turing
{ }{ }{ } { } ( )
0 1 2 3 4 5 6 7 8 0 8
, , , , , , , , , , , , , , , , , , , , M s s s s s s s s s a b c a b c x y B s B s =
cu definit prin:

a b c x y B
0
s
( )
1
, , s x R ( )
4
, , s x R ( )
7
, , s L R

1
s
( )
1
, , s a R ( )
1
, , s b R ( )
3
, , s c R

2
s
( )
2
, , s a R ( )
2
, , s b R ( )
4
, , s c R

3
s
( )
5
, s y L

( )
3
, , s y R

4
s
( )
6
, s y L

( )
4
, , s y R

5
s
( )
5
, s a L ( )
5
, , s b L ( )
5
, , s c L ( )
0
, , s x R ( )
5
, s y L

6
s
( )
6
, s a L ( )
6
, , s b L ( )
6
, , s c L ( )
0
, , s x R ( )
6
, s y L

7
s
( )
7
, , s y R ( )
8
, , s B R
8
s
S se arate c
( ) { }
{ }
*
| , L M wcw w a b = .
107
Bibliografie
1. Toader J ucan - Limbaje formale si automate, Editura Matrix Rom, Bucuresti,
1999, 162 p.
2. Toader J ucan, S tefan Andrei Limbajeformalesi teoria automatelor.Teoriesi
practic, Editura Universittyii Al. I. Cuza, Iasyi, 2002, 327p.
3. Gheorghe Grigoras - Limbaje formale si tehnici de compilare, Editura
Universittii Al. I. Cuza, Iasi, 1985, 256p.
4. Virgil Cznescu Introducerenteorialimbajelor formale, Editura Academiei,
Bucuresti, 1983.
Manualul de Limbaje formale si automate pentru sect ia ID
Erata
1. Lista corect iilor de la Tema 1:
pag. 7, randul 3 de sus, se va citi: . . . neterminalii
pag. 17, randul 1 de jos, se va citi: G = ({x
0
, x
1
, x
2
}, . . .)
pag. 18, randul 3 de sus, se va citi: 3) x
1
x
2
x
2
x
1
pag. 18, randul 9 de sus, se va citi: G = (. . . , {a, b, c}, A, P)
pag. 19, randul 4 de sus, se va citi: 6) B
2. La pag. 59, randurile 16 si 17 dispar (de la Teorema 3.18)
3. Lista corect iilor de la Tema 3:
pag. 70, randul 13 de sus, se va citi: (. . . , {a, z
0
}, , s
0
, z
0
, {s
3
}) cu . . .
pag. 70, randul 16 de sus, se va citi: 3) (s
1
, b, a) = {(s
2
, )}
pag. 71, randul 7 de sus, se va citi: 4) (s
2
, b, b) = {(s
2
, bb)}
pag. 95, randul 6 de jos, se va citi: x
1
. . . x
i1
sx
i
x
i+1
. . . x
n
x
1
. . . x
i2
s

x
i1
yx
i+1
. . . x
n
pag. 96, randul 1 de jos, se va citi: L(M) = {w| w

, s
0
w

M

1
s
2
, s F,
1
,
2

}
1