Documente Academic
Documente Profesional
Documente Cultură
:= {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
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
. Prin
aplicarea unei reguli din P
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
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
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/
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
.
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
Xu
X
1
X
n
u
= v.
Aceasta derivare se poate obtine si in 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
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
.