Sunteți pe pagina 1din 5

1.

Gramatici regulate: aducerea la forma canonica



Pentru orice gramatica regulata G=(N,T,S,P) exista o gramatica G
1
= (N
1
, T, S
1
, P
1
) echivalenta cu
ea si avand proprietatea ca fiecare productie u v P
1
a sa satisface conditiile u N
1
, v T
TN
1
.
Demonstratie: Exista o gramatica echivalenta G
1
cu G si fara redenumiri. Productiile ei sunt fie
de forma A a
1
a
2
a
k
,

k 1 cu a
i
T, i=1,2,...k, fie de forma A a
1
a
2
a
k
B, k 1 cu

a
i
T, i=1,2,...k, B N. In cazul k=1 aceste productii sunt de forma A a, a T si le adaugam
noii gramatici G
1
. Cand k 2, pentru fiecare productie adaugam neterminalele noi A
1
,A
2
,..,A
k-1

si productiile:
A a
1
A
1

A
1
a
2
A
2

. . . . . . . . .
A
k-1
a
k
in locul productiei A a
1
a
2
a
k
, iar in locul productiei A a
1
a
2
a
k
B adaugam productiile:
A a
1
A
1

A1 a
2
A
2

. . . . . . . . .
A
k-1
a
k
B
Gramatica G
1
va avea aceleasi terminale ca si G, neterminalele vor fi cele vechi la care le
adaugam pe cele nou introduse, simbolul de start va fi acelasi, iar productiile vor fi cele care s-
au introdus conform procedurilor de mai sus.

2. Eliminarea redenumirilor

Fie G = (, ,S, P) o gramatica de tipul 2 sau 3. Exista o gramatica G
1
= (, ,S, P
1
) de aceleasi tip cu G,
echivalenta cu G si fara redenumiri.
Demonstratie: Fie G = (, ,S, P) o gramatica de tipul 2 sau 3 si P

:= {A ::= w | w , A ::= w P}
multimea regulilor din P care nu sunt redenumiri. Fie P

:= {A ::= w | A , exista B, B si A

B
(in G, derivare in cel putin un pas), iar B

w P

} o multime de reguli care nu sunt redenumiri.


Formam gramatica G1 = (, ,S, P) cu P
1
:= P

. Evident G1 este fara redenumiri si de acelasi tip cu


G. Demonstram ca G si G1 sunt echivalente.
Fie w L(G), deci S

w, printr-o derivare stanga, in G, de forma: S = w0

w1

w2

wk=w,
derivarile wi

wi+1, i=0, 1, 2, , k-1 fiind de lungime nenula, iar pentru fiecare din ele este posibila
numai una din situatiile:
a) w
i

w
i+1
este o derivare de lungime 1 obtinuta prin aplicarea unei reguli din P

. Deci w
i

w
i+1
, in
ramatica G
1
.
b) w
i

w
i+1
este o derivare de lungime cel putin egala cu 2, astfel incat exista v ( )
*
, pentru
care w
i

v (derivare stanga cu redenumiri) si v



w
i+1
, derivare printr-o regula din P

. Prin
aplicarea unei reguli din P

referitor la derivarea initiala w


i

v se poate gasi w
i

v in G
1
. Prin
cuplarea derivarilor rezulta ca este posibil ca S

w in G
1
.
Reciproca este imediata.
3. Automate cu stari finite (deterministe, nedeterministe).

Un sistem AFD (automat finit determinist) este o structura M = (Q, , q
0
, F) unde Q este o multime
finite si nevida de elemente numite stari; este un alphabet (numit, de intrare); : Qx

Q este o
functie partial (partial definite), numita functie de tranzitie; q
0
Q este starea initiala a automatului M
si F Q este o multime nevida, numita multimea starilor finale.
Diagrama de tranzitie: Unui system AFD i se poate asocial un digraf astfel:
- nodurile digrafului sunt starile automatului (corespund elementelor multimii Q);
- daca (q, a) = p atunci, in digraf, exista un arc de la nodul q la nodul p, etichetat cu simbolul a;
- digraful nu contine alte noduri si alte arce in afara celor specificate mai sus.
Extinderea functiei Fie ^: Qx*

Q definita prin: ^(q, )=q, pentru oricare q Q; ^(q, a) = (q, a),
pentru oricare q Q, si oricare a ; ^(q, wa) = ^(q, w),a), pentru oricare q Q, a si w *.
Deoarece ^(q, a) = (q, a), pentru oricare a se poate nota ^ tot cu fara nici o confuzie.
Cu notatiile de mai sus, (q, uv) = (q, u),v). pentru oricare u, v *.
Limbaj acceptat de sisteme AFD: Fie M= (Q, , q
0
, F) un AFD. Limbajul acceptat de M, notat L(M), este:
L(M) = {u | u *, (q
0
, u) F}.

