Documente Academic
Documente Profesional
Documente Cultură
Limbaje Formale Si Automate
Limbaje Formale Si Automate
a
Cartea contine materia pentru studentii informaticieni din anul III,
nvatamant la distanta. Continutul cartii este mpartit n cinci teme.
Fiecare tema este formata dintr-o prezentare teoretica, insistandu-se
pe clasificarea notiunilor introduse si mai putin pe demonstrarea tuturor teoremelor, dupa care urmeaza cate un set de exercitii rezolvate
si propuse spre rezolvare.
Cu toate ca lipsesc demonstratiile unor teoreme, cartea este utila
si studentilor din anul II de la nvatamant de la zi.
Sper ca munca depusa n redactarea acestui material sa fie de folos
studentilor informaticieni.
Autorul
Cuprins
Prefat
a
Tema 1. Limbaje si gramatici generative
1. Notiuni introductive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2. Gramatici generative si limbaje generate de gramatici . . . . . . . . 5
3. Exemple rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Tema 2. Automate finite si gramatici de tip 3
1. Automate finite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21
2. Caracterizarea limbajelor regulate cu
ajutorul relatiilor de echivaleta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24
3. Constructia automatului minimal . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4. Automate nedeterministe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5. Limbaje regulate si limbaje de tip 3 . . . . . . . . . . . . . . . . . . . . . . . . . 36
6. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
ii
iii
Tema 1
Limbaje si gramatici
generative
1
Notiuni introductive
p(j)
daca i j n
q(j n) daca n + 1 j n + m
V = {} k=1
{p | p V , l(p) = k}.
Observatia 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 6= q p.
Definitia 1.1.11. Cuvantul q este prefix al cuvantului p daca
v V , p = qv si este prefix propriu daca v V + . Cuvantul q este
sufix al cuvantului p daca u V , p = uq si este sufix propriu daca
u V +.
Lema 1.1.12. Orice aplicatie : V S, unde S este un semigrup cu operatia , se extinde n mod unic la un homomorfism de
semigrupuri : V + S.
Demonstratie. Fie p = i1 . . . in un cuvant oarecare din V + . Vom
defini (p) prin (i1 . . . in ) = (i1 ) (i2 ) . . . (in ). Se verifica
imediat ca aplicatia astfel extinsa este un homomorfism de la V + la
S.
Sa demonstram unicitatea lui . Sa presupunem ca ar mai exista
un homomorfism : V + S cu (i) = (i), oricare ar fi i V . Sa
demonstram ca (p) = (p), oricare ar fi p V + . Vom demonstra
prin inductie dupa lungimea cuvintelor. Pentru cuvinte de lungime 1,
propozitia este adevarata. Presupunem propozitia adevarata pentru
un cuvant de lungime cel mult k si o demonstram pentru cuvinte de
lungime k + 1. Fie p cu l(p) = k + 1. Atunci p = qi, cu l(q) = k si
l(i) = 1. Avem (p) = (q i) = (q) (i) = (q) (i) = (qi) =
(p).
3
Gramatici generative si
limbaje generate de gramatici
V .
Multimea P se numeste multimea regulilor de generare sau
multimea productiilor gramaticii G. Vom nota perechea (u, v) P
prin u v. Se observa ca n orice regula u v cuvantul u contine
cel putin un simbol neterminal.
Vom defini o relatie binara peste V numita derivare directa, notata
cu V V .
G
Deci o derivare este un sir de cuvinte care se obtine unul din altul
prin aplicarea unei reguli din G, numarul n din definitia de mai sus
se numeste lungimea derivarii. Deci lungimea derivarii este numarul
regulilor care se aplica pentru a obtine un+1 din u1 . Vom considera ca
printr-o derivare de lungime 0, adica nu se aplica nici o regula
din G.
Atunci cand nu exista posibilitatea de confuzie, vom renunta la
L(G) = {p | p VT , x0 p}.
G
(y) daca y VN
y
daca y VT
y1 . . . yn u .
G
u are forma u = u1 . . . un si yj uj , 1 j n. In ultimul pas al
G
derivarii de lungime k, se obtine din u prin aplicarea unei reguli de
forma x r, simbolul x al regulii x r apartine lui u, deci exista
un l astfel ncat ul = ul xul , 1 l n. Atunci se descompune n
1 . . . n cu
(
uj
daca j 6= l
j =
ul rul daca j = l
l , deci yj j , 1 j n.
G
Constructia gramaticii G1 .
G1 = (VN , VT , x0 , P1 ), unde P1 se obtine din P n modul urmator:
pentru fiecare regula din P , x r, cu r 6= se pun n P1 toate regulile
10
x0
corespunda
x0 . Gramatica G1 este gramatica din teorema
G
G
precedenta. Deci si n cazul p 6= avem p L(G ).
Sa demonstram acum incluziunea inversa, adica L(G) L(G).
11
12
Exemple rezolvate
1) Se da gramatica G = ({x0 }, {a, b}, x0 , {x0 ab, x0 ax0 b}). Sa
se arate ca L(G) = {an bn | n 1}.
Rezolvare: Conform definitiei limbajului generat avem ca L(G) =
{p | pGVT x0 p}, deci sunt toate cuvintele din VT care se obtin din
G
x0 prin derivari in G. Pentru a demonstra egalitatea din enunt, trebuie
sa demonstram dubla incluziune.
{an bn | n 1} L(G).
x0 p si p VT .
G
Daca la primul pas al derivarii se aplica regula x0 ab, atunci
Deci an bm L(G).
Sa demonstram acum ca L(G) {an bm /n, m 1} Fie p L(G);
1. x0 ax0 xc
2. x0 abc
3. cx xc
4. bx bb
Sa se arate ca L(G) = {an bn cn |n 1}.
Rezolvare. Sa demonstram ntai ca {an bn cn |n 1} L(G).
Pentru n = 1. Din regula 2) avem x0 abc, deci abc L(G).
Pentru n = 2. Aplicam ntai regula 1) si apoi regula 2) si apoi
regulile 3) si 4). Avem:
x0 ax0 xc a2 bcxc a2 bxc2 a2 b2 c2 .
Pentru n > 2. Vom aplica regula 1) de (n 1) ori si apoi regula 2
si obtinem:
x0 ax0 xc an1 x0 (xc)n1 an bc(xc)n1 .
Mai departe aplicam regula 3) ncat sa comutam toti x cu c si apoi
aplicam de (n 1) n regula 4). Avem:
x0 an bc(xc)n1 an bxn1 cn an bn cn .
Acum sa demonstram ca L(G) {an bn cn |n 1}.
derivare. Deci obtinem x0 al+1 bc(xc)l al+1 bl+1 cl+1 , al+1 bl+1 cl+1
G
{an bn cn |n 1} si prin urmare.
4. Fie gramatica G = ({x0 , x1 , x2 }, {a, b, c}, x0 P ) cu P dat prin:
15
1. x0 abc
2. x0 ax1 bc
3. x1 b bx1
4. x1 c x2 bcc
5. bx2 x2 b
6. ax2 aax1
7. ax2 aa
Sa se arate ca L(G) = {an bn cn |n 1}.
Sa demonstram ca {an bn cn |n 1} L(G).
Pentru n=1. Aplicand regula 1) avem x0 abc, deci abc L(G).
Pentru n=2. Aplicam ntai regula 2) si apoi 3), 4), 5) si 7) avem
x0 ax1 bc abx1 c abx2 bcc ax2 bbcc a2 b2 c2 , deci a2 b2 L(G).
G
G
G
G
G
Vom demonstra ca daca avem un cuvant
I
j
j j
() a x1 b c
II
aj x1 bj cj aj bj x1 cj .
Mai departe se poate aplica regula 4) si apoi regula 5) de j ori si
acestea sunt singurile reguli care se pot aplica. Avem:
j+1 j+1
a x2 b
II
deci an bn cn L(G).
Sa demonstram ca L(G) {an bn cn /n 1}.
1) x0 ax0 x1 x2
2) x0 ax1 x2
3) x1 x2 x1 x2
4) ax1 ab
5) bx1 bb
6) bx2 bc
7) cx2 cc
genereaza limbajul {an bn cn |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) = {an bn cn |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
n
19
Tema 2
Automate finite si gramatici
de tip trei
1
Automate finite
a b c d c a d
6
Unitate
de control
Fig. 2.1. Model pentru automat determinist
Specificarea unui automat finit revine la precizarea multimilor
S, , F , a starii initiale s0 si la definirea functiei de tranzitie directa .
Definirea functiei de tranzitie se poate face fie tabelar, fie cu ajutorul
unui graf orientat etichetat, care descrie functionarea automatului sau
ca expresie analitica. Descrierea functiei de tranzitie tabelar se face
utilizand o matrice de dimensiune |S| ||, cate o linie pentru fiecare
s S.
i
..
.
s (s, i)
..
.
Fig. 2.2. Tabelul functiilor de tranzitie
Al doilea procedeu consta n atasarea unui graf orientat etichetat
numit graful tranzitiilor (sau uneori diagrama de tranzitie a automatului).
Definitia 2.1.2. Graful tranzitiilor automatului finit
A = (S, , , s0 , F ) este un cuplu (G, ) unde G = (S, U) este un graf
orientat, avand ca multime de noduri, multimea starilor automatului
S si ca multime de arce multimea U = {(sj , sk ), i , (sj , i) = sk },
iar : U P() este o functie de etichetare a arcelor definita n
modul urmator: pentru fiecare arc u U (u) = {i | i , u =
(sj , sk ), (sj , i) = sk }.
Convenim ca pentru starile finale sa desenam doua cercuri, iar
starea initiala sa o marcam printr-o sageata.
22
Rj
s0
0
1
6
1
0
0
W9
j 1 q s1m
j
w s2m
23
24
: /A,s0 S.
Demonstratie. Definim functia : /A,s0 S prin ([p]) =
(s0 , p), oricare ar fi [p] /A,s0 . Functia este bine definita; nu
depinde de reprezentatul clasei. Fie q [p]A,s0 , atunci [q]a,s0= [p]A,s0 .
Avem ([q]A ,s0 ) = (s0 , q) = (s0 , p) = ([p]A,s0 ). Se verifica imediat ca este injectiva. Intr-adevar, ([p]A,s0 ) = ([q]A,s0 ) implica
(s0 , p) = (s0 , q), care nseamna [p]A,s0 = [q]A,s0 .
Teorema 2.2.9. Limbajul L este acceptat de un automat finit
daca si numai daca L are rang finit.
Demonstratie. Sa demonstram ca, L acceptat de un automat A
finit implica L are rang finit. Din teorema 2.2.8. rezulta ca exista
injectia
: /A,s0 S, de unde rezulta ca | /A,s0 | |S|. Din teorema
2.2.7. rezulta ca A,s0 L care implica ca | /L | | /A,s0 | |S|.
Cum |S| este finit, rezulta ca | /L | este finit, deci L are rang finit.
Invers, sa demonstram ca, L are rang finit implica L este limbaj
regulat.
Consideram automatul AL = ( /L , , , []L , {[w]L | w L}).
Definim functia de tranzitie : /L /L prin
([p]L , i) = [pi]L , p si i .
Sa observam ca functia este bine definita, 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
functia de tranzitie la prin ([p]L , q) = [pq]L . Automatul AL
este automat finit, deoarece este finit si | /L | este finit.
Sa demonstram ca L = L(AL ). Fie p L, rezulta ca [p]L
{[w]L | w L}. Dar ([]L , p) = [p]L {[w]L | w L}, de unde
p L(AL ).
Invers, fie p L(AL ), 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 fi r . Luam r = , avem
L (p) = L (w) = 1, de unde p L.
26
Consecinta 2.2.10. Daca L este un limbaj regulat, atunci automatul AL este, conform teoremei 2.2.9., automatul cu cele mai
putine stari care accepta limbajul L.
Demonstratie. Intr-adevar, daca A = (S, , , s0 , F ) un automat
finit care accepta limbajul L, atunci din demonstratia teoremei precedente avem ca | /L | |S|. Dar automatul AL are ca multime de
stari /L si am aratat ca accepta limbajul L.
Automatul AL l vom numi, din acest motiv, automatul minimal
al limbajului L.
Teorema precedenta se poate utiliza pentru a arata ca unele limbaje nu sunt limbaje regulate. Pentru aceasta se arata ca relatia de
echivalenta atasata limbajului nu are rang finit.
Fie limbajul L = {an bn | n 1}, peste alfabetul {a, b}. Acest
limbaj este un limbaj independent de context, fiind generat de o gramatica care are regulile x0 ax0 b si x0 ab, care satisfac conditiile
pentru acest tip de gramatica. Sa aratam ca acest limbaj nu este regulat. Presupunem ca limbajul L este regulat. Consideram echivalenta
L atasata limbajului L, care are rang finit deoarece L este regulat.
Consideram sirul de cuvinte a, a2 , . . . , an , . . .. Deoarece L are rang
finit, exista i < j astfel ncat (ai , aj ) L . Relatia L este compatibila cu concatenarea la dreapta, deci (ai bj , aj bj ) L . Aceasta este
imposibil, deoarece aj bj L si ai bj 6 L, deci L (ai bj ) 6= L (aj bj ).
Teorema precedenta ne permite sa gasim pentru un limbaj regulat
un automat finit AL care sa accepte acest limbaj.
Vom defini o alta relatie de echivalenta care sa caracterizeze
multimea limbajelor regulate.
27
1 daca s F
0 daca s 6 F.
T k
echivalenta. Din definitia lui rezulta ca =
{ |k N}.
k=0
Definitia 2.3.4. Fie A = (S, , , s0 , F ) un automat finit determinist. O stare s S este accesibila daca exista p astfel ncat
s = (s0 , p) si inaccesibila n caz contrar.
Definitia 2.3.5. Un automat A = (S, , , s0 , F ) se numeste redus
daca nu are stari inaccesibile.
k1
28
Demonstratie.
Daca starile s1 si s2 sunt inseparabile atunci ele sunt si (n 2)-inseparabile. Acest fapt decurge din definitiile date.
Invers, sa demonstram ca daca starile s1 si s2 sunt (n 2)-inseparabile atunci ele sunt si inseparabile.
k
k1
Din incluziunea , oricare ar fi k 1, rezulta urmatorul sir
de incluziuni:
k
k1
k2
... ...
(1)
k+1
(3)
k + 2 |S/ | n
de unde rezulta k n 2.
k+j
k
Se poate demonstra prin inductie dupa j ca S/ = S/ , oricare ar
fi j 1. Atunci relatia (1) devine:
0
(1 )
k+1
n2
Deci = .
Vom construi automatul minimal care sa accepte un limbaj L,
recunoscut de un automat A = (S, , , s0 , F ). Putem considera, dupa
29
31
Automate nedeterministe
a
S\
s1
{s1 }
s2
{s1 , s3 }
s3
{s1 , s2 }
b
{s1 , s2 }
{s3 }
{s2 }
Fig. 2.4.2.
32
N
s
ys1
b
a
s2
)
a, b
a, b
a
s3
:
Fig. 2.4.3.
Un automat nedeterminist pentru care |(s, i)| = 1, (s, i) S
poate fi privit ca un automat determinist. Deci automatele nedeterministe sunt mai generale (se identifica multimile cu un element, cu
elementul nsusi).
Functia de tranzitie : S P(S) se poate extinde la S
prin:
b ) = {s}, s S;
1. (s,
Definitia 2.4.4. Limbajul acceptat de automatul finit nedeterminist A = (S, , , s0 , F ) este L(A) = {p|p , (s0 , p) F 6= }.
33
34
(S , i) =
( S
,
daca S = .
35
{s0 }, daca s0 F
,
daca s0 6 F.
yi wi , 1 i n. Derivarile yi wi , 1 i n au lungimile
G
G
cel mult k, deci putem aplica pasul inductiv si exista derivarile stangi
37
x0 p x0 p, deci L = L(G).
G1
39
{
x}, daca x i P
, n caz contrar.
{
x, x0 }, daca x0 P
{
x}, n caz contrar.
42
inand cont ca
Iar derivarea x0 pl este de fapt n G, deci pl L. T
G
p = p1 . . . pl si pi L, 1 i l, rezulta ca p L .
Incluziunea L L(G). Fie p L ; rezulta ca exista k 0
astfel ncat p Lk . Vom considera trei cazuri:
1. k = 0. Atunci p = si n gramatica G avem x0 , deci
G
p L(G );
2. k = 1. Atunci p L si cum regulile lui G sunt si n G , avem
x0 p, deci p L(G );
G
Exercitii rezolvate
1) Sa se arate ca automatul A = ({s0 , s1 , s2 }, {a, b}, , s0 , {s0 , s1 }),
cu definita prin graful de tranzitie din figura urmatoare, accepta
limbajul L = {ai bj | i, j 0}.
a
b
U
W
a
b - s1
s0
a,b
- s2 W
s0 F, daca j = 0
,
s1 F, n caz contrar
deci ai bj L(A).
Invers, sa aratam incluziunea L(A) L. Fie p L(A). Atunci
p {a, b} si (s0 , p) F . Vom arata ca p = ai bj cu i, j 0. Pentru
aceasta, consideram mai multe cazuri posibile:
1. p = , atunci (s0 , ) = s0 F si p = = a0 b0 .
2. p = ai , cu i 1, atunci (s0 , ai ) = s0 F si p = ai b0 .
44
3. p = bj , cu j 1, atunci (s0 , bj ) = s1 F si p = a0 bj .
4. p = ai bj , cu i, j 1, atunci (s0 , ai bj ) = ((s0 , ai ), bj ) =
(s0 , bj ) = s1 F si p = ai bj .
5. p = ai bj au, cu i 0, j 1 si u {a, b} . Atunci (s0 , ai bj au) =
((s0 , ai ), bj au) = (s0 , bj au) = ((s0 , bj ), au) = (s1 , au) =
((s1 , a), u) = (s2 , u) = s2 6 F si prin urmare acest caz este
imposibil, deoarece contrazice faptul ca p L(A).
Deci cuvintele din L(A) sunt de forma ai bj , cu i, j 0.
2) Sa se arate ca automatul A = ({s0 , s1 , s2 , s3 , s4 , s5 }, {a, b, c}, , s0, {s4 }),
cu definita prin graful de tranzitie din figura urmatoare, recunoaste
limbajul L = {ab2 cn | n 1}.
c
R
cs0 a- s1 b- s2 b- s3
s4
a, c
b, c
a, c
a, b
R
?
+
s
s5
a, b
a, b, c
46
0
s2
s0
q s
>
3
0
6
0 ~
1
1
R
s1
N
K 1
1
0
s5
U
0
s7
s6
1
0, 1
U
s4
k1
k1
49
R
[s0 ]
0
- [s1 ]
1
[s3 ]
?
s
0, 1
0, 1
[s2 ]
50
a,b
- s3 W
3
s0
- s1
0
1
?
s3
?
s Y
2
0, 1
a) Sa se gaseasca L(A) pentru F
b) Sa se gaseasca L(A) pentru F
c) Sa se gaseasca L(A) pentru F
d) Sa se gaseasca L(A) pentru F
= {s0 } ;
= {s1 } ;
= {s2 } ;
= {s3 } .
W
R
s0 a- s1
a, c
b, c
b
b
- s2
- s3
R
+
s
a, c
s4
a, b, c
52
Tema 3
Limbaje independente de
context si automate
pushdown
1
In capitolul precedent am vazut ca familia L3 coincide cu familia limbajelor acceptate de automate deterministe sau nedeterministe. Pentru limbajele din clasa L2 exista un alt tip de automat care sa accepte
limbajele din L2 si anume automate pushdown nedeterministe.
Un model pentru un automat pushdown nedeterminist este dat n
Figura 3.1.1.
Modelul prezentat mai sus consta dintr-o banda de intrare pe care
sunt plasate simboluri dintr-un alfabet de intrare, , o memorie numita memorie pushdown n care sunt plasate simboluri dintr-un alfabet si o unitate de comanda. Unitatea de comanda este prevazuta
cu doua capete de citire, unul pentru banda de intrare, care se poate
deplasa spre dreapta, si unul pentru memoria pushdown care vizeaza
numai primul simbol din memorie. Unitatea de comanda care se afla
ntr-o stare s si vizeaza pe banda de intrare simbolul ai si n memoria pushdown simbolul z1 va trece ntr-o noua stare s , capul de citire
de pe banda de intrare se va deplasa cu o locatie spre dreapta sau
ramane pe loc, iar simbolul z1 din memoria pushdown se nlocuieste
53
a1 a2 a3 a4 a5
...
ai
6
Unitatea
de
comanda
...
banda
de
intrare
z1
z2
..
.
zn
..
.
memorie
pushdown
Fig. 3.1.1.
Exemplu. Fie P = ({s0 , s1 , s2 , s3 }, {0, 1}, {0, z}, , s0, z, {s3 }) unde:
1. (s0 , 0, z) = {(s1 , 0z)}
2. (s1 , 0, 0) = {(s1 , 00)}
3. (s1 , 1, 0) = {(s2 , )}
4. (s2 , 1, 0) = {(s2 , )}
5. (s2 , , z) = {(s3 , )}
6. (s, a, ) = n celelalte cazuri.
Sa vedem daca cuvantul 0011 apartine limbajului L(P ). Consideram secventa de tranzitii:
(s0 , 0011, z) (s1 , 011, 0z) (s1 , 11, 00z) (s2 , 1, 0z) (s2 , , z) (s3 , , );
cum s3 este starea finala, rezulta ca 0011 L(P ).
In Definitia 3.1.4 observam ca pentru ca un cuvant w sa apartina
limbajului trebuie ca sa existe un sir de tranzitii din configuratia
initiala (s0 , w, z) ntr-o configuratie (s, , ) cu s F si .
Putem defini un nou limbaj acceptat de un automat pushdown n
care sa slabim conditia ca starea s sa apartina multimii F si vom lasa
aceasta stare arbitrara din S, dar vom ntari conditia , vom
cere ca = .
Definitia 3.1.5. Fie P = (S, , , , s0 , z0 , ) un automat pushdown. Vom numi limbaj acceptat de automatul pushdown P cu memorie pushdown vida, urmatorul limbaj:
L (P ) = {w | w , (s0 , w, z0 ) (s, , ), s S}
In exemplul dat nainte se observa ca 0011 este un cuvant acceptat de
automatul pushdown cu memorie pushdown vida.
56
Problema care se pune este ce legatura este ntre cele doua familii
de limbaje? In urmatoarele doua teoreme vom arata ca cele doua
familii de limbaje sunt egale.
Teorema 3.1.6. Fie P = (S, , , , s0 , z0 , ) un automat pushdown cu memorie pushdown vida. Exista un automat pushdown P
astfel ncat L(P ) = L (P ).
Demonstratie. Fie P = (S {s0 , sf }, , {x}, , s0 , x, {sf }),
unde s0 , sf 6 S, x 6 si functia este definita prin:
1. (s0 , , x) = {(s0 , z0 x)};
2. (s, a, z) = (s, a, z) pentru s S, a {} si z ;
3. (s, , x) = {(sf , )} pentru s S;
4. (s, a, z) = n celelalte cazuri.
Egalitatea L(P ) = L (P ) o vom demonstra prin dubla incluziune.
a) Sa demonstram L(P ) L(P ). Fie w L (P ); atunci exista
s S astfel ncat avem
(1)
(s0 , w, z0 ) (s, , )
P
(s0 , w, z0 ) (s, , )
P
Folosind relatiile (2), (1) si punctul 3) din definitia lui , putem scrie
urmatorul sir de tranzitii n P :
(s0 , w, x)P (s0 , w, z0 x)P (s, , x)P (sf , , ),
deci (s0 , w, x)P (sf , , ), ceea ce nseamna w L(P ).
57
(s0 , w, x) (sf , , )
(3)
Din definitia lui rezulta ca primul pas al tranzitiilor din (3) se face
dupa punctul 1) si anume avem:
(3 )
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 finale. Urmatoarea teorema stabileste incluziunea
inversa.
Acum sa demonstram incluziunea inversa si anume ca orice limbaj
acceptat de un APD cu stari finale poate fi acceptat de un APD cu
memoria vida.
Teorema 3.1.7. Un limbaj L acceptat de un automat pushdown
cu stari finale este acceptat si de un automat pushdown cu memorie
pushdown vida.
Demonstratie. Fie P = (S, , , , s0 , z0 , F ) cu L = l(P ). Fie
P
automatul pushdown cu memorie vida: P = (S {s0 , s }, , {x},
, s0 , x, ), unde s0 , s 6 S, x 6 si este definit prin:
P
58
si z ;
59
l1
l1
xi wi , 1 i t.
G
ni
(s, wi , xi ) (s, , ).
P
(s, xi , xi ) (s, , )
P
(s, wi , xi ) (s, , ), 1 i t.
P
60
(s, w, X) (s, w, x1 . . . xk )
P
l+1
(s, w, X)
(s, , ), cu l 1.
unde X x1 . . . xk P si xi VN VT , 1 i k.
Dar din configuratia (s, w, x1 . . . xk ) trebuie sa se ajunga n l pasi
n (s, , ) conform relatiei (5), deci avem:
(6)
(s, w, x1 . . . xk ) (s, , )
P
li
(s, i, xi ) (s, , ), 1 i k
P
61
si numarul de pasi li ai acestor tranzitii este mai mic sau cel mult egal
cu l.
Daca xi VT , se poate aplica numai punctul 2) din definitia lui ,
ceea ce implica i = xi si tranzitia este de forma:
(7 )
(s, xi , xi ) (s, , )
ntr-un pas.
x1 . . . xk 1 . . . k .
G
X x1 . . . xk 1 . . . k = w, deci X w.
G
(1)
Propriet
ati de nchidere
pentru familia L2
64
Demonstratie. Fie L un limbaj de tipul doi; trebuie sa demonstram ca L L2 . Din L L2 rezulta ca exista o gramatica G de
tipul doi, G = (VN , VT , x0 , P ) care sa genereze L, adica L = L(G).
Pentru a arata ca L este de tipul doi, vom construi o gramatica G
de tipul doi care sa genereze limbajul L . Sa consideram gramatica:
(1) G = (VN {y0 }, VT , y0, P {y0 , y0 y0 x0 }), unde y0 6 VN .
Se observa imediat, din forma regulilor de generare, ca G este o gramatica de tipul doi. Sa demonstram egalitatea L = L(G ).
a) Incluziunea L L(G). Fie p L =
Ln ; rezulta ca
n=0
x0 pj , 1 j n.
(2)
(3)
{z
kori
{z
kori
p1 x0 . . . x0 p1 p2 x0 . . . x0 . . . p1 p2 . . . pk .
G
y0 y0 x0 . . . x0 x0 . . . x0 p
G
{z
m ori
{z
m ori
x0 pj , 1 j m.
G
Dar n derivarile (4) se aplica numai reguli din P , celelalte le-am aplicat nainte. Deci avem:
(4 )
x0 pj , 1 j m,
G
de unde pj L, 1 j m, deci p Lm L .
Exemple rezolvate
67
{0, b}+ }.
Fie p L(P ). Din definitia limbajului avem ca (s0 , p, z) (s2 , , ).
Vom demonstra ca p = w w.
Vom considera mai multe cazuri:
1) p = . Avem (s0 , , z) se blocheaza de ci 6 L(P ).
2) p 6= . Fie p = i1 . . . ik , k 1, ij {a, b}, 1 j k. Din definitie
avem ca (s0 , i1 . . . ik , z) (s2 , , ). Sa vedem cum poate evolua
aceasta tranzitie.
69
Tem
a de control (3).
1. Fie automatul pushdown nedetrminist P = ({s0 , s1 , s2 , s3 }, {a, b, c},
{z, a}, , s0 , z, {s3 }) cu definit prin:
1) (s0 , a, z) = {(s1 , aaz)};
2) (s1 , a, a) = {(s1 , aaa)};
3) (s1 , b, a) = {(s2 , )};
4) (s1 , c, a) = {(s2 , )};
5) (s2 , b, a) = {(s2 , )};
6) (s2 , c, a) = {(s2 , )};
7) (s2 , , z) = {(s3 , )};
8) = n celelalte cazuri.
Sa se arate ca L(P ) = {an w|w {b, c}+ , |w| = 2n, n 1}.
2. Fie automatul pushdown nedeterminist P = ({s0 , s1 , s2 , s2 }, {a, b, c},
{a, z}, , s0 , z, {s3 }) cu definit prin:
1) (s0 , a, z0 ) = {(s1 az0 )};
2) (s1 , a, a) = {(s1 , aa};
3) (s2 , b, a) = {(s1 )};
4) (s2 , b, a) = {(s2 , )};
5) (s2 , c, z) = {(s3 , z)};
6) (s3 , c, z) = {(s3 , z)};
7) = n celelalte cazuri.
70
71
Tema 4
Forme normale. Arbori de
derivare. Teorema lui Ogden
si aplicatii. Automate
pushdown deterministe
1
Forme normale
73
Demonstratie. Deoarece L este un limbaj independent de context si nu contine , rezulta ca L poate fi generat de o gramatica
G = (VN , VT , x0 , P ), care nu contine reguli de forma x y sau x ,
cu x, y VN . Deci regulile n G sunt de forma:
(1)
x y1 . . . yn , cu n 1 si x VN .
x A1 . . . An , n > 2, x, ai VN Z, 1 i n,
74
(3)
x A1 B1
B1 A2 B2
..................
..................
..................
Bn3 An2 Bn2
Bn2 An1 An
Arbori de derivare
76
Fig. 4.2.1.
77
x1
x1
x0
x2
x2 a
Fig. 4.2.2.
x0
x2
a
Fig. 4.2.3.
80
x0
X
n1
X
n2
X
n2
x y
Fig. 4.2.7
Fig. 4.2.8
X z
(1)
u
Fig. 4.2.9.
atunci avem
(2)
X yXu
G
81
x0 xXv.
(3)
x0
X
x
Fig. 4.2.10.
x0 xXv xzv.
G
G
Pentru i = k > 0 avem:
83
...
6
P
A
..
.
Fig. 4.2.11.
84
Se poate demonstra ca pentru orice limbaj L L2DET exista un automat pushdown determinist sub forma normala care sa accepte L.
Deoarece automatele pushdown deterministe sunt o subclasa a automatelor pushdown nedeterministe rezulta ca L2DET L2 . De fapt
aceasta incluziune este stricta deoarece L2DET este nchisa la complementariere si L2 nu este nchisa la complementariere, deci cele doua
familii de limbaje nu pot fi egale.
Exercitii rezolvate
I) Sa se arate ca limbajul L = {an bn cn | n 1} nu este limbaj independent de context.
Rezolvare: Vom aplica teorema lui Ogden. Presupunem ca limbajul L este independent de context. Alegem un cuvant w = an bn cn ,
marcam an si alegem n mai mare decat numarul k din teorema lui
Ogden. Conform teoremei lui Ogden w = xyzuv cu proprietatile din
teorema.
Vom arata ntai ca y nu poate contine decat o litera. Sa presupunem ca y = al bn cj , n, l, j 1. Atunci u = cm , m 0 si luand
xy 2 zu2 v avem anl al bn cj al bn cj cnj+m care ar trebui sa apartina limbajului L conform teoremei lui Ogden, dar acest cuvant nu apartine
lui L deoarece are b-uri si c-uri nainte de simbolul a. Analog se arata
85
87
Tema 5
Familiile de limbaje L 0 s
i L1
Dup ce am studiat familiile de limbaje L3 si L 2 , acum ne vom
preocupa de propriettw
ile familiilor L 0 si L 1 .
'
) de acelasi tip cu G si
Observat5
ie 5.1.2. O gramatic de tip 0 sau 1 este sub form
*
standard dac regulile sale sunt de forma
cu , VN sau de
forma x i cu x VN si i VT .
Observat
ie 5.1.3. Conform teoremei 5.1 pentru orice gramatic G
de tip 0 sau 1, exist o gramatic G sub form standard echivalent cu G.
Observatd
ie 5.1.4. Orice limbaj L L 0 (L L 1 ) poate fi generat de
o gramatic sub form standard de tip 0 (sau 1).
Teorema 5.1.5. Familiile limbajelor L 0 si L 1 sunt nchise la produs.
Demonstrat*
ie. Vom face demonstrat*ia pentru L 1 ; analog se face s*i
89
Considerm
gramatica
2
N
1
T
2
T
1 2
0 0
L (G )= L1 gL2 .
derivarea
G1
G2
p1 L1 , p2 L2 s
i p L1 L2 .
p = p1 gp2 si
p L1 L2 avem
*
G1
G2
x0 x01 x02 p1 p2 , p L (G ).
G
()
( L {})* = L* , rezult c nu
restrngem generalitatea dac presupunem c L . Conform Teoremei
5.1., putem presupune c L = L (G ), unde G = (
VN ,VT , x0 , P ) si
regulile care contbin terminali sunt de forma x i, x VN si i VT .
Demonstratie.
Deoarece
90
Considerm
gramatica
{y1i
y1 x0 i, y1i x0 i | i VT })
Gramatica G* este de acelasi tip cu G, pentru c regulile adaugate nu
*
schimb tipul (0 sau 1) gramaticii G* . S demonstrm c L = L (G* ).
S demonstrm nti incluziunea L L (
G* ). Fie p L* ; atunci
*
p Lk , k 0 .
1) k = 0 , atunci p = si avem y0 .
G*
rezultax0 p j ,1 j k .n acest
G
*
caz
considera
m
derivarea
Deci
Incluziunea
L (G* ) L* . Fie
derivarea y0 q ... p .
G*
G*
G*
y0 y1 x0 y1 pk y1 x0 pk y1 pk 1 pk ... p1... pk
G*
G*
G*
G*
G*
G*
sui
plus
x0 p j ,1 j k , deci
G*
Demonstrat
ie. Fie L un limbaj de tip
cu
G' = (
VN , VT , x0 , P ' ),
gramatica
j, 0 j 3 ,
L (G )= L .
unde
= L(
= p | p L . Deci trebuie sa aratam ca
aratam ca L
G' )
, unde L
()
x0 = p .
G
dacaxw1 ' w2 .
G
'' uw
=w
% ' si
Dar atunci avem u% v% P ' , w
1
1
1
w1 w2 .
G'
'' vw
=w
% ' , deci
w
1
1
1
'' uw
'' vw
w
, atunci avem w
=w
% ' , w
=w
% ' si
Invers, daca w
1
2
1
1
1
2
1
1
G'
2. Gramatici monotone s9
i limbaje independente
de context
Definit
ie 5.2.1. O gramtica G = (
VN ,VT , x0 , P ) se numeste
monotonaTdacaTpentru orice regulaTu v P , avem | u || v | .
92
Observat
ie 5.2.2. O gramaticade tip 1 care nu cont
ine regula
x0 este o gramatica monoton.
Definitie 5.2.3. Se numeste ponderea gramaticii G,
pond (G )= max {| v | / u v P}.
Teorema
5.2.4.
Pentru
orice
gramatica monotona
G = (VN ,VT , x0 , P ), exista o gramatica monotona G ' = (
VN' , VT' , x0 , 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
G = (VN ,VT , x0 , P )care genereaza limbajul L are ponderea cel mult
doi. Deci regulile gramaticii G sunt de forma:
1) A a , A VN si a VT , contextul (, );
2) A B , A, B VN contextul (, );
3) A BC , A, B, C VN contextul (, );
4) AB AD , A, B, D VN contextul (A, );
5) AB CB , A, B, C VN 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 G ' = (
VN' , VT , x0 , P ' )unde
VN' = VN U {E , F | AB CD P, A C , B D}
93
3. Mas
ini Turing s
i limbaje de tip 0
Vom prezenta masinile Turing ca acceptori de limbaje.
an B B B
UC
O mas
inaTuring face urma
toarele operat
ii:
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 masM
inaM
Turing (TM) o definim prin:
M = ( S ,,, ,s0 ,B,F )
unde:
S este o mult
ime finitade sta
ri;
este alfabetul de intrare, si B / ;
este o multime finitade simboli, alfabetul de lucru al masinii
Turing;
B un simbol din , numit blanc;
s0 S este starea initiala;
1) Configurat*ia 12xxx
daca* i > 1 si
i 1 sxx
i
n M x1 x12 s xi 1 yxi +1 xn
( s,xi ) = ( s,y,L)
n cazul i = 1 , pentru canu existapozit
ia i 1 , ceea ce nseamna- pe
model - capul de citire/scriere nu se poate misca la stnga marginii din
stnga.
Dacarexistarsufix n xi 1 yxi +1 xn format din blanc, acest sufix se srterge
95
x1 x2 xi 1sxi xn
x1 xi 1 ysxi +1 xn
daca
L( M ) = {w |w ,0sw M 1s 2 ,s F si 1 , 2 } .
Limbajul acceptat de mas6ina Turing M este mult6imea cuvintelor w ,
care, plasate pe banda de intrare n partea stngaa benzii, unitatea
centralaOfiind n starea s0 sO
i capul de citire/scriere pozitO
ionat pe prima
locatie, n urma tranzitiilor definite ca mai nainte, se ajunge ntr-o stare
finala
.
Vom presupune cao mas
inaTuring se opres
te 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.
*
L( M ) = {w |w ,
1 , 2 }.
0sw M 1 s 2 ,s F ,
96
2.
2 ( s,B) = ( s0 ,,R) ;
3.
2 ( s,a) = 1 ( s,a ), s S1 , a 1 , ( s,a ) dom(1 ) ;
4.
2 ( s,) = ( s,,L) .
Este evident caI L( M 1 ) = L( M 2 ) .
Invers, sa)ara)ta)m ca)o mas)ina)Turing M 2 cu o banda)de intrare cu doua)
cai infinite poate fi simulata de o masina Turing M 1 cu o banda de
intrare cu o cale infinita. Vom construi M 1 cu banda de intrare cu doua
piste - o pistareprezintalocat
iile din dreapta pozit
iei init
iale (inclusiv
pozitia initiala
), cealaltapistareprezintalocatiile din stnga locatiei
init"iale ca n Figura 5.2.
-3 -2 -1 0 1 2 3
-1
-2
-3
Prima locatie a lui M 1 contine pe pista de jos, un simbol special " "
care semnificacaeste cea mai din stnga celulasi M 1 nu se poate misca
la stnga acestei locataii. Masaina Turing M 1 va fi construitaasaasimuleze
mas
ina Turing M 2 n modul urma
tor:
cnd M 2 lucreazaAla dreapta pozitA
iei initA
iale, masA
ina M 1 lucreazaApe
pista de sus, fa
cnd aceleas
i operat
ii ca s
i M 2 ; cnd M 2 lucreazala
stnga pozit!iei init!iale, M 1 lucreaza! pe pista de jos, fa!cnd aceleas!i
nlocuiri ca si M 2 si miscndu-se n directia opusalui M 2 .
Fie
masina
Turing
M 2 = ( S 2 , 2 , 2 ,2 ,s2 ,B,F2 ) ;
atunci
M 1 = ( S1 ,1 ,1 ,s1 ,B,F1 ) unde:
S1 = {s1} {[ s,U ],[ s,D] |s S2 } , U semnificacaM 1 lucreazape
de sus - daca M 2 lucreazala dreapta pozitiei initiale - si pe pista de jos dacaM 2 lucreazala stnga pozitiei initiale. Cnd M 2 trece prin pozitia
initaialaa, de la dreapta la stnga, sau invers, masaina M 1 trece de pe pista
de sus pe pista de jos, sau invers.
Este evident cabL( M 1 ) = L( M 2 ) .
-1 0 1
banda 1
banda n
-1 0 1
Unitate de
control
99
schimbastarea unita
tii de control;
:S n S n {L,R}n .
O configuratB
ie este ( 1s 1 , 2 s 2 ,ak s k ) . O tranzitB
ie de la o
configuratw
ie la alta, se face ca la masw
inile Turing cu o bandaw
, lucrnd pe
fiecare componenta, tinnd cont de modificarea si de miscarea definitade
functia de tranzitie pentru componenta respectiva.
L( M ) = {w | w ,( s0 w,s0 ,,s0 )
*
M
( 1s 1 ,, k s
),s F }
Formal, o mas
inaTuring nedeterministaeste:
M = ( S ,,, ,s0 ,B,F ) , unde
:S Pf ( S {L,R}) .
Celelalte elemente ale masinii Turing M sunt definite ca la masina
Turing determinista{,iar Pf nseamna{mult{imea pa{rt{ilor finite.
Configurat
iile, tranzit
iile M si M* se definesc n mod analog ca la mas
ini
Turing deterministe. Limbajul acceptat de o masV
inaV Turing
*
nedeterministaeste L( M ) = {w | w ,s0 w M 1 s 2 , s F } .
Ca sO
i la automate finite, nedeterminismul nu maO
resO
te puterea de generare
a masinilor Turing. De fapt, combinarea nedeterminismului cu orice
extensie privind benzile de intrare (benzi de intrare cu douarcari 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; M 1 , atunci L este acceptat de o mas;ina;Turing
determinista M 2 .
Se poate arta c familia limbajelor recursiv enumerabile (familia
limbajelor acceptate de masV
ini 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 s
i teorema reciproc.
Teorema 5.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.
cuvnt w L dacas
i numai dacax0 w .
G
L(G ) = L( M ) .
Sademonstram acum caorice limbaj din LLBA este un limbaj din L 1 .
Teorema 5.4.3. Fie L = L( M ) cu M un automat liniar maF
rginit,
M = ( S ,,, ,s0 , , ,F ) , atunci L {} este un limbaj din L 1 .
Exercitii rezolvate:
1)Fie mas
ina Turing
M =(
, 0,1}{
, 0,1, x, yB}, , s0 , B,{s4 })cu
{s0 , s1 , s2 , s3 , s4}{
definit pentru:
s0
s1
s2
s3
s4
(s3 , y, R )
(s1 , y, R )
(s1, 0, R ) (s2 , y, L )
(s2 ,0, L )
(s0 , x, R ) (s2 , y, L )
(s3 , y, R ) (s4 , B, R )
(s1, x, R )
S se arate c L (M )= 0 1 | n 1 .
Rezolvare:
n n
| w {0,1}* L (M ). Sa considera
Sa demonstra
m ca ww
m
cteva cazuri particulare:
103
s7
i) Cazul i1 = 0
s0 0i2 ik ik ...i2 0
i2 ...ik ik ...i2 0 s1
DacaRavem: s0i1...ik ik ...i1 s0i2 ...ik ik ...i2 ....... s0ik ik ss0 s7 . Deci orice
cuvnt de forma i1...ik ik ...i1 este acceptat de mas2ina Turing M.
ConsideraS
m s0i1...in . Avem douaScazuri: i1 = 0 sau i1 = 1 . Ambele cazuri
se trateaza3analog as3a ca3vom considera numai cazul i1 = 0 :
s0 0i2 ...in
s1i2 ...in
i2 ...in s1
i2 ...in 1s3in .
s5 Bi2 ...in 1
s0i2 ...in 1 .
.
.
.
i j = in j +1
Daca n ar fi impar, n = 2k +1 atunci am obtine: s0ik +1 . Avem iar doua
cazuri ik +1 = 0 si ik +1 = 1 .
s0 0 s1 s2 s}i ne-am blocat.
Analog cazul ik +1 = 1 . s01 s2 s4 si se blocheaza.
Deci n trebuie sa]fie par, n = 2k si avem i1 = 2k , i2 = 2k 1,..., ik = ik +1 .
~
TemaDde control:
Fie mascina Turing
M =(
, a, b, c, x, y, B}, , s0 , B,{s8 })
{s0 , s1 , s2 , s3 , s4 , s5 s6 , s7 , s8},{a, b, c}{
cu definit prin:
s0
s1
s2
s3
s4
s5
s6
(s1, x, R ) (s4 , x, R )
(s1, a, R ) (s1, b, R )
(s2 , a, R ) (s2 , b, R )
(s5 y, L )
(s6 y, L )
(s5a, L ) (s5 , b, L )
(s6a, L ) (s6 , b, L )
s7
s8
(s7 , L, R )
(s3 , c, R )
(s4 , c, R )
(s3 , y, R )
(s4 , y, R )
(s7 , y, R ) (s8 , B, R )
105
Bibliografie
107