Sunteți pe pagina 1din 40

Limbaje Formale, Automate s i Compilatoare

Curs 2
2013-14

LFAC (2013-14)

Curs 2

1 / 33

i de Proprietat nchidere pentru L3

Curs 2

i de Proprietat nchidere pentru L3 Lema Bar-Hillel Automate nite deterministe Automate nite nedeterministe Automate nite cu -tranzit ii

LFAC (2013-14)

Curs 2

2 / 33

i de Proprietat nchidere pentru L3

gramaticile G, G1 , G2 de tip 3 Fie L, L1 , L2 limbaje regulate: exista astfel ca L = L(G), L1 = L(G1 ) s i L2 = L(G2 ). Atunci, urmatoarele limbaje sunt de asemenea regulate:
1

L1 L2 L1 L2 L LR L1 L2 L1 \ L2

2 3

LFAC (2013-14)

Curs 2

3 / 33

i de Proprietat nchidere pentru L3

Inchiderea la intersect ie
din: Gramatica G = (N1 N2 , T1 T2 , (S1 , S2 ), P ), unde P consta S1 P1 s (S1 , S2 ) , daca i S2 P2 A1 aA2 P1 s (A1 , B1 ) a(A2 , B2 ), daca i B1 aB2 P2 A1 a P1 s (A1 , A2 ) a, daca i A2 a P2 limbajul L1 L2 este de tip 3 s i genereaza

LFAC (2013-14)

Curs 2

4 / 33

i de Proprietat nchidere pentru L3

Inchiderea la operat ia de oglindire


L (L = L(G)) Fie G = (N , T , S , P ) care genereaza din Gramatica G = (N , T , S , P ) unde P consta A a din P reguli S aA, pentru orice regula A aB din P reguli B aA pentru orice regula regula S S a din P (a T {}) regula S a, pentru orice regula LR este de tip 3 s i genereaza

LFAC (2013-14)

Curs 2

5 / 33

Lema Bar-Hillel

Curs 2

i de Proprietat nchidere pentru L3 Lema Bar-Hillel Automate nite deterministe Automate nite nedeterministe Automate nite cu -tranzit ii

LFAC (2013-14)

Curs 2

6 / 33

Lema Bar-Hillel

Lema Bar-Hillel (lema de pompare)


Lema 2.1 un numar m astfel oricare ar Fie L un limbaj de tip 3. Exista ncat w L cu |w | m, acesta are o descompunere de forma cuvantul w = xyz, unde 0 < |y | m, s i xy i z L oricare ar i 0.
|N | este numarul Fie G = (N , T , S , P ) astfel ca L(G) = L. Daca simbolurilor din N , ca are loc proprietatea enunt m = |N | + 1, se arata ata: Fie w = a1 a2 . . . an , n m n |N | + 1 S a1 A1 a1 a2 A2 . . . a1 a2 . . . ak Ak . . . a1 a2 . . . ak ak +1 . . . as As . . . a1 a2 . . . ak ak +1 . . . as as+1 . . . an1 An1 a1 a2 . . . ak ak +1 . . . as as+1 . . . an1 an Ak = As

LFAC (2013-14)

Curs 2

7 / 33

Lema Bar-Hillel

Demonstrat ie
w = a1 a2 . . . an , n m S a1 A1 a1 a2 A2 . . . a1 a2 . . . ak Ak . . . a 1 a 2 . . . a k a k +1 . . . a s A k . . . a 1 a 2 . . . a k a k +1 . . . a s a s +1 . . . a n 1 a n Atunci: S a 1 a 2 . . . a k A k A k a k + 1 . . . a s A k s i A k a s + 1 . . . a n 1 a n Fie x = a1 a2 . . . ak , y = ak +1 . . . as s i z = a s +1 . . . a n 1 a n S xAk , Ak yAk s i A k z
LFAC (2013-14) Curs 2 8 / 33

Lema Bar-Hillel