Un sistem AFN (automat finit nedeterminist) este o structura N = (Q, , q
0
, F), unde Q, , q
0
si F au
semnificatia specificata in AFD, iar Qx

P(Q), unde P(Q) reprezinta multimea submultimilor lui Q
(adesea notata prin 2
Q
).
Diagrama de tranzitie se obtine precum AFD.
Extinderea functiei de tranzitie: Fie ^: Qx*

P(Q) astfel: ^(q, )={q}; ^(q, wa)={p| exista r ^(q, w),
p (r, a)}.
Daca w = , obtinem ^(q, a)= (q, a), oricare a . Astfel, se poate nota ^ tot cu fara nici o confuzie.
Pentru utilizarea sistemelor AFN in recunoasterea limbajelor se extinde la nivelul multimii P(Q)x*,
astfel incat pentru orice u * au loc relatiile: ,u) = ; P,u) =

q,u), oricare P Q, P .
Limbaj acceptat de sisteme AFN: Fie N un sistem AFN definit mai sus. Limbajul acceptat de N este: L(N) =
{w|w *, q
0
,u) F }.

4. Echivalenta limbaje regulate - limbaje acceptate de automate cu stari finite

Fie G = (, ,S, P) o gramatica la dreapta. Atunci exista un automat finit nedeterminist (deci si unul
determinist) M astfel incat L(M) = L(G).
Demonstratie: Fara a restrange generalitatea putem presupune ca simbolul S nu apare in membrul drept
al nici unei reguli P, iar fiecare regula are una din formele: A::=a si A::=aB cu A, B si a .
Fie X si automatul finit nedeterminist M = ( {X}, , S, S
1
) unde ( {X})x P( {X})
este definite prin:
(Y,a) = {
{| } {}
{| }


Iar S
1
= {S, X} daca S ::= P si S1 = {X} daca S ::= .
Se va demonstra ca L(M) = L(G), prin dubla incluziune. Fie w
*
, w , astfel incat w = a
1
a
2
a
n
, n 1 si
a
i
, i = 1,2, , n. Atunci w L(G) daca si numai daca exista productiile D
i
::= a
i
D
i+1
P, cu D
1
= S, i =
12 n-1 si Dn ::= an P. Deci starile s
1
, s
2
, , s
n+1
= X, iar s
1
= S, s
n+1
S1, si+1 s
i
, a
i
), I = 1, 2, , n,
echivalent cu w L(M). Este usor de vazut ca daca w L(M) atunci w L(G).

5. Echivalenta AFN cu AFD

Fie M
1
un automat finit (nedeterminist). Intodeauna exista un automat finit determinist M
2
, astfel incat
cele doua automate sa fie echivalente, adica: T(M
1
) = T(M
2
).
Constructia AFD:
Se da M
1
= (Q
1
, ,

q
0
, F
1
). Atunci AFD echivalent cu M
1
este M
2
= (Q
2
, ,

q
0
, F
2
) unde:
Q
2
= P(Q
1
), q
0
= {q
0
}, F
2
= {S | S Q1, S F
1
, iar a si S Q1, S, avem

q,a), si

,a)=
unde

Q
2
x Q
2
.
Observatii:
1. Functia de tranzitie

a AFD, M
2
, dat mai sus, este complet definite.
2. Elementele S
k
, k 0 (in numar finit) ale multimii Q
2
si valorile functiei

Q
2
x Q
2
care definesc
automatul M
2
se pot obtine din automatul M
1
si astfel:
- S
0
= {q
0
},

S
0
,a) =

(q
0
,a), a .
- fiecare submultime

(q,a) a lui Q
1
, daca este diferita de submultimile deja determinate se
noteaza cu S
1
, i 1.
- pentru fiecare noua stare S
k
a automatului M
2
se calculeaza:

S
k
,a) =

(q,a), a ;
aceasta stare S
k
este un candidat la multimea starilor lui M
2
in sensul precizat mai sus;
procesul se termina cand nu mai obtinem stari noi; evident ca F
2
= {S |S Q
2
, S F
1
}.
3. Teorema de mai sus justifica considerarea in continuare a automatelor finite deterministe
complet definite, fara a avea o limitare a unor rezultate teoretice.

6. Lema de pompare

