Sunteți pe pagina 1din 42

Limbaje Formale, Automate si Compilatoare

Curs 7
2014-15

LFAC (2014-15)

Curs 7

1 / 33

Curs 7

Automate pushdown deterministe

Lema Bar-Hillel pentru L2

Masini Turing

LFAC (2014-15)

Curs 7

2 / 33

Automate pushdown deterministe

Curs 7

Automate pushdown deterministe

Lema Bar-Hillel pentru L2

Masini Turing

LFAC (2014-15)

Curs 7

3 / 33

Automate pushdown deterministe

Definitie 1
Automatul pushdown M = (Q, , , , q0 , z0 , F ) este determinist daca

functia de tranzitie : Q ( {}) 2Q ndeplineste


conditiile:
1

|(q, a, z)| = 1, a {}, q Q, z

Daca (q, , z) 6= atunci (q, a, z) = , a

Un automat pushdown determinist poate avea -tranziii

LFAC (2014-15)

Curs 7

4 / 33

Automate pushdown deterministe

Definitie 1
Automatul pushdown M = (Q, , , , q0 , z0 , F ) este determinist daca

functia de tranzitie : Q ( {}) 2Q ndeplineste


conditiile:
1

|(q, a, z)| = 1, a {}, q Q, z

Daca (q, , z) 6= atunci (q, a, z) = , a

Un automat pushdown determinist poate avea -tranziii


M = ({q0 , q1 , q2 }, {0, 1, a}, {0, 1, z}, , q0 , z, {q2 })
1

(q0 , i, z) = {(q0 , iz)}, (i {0, 1})

(q0 , i, j) = {(q0 , ij)}, (i, j {0, 1})

(q0 , a, i) = {(q1 , i)}

(q1 , i, i) = {(q1 , )}

(q1 , , z) = {(q2 , )}

L(M) = {waw R |w {0, 1} }


LFAC (2014-15)

Curs 7

4 / 33

Automate pushdown deterministe

L2DET - Limbaje de tip 2 deterministe


L2DET = {L|M automat pushdown determinist astfel ca L = L(M)}.

Clasa L2DET este o clasa proprie a clasei de limbaje L2


(L2DET L2 ).
{ww R |w {0, 1} } L2 \ L2DET

LFAC (2014-15)

Curs 7

5 / 33

Automate pushdown deterministe

L2DET - Limbaje de tip 2 deterministe


L2DET = {L|M automat pushdown determinist astfel ca L = L(M)}.

Clasa L2DET este o clasa proprie a clasei de limbaje L2


(L2DET L2 ).
{ww R |w {0, 1} } L2 \ L2DET
M = ({q0 , q1 , q2 }, {0, 1}, {0, 1, z}, , q0 , z, {q2 })
1
2
3
4
5

(q0 , i, z) = {(q0 , iz)}, (i {0, 1})


(q0 , i, j) = {(q0 , ij)}, (i, j {0, 1}, i 6= j)
(q0 , i, i) = {(q0 , ii), (q1 , )}
(q1 , i, i) = {(q1 , )}
(q1 , , z) = {(q2 , )}

LFAC (2014-15)

Curs 7

5 / 33

Automate pushdown deterministe

L2DET - Limbaje de tip 2 deterministe


Definitie 2

O gramatica G este determinista daca:


Orice regula este de forma A a, unde a T iar (N T )
Pentru orice A N, daca A a , A b sunt reguli, atunci
a 6= b
Pentru orice gramatica determinista G exista un automat pushdown
determinist M astfel ca L(G) = L(M)

LFAC (2014-15)

Curs 7

6 / 33

Lema Bar-Hillel pentru L2

Curs 7

Automate pushdown deterministe

Lema Bar-Hillel pentru L2

Masini Turing

LFAC (2014-15)

Curs 7

7 / 33

Lema Bar-Hillel pentru L2

Lema Bar-Hillel (de pompare) pentru L2


Lema 2.1
pentru
Pentru orice limbaj L de tip 2 exista o constanta n astfel ncat
w L, |w| n, exista o descompunere w = xyzuv cu
orice cuvant
ile:
proprietat
1

|yu| 1

|yzu| n

xy i zu i v L, i 0