Demonstrat ie
Fie x = a1 a2 . . . ak , y = ak +1 . . . as s i z = a s +1 . . . a n 1 a n S xAk Ak yAk s i A k z Pentru i = 0, xz L(G): S xAk xz Pentru i > 0, xy i z L(G): S xAk xyAk xyyAk . . . xyy . . . yAk xyy . . . yz = xy i z

LFAC (2013-14)

Curs 2

9 / 33

Automate nite deterministe

Curs 2

i de Proprietat nchidere pentru L3 Lema Bar-Hillel Automate nite deterministe Automate nite nedeterministe Automate nite cu -tranzit ii

LFAC (2013-14)

Curs 2

10 / 33

Automate nite deterministe

Automate nite
Mecanism de recunoas tere (acceptare) pentru limbaje Limbaje de tip 3 de stari Mult ime nita

LFAC (2013-14)

Curs 2

11 / 33

Automate nite deterministe

Automate nite
Denit ie 1 Un automat nit determinist este un 5-uplu A = (Q , , , q0 , F ), unde: Qs i sunt mult imi nite, nevide, numite mult imea starilor respectiv alfabetul de intrare q0 Q este starea init iala F Q este mult imea starilor nale funct este o funct ie , : Q Q, numita ia de tranzit ie

LFAC (2013-14)

Curs 2

12 / 33

Automate nite deterministe

Reprezentare prin diagrame(grafuri) de tranzit ie


Stari: Stare init iala: nale: Stari Funct ia de tranzit ie:

LFAC (2013-14)

Curs 2

13 / 33

Automate nite deterministe

Reprezentare prin matricea de tranzit ie


A = ({q0 , q1 }, {a, b }, , q0 , {q1 })

LFAC (2013-14)

Curs 2

14 / 33

Automate nite deterministe

Limbajul acceptat
: Q Q Extensia lui la cuvinte
1 2

(q , ) = q , q Q ; (q , ua) = ( (q , u ), a)), q Q , u , a .

Observat ii:
(q , a) = (q , a), q Q , a (q , uv ) = ( (q , u ), v ), q Q , u , v

LFAC (2013-14)

Curs 2

15 / 33

Automate nite deterministe