Fie L un limbaj regulat. Exista atunci un numar natural n astfel incat pentru orice cuvant w L |w|n
w=xyz cu proprietatile:
a) |xy| n;
b) |y| 1;
c) xy
i
z L pentru oricre I 0.
Demonstratie: Se foloseste automatul minimal care recunoaste L. Rezulta ca n este unic determinat si
depinde numai de L. Fie M = (Q, , , q
0
, F) astfel incat L(M) = L si M este automatul minimal. Consideram
n := |Q|. Fie w L, |w| n, w L, |w|n. Atunci w = a
1
a
2
a
m
, mn. Fie q
i
= q
0
, a
1
a
2
a
i
), i = 1, 2, ,
m. Deoarece w L rezulta ca q
m
F. Cum sunt evidentiate m+1 stari, iar mn, rezulta ca, in sirul q
0
, q
1
,
, q
m
, exista doua stari care se repeat. Fie q
s
si q
t
starile care se repeta (evident 0s<tm; se poate lua
chiar s minim cu aceste proprietati). Se descompune w astfel: x = a
1
a
2
a
s
, y = a
s+1
a
s+2
a
t
,
z = a
t+1
a
t+2
a
m
. Se observa ca aceasta descompunere satisface cerintele formulate.

7. Automatul minimal (raspunsul poate sa nu fie total corect sau complet)

Se pune problema determinarii unui automat cu un numar minim de stari intermediare care sa accepte
un limbaj regulat dat.
Fie A = (, Q, q
0
, , F) un AFD.
1. Pentru orice numar natural k se defineste relatia

pe Q dupa cum urmeaza:


q
1

q
2
iff w[w

avem (q
1
,w) F (q
2
,w) F]
2. Pe Q definim relatia astfel:
q
1
q
2
iff k [k N, q
1

q
2
]
Relatiile

si sunt relatii de echivalenta.


Au loc urmatoarele proprietati:
1. q
1

q
2
iff q
1
si q
2
sunt simultan in F sau in Q-F.
2. daca k 1 atunci q
1

q
2
iff (q
1
,a)

(q
2
,a), a { }.

Relatiile de echivalenta

satisfac proprietatile:
1.


2. Exista k
0
N a.i.

, i 1
3. =



Fie A = (, Q, q
0
, , F) un AFD fara stari inaccesibile. Automatul cu numar minim de stari care accepta
acelasi limbaj ca si A este A
min
=(
1
, Q
1
,

, [q
0
]
,
F/

), unde elementele sale sunt definite conform


propozitiilor anterioare.

Demonstratie: Fie A = (, Q, , q
0
, F) un AFD minimal cu k stari a.i. sa accepte limbajul L.
Daca w L si |w| > k scriem w = w
1
w
2
w
n
si consideram secventa de stari:
(q
0
,w
1
), (q
0
,w
1
w
2
) (q
0
,w
1
w
2
w
k+1
)
In secventa de mai sus exista doua stari egale si de aici demonstratia decurge usor.

8. Proprietati de inchidere (3 la alegere)

Familia L
2
este inchisa la reuniune.
Demonstratie: Fie L
1
si L
2
doua limbaje de context generate de gramaticile G
1
= (
1
,
1
,S
1
, P
1
) si G
2
= (
2
,

2
,S
2
, P
2
) astfel incat gramaticile G
1
= (
1
,
1
,S
1
, P
1
{ S
1
::= }) si G
2
= (
2
,
2
,S
2
, P
2
{ S
2
::= }) sa fie
independente de context, iar
1

2
= ,
1

2
= si
2

1
= . Fie S
1

2

1

2
. Formam
gramatica G = (
1

2
{S},
1

2
, S, P) unde P = P
1
P
2
{S::=S
1
, S::=S
2
}. Este usor de aratat ca L = L
1

L
2
este general de gramatica G. Redenumirile pot fi eliminate daca este necesar.

Familia L
2
este inchisa la operatia de concatenare (produs)
Demonstratie: Fie L
1
si L
2
doua limbaje de context generate de gramaticile G
1
= (
1
,
1
,S
1
, P
1
) si G
2
= (
2
,

2
,S
2
, P
2
) astfel incat gramaticile G
1
= (
1
,
1
,S
1
, P
1
{ S
1
::= }) si G
2
= (
2
,
2
,S
2
, P
2
{ S
2
::= }) sa fie
independente de context, iar
1

2
= ,
1

2
= si
2

1
= . Fie S
1

2

1

2
. Formam
gramatica G = (
1

2
{S},
1

2
, S, P) unde P = P = P
1
P
2
{S::=S
1
S
2
}. Este usor de aratat ca L = L
1
L
2

este general de gramatica G.

Familia L este inchisa la operatia * (stelare).
Demonstratie: Fie L un limbaj independent de context generat de gramatica G
1
= (
1
,
1
,S
1
, P
1
) astfel
incat gramatica G
1
= (
1
,
1
,S
1
, P
1
{ S
1
::= }) este independenta de context. Fie S
1