LFAC (2014-15)

Curs 7

8 / 33

Lema Bar-Hillel pentru L2

Lema Bar-Hillel (de pompare) pentru L2


Lema 2.1
pentru
Pentru orice limbaj L de tip 2 exista o constanta n astfel ncat
w L, |w| n, exista o descompunere w = xyzuv cu
orice cuvant
ile:
proprietat
1

|yu| 1

|yzu| n

xy i zu i v L, i 0

Urmatoarele
limbaje nu sunt de tip 2:
L = {an bn c n |n 1}
L = {an bm an bm |n 1}
L = {ai bj c k |i 6= j, k si j 6= k }
L = {ww|w {a, b} }
LFAC (2014-15)

Curs 7

8 / 33

Masini Turing

Curs 7

Automate pushdown deterministe

Lema Bar-Hillel pentru L2

Masini Turing

LFAC (2014-15)

Curs 7

9 / 33

Masini Turing

Masini Turing
Alan Turing 1936
finit de stari
Numar
i
Banda de intrare este infinita n ambele part
Capul de citire se poate misca n ambele directii
Pe banda de intrare se pot citi si scrie simboluri

LFAC (2014-15)

Curs 7

10 / 33

Masini Turing

Masini Turing - definitie


Definitie 3
O masina Turing determinista este un 6-uplu M = (Q, , , , q0 , F )

Q este multimea finita a starilor


q0 este starea initiala

F Q este multimea starilor


finale
este alfabetul de intrare
{B} este alfabetul benzii ce include alfabetul de intrare si
un simbol special, blanc
: Q Q {L, R} este functia de tranzitie care poate fi
partial definita
LFAC (2014-15)

Curs 7

11 / 33

Masini Turing

Masini Turing - tranzitii


Fie M = (Q, , , , q0 , F ) o masina Turing.
: Q Q {L, R}
(q, x) = (q , y, L): din starea q, daca M vizeaza o celula cu
continutul x, trece n starea q , schimba continutul celulei n y si

trece la celula din stanga


(q, x) = (q , y, R): din starea q, daca M vizeaza o celula cu
continutul x, trece n starea q , schimba continutul celulei n y si
trece la celula din dreapta
(q, x) nedefinit: masina se opreste

LFAC (2014-15)

Curs 7

12 / 33

Masini Turing

Masini Turing - configuratii


Configuratie: x1 x2 . . . xk 1 q xk xk +1 . . . xn
x1 , x2 , . . . , xn , q Q

LFAC (2014-15)

Curs 7

13 / 33

Masini Turing

Masini Turing - configuratii


q0 a1 a2 . . . ak ak +1 . . . an
Configuratia initiala:
a1 , a2 , . . . , an

LFAC (2014-15)

Curs 7

14 / 33

Masini Turing

Masini Turing - tranzitii


Fie configuratia x1 x2 . . . xk 1 q xk xk +1 . . . xn
si (q, xk ) = (p, y, R)

LFAC (2014-15)

Curs 7

15 / 33

Masini Turing

Masini Turing - tranzitii


x1 x2 . . . xk 1 q xk xk +1 . . . xn x1 x2 . . . xk 1 yp xk +1 . . . xn
((q, xk ) = (p, y, R))

LFAC (2014-15)

Curs 7

16 / 33

Masini Turing

Masini Turing - configuratii


Fie configuratia x1 x2 . . . xk 1 q xk xk +1 . . . xn
si (q, xk ) = (p, y, L)

LFAC (2014-15)

Curs 7

17 / 33

Masini Turing

Masini Turing - tranzitii


x1 x2 . . . xk 1 q xk xk +1 . . . xn x1 x2 . . . p xk 1 yxk +1 . . . xn
((q, xk ) = (p, y, L))

LFAC (2014-15)

Curs 7

18 / 33

Masini Turing

Masini Turing - limbaj acceptat


1 q 2 , q F , 1 , 2
Configuratie finala:
Configuratie de blocare:
nu exista C cu C C ((q, a) nedefinit)
C = q a, astfel ncat
Calcul: nchiderea reflexiva si tranzitiva a relatiei de mai sus: daca
:
C1 , . . . , Cn configuratii astfel astfel ncat
C1 C2 . . . Cn ,
atunci:
C1 + Cn daca n > 1, C1 Cn daca n > 0