Limbajul acceptat
Denit ie 2 Limbajul acceptat (recunoscut) de automatul A = (Q , , , q0 , F ) este mult imea : (q0 , w ) F }. L(A) = {w |w , w este recunoscut de un automat A daca, dupa citirea Un cuvant n ntregime a cuvantului w , automatul (pornind din starea init iala q0 ) ajunge ntr-o stare nala. (q , a) = (q , a), q Q , a . Din acest motiv, va notata de asemenea cu . automate A s L(A) = L(A ) Doua i A sunt echivalente, daca
LFAC (2013-14) Curs 2 16 / 33

Automate nite deterministe

Exemple
L(A) = {an b m |n 0, m 1}

L(A) =?

L(A) =?
LFAC (2013-14) Curs 2 17 / 33

Automate nite deterministe

Exemple

Automate deterministe pentru: par de 0} L = {w {0, 1} |w cont ine un numar L = {w {0, 1} |w se termina cu 11}

LFAC (2013-14)

Curs 2

18 / 33

Automate nite nedeterministe

Curs 2

i de Proprietat nchidere pentru L3 Lema Bar-Hillel Automate nite deterministe Automate nite nedeterministe Automate nite cu -tranzit ii

LFAC (2013-14)

Curs 2

19 / 33

Automate nite nedeterministe

Automate nite nedeterministe


Denit ie 3 Un automat nit nedeterminist este un 5-uplu A = (Q , , , q0 , F ), unde: Q, , q0 s i F sunt denite ca n cazul automatelor nite deterministe funct este o funct ie , : Q 2Q , numita ia de tranzit ie Observat ie: A este automat determinist, daca |(q , a)| = 1, q Q , a
LFAC (2013-14) Curs 2 20 / 33

Automate nite nedeterministe

Exemple

LFAC (2013-14)

Curs 2

21 / 33

Automate nite nedeterministe

Extensia lui la cuvinte


Notam (S , a) = Fie S mult ime de stari. : Q 2Q Extensia lui la cuvinte
1 2

q S

(q , a).

(q , ) = {q }, q Q ; (q , ua) = ( (q , u ), a), q Q , u , a .

LFAC (2013-14)

Curs 2

22 / 33

Automate nite nedeterministe

Extensia lui la cuvinte


Notam (S , a) = Fie S mult ime de stari. : Q 2Q Extensia lui la cuvinte
1 2

q S

(q , a).

(q , ) = {q }, q Q ; (q , ua) = ( (q , u ), a), q Q , u , a .

Observat ii:
(q , a) = (q , a), q Q , a (q , uv ) = ( (q , u ), v ), q Q , u , v .

LFAC (2013-14)

Curs 2

22 / 33

Automate nite nedeterministe

Limbajul acceptat
Denit ie 4 Limbajul acceptat (recunoscut) de automatul nit nedeterminist A = (Q , , , q0 , F ) este mult imea : (q0 , w ) F = }. L(A) = {w |w ,

w este recunoscut de un automat A daca, dupa citirea Un cuvant n ntregime a cuvantului w , automatul (pornind din starea init iala ajunga q0 ) poate sa ntr-o stare nala.

LFAC (2013-14)

Curs 2

23 / 33

Automate nite nedeterministe

Determinism = Nedeterminism
Teorema 1 unul determinist A Pentru orice automat nedeterminist A, exista echivalent. A = (Q , , , q0 , F ) atunci A = (2Q , , , Q0 , F ) unde: Daca Q0 = {q0 } F = {S |S Q , S F = } (S , a) =
sS

(s, a) (= (S , a)), S 2Q

Pentru aplicat ii se construiesc doar starile accesibile din starea init iala
LFAC (2013-14) Curs 2 24 / 33

Automate nite nedeterministe

Exemplu

LFAC (2013-14)

Curs 2

25 / 33

Automate nite nedeterministe

Determinism = Nedeterminism
A = (Q , , , q0 , F ) atunci A = (2Q , , , Q0 , F ) unde: Daca Q0 = {q0 } F = {S |S Q , S F = } (S , a) = Au loc:
sS

(s, a) = (S , a)

LFAC (2013-14)

Curs 2

26 / 33

Automate nite nedeterministe

Determinism = Nedeterminism
A = (Q , , , q0 , F ) atunci A = (2Q , , , Q0 , F ) unde: Daca Q0 = {q0 } F = {S |S Q , S F = } (S , a) = Au loc: (S , w ) =
sS sS

(s, a) = (S , a)

(s, w ) = (S , w ), w

LFAC (2013-14)

Curs 2

26 / 33

Automate nite nedeterministe

Determinism = Nedeterminism
A = (Q , , , q0 , F ) atunci A = (2Q , , , Q0 , F ) unde: Daca Q0 = {q0 } F = {S |S Q , S F = } (S , a) = Au loc: (S , w ) =
sS sS

(s, a) = (S , a)

(s, w ) = (S , w ), w

(Q0 , w ) = ({q0 }, w ) = (q 0, w )

LFAC (2013-14)

Curs 2

26 / 33

Automate nite nedeterministe

Determinism = Nedeterminism
A = (Q , , , q0 , F ) atunci A = (2Q , , , Q0 , F ) unde: Daca Q0 = {q0 } F = {S |S Q , S F = } (S , a) = Au loc: (S , w ) =
sS sS

(s, a) = (S , a)

(s, w ) = (S , w ), w

(Q0 , w ) = ({q0 }, w ) = (q 0, w ) w L(A ) (Q0 , w ) F (Q0 , w ) F = (q0 , w ) F = w L(A)


LFAC (2013-14) Curs 2 26 / 33

Automate nite cu -tranzit ii

Curs 2

i de Proprietat nchidere pentru L3 Lema Bar-Hillel Automate nite deterministe Automate nite nedeterministe Automate nite cu -tranzit ii

LFAC (2013-14)

Curs 2

27 / 33

Automate nite cu -tranzit ii

Automate nite cu -tranzit ii


Denit ie 5 Un automat nit cu -tranzit ii este un 5-uplu A = (Q , , , q0 , F ), unde: Q, , q0 s i F sunt denite ca n cazul automatelor nite deterministe funct este o funct ie , : Q ( {}) 2Q , numita ia de tranzit ie Observat ie: (q , ) = , q Q A este automat nedeterminist, daca A este automat determinist, daca, n plus: |(q , a)| = 1, q Q , a
LFAC (2013-14) Curs 2 28 / 33

Automate nite cu -tranzit ii

Exemplu

LFAC (2013-14)

Curs 2

29 / 33

Automate nite cu -tranzit ii

Extensia lui la cuvinte


Cl (q )
= {q |q Q , in graful automatului A exista un drum de la q la q de lungime k 0 ale carui arce sunt etichetate cu }.

q Cl (q )

LFAC (2013-14)

Curs 2

30 / 33

Automate nite cu -tranzit ii

Extensia lui la cuvinte


Cl (q )
= {q |q Q , in graful automatului A exista un drum de la q la q de lungime k 0 ale carui arce sunt etichetate cu }.

q Cl (q ) S Q , atunci notam: Daca Cl (S ) =


q S

Cl (q )

LFAC (2013-14)

Curs 2

30 / 33

Automate nite cu -tranzit ii

Extensia lui la cuvinte


Cl (q )
= {q |q Q , in graful automatului A exista un drum de la q la q de lungime k 0 ale carui arce sunt etichetate cu }.

q Cl (q ) S Q , atunci notam: Daca Cl (S ) =


q S

Cl (q )

: Q 2Q Extensia lui la cuvinte:

LFAC (2013-14)

Curs 2

30 / 33

Automate nite cu -tranzit ii

Extensia lui la cuvinte


Cl (q )
= {q |q Q , in graful automatului A exista un drum de la q la q de lungime k 0 ale carui arce sunt etichetate cu }.

q Cl (q ) S Q , atunci notam: Daca Cl (S ) =


q S

Cl (q )

: Q 2Q Extensia lui la cuvinte:


1

(q , ) = Cl (q ), q Q ;

LFAC (2013-14)

Curs 2

30 / 33

Automate nite cu -tranzit ii

Extensia lui la cuvinte


Cl (q )
= {q |q Q , in graful automatului A exista un drum de la q la q de lungime k 0 ale carui arce sunt etichetate cu }.

q Cl (q ) S Q , atunci notam: Daca Cl (S ) =


q S

Cl (q )

: Q 2Q Extensia lui la cuvinte:


1 2

(q , ) = Cl (q ), q Q ; (q , ua) = Cl ( ( (q , u ), a))), q Q , u , a .

LFAC (2013-14)

Curs 2

30 / 33

Automate nite cu -tranzit ii

Extensia lui la cuvinte


(q , a) = Cl ((Cl (q ), a)), q Q , a

pentru In cazul automatelor cu - tranzit ii vom pastra notat ia (q , ) = (q , ) s extensie pentru ca, n general, i (q , a) = (q , a), a . (q , uv ) = ( (q , u ), v ), q Q , u , v

LFAC (2013-14)

Curs 2

31 / 33

Automate nite cu -tranzit ii

Limbajul acceptat
Denit ie 6 Limbajul acceptat (recunoscut) de automatul cu -tranzit ii A = (Q , , , q0 , F ) este mult imea : (q0 , w ) F = }. L(A) = {w |w ,

w este recunoscut de un automat A daca, dupa citirea Un cuvant n ntregime a cuvantului w , automatul (pornind din starea init iala ajunga q0 ) poate sa ntr-o stare nala.

LFAC (2013-14)

Curs 2

32 / 33

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