1
. Formam
gramatica G =(
1
{S},
1
, S, P) unde P = P
1
{S::=SS1 | }. Este usor de aratat ca L* este generat de
gramatica G. -productiile pot fi eliminate daca este necesar.






9. Aducerea la FNC (forma normala Chomsky) a unei CFG (gramatica independenta de context)

Orice gramatica independenta de context este echivalenta cu o gramatica in forma normal Chomsky.
Demonstratie: Putem porni de la o gramatica G care nu are redenumire si ale carei reguli cu terminale
au forma Ai, A V
N
, I V
T
. De asemenea presupunem ca G nu are reguli de stergere.
Rezulta ca regulile lui G au una din formele: (1) ABC, (2) D , (3) XX
1
X
n
, n>2.
Construim o gramatica G

= (


, V
T
, S , P

) unde V
N


si P

contine toate regulile din P de forma (1) si


(2). Fiecare regula de forma (3) o inlocuim cu: XX
1
Z
1
, Z
1
X
2
Z
2
, Z
n-2
X
n-1
X
n
si include neterminalele
Z
1
,Z
n-2
(altele pentru fiecare regula de forma (3) in


.
Se poate relative usor arata ca L(G) = L(G

). De exemplu, daca u

v (direct) in G si de aplica o regula de
forma (1) sau (2), atunci evident derivarea respective se poate obtine si in G

; in cazul in care se aplica o


regula de forma (3), avem G: u = u

Xu

X
1
X
n
u

= v.
Aceasta derivare se poate obtine si in G

in mai multi pasi si anume


G

: u = u

Xu

X
1
Z
1
u

X
1
X
2
Z
2
u

X
1
X
n
u

= v
O gramatica ce are reguli de forma ABC, AB, Aa unde A, B, C V
N
si a V
T
spunem ca este in forma
2-canonica. Este evident ca orice gramatica de tip 2 este echivalenta cu o gramatica in forma 2-canonica.

10. Lema de pompare pentru limbaje independente de context

Fie E un limbaj independent de context. Atunci exista un numar natural k astfel incat, daca p E si |p| >
k atunci p se poate descompune in forma p = uvwxy cu urmatoarele proprietati:
1. vx ; 2. |vwx| k; 3. Uv
j
wx
j
y E, j N.
Demonstratie: Fie n = card(V
N
). Luam k = 2
n
. Cum |p| > k = 2
n
, conform observatiei de la prima lema,
exista in arborele A
S,p
cel putin o ramura cu n+2 noduri; pe aceasta ramura ultimul nod este terminal,
deci exista n+1 noduri etichetate cu acelasi simbol A.
Cosideram subarborele A
A,vwx
caruia ii corespunde derivarea A

vwx. Punem in evident primul pas


A

BC

vwx, si vwx se descompune in vwx = p


B
p
C
, B

p
B
si p
B
p
C
. Cum A
A,w
A
A,vwx
, rezulta ca w este
subcuvant in p
B
sau in p
C
. Sa presupunem ca w Sub(p); atunci p
B
Sub(v) si cum p
B
rezulta v .

11. Algoritmul CYK.

Input: O CFG in FNC, G = (N, , S, P) si un cuvant w = a
1
a
2
a
n
a.i. |w| = n.
Output: o matrice triunghiulara T pentru w ale carei celule contin numai neterminale a.i. A t
ij
iff A


+
a
i
a
i+1
a
i+j-1.

Metoda:
Pas1: Construim t
i1
= {A |A a
i
P}, pentru i = 1, 2, n.
Pas2: Presupunem ca tij a fost construit pentru toti 1 i n si toti 1 j < j. Construim t
ij
= {A | pentru
un k; 1 k < j,A BC t
ik
, B tik si C t
i+k
,
j-k
}
Deoarece 1 k < j, avem k < j si j - k < j, deci atat t
ik
cat si t
i+k
,
j-k
sunt calculati inainte ca t
ij
sa fie calculat.
Dupa acest pas, daca t
ij
A, atunci A => BC =>
+
a
i
a
i+k-1
C =>
+
a
i
a
i+k-1
a
i+k
:a
i+j-1

Pas3: repeta Pasul 2 pana cand tij este cunoscut pentru orice 1 i n si 1 j n - i + 1.
Daca algoritmul CYK este aplicat unei CFG G si unui cuvant de intrare w = a
1
a
n
, dupa terminarea
algoritmului vom avea: A t
ij
iff A =>
+
a
i
a
i+j-1
.

S-ar putea să vă placă și