LFAC (2014-15)

Curs 7

19 / 33

Masini Turing

Masini Turing - limbaj acceptat


Fie M = (Q, , , , q0 , F ) o masina Turing.

LFAC (2014-15)

Curs 7

20 / 33

Masini Turing

Masini Turing - limbaj acceptat


Fie M = (Q, , , , q0 , F ) o masina Turing.
simbolurile lui w n celule consecutive pe banda de
Se ncarca
intrare, restul celulelor contin simbolul special blanc

LFAC (2014-15)

Curs 7

20 / 33

Masini Turing

Masini Turing - limbaj acceptat


Fie M = (Q, , , , q0 , F ) o masina Turing.
simbolurile lui w n celule consecutive pe banda de
Se ncarca
intrare, restul celulelor contin simbolul special blanc
Se pozitioneaza controlul la primul simbol din w si la starea initiala

LFAC (2014-15)

Curs 7

20 / 33

Masini Turing

Masini Turing - limbaj acceptat


Fie M = (Q, , , , q0 , F ) o masina Turing.
simbolurile lui w n celule consecutive pe banda de
Se ncarca
intrare, restul celulelor contin simbolul special blanc
Se pozitioneaza controlul la primul simbol din w si la starea initiala
Se produc tranzitiile conform cu

LFAC (2014-15)

Curs 7

20 / 33

Masini Turing

Masini Turing - limbaj acceptat


Fie M = (Q, , , , q0 , F ) o masina Turing.
simbolurile lui w n celule consecutive pe banda de
Se ncarca
intrare, restul celulelor contin simbolul special blanc
Se pozitioneaza controlul la primul simbol din w si la starea initiala
Se produc tranzitiile conform cu
Masina M accepta w, daca se ajunge ntr-o configuratie finala

LFAC (2014-15)

Curs 7

20 / 33

Masini Turing

Masini Turing - limbaj acceptat


Fie M = (Q, , , , q0 , F ) o masina Turing.
simbolurile lui w n celule consecutive pe banda de
Se ncarca
intrare, restul celulelor contin simbolul special blanc
Se pozitioneaza controlul la primul simbol din w si la starea initiala
Se produc tranzitiile conform cu
Masina M accepta w, daca se ajunge ntr-o configuratie finala
Masina M respinge w daca se ajunge ntr-o configuratie de
blocare

LFAC (2014-15)

Curs 7

20 / 33

Masini Turing

Masini Turing - limbaj acceptat


Fie M = (Q, , , , q0 , F ) o masina Turing.
simbolurile lui w n celule consecutive pe banda de
Se ncarca
intrare, restul celulelor contin simbolul special blanc
Se pozitioneaza controlul la primul simbol din w si la starea initiala
Se produc tranzitiile conform cu
Masina M accepta w, daca se ajunge ntr-o configuratie finala
Masina M respinge w daca se ajunge ntr-o configuratie de
blocare
M nu se opreste pentru w, daca nu exista o configuratie C, cu
q0 w C

LFAC (2014-15)

Curs 7

20 / 33

Masini Turing

Masini Turing - limbaj acceptat


Notatii:
accept(M): multimea cuvintelor acceptate de M
reject(M): multimea cuvintelor respinse de M
loop(M): multimea cuvintelor pentru care M nu se opreste
accept(M) reject(M) loop(M) =

LFAC (2014-15)

Curs 7

21 / 33

Masini Turing

Masini Turing - limbaj acceptat


Limbaj acceptat
L(M) = {w |q0 w 1 q 2 , q F , 1 , 2 }
accept(M) = L(M)
Clasa de limbaje acceptate de masini Turing: L0

LFAC (2014-15)

Curs 7

22 / 33

Masini Turing

Exemplu
M = ({q0 , q1 , q2 , q3 , q4 }, {a, b}, {a, b, x, y, B}, , q0 , {q4 })
L(M) = {an bn |n 1}

LFAC (2014-15)

Curs 7

23 / 33

Masini Turing

Exemplu

LFAC (2014-15)

Curs 7

24 / 33

Masini Turing

