Professional Documents
Culture Documents
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
= {}
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
.
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
).
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
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
.
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
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
.
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
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
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(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
, 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
G
p. Daca p = , atunci n G
avem regula x
0
P
si derivarea
x
0
G
, deci p L(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
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
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
).
Consecint a 1.2.15. Din teorema precedenta rezulta ca L
2
L
1
.
11
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
{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
-
`
,
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
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) = (
, 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
) = n + 1.
23
Avem (s, pq
, (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 = (
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
L
:
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
= S
F. Consideram automatul A
=
(S
, , , s
0
, F
). Automatul 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
)
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
.
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
= (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)]
. 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]
, 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
.
Se poate demonstra usor ca o stare este accesibila daca si numai
daca ea apart ine mult imii S
= (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
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
ca
.
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
(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}, p) =
({s}, qi) =
({s}, q), i) =
{(s
, i) | s
({s}, q)} =
{(s
, i) | s
) (s
0
, p) =
({s
0
}, p), p
.
Vom arata ca L = L(A
. 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
| 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
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
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
G
1
p x
0
G
p, deci L = L(G).
39
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
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
) = 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
) 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
.
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
`
_
`
[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
, 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
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).
.
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}
) = 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
(s
0
, , x) = {(s
0
, z
0
x)};
2.
(s, , x) = {(s
f
, )} pentru s S;
4.
) = L
(P) L(P
). Fie w L
P
(s, , ) (1)
Folosind denit ia lui
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
astfel ncat
(s
0
, w, x)
(s
f
, , ) (3)
Din denit ia lui
) (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)
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
(s
0
, , x) = {(s
0
, z
0
x)};
2. (a)
, ) pentru s F si z ;
3.
(s, , x) = {(s
, )} pentru s F;
4.
(s
, , z) = {(s
, )} pentru z {x};
5.
(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
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
.
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
)
(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
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].
)
S S cu [szs
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
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
. 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
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
, 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
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
, 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.
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
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
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
*
*
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
.
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