Exemplu
MT pentru L = {an bn c n |n 1}?

Ce limbaj accepta urmatoarea


MT?

LFAC (2014-15)

Curs 7

25 / 33

Masini Turing

Masini Turing - limbaj acceptat


Definitie 4
Un limbaj L este recursiv enumerabil daca exista o masina Turing M
L(M) = L.
astfel ncat

este posibil ca M sa nu se opreasca pe cuvinte de intrarea w 6 L


Clasa limbajelor recursiv enumerabile: Lre
Lre = L0

LFAC (2014-15)

Curs 7

26 / 33

Masini Turing

Masini Turing - limbaj acceptat


Definitie 5
Un limbaj L este recursiv (decidabil) daca exista o masina Turing M
L(M) = L si M se opreste pentru orice cuvant
w
astfel ncat

accept(M) = L, reject(M) = \ L, loop(M) =


Clasa limbajelor recursive: Lr
Lr Lre

LFAC (2014-15)

Curs 7

27 / 33

Masini Turing

Masina Turing - model de calcul


M poate fi utilizata pentru recunoasterea limbajelor sau pentru calculul functiilor
Model pentru calculul unei functii f : Nk N
pe banda de intrare se memoreaza codificat
n configuratia initiala,

argumentele (n1 , n2 , . . . , nk ): (codificare unara)


k

(0n1 10n2 1 . . . 10n )


daca masina se opreste si
se aplica tranzitiile din configuratia initiala;
banda contine codificarea valorii f (n1 , n2 , . . . , nk ) (0f (n1 ,...,nk ) ), spunem ca
M calculeaza f
n cazul functiilor partial definite, daca f nu este definita n valorile
n1 , n2 , . . . nk , M nu se opreste
Daca exista o masina Turing care calculeaza f , atunci f se numeste

Turing-calculabila.

LFAC (2014-15)

Curs 7

28 / 33

Masini Turing

Probleme de decizie
o functie P : I F, I - multimea datelor
Problema algoritmica:
de intrare (instantelor problemei), F - multimea datelor finale, I, F

cel mult numarabile.

I, F cel mult numarabile,


elementele lor pot fi reprezentate drept
cuvinte peste un alfabet
Daca |F| = 2, F = {true, false}, atunci P se numeste problema
de decizie, altfel P se numeste problema computationala
Limbaj asociat unei probleme de decizie:
LP = {w I|P(w) = true}

LFAC (2014-15)

Curs 7

29 / 33

Masini Turing

Probleme de decizie

problema computationala:
w , sa se obtina w R :
Dat un cuvant

P : , P(w) = w R

problema de decizie

Sa se decida daca numarul


x este par: P : N {true, false}
P(x) = true, daca x este par, P(x) = false, daca x este impar
LP = {x|x este par }

LFAC (2014-15)

Curs 7

30 / 33

Masini Turing

Probleme decidabile
Limbaj asociat unei probleme de decizie: LP = {w I|P(w) = true}
Problema P este decidabila daca LP este recursiv (exista M cu
L(M) = LP , si M se opreste pentru toate cuvintele)
accept(M) = LP = {w I|P(w) = true}
reject(M) = {w I|P(w) = false}

Problema P este nedecidabila daca LP nu este limbaj recursiv

LFAC (2014-15)

Curs 7

31 / 33

Masini Turing

Modele echivalente

Masini Turing nedeterministe


Masini Turing cu mai multe benzi
Masini Turing cu o banda si mai multe capete de citire a benzii
Masini Turing cu banda cu 2 dimensiuni, infinita la dreapta si n
jos
Puterea de calcul este aceeasi: toate modelele pot fi simulate de
o masina determinista cu o banda

LFAC (2014-15)

Curs 7

32 / 33

Masini Turing

Automate liniar marginite


- LBA (Linear Bounded Automata)

Masini Turing ce au banda de intrare limitata la lungimea cuvantului


de intrare
Clasa de limbaje acceptate: L1

Teza lui Church Turing:


Orice functie efectiv calculabila (calculabila algoritmic) poate fi
calculata cu o masina Turing
sau
masina Turing
Nu exista un model de calcul mai puternic decat

LFAC (2014-15)

Curs 7

33 / 33

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