Sunteți pe pagina 1din 32

Cuprins

1 Limbaje formale
1.1. Introducere
1.2. Generare limbaj
1.3. Gramatici
1.4. Operaii cu limbaje
1.5. Ierarhia Chomsky
1.6. Proprieti de nchidere a familiilor de limbaje
2 Automate cu numr finit de stri
2.1. Automate deteministe cu numr finit de stri
2.2. Automate finite nedeterministe
2.3. Legtura dintre automatele finite i gramaticile regulate
3 Proprietile limbajelor regulate
3.1. Lema de pompare
3.2. Teorema Myhill-Nerode
3.3. Proiprieti de nchidere pentru limbaje regulate
3.4. Probleme de decizire pentru limbaje regulate
3.5. Algoritmi de decizie
4 Expresii regulate
4.1. Definiia recursiv pentru expresii regulate
4.2. Echivalena dintre automatele finite nedeterministe i expresiile regulate
4.3. Construcia unui automat finit nedeterminist cu -tranziii pentru o expresie regulat
4.4. Ecuaii i sisteme de ecuaii pentru definirea limbajelor regulate
4.5. Ecuaii n reele
4.6. Clase de limbaje definite prin ecuaii
5 Gramatici independente de context i automate finite
5.1. Automate push-down
5.2. Automatul push-down nedeterminist
5.3. Legtura automatelor push-down cu limbajele independente de context
5.4. Limbaje independente de context
5.5. Arbori de derivare
5.6. Simplificarea gramaticilor independente de context
5.7. Forma normal Chomsky
5.8. Forma normal Greiback
6 Proprietile limbajelor independente de context (context-free)
6.1. Lema de pompare pentru limbaje CF
6.2. Algoritmi de decizie pentru limbaje independente de context
6.3. Probleme de apartenen
7 Maini Turing
7.1. Modelul mainii Turing
7.2. Limbaje i funcii calculabile
7.3. Maina Turing calculator pentru funcii ntregi
7.4. Reprezentarea mainilor Turing prin diagrame
8 Mainile Turing i inteligena artificial
8.1. Problema completitudinii sistemelor formale
8.2. Problema opririi
8.3. Maina Turing universal
8.4. Mainile Turing i activitatea creierului
1

1. LIMBAJE FORMALE
1.1. Introducere
Limbajele formale au fost introduse de N.Chomsky n ncercarea de a gsi o metod
general de descriere pentru orice limb natural.
Aplicaiile importante ale limbajelor formale aa cum sunt cele din proiectarea
compilatoarelor au impulsionat cerecetrile.
Se numete alfabet o mulime finit i nevid de simboluri V , V . Acestea pot fi
litere sau cifre, dar i alte simboluri grafice.
O mulime oarecare poate fi un alfabet dac ea este o mulime n care nici unul
dintre simboluri nu poate fi construit din alte simboluri ale aceluiai alfabet (liber).
Un cuvnt este un ir finit de simboluri x1 x 2 ...x n , xi V .
( x1 x 2 ...x n ), ( y1 y 2 ... y k )
Dac
sunt dou cuvinte, prin alturarea lor,
x1 x 2 ...x n y1 y 2 ... y k , se obine tot un cuvnt (operaia se numete concatenare).
Vom nota cu cuvntul vid.
V * desemneaz mulimea tuturor cuvintelor definite peste alfabetul V . Orice
submulime L din V * se numete limbaj, L V * .
Proprietile operaiei de concatenare
(i )
(ii )

u , v, w V * , u (vw) (uv) w
u V * , u u u

Fie u, v V spunem c u este un subcuvnt al lui v, dac exist cuvintele , V ,


astfel nct u v . Dac , atunci u se numete prefix al lui v, iar dac ,
atunci u se numete sufix al lui v.
Lungimea unui cuvnt v este numrul de simboluri care compun cuvntul, notat
v
cu
.
Fie w a1 ...an , un cuvnt peste alfabetul V . Cuvntul obinut prin oglindire va fi
R
w a n ...a1 .
Exemplu de limbaj. Fie V {a, b} .
*

L1 {}

L2 {a, ab, aba, aaab}


n

L3 {a 2 n N }

Limbajul L1 conine un singur cuvnt. L2 este un limbaj finit cu patru cuvinte. L3


este un limbaj cu cuvinte formate din iruri de lungime patrat perfect, cuvintele fiind
succesiuni ale simbolului a .
1.2. Generare limbaj
Un limbaj poate fi definit recursiv. De exemplu, fie L V , V {a, b} , definit prin
(i) L (ii) dac x L , atunci axb L (iii) nici un alt cuvnt nu aparine lui L .
i i
Dac L verific (i)-(iii), atunci coincide cu L4 {a b i N } .
*

Generarea limbajelor cu sisteme de rescriere. Considerm un alfabet V i o


mulime de reguli F, numite reguli de rescriere de forma: , , V . Notm cu
SR(V,F) sistemul de rescriere.
Vom spune ca este genereat direct din notat cu , , V , dac i
numai dac exist cuvintele u, v, , V asfel nct uv, uv i F este o
regul n F. Prin generare direct un subcuvnt este nlocuit cu un alt subcuvnt n
conformitate cu o regul din F.
Observaie. Relaia este o relaie binar. Relaia se numete nchiderea
tranzitiv a relaiei binare.
Despre un sistem de rescriere vom spune c este sistem de rescriere generativ,
(SR, Ax), dac n mulinea regulilor se distinge mulimea axiomelor Ax. Limbajul
geneat de sistemul de rescriere este L (V , F , Ax) { , Ax} .
Un sistem de rescriere poate fi utilizat ca instrument de recunoatere a unui
limbaj. Vom numi limbaj recunoscut de un sistem (SR, Ax), limbajul
L (V , F , Ax ) { , Ax}
.
1.3. Gramatici
*

O gramatic generativ este un cuadruplu ordonat G (VN ,VT , S , P) , unde VN ,VT


sunt dou alfabete astfel nct V VN VT , VN VT , VT , VT .
V este alfabetul gramaticii sau vocabularul gramaticii.
Alfabetul V N se numete neterminal, iar VT se numete alfabet teminal.
Simbolul S VN se numete axioma gramaticii
Mulimea P este o mulime de perechi ordonate P {(u, v) u V , v V } , u
coninnd cel puin un simbol din V N , P este mulimea regulilor de rescriere.
O gramatic este un sistem de rescriere.
Limbajul generat de o gramatic se definete astfel: L(G ) {w w V , S w}
1.4 Operaii cu limbaje
*

Operaiile de reuniune, intersecie i diferen a dou limbaje se definesc ca:


L1 L2 {w ( w L1 ) ( w L2 )}
L1 L2 {w ( w L1 ) ( w L2 )}
L1 \ L2 {w ( w L1 ) ( w L2 )}

Definim complementul unui limbaj relativ la un alfabet V :

CV (L) V * \ L

Rezultatul concatenrii a dou limbaje este tot un limbaj i anume:


L L {uv u L v L } .
Ridicarea la putere a unui limbaj este definit recursiv:
1

L0 {}
Li 1 Li L

Produsul Kleen se definete ca nchiderea operaiei de concatenare.


adic

L* {} L L2 ... Ln ...

n N

(notm
3

L*

L aceai mulime, fr {} ).
i 1

L ,
i 0

Ctul la dreapta a dou limbaje se definete ca limbajul:


L1 / L2 {u ( uv L1 ) (v L2 )}

Derivata la dreapta: v L {u uv L} . Este ctul la dreapta : L /{v} .


Ctul la stnga a dou limbaje se definete ca limbajul:
d

L1 \ L2 {v ( uv L1 ) (u L2 )}
Derivata la stnga: v L {v uv L} .
Oglindirea unui limbaj L {u u L} , unde cu u R este cuvntul obinut din u
prin oglindire.
Oricare ar fi un simbol a ntr-un alfabet V , se poate defini un nou limbaj peste
Va obinut prin substituia cu proprietile:
s

( )

(uv) (u ) (v ) , u , v V *

Substituia unui limbaj va fi ( L) {v v (u ), u L} .


Homomorfisnul de limbaje (codificare). Fie T i N dou limbaje nevide i h o
h :T N .
aplicaie
Dac
h
se
extinde
la
T * prin
h( ) , h( a1 ,...a n ) h( a1 )...h(a n ), a1 , a 2 ,...a n T , atunci h se numete codificare.
*

1.5. Ierarhia Chomsky


Gramatica generativ G (VN ,VT , S , P) este caracterizat de mulimea P a regulilor
de generare. Considerm o gramatic n care regulile pot avea doar una dintre
A aB
Aa

urmtoarele dou forme:


unde

A, B V N ,

a V * .

O astfel de gramatic este de exemplu G (VN ,VT , S , P) , unde


V N {S , A}, VT {a, b, d } ,
iar
mulimea
regulilor
de
generare
este:
P {S aS , S bA, A d } . Limbajul generat este L(G ) {a b d n, k N }
Definiia 1.1. O gramatic G (VN ,VT , S , P) avnd mulimea regulilor de generare de
n

forma

A aB
Aa

unde , A, B VN , a V * , se numete gramatic regulat sau gramatic de tip 3.


Definiia 1.2. O gramatic G (VN ,VT , S , P) se numete independent de context sau de
tip 2, dac fiecare dintre regulile din P este de forma:
A w, A VN , w V .
Definiia 1.3. Gramatica G (VN ,VT , S , P) , avnd reguli dependente de context de forma
uAv uwv, u, v V * , A V N , w V (n care regula S poate s apar doar dac S nu
apare n dreapta nici unei reguli) se numete gramatic dependent de context sau
gramatic de tip 1.
Definiia 1.4. O gramatic cu reguli fr restricii o vom numi gramatic de tip 0.
Gramaticile astfel definite genereaz respectiv limbaje regulate (de tip 3) , 3 , limbaje
4

independente de context) de tip 2 , 2 , limbaje dependente de context, de tip1, 1 i


limbaje de tip 0 , 0 .
Teorema 1.1. Dac 0 , 1 , 2 , 3 sunt limbajele generate de gramaticile de tip 0, 1, 2, 3
definite mai sus, atunci are loc urmtorul ir de incluziuni: 0 1 2 3 .
irul definete o ierarhie a limbajelor, dup tipul gramaticii generative corespunztoare
(ierarhia lui Chomsky).
Definiia 1.5. O gramatic se numete monoton (cu lungime cresctoare) dac orice
regul de generare u v satisface condiia u v . Gramaticile dependente de context
sunt monotone.
Teorema 1.2. Pentru fiecare gramatic monoton G exist G ' , gramatic dependent
de context, echivalent cu G , L(G ) L(G ' ) .
Teorema 1.3. Dac G (VN ,VT , S , P) este o gramatic dependent de context, exist o
alt gramatic dependent de context G I , echivalent cu prima, dar n care axioma S
nu apare n dreapta nici unei reguli. Dac G este de tip 2 sau 3 , atunci G I este de tip
respectiv 2 sau 3.
Teorema 1.4. Dac L este de tip 1,2 sau 3, atunci

L {}

L \ {} sunt de acelai tip

1.7. Proprieti de nchidere a familiilor de limbaje


Teorema 1.5. Familiile de limbaje i , 0 i 3 sunt nchise n raport cu operaia de
reuniune.
Teorema 1.6. Familia 2 a limbajelor libere de context este nchis n raport cu
produsul i nchiderea prin produs.
Definiia 1.6. Se numesc operaii regulate operaiile de reuniune, produs i nchidere
prin produs ( produs Kleen).
Concluzie. Clasele j , j 0,1, 2, 3 , sunt nchise n raport cu operaiile regulate.

2 LIMBAJE REGULATE I AUTOMATE FINITE


2.1 Automate deterministe cu numr finit de stri
Limbajele regulate sau de tip 3 sunt definite de o gramatic
mulime de reguli de generare P, coninnd reguli de forma:

G (V N ,VT , S , P )

cu o

A aB
A a,

A, B V N , a VT

Prezentam legtura ce se poate stabili ntre limbajele regulate i automatele cu


numr finit de stri, automate care accept acest tip de limbaje.
Definiia 2.1. Un automat determinist cu numr finit de stri este un cvintuplu
M (Q, , , q0 , F ) , unde
5

este mulime finit i nevid de stri


este mulime finit i nevid de simboluri, alfabetul de intrare
: Q Q se numete funcie de trecere
q0 Q este o stare iniial
F Q este mulimea strilor finale.
Notaia (q, a ) p , atunci cnd la intrarea automatului apare simbolul a ,
automatul care este n starea q trece n starea p.
Dac funcia este parial, i pentru o perechea ( p, a ), p Q, a nu este
definit, atunci prin convenie vom pune ( p, a ) .
Funcia poate fi extins astfel:
Q

' ( q, ) q

' ( q, xa) ( ' ( q, x), a ),

x * , a

Definiia 2.2. Un cuvnt x este recunoscut de automatul M , dac pornind din starea
iniial i citind cuvntul , automatul trece ntr-o stare final, adic, (q0 , x) p , pentru
pF .
Definiia 2.3. Mulimea T ( M ) {x (q0 , x) F } se numete limbaj acceptat de automalul
M.
Se poate face trecerea la un sistem de rescriere SR (V , P) , unde
V Q ,

q0 Q
F Q
P : q i a k q j , q j Q,

ak ,

dac pentru fiecare qi a k exist exact o regul n P,


atunci T ( M ) {x q x p, p F } .
Definiia 2.4. Perechea (q, x), q Q, x * se numete tranziie.
Dac (q, a ) p notm (q, ax) ( p, x)
Reprezentare automatului finit printr-o diagram de tranziie. Fie automatul finit
M (Q, , , q0 , F ) . Vom reprezenta strile automatului ca pe nodurile unui graf; dac
(q, a ) p atunci ntre nodurile q i p va exista un arc n direcia de la q la p i etichetat
cu eticheta a.
Exemplu: S considerm M (Q, , , q0 , F ) un automat avnd {0,1} ,
Q {q 0 , q1 , q 2 , q3 }, F {q 0 } .
*

Funcia de trecere este dat n tabelul de mai jos

q0

q1

q2

q1

q0

q3

q2

q3

q0

q3

q2

q1

Fig. 2.1.1 Diagrama de tranziie.


Funcionarea automatului din figur pentru x 10110010 , pornind din starea

q0 :

( q 0 ,10110010 ) (q 2 ,0110010 ) (q 3 ,110010 ) ( q1 ,10010) ( q3 ,0010)


( q 2 ,010) (q3 ,10) (q1 ,0) q 0 F

Deci

x T (M ) .

Automatul accept cuvinte cu numr par de 0 i 1.

2.2 Automate finite nedeterministe


Definiia 2.5. Un automat M (Q, , ' , q0 , F ) se numete automat cu numr finit de
stri nedeterminist dac funcia de tranziie este ': Q (Q) .
' ( q, a ) este, n cazul automatului nedeterminist, o mulime de stri.
Extinderea lui ' se face n urmtorul fel:
' ( q, ) {q}
' ( q, xa )

' ( p, a ),

x * , a

p ( q , x )

'

extins la (q) :
*

' ({ p1 ,..., p k }, x ) ' ( pi , x )


i 1

Definiia 2.6. Un cuvnt x este recunoscut de un automat finit nederminist M dac


' ( q0 , x ) F . Pentru ca un cuvnt x s fie acceptat trebuie ca automatul pornit din
starea iniial s ating o stare final.
Exemplu. Pentru automatul finit nedeterminist, M (Q, , , q0 , F ) , cu mulimea
strilor Q {q0 , q1 , q 2 , q3 , q 4 } , {a, b} i funcia de trecere nedeterminist, dat n tabelul
de mai jos, diagrama strilor este dat n figura alturat.
a
q0

q1 ,

q3

q1
q2

q1

q3

q3

q2
q2
q4

q4

q4

Fig.2.2.1
Pentru cuvntul x aaab funcionarea automatului este:
(q0 , aaab) ( q1 , aab) (q1 , ab) ( q1 , b) q 2 F . Rezult c x T (M ) .
Teorema 2.1. Fie L o mulime de cuvinte acceptate de un automat finit nedeterminist,
atunci exist un automat finit determinist care accept pe L.
Problem. Fie automatul nedeterminist M ({q0 , q1},{0,1}, , q0 ,{q1}) cu diagrama
de mai jos

Fig.2.2.2
Avnd urmtoarea funcie de trecere:

( q0 ,0) {q0 , q1 }
( q0 ,1) {q1}
( q1 ,0)
( q1 ,1) {q0 , q1 }

S se construiasc automatul determinist echivalent.


Rezolvare. Construim automatul finit determinist
M ' ({[q0 ],[ q1 ], [ q0 , q1 ]},{0,1}, ' , [ q0 ],{[ q1 ], [ q0 , q1 ]}) cu funcia de trecere

' ([q 0 ],0) [ q 0 , q1 ]


' ([q 0 ],1) [ q1 ]
' ([q1 ],0)
' ([q1 ],1) [q 0 , q1 ]

' ([q 0 , q1 ],0) [ q0 , q1 ]


' ([q 0 , q1 ],1) [ q 0 , q1 ]

Diagrama automatului determinist este

Fig.2.2.3
S se demonstreze c

T (M ) T (M ' ) .

2.3. Legtura dintre automatele finite i gramaticile regulate


Teorema 2.2. Dac G (VN ,VT , S , P) este o gramatic de tip 3, atunci exist un
automat finit nedeterminist M (Q, , , q0 , F ) i T ( M ) L(G ) .
Teorema 2.3. Pentru un automat finit determinist exist o gramatic de tip 3, astfel
nct L(G ) T ( M ) .
Teorema 2.4. Clasa limbajelor de tip 3 este echivalent cu clasa limbajelor acceptate
de automatele finite.

3. PROPRIETILE LIMBAJELOR REGULATE


3.1. Lema de pompare
Un limbaj este regulat dac este acceptat de un automat cu numr finit de stri
M (Q, , , q 0 , F ) cu Q n .
(ADF) :
Considerm c la intrarea automatului se prezint un ir de lungime
m, m n : a1a 2 ...a m . Presupunem c ( q0 , a1 ...ai ) qi , i 1,2,...m .
Cum n total sunt distincte n stri, dac n ir apar mai multe simboluri, s zicem n+1,
trebuie s existe doi indici j , k , 0 j k n astfel nct q j q k .
n diagrama de tranziie drumul este

Fig.3.1.1
9

Dac

qm F

a1 ...a j a k 1 ...a m L( M ) ,

dar i

a1 ...a j a j 1 a k 1 ...a m L( M ) ,

( q0 , a1 ...a j a j 1 a k 1 ...a m ) ( ( q0 , ai ...a j 1 ), a k 1 ...a m ) ( q j , a k 1 ...a m ) q m .

deoarece
mergnd pe
i 1 .

ciclu de ori cte ori. Acest lucru implic: a1 ....a j (a j 1 ...a k ) a k 1 ...a m L( M )
Pe baza observaiei suntem condui la urmtorul rezultat:
Lema 3.1. (de pompare). Fie L un limbaj regulat. Dac exist un numr natural n,
astfel nct pentru orice z , z L, z n, se poata scrie z uvw cu uv n, v 1 , atunci
i 0 , uv i w L .
Pentru lema de pompare o formulare concisa este urmatoaea:
( L )( n) ( z )[ z L z n (u , v, w)( z uvw, uv n, v 1 (i ) (uv w) L ))] .
i

3.2. Teorema Myhill-Nerode


Un alt rezultat privind structura limbajelor regulare se obine analiznd dou
relaii de echivalena n mulimea irurilor de simboluri.
1. Definim o relaie de echivalen pe * , n raport cu un limbaj, pe care o vom
nota cu RL :
x, y * , xRL y z , z * , sau xz L i yz L , sau nici xz L i nici yz L .
Dac L este limbaj regulat, atunci RL este de indice finit.
2. Definim o a doua relaie de echivalen n mulimea irurilor notat cu RM ,
asociat cu un automat finit M (Q, , , q0 , F ) . Presupunem c automatul este
determinist cu numr finit de stri (AFD), dac x, y , xRM y (q0 , x) (q0 , y ) .
n raport cu aceast relaie, * se mparte n clase de echivalen, una pentru fiecare
stare ce poate fi atins din q0 . n plus, xRM y xzRM yz , z * , pentru c
(q0 , xz ) ( (q0 , x ), z ) ( (q0 , y ), z ) (q0 , yz ) ceea ce nseamn c relaia este
invariant la dreapta.
Teorema 3.2. (Myhill-Nerode)
Sunt echivalente propoziiile:
(1)
L * este un limbaj acceptat de un automat cu numr finit de stri.
(2) L este o reuniune de clase de echivalen, invariante la dreapta i de indice finit.
(3)
Dac RL se definete ca xRL y z * , xz L , odat cu yz L , atunci RL este
de indice finit.
Exemplul 3.2.1. Se d automatul avnd diagrama strilor n fig.3.2.1, de mai jos.
*

Fig.3.2.1
10

Limbajul acceptat este L 0 *10 * si conine cuvinte formate cu simbolurile 0 i


1, dar 1 apare o singur dat. Toate strile pot fi atinse pornind din starea iniial.
Dac RM este relaia xRM y (q0 , x) (q0 , y ) , atunci relaia definete urmtorele
clase de echivalen ntre iruri.
C a (00) *

Cb (00) * 0

C d (00) 01

C e 0 100

C c (00) *1
C f 0*10 *1(0 1) *

Se vede c, de exemplu C c , nseamn mulimea care conine cuvintele cu care se trece


din starea a n starea c si atunci L Cc C d Ce , adic reuniunea claselor care conin
un singur 1.
Considerm acum relaia de echivalen RL n raport cu limbajul L 0 *10 * , atunci
xRL y dac i numai dac x, y , z , xz L yz L .
Mulimea * se mparte n urmtoarele clase de echivalen:
x i y nu conin nici un 1; x i y au un singur 1; x i y au cel puin un 1.
Clasele generate de RL sunt
*

C1 0*
C 2 0 *10*
C3 0 *10*1(0 1) *

Iar limbajul de la care am pornit este

L C2 .

Fig. 3.2.2
n figura 3.2.2 se vede c C a C b (00) * (00) * 0 0 * C1 .
Construim automatul AFD utiliznd RL . Alegem reprezentani din cele trei clase astfel:
C1

C2

: 1

C3

: 11

Fie M ' automatul din figura de mai jos

Fig. 3.2.3
11

Se vede c ' ([1],0) [1] . Presupunem c w este un ir din [x], de exemplu, w 0 i10 j ,
atunci w0 0 i10 j 1 C 2 .
3.3. Proprieti de nchidere pentru limbaje regulate
Teorema 3.3. Clasa mulimilor regulate este nchis n raport cu reuniunea,
concatenarea i nchiderea Kleene. Lucru ce rezult direct din definiia mulimilor
regulate.
Teorema 3.4. Clasa mulimilor regulate este nchis fa de operaia de complementare.
Teorema 3.5. Mulimile regulate sunt nchise fa de intersecie.
Substituii. S presupunem c a este un simbol dintr-o mulime regulat L .
S presupunem c nlocuim fiecare simbol din cuvntul a1 ...a n L , cu cuvinte din
mulimea w1 ,..., wn , unde wi sunt cuvinte din L . Rezultatul este tot o mulime
regulat.
Definiia 3.1. O substituie f este o aplicaie f : , mulimea fiind un alt alfabet,
verificnd proprietile:
1) f ( )
2) f ( xa) f ( x) f (a)
Evident, dac L este un limbaj, atunci f ( L) f ( x) .
Exemplul 3.2.1.. S definim urmtoarea substituie:
*

xL

{0,1} ,

{a, b}

f :
f (0) a

f (1) b *

Atunci f (010) ab * a este o mulime regulat.


Dac L este limbajul reprezentat de expresia regulat 0* (0 1)1* , atunci L {0,1} i
conine cuvinte care ncep cu 0 i se termin cu 1.
Substituia ne conduce la f ( L) a * (a b * )(b * )* a *b *
Teorema 3.6. Clasa limbajelor regulate este nchis la o substituie f : , definit
prin a , f (a) Ra , unde Ra * este o mulime regulat.
Teorema 3.7. Clasa limbajelor regulate este nchis n raport cu ctul printr-o mulime
arbitrar.
*

3.4. Probleme de decizie pentru limbaje regulate


Teorema 3.8. Mulimea cuvintelor acceptate de un automat finit M cu n stri este:
1. nevid, dac i numai dac accept un cuvnt de lungime mai mic dect n .
2. infinit, dac i numai dac automatul accept cuvinte de lungime k , astfel nct
n k 2n .
3.5. Algoritmi de decizie
Cum s decidem dac L(M ) ?
Algoritmul 1: Verific dac n L(M ) vreun cuvnt este de lungime n .
Cum decidem dac un limbaj regulat este infinit ?
12

Algoritmul 2: Verific dac vreun cuvnt de lungime cuprins ntre n i 2n 1 este n


L(M ) .
Aceti doi algoritmi pot avea variante, de exemplu, pentru a vedea dac L(M )
, se analizeaz diagrama de tranziie a lui M .
Algoritmul 1: Analizeaz diagrama de tranziie a lui M i nltur toate strile care nu
pot fi atinse pornind de la starea iniial. Dac mai rmn stri finale, limbajul nu este
vid.
Pentru a vedea dac L(M ) este infinit urmm
Algoritmul 2: Se nltur toate strile nefinale din care nu se poate ajunge n stri
finale. Un automat AFD accept un limbaj infinit dac i numai dac diagrama rezultat
are un ciclu.
Echivalena a dou limbaje este o problem decidabil.
Teorema 3.9. Exist un algoritm de decizie pentru echivalena a dou automate finite.
4 EXPRESII REGULATE
4.1 Definiia recursiv pentru expresii regulate
Definiia 4.1.
1) este o expresie regulat indicnd mulimea vid.
2) este o expresie regulat pentru mulimea { }
3) a , a este o expresie regulat indicnd mulimea {a}
4) Dac r i s sunt expresii regulate indicnd limbajele L1 i L2 , atunci sunt
regulate urmtoarele expresii
a) r s , operaia de alternare, indicnd L1 L2
b) rs , operaia de concatenare, indicnd L1 L2
c) r * , nchiderea Kleene, indicnd L1*
Proprietile operaiilor:
1.

rs sr

2.
3.

r ( s t ) (r s) t
(rs ) t (rt ) ( st )

4.

r ( s t ) (rs ) (rt )

5.

( s t )r ( sr ) (tr )

6.

r r r

7.

r * (r )*

8.

(r * ) * r *

Exemple de expresii regulate:


1. Dac {1} atunci 1* reprezint limbajul L {1 i 0,1,...} i deci L .
2 Dac {a, b} atunci a *b * reprezint limbajul L {a b n, m 0} .
3. (ab) * reprezint limbajul L {(ab) n 0} .
4. (ab aa ba bb) * reprezint mulimea tuturor irurilor peste {a, b} de lungime par.
i

13

Exemplu. Scrierea expresiilor regulate este echivalent cu notaia Backus-Naur.


n notaia Backus-Naur pentru un limbaj de programare, definiia identificatorului este:
identificator : litera ( litera cifra ) *

Dou expresii regulate sunt egale dac reprezint acelai limbaj.


4.2. Echivalena dintre automatele finite nedeterministe i expresiile regulate
Definiia 4.2. Un automat nedeterminist cu - tranziii este un automat
M (Q, , , q0 , F ) , cu funcia de trecere:
: Q ( {}) (Q) , unde cu (Q) am notat mulimea prilor lui Q i care permite
tranziii de forma: ( p, ) q, p, q Q .
Sunt posibile tranziii fr citirea unui simbol de intrare, avnd diagrama de tranziie ca
cea din figura de mai jos.

Fig. 4.2.1
Teorema 4.1. Mulimea cuvintelor recunoscute de automatele finite cu -tranziii este
aceeiai cu mulimea cuvintelor recunoscute de automate finite nedeterministe.
4.3. Construcia unui automat finit nedeterminist cu -tranziii pentru o
expresie regulat.
1. Automatul pentru :

Fig. 4.3.1
2. Automatul pentru a

Fig. 4.3.2
3. Dac N(s) i N(t) sunt automate nedeterministe pentru expresiile regulate s i t,
atunci pentru s t automatul va fi ca cel din figura de mai jos.

14

Fig. 4.3.3
4 Pentru expresia regulat st se construiete automatul n care starea final a
primului autmat se suprapune peste starea iniial a celui de-al doilea automat i noua
stare se transform ntr-o stare oarecare a automatului rezultat.

Fig. 4.3.4
*
5. Pentru expresia regulat s * , se construiete automatul N ( s ) ca n figura 5.

Fig. 4.3.5
Pe baza celor de mai sus se poate demonstra urmtoarea teorem:
Teorema 4.2 Pentru orice expresie regulat R exist un automat finit nedeterminist cu
-tranziii care accept pe R.
4.4. Ecuaii i sisteme de ecuaii pentru definirea limbajelor regulate
Clasele de limbaje pot fi definite ca soluii ale unor ecuaii.
Fie un alfabet i s fie mulimea prilor lui * . Dac L, L1 , L2 ,
atunci

15

L1 L2 { xy x L1 y L2 }
L0 {}
Li LLi 1 , i 1

L* Li
i 0

L Li
i 1

L1 L2 x L1 ,

x L2

Definiia 4.3. Mulimea ( , , , , , ) se numete reea dac


este o latice complet i sunt ndeplinite axiomele
*

1) A( BC ) ( AB )C
2) A( B C ) AB AC ,
3)
4)

A A ,
A A A

5)

AAi AAi ,

i 1

i 1

( , , , * , )

( B C ) A BA CA
A* * A *

i 1

i 1

(Ai ) A Ai A,

A1 A2 ... An ...

4.5. Ecuaii n reele


Vom considera reeaua de limbaje ( , , , * , , ) i aplicaia f :
Se numete ecuaie peste limbaje o expresie X f ( X ), X .
nlocuind pe X cu o anumit mulime din , soluie a ecuaiei, n partea dreapt
i n partea stng a semnului egal , se va obine aceeai mulime din .
Vom considera mulimea de ecuaii:

X 1 1 ( X 1 , , X n )

(1)
X ( X , , X )
n n 1 n
unde i : n , i 1,2, n
Sistemul (1) poate fi scris vectorial ca o ecuaie
X f ( X ), X ( X 1 , , X n ),
are proprietatea f ( A) A ,

f : n n

Dac o mulime
atunci mulimea A se numete punct fix al
aplicaiei f. Vom numi soluie a sistemului (1) orice punct fix al aplicaiei f. Cea mai
mic soluie a sistemului (1) va fi cel mai mic punct fix al aplicaiei f.
n legtur cu sistemul (1) se pun urmtoarele probleme:
1. n ce condiii impuse aplicaiei f sistemul are cel puin o soluie ?
2. O metod de calcul a soluiilor.
Teorema 4.3. Dac n este o latice complet i f o funcie izoton f : n n , atunci
exist cel puin o mulime A n astfel ca f ( A) A
Definiia 4.3. O aplicaie f : n n se numete numrabil continu dac pentru orice
ir A1 A2 ... An , A , i 1, f (A ) f ( A )
n

i 1

i 1

16

Teorema 4.3. Dac f : n n este o aplicaie numrabil continu atunci cel mai mic
punct fix al aplicaiei f exist i este f i () , unde f i f f nseamn aplicarea succesiv
de i ori a lui f.
4.5. Clase de limbaje definite prin ecuaii
Dac notm cu U

V { X 1 ,... X n } ,

vom numi monom un cuvnt din

Numim polinom standard o aplicaie

: n n ,

i ( X 1 ,... X n )

unde

U*.
s (i )

i ( X 1 ,... X n )
i 1

sunt monoame. Dac n expresia unei aplicaii apar monoame cu


coeficieni mulimi finite de cuvinte, expresia poate fi adus la forma unui polinom
standard.
Sistemul

X 1 1 ( X 1 , , X n )

X ( X , , X )
n
n n 1

unde i , 1 i n sunt polinoame standard, se numete sistem polinomial.


Teorema 4.4. Soluia minimal a unui sistem polinomial este un vector ale crui
coordonate sunt limbaje independente de context. Oricare ar fi L un limbaj independent
de context, exist un sistem polinomial n a crui soluie minimal o coordonat s
coincid cu L.
Teorema 4.5. Soluia minimal a unui sistem liniar la dreapta este un vector
S ( S1 , , S n ) n care S i , 1 i n , sunt limbaje regulate. Orice limbaj regulat este una
dintre coordonatele soluiei unui sistem liniar la dreapta.
Dac sistemului (2) i se ataaz n gramatici, ca n cazul polinomial, mulimea regulilor
va conine reguli liniare la dreapta, deci gramaticile vor fi liniare la dreapta. Ca urmare,
limbajele generate vor fi regulate.
Relaii elementare pentru rezolvarea sistemelor liniare. Sistemele liniare la
dreapta pot fi rezolvate prin eliminarea necunoscutelor, innd cont de urmtoarele
relaii elementare:
Dac X AX B , atunci X A* B .
Dac X AX , atunci X .
Dac X AX A , atunci X A .
Exemplul 4.2. Se d gramatica G (VN ,VT , S , P) cu VN {S , AB, C}, VT {a, b, c}
i regulile P:
S aA
A aA
B bB

S a
A bB
Bc

Sistemul de ecuaii va fi

17

Aa

Din ecuaia (3) rezult

(1)
(2)

S aA a
A aA bB a

(3)

B bB c

B b c,
*

atunci din (2) avem

A aA bb *c a

i deci

A a (bb c a ) a bb c a a .
*

Din prima ecuaie obinem S a(a *bb *c a * a) a . Ca urmare


rezultat este L {a b c n, k 1} {a m 1} .
n

S aa *bb * c aa *

iar limbajul

5 GRAMATICI INDEPENDENTE DE CONTEXT I AUTOMATE FINITE


O gramatic G (VN ,VT , S , P) este independent de context dac regulile sale sunt
de forma A , A VN , (VN VT )* .
O gramatic independent de context este n forma normal Greibach dac
regulile sunt de forma de mai sus, dar n (VN VT ) * primul simbol este terminal iar
simbolurile neterminale sunt situate la stnga. (de exemplu: a ).
5.1. Automate push-down
O extensie a automatelor definite pn acum care accept limbaje independente de
context sunt automatele push-down. Componentele acestui tip de automat sunt: banda
coninnd simbolurile de intrare, dispozitivul de comand si stiva push-down, un sistem
de memorare n care ultima informaie pstrat este prima ce poate fi extras

Fig.5.1.1
Trecerile automatului push-down se realizeaz astfel:
- se citete un simbol la intrare
- se schimb starea dispozitivului de comand
- se nlocuiete coninutul din vrful stivei
18

- banda avanseaz cu o poziie


Exist i posibilitatea ca la intrare s nu se citesc nimic, atunci se consider c
trecerea se face citind de pe band simbolul .
Se numete limbaj acceptat de un automat push-down mulimea irurilor de
intrare pentru care automatul ajunge ntr-o stare final sau pentru care stiva se golete.
Definiia 5.1. Un automat push-down determinist este un sextuplu M (Q, , , , Z 0 , F ) ,
unde Q este mulimea strilor automatului, este alfabetul de intrare, este alfabetul
stivei push-down, F Q este mulimea strilor finale, funcia de trecere este:
: Q ( {}) Q *

Cum este interpretat o trecere:


Cazul 1. (q, a, z ) ( p, ), q, p Q, a , z , * :
Automatul, aflat n starea q citete de pe band simbolul de intrare a i simbolul z
din vrful stivei , iar apoi trece n starea p i nlocuiete n stiv simbolul z prin simbolul
. Avanseaz cu un simbol pe band.
Cazul 2. (q, , z ) ( p, ), q, p Q, z , *
Automatul care se afl n starea q i are pe z n stiv, trece, n starea p , fr s citeasc
nimic, iar n stiv z se nlocuiete cu .
5.2. Automatul push-down nedeterminist
M (Q, , , , Z 0 , F ) ,

Un automat

(q, a, z ) {( p1 , 1 ), ( p 2 2 ),..., ( p m , m )},

cu funcia de trecere nedeterminist:


q, pi Q, a , z , i * , i 1,..., m se numete

automat push-down nedeterminist.


Definiia 5.2. Se numete configuraie instantanee o pereche (q, ) n care q Q, ,
unde cel mai din stnga simbol al lui este vrful stivei push-down, iar este
coninutul stivei.
Pentru a exprima faptul c citirea simbolului de intrare a trece automatul M din (q, z )
*

( p, )

vom

scrie:

a : ( q, z ) ( p, ) ,
M

unde

a {},

, * ,

z i

( p , ) ( q, a , z )

i nseamn c la citirea lui a, automatul aflat n starea q, cu z n vrful


stivei trece n starea p cu n vrful stivei.
*

Pentru un cuvnt cu mai multe litere scriem a1 ...a n : (q1 , 1 ) M (qi 1 , i 1 ), i 1,..., n dac
a1 ,...a n {},

q1 ,..., q n Q,

1 ,..., n .

Definiia 5.3. Se numete descriere instantanee tripletul ( q, aw, z ) atunci cnd


(q, aw, z ) M ( p, w, ) , pentru ( p, ) ( q, a, z ) .
Definiia 5.4. Limbajul acceptat prin stri finale de automatul M este
L( M ) {w w , ( q , w, z ) ( p, , ), , p F } .
Definiia 5.5. Limbajul acceptat prin stiv vid de ctre automatl M este
N ( M ) {w w , ( q , w, z ) ( p , , ), p Q} .
*

5.3. Legtura automatelor push-down cu limbajele independente de context.

19

Pornind de la gramatica G (VN ,VT , S , P) n form normal Greibach se


construiete un automat nedeterminist push-down n care simbolurile neterminale sunt n
alfabetul stivei. Dac regulile gramaticii sunt de forma A a , A VN , (VN VT )* ,
atunci funcia de trecere a automatului (q, a, A) va conine perechea (q, ) .
Teorema 5.1. Dac L este un limbaj independent de context, atunci exist un automat
push-down nedeterminist M, astfel nct L N (M ) .
Teorema 5.2. Dac L este un limbaj acceptat prin stiv vid de un automat push-down
M, L N (M ) , atunci L este un limbaj independent de context.
5.4. Limbaje independente de context
Gramaticile independente de context, (context free) s-au dovedit utile pe de o
parte n definirea limbajelor de programare , iar pe de alt parte n formalizarea
procesului de analiz n cpmpilarea programelor.
Exemplul 5.2. Gramatica independent de context care permite descrierea
expesiilor aritmetice , cu un numr arbitrar de paranteze poate fi dat utiliznd aa
numita form normal Backus-Naur. Regulile de derivare sunt urmtoarele
(1) <expresie> <expresie> + <expresie>
(2) <expresie> <expresie>*<expresie>
(3) <expresie> (<expresie>)
(4) <expresie> identificator.
Expresiile aritmetice cu operatorii + ,*, au ca operanzi identificatorii. Notm cu E
expresia aritmetic, s construim acum gramatica G ({E},{,*, (, ), identificator}, P, E ) ,
unde mulimea regulilor este P:
(1) E E+E
(2) E E* E
(3) E (E)
(4) E identificator
Aplicnd aceste reguli putem genera o expresie aritmetic, de exemplu:
E E * E ( E ) * E ( E ) * id ( E E ) * id ( E id ) * id (id id ) * id
am mai spus, o gramatic G (VN ,VT , S , P) este independent

Aa cum
de context
*
(context free) dac regulile sale sunt de forma A , A VN , (VN VT ) .
Limbajul generat de G este L(G). Dou gramatici sunt echivalente dac L(G1 ) L(G2 ) .
5.5. Arbori de derivare
Arborii de derivare sunt o form de prezentare a structurii cuvintelor unui limbaj
cu aplicaii n compilare.
Arbore este un graf orientat ( X , ) , unde X este mulimea nodurilor i X X
este o relaie de ordonare cu proprietatea c exist un nod rdcin r X , astfel nct
1 r i oricare ar fi un alt nod

x X \ r , exist un singur drum de la r la x.

Un subarbore este un nod al arborelui mpreun cu toi descendenii si.


n arborele de derivare a unui cuvnt pe baza regulilor unei gramatici
independente de context, nodurile sunt etichetate cu simboluri din VN VT {} . Dac
20

din nodul A ies muchii care duc la nodurile X 1 , X 2 ,..., X k , atunci regula
A X 1 X 2 ... X k P .
Pentru derivarea, E E * E ( E ) * E ( E ) * id ( E E ) * id ( E id ) * id (id id ) * id
arborele este:

Fig.5.5.1
Definiia 5.6. Fie G (VN ,VT , S , P) o gramatic Independent de context. Un arbore de
derivare (sau de analiz) pentru un cuvnt este caracterizat n felul urmtor:
1. Fiecare nod este etichetat cu un simbol din VN VT {}
2. Rdcina este etichetat cu S, simbolul pentru axiom
3. Un nod interior este etichetat cu A, dac i numai dac A V N
4. Dac un nod are eticheta A, iar n1 ,...nk sunt descendenii si cu etichetele
X 1 ,... X k , atunci A X 1 ... X k P
Dac un nod n are eticheta , atunci este un nod terminal, singurul fiu al tatlui su.
Teorema 5.3. Fie G (VN ,VT , S , P) o gramatic independent de context (CF). Atunci
S dac i numai dac exist un arbore de derivare n gramatica G care s conduc la
irul .
Pentru demonstraie s observm mai nti c dac arborele de derivare conduce la
producia , atunci S . Deci trebuie s regsim regulile pe baza crora a fost desenat
arborele i care conduc la generarea din gramatic. Invers, dac presupunem c A ,
atunci trebuie construit subarborele A care genereaz pe .
*

5.6. Simplificarea gramaticilor independente de context


Definiia 5.7. Fie G (VN ,VT , S , P) o gramatic CF spunem despre un simbol A VN
c este inaccesibil dac nu exist S A . Despre simbolul A V N spunem c este
neutilizabil dac nu exist nici o derivare de forma S A w w w , w V
Exemplul 5.6. Fie G (VN ,VT , S , P) unde VN {S , A, B, C}, VT {a, b} , iar
*

P:
SA
B AB
A aB
C AS

SB
B BA
A bS
C b

21

Ab

*
T

Vom elimina mai nti simbolurile inaccesibile (cele la care nu se ajunge niciodat prin
derivri din axioma S), apoi pe cele neutilizabile.
Construim V0 {S}

i2
V1 {A, B} (S , A, B} V2 V1

i 1
V1 {S } { A, B} {S , A, B}

Deci gramatica redus este


P1 :

G (V N(1) ,VT , S , P (1) )


V

(1)
N

SA
B AB
A aB

{S , A, B}

SB
B BA
A bS

Ab

Eliminarea simbolurilor neutilizabile , cele care nu intervin ntr-o derivare ce pornete


din axioma S i ajunge la un cuvnt care conine numai simboluri terminale.
i 1
V1 {} { A} { A}

V0 {}

Deoarece S A b

i2
V2 { A} {S}

Aici avem derivrile S A bS bA bb

i3
V3 { A, S } V3 V2

Gramatica redus este


G (V N( 2 ) ,VT , S , P ( 2 ) )
V

( 2)
N

{S , A}

Teorema 5.4. Fie G (V N ,VT , S , P ) i


echivalent cu G astfel nct V N(1)
A V N(1) ,

S w1 Aw2 w1 w3 w2 ,

P ( 2) {S A,

iar

A bS ,

A b}

L(G ) .

Atunci exist o gramatic G1


s nu conin simboluri neutilizabile.

wi VT*

Definiia 5.8. O derivare n G se numete derivare stng dac la fiecare pas al derivrii
se nlocuiete cel mai din stnga simbol neterminal.
Definiia 5.9. Dac n gramatic apare un o regul de forma A B, A, B VN , aceasta
se numete regul de redenumire.
Teorema 5.5. Dac G este o gramatic CF, atunci exist o alt gramtic G1 , G1 G
care nu are redenumiri.
5.7. Forma normal Chomsky
Teorema 5.6. Orice limbaj CF poate fi generat de o gramatic n care toate regulile sunt
A, B, C V N , a VT
de una dintre cele dou forme: A BC , A a,
Vom ilustra aceast teorem cu ajutorul unui exemplu.
Exemplul 5.7. Fie gramatica G ({S , A, B},{a, b}, P, S ) ,cu P:
S bA
A bAA

S aB
A aS

Aa

B aBB

B bS

Bb

22

Regulile n form normal Chomsky sunt: A a B b .


Restul regulilor trebuie transformate. Se intrpduc noi simboluri netreminale. S bA se
nlocuiete S bA cu S Cb A Cb b
Ca a
A bS se nlocuiete cu A C a S
Pasul I.
Ca a
S aB se nlocuiete cu S C a B
B bS se nlocuiete cu B Cb S
B aBB se nlocuiete cu B C a BB
A Cb AA se nlocuiete cu A Cb D1
D1 AA
Pasul II.
B C a BB se nlocuiete cu B C a D2
D2 BB
Ca urmare, noua gramatic, n form normal Chomsky are regulile:
S Cb A

Ca B

A Ca S

C a D1

B Cb S

C b D2

D1 AA
D2 BB
Ca a
Cb b

Noua gramatic genereaz acelai limbaj.


5.8. Forma normal Greiback
Teorema 5.7. Orice limbaj CF poate fi generat de o gramatic pentru care fiecare regul
este de forma A a , A VN , a VT , VN* .
Definiia 5.10. Se numesc producii regulile de forma A .
Se pune problema condiiilor n care trebuiesc tratate produciile . Dac L(G ) , nu
pot fi eliminate toate produciile. Dac L(G ) , atunci produciile pot fi
eliminate. Identificnd variabilele pentru care A .
Teorema 5.8. Dac L=L(G) pentru

G (VN ,VT , S , P ) ,

simboluri neutilizate i fr producii.

23

atunci

L \ {} este context free fr

6 PROPRIETILE LIMBAJELOR INDEPENDENTE DE CONTEXT


6.1. Lema de pompare pentru limbajele CF
Lema 6.1. (Bar-Hillel) Dac L este un limbaj CF, exist o constant n, depinznd de L,
astfel nct dac z L i z n , atunci z uvwxy i sunt ndeplinite urmtoarele
proprieti:

1)

vx 1

2)

vwx n

3)

i,

uv i wx i y L

Exemplul 6.1. Fie G (VN ,VT , S , P) , unde VN { A, B, C}, VT {a, b} , iar mulimea
regulilor s fie P: A BC B BA C BA A a B b . Aici k = 3. Dac z=bbbaba,
arborele de derivare va fi cel din figura de mai jos. Din v1 , subarborele genereaz
A bbA . Din v 2 , se genereaz A a . Dac z1 bba , atunci lum z 3 bb . Avem deci
z1 z 3 z 2 z 4 ,unde z 3 bb , z 2 a, z 4 , deci z1 bba .
*

Fig.6.1.2

Fig.6.1.3 Arborele de generare pentru

z uz 3i z 2 z 4i y

Ca urmare exist i un arbore de generare extins (Fig.6.1.3). Arborele genereaz


i
i
z b(bb) i aba L(G ) . Avem deci z uz 3 z 2 z 4 y , unde
u b

z 3 bb
z2 a
z4
y ba

6.2. Algoritmi de decizie pentru limbaje independente de context


24

Exist cteva ntrebri privind limbajele independente de context (CF) la care se poate
rspunde
- dac un limbaj este vid, finit sau infinit
- dac un cuvnt este dintr-un limbaj CF
Dar i ntrbri la care nu se poate rspunde (nu exist algorimi de decizie), de exemplu:
- dac dou limbaje CF sunt echivalente
- dac un limbaj independent de context are drept complement tot un limbaj
independent de context
- dac un limbaj independent de context este ambiguu
Teorema 6.1. Exist un algoritm pentru a determina dac limbajul generat de o
gramatic independent de context este vid sau nu.
Teorema 6.2. Exist un algoritm pentru a determina dac o gramatic G genereaz un
numr finit sau infinit de cuvinte.
6.3. Probleme de apartenen
Fie G (VN ,VT , S , P) o gramatic CF i x VT* . Se poate decide dac x L(G ) ?
Soluia 1. S trecem la forma normal Greibach G ' (VN ' ,VT ' , S , P' ) care
genereaz

L(G) \ {} .S

presupunem c x i

x L(G ' ) x L(G ) .

Orice regul n

gramatica n form normal Greibach adaug la fiecare pas un singur simbol terminal.
Dac x are o derivare n G ea se face n x pai.
n G fiecare variabil nu are mai mult de k reguli. Rezult c exist cel mult k x
derivri stngi pentru un ir de lungime x . Aceste derivti, n numr finit pot fi
ncercate sistematic. Algoritmul descris are un numr de pai care depinde exponenial
de x
Exist i ali algorimi pentru care numrul de pai depinde de cubul lui x ,
pentru detalii se poate consulta lucrarea[3].

25

7. MAINI TURING
Maina Turing este un model formal introdus de Alan Turing pentru a defini n
mod precis noiunea de calcul mecanic necesar sistemelor formale din logica
matematic. Ulterior maina Turing a devenit cel mai general model al calculatoarelor
din vremea noastr.
7.1. Modelul mainii Turing
Un model formal pentru o procedur efectiv de calcul trebuie s ndeplineasc
urmtoarele proprieti: procedura s poat fi descris finit si procedura trebuie s
constea din pai discrei, fiecare pas putnd fi executat mecanic.
Maina pornete dintr-o stare particular s zicem 0 iar instruciunile sunt
intreoduse sub form de iruri de simboluri binare. Maina ncepe s citesc i s se
mite determinat de starea intern i de simbolurile de intrare. Continu pn ajunge la
STOP; este afiat apoi rezultatul calculului pe band i activitatea mainii se ncheie.
Modelul este ilustrat mai jos:

Fig.7.1.1
Maina se compune din un dispozitiv de comand cu un numr finit de stri, o
band de intrare divizat n celule si un cap de citire care trece prin faa fiecrei celule
Banda are o celul n extremitatea stng, dar n dreapta este infinit. Fiecare
celul poate conine exact un simbol dintr-o mulime finit de simboluri. La nceputul
funcionrii, primele n celule conin simboluri de intrare dintr-un alfabet. Restul de
celule, n numr infinit conin cte un simbol special care marchaz blank-ul i care
nu aparine alfabetului de intrare.
Depinznd de simbolul citit i de starea dispozitivului de comand, maina poate
face una dintre urmtoarele aciuni: s-i schimbe starea, sa tipreasc un simbol pe
banda de citire schimbnd ce era acolo si s mite capul de citire cu o celul la dreapta
sau la stnga.
Definiia 7.1. Se numete main Turing un 7-uplu M (Q, , , , q0 , B, F ) , unde Q este
mulimea strilor, este alfabetul de pe band, este alfabetul de intrare,
B , B este simbolul utilizat pentru blank, F Q sunt strile finale. iar este o
26

funcie parial de trecere definit dup cum urmeaz: : Q Q {S , D} , S


nseamn deplasare la stnga, iar D la dreapta q0 este starea iniial
Definiia 7.2. O descriere instantanee pentru o main Turing este un ir 1q 2 unde
q, q Q este starea curent , 1 , 2 * sunt irurile care conin toate simbolurile de pe
band, pn la simbolul cel mai din dreapta, diferit de B.
Vom presupune c Q . La sfrit se presupune c urmeaz s fie citit simbolul din
stnga lui 2 . Dac 2 , capul de citire va trece pe un B. O micare n M se descrie
astfel: fie X 1 ... X i 1qX i ... X n o descriere instantanee. Dac presupunem c
( q, X i ) ( p, Y , S ) ,
atunci
micarea
mainii
Turing
va
fi
X 1 ... X i 1 qX i ... X n

X 1 ... X i 2 pX i 1YX i 1 ... X n

- dac i-1=n , atunci X i B


- dac i=1, nu exist descriere intantanee, banda nu se poate mica la stnga
- dac i >1, atunci X 1 ... X i 1qX i ... X n M X 1 ... X i 2 pX i 1YX i 1 ... X n .
ntr-un alt caz, s presupunem c (q, X i ) ( p, Y , D) , atunci micarea va fi
X 1 ... X i 1 qX i X i 1 ... X n M X 1 ... X i 1YpX i 1 X i 1 ... X n ; dac i-1=n, irul X i ,..., X n este vid i
partea dreapt este mai lung dect partea stng. Dac dou descrieri instantanee sunt
relaionate prin M , spunem c a doua rezult din prima printr-o singur mutare. Cnd
o descriere se obine dintr-o alta printr-un numr finit de mutri relaia este notat cu
M.
Definiia 7.3. Limbajul acceptat de M (Q, , , , q0 , B, F ) este mulimea cuvintelor din
* , care-l duc pe M ntr-o stare final
L ( M ) {w w q w
p , p F , , } .
Fiind dat o main Turing care recunoate un limbaj L, putem presupune c maina
Turing se oprete atunci cnd irul de intrare este acceptat. Pentru cuvinte care nu sunt
acceptate s-ar putea ca maina Turing s nu se opreasc niciodat.
Exemplul 7.1. Proiectarea unei maini Turing care s accepte limbajul
L {0 1 n 1} . Vom construi M (Q, , , , q 0 , B , F ) i vom lua
*

Q {q0 , q1 , q2 , q3 , q4 )
{0,1}
{0,1, X ,Y , B}
F {q4 }

(Fiecare stare reprezint o instruciune, sau un grup de instruciuni dintr-un program)


Vom defini funcia de trecere cu urmtoarele reguli:
(1)

( q0 ,0) ( q1 , X , D)

( 2)

( q0 , Y ) (q3 , Y , D )

(3)

(q1 ,0) ( q1 ,0, D )

( 4)

( q1 ,1) ( q 2 , Y , S )

(5)

(q1 , Y ) ( q1 , Y , D )

( 6)

( q2 ,0) (q 2 ,0, S )

(7 )

(q2 , X ) (q0 , X , D)

(8)

(q 2 , Y ) (q2 , Y , S )

(9)

( q3 , Y ) (q3 , Y , D )

(10)

(q3 , B ) (q 4 , B, D)

27

S urmrim calculul mainii cnd pe banda de intrare se prezint irul 0011B...


La pornire, capul de citire este n dreptul primului 0 i se aplic regula (1). Vom avea:

(1)

Regula aplicat

Situaia pe band i
poziia capului de citire

(q0 ,0) (q1 , X , D)

X 011

(3) (q1 ,0) (q1 ,0, D)

X 0 11

( 4)

(q1 ,1) (q2 , Y , S )

X 0Y 1

(6)

(q2 ,0) ( q2 ,0, S )

X 0Y 1

(7 )

( q 2 , X ) ( q0 , X , D )

X 0Y 1

(1)

(q0 ,0) (q1 , X , D)

XX Y 1

(5)

( q1 , Y ) ( q1 , Y , D)

XXY 1

( 4)

(q1 ,1) (q2 , Y , S )

XX Y Y

(8)

( q2 , Y ) ( q 2 , Y , S )

X X YY

(7 )

( q 2 , X ) ( q0 , X , D )

X XYY

(2)

( q0 , Y ) ( q3 , Y , D )

XXY Y

(9) ( q3 , Y ) (q3 , Y , D)

XXYY B

(10)

XXYYB B

(q3 , B ) (q4 , B, D )

STOP

Rezult c irul 0011 este acceptat de maina Turing descris.


7.2. Limbaje i funcii calculabile
Definiia 7.3. O mulime pentru care exist un algoritm de generare a elementelor sale
se numete mulime recursiv numrabil
Definiia 7.4. Un limbaj acceptat de o main Turing se numete limbaj recursiv
numrabil.
Clasa limbajelor recursiv numrabile conine clasa limbajelor independente de context.
Dac L(M) este un limbaj recursiv numrabil, atunci orice main Turing care-l
recunoate nu se va opri din funcionare cnd va citi iruri care nu sunt din L(M).
Dac w L(M ) , maina M s-ar putea opri. Atta vreme ct M funcioneaz, citind ceva
de pe banda de intrare, nu putem spune dac acel cuvnt va fi acceptat sau maina va
funciona indefinit.
O submulime a limbajelor recursiv numrabile este cea a mulimilor recursive.
Definiia 7.5. O mulime
recursiv numrabil se numete recursiv dac i
complementara ei este recursiv numrabil.
Definiia 7.6. Se numete recursiv un limbaj acceptat de cel puin o main Turing care
se oprete la toate irurile de intrare .
(Oprirea poate fi sau nu precedat de acceptare)
28

7.3. Maina Turing calculator pentru funcii ntregi


Se consider o reprezentare special a ntregilor pe banda de intrare. Reprezentare
ntregilor se va face n sistem unar. ntregul i se va reprezenta ca 0 i .
Dac o funcie depinde de i1 ,...ik , atunci aceti ntregi vor fi plasai pe band ca
0 i 10 i 1...10 i .
Dac maina Turing se oprete (ntr-o stare final sau nu) avnd pe band 0 m , atunci
vom pune f (i1 ,...ik ) m .
Trebuie s observm c f nu are ntotdeauna o valoare pentru orice i1 ,...ik .
Definiia 7.7. Dac f (i1 ,...ik ) este definit pentru orice i1 ,...ik , atunci f este o funcie
total recursiv.
Exemple de funcii total recursive: n!, [log 2 n], 2 2 .
Definiia 7.8. O funcie f (i1 ,...ik ) calculabil de ctre o main Turing se numete
funcie parial recursiv.
1

7.4. Reprezentarea mainilor Turing prin diagrame


Pentru a reprezenta o main Turing printr-o diagram vom adopta urmtoarele
convenii.
Strile mainii vor fi nodurile grafului de reprezentare. Arcele vor reprezenta trecerile
dintr-o stare n alta.
Arcele vor fi marcate prin s1 / s 2 J , unde s1 reprezint simbolul de intrare s 2 reprezint
simbolul ce se nscrie pe band, iar J indic micarea capului de citire la stnga sau la
dreapta.
S exemplificm acest mod de reprezentare cu urmtoarea diagram a mainii Turing
care mut spre dreapta o secven i pune un B n faa secvenei respective.

Fig.7.4.1
Maina Turing corespunznd diagramei de mai sus este
Q {q0 , q1 , q 2 , q3 },

{a, b, B},

{a, b, },

F {q3 }

Funcia de trecere o definim mai jos:


29

M (Q, , , , q 0 , B, F ) ,

unde

(1) (q0 , a ) (q1 , BD)

(2) (q0 , B ) (q3 , B )

(3) (q0 , b) (q 2 , BD)

(4) (q1 , a ) (q1 , aD)

(5) (q1 , B ) (q3 , a )

(6) (q1 , b) (q 2 , bD )

(7) (q 2 , a ) (q1 , bD )

(8) (q 2 , b) (q 2 , bD )

( 9) ( q 2 , B ) ( q 3 , b )

S urmrim funcionarea mainii cnd la intrare se prezint irul abbaB. Maina trebuie
ca la teminarea citirii s se opreasc i pe band s apar irul BabbaB.
Regula aplicat
Situaia benzii i poziia capului de citire
( q0 , a ) ( q1 , BD)

B bbaB

(q1 , b) (q2 , bD)

B abaB

(8) (q2 , b) ( q2 , bD)

B abaB

(7 )

Babb B

(1)

(6)

(8)

(q2 , a ) (q1 , BD)


(q1 , B ) ( q3 , A )

STOP

Babba

8 MAINILE TURING I INTELIGENA ARTIFICIAL


30

8.1. Problema completitudinii sistemelor formale


Alan Turing a imaginat posibilitatea de a descrie o procedur de calcul cu ajutorul
mainii. Turing dorea s rezolve cea de-a zecea problem a lui Hilbert care s-ar putea
pune n felul urmtor: Exist un prodedeu mecanic care s permit n principiu
rezolvarea, una dup alta a tuturor problemelor de matematic (adic a tuturor
problemelor aparinnd unei clase convenabil alese) ?
Originea unei astfel de probleme se afl n apariia paradoxurilor teoriei
mulimilor. Iat un astfel de paradox numit paradoxul lui Russell:
Fie R mulimea tuturor mulimilor care nu se conin ca element.
S analizm situaia lui R: dac R nu se conine ca element, nseamn c pe baza
definiiei sale, R trebuie s fac parte din R, si, invers, dac R se conine ca element,
atunci R este o mulime care nu se conine ca element (aa cum este definit R).
Ambele ipoteze ne conduc la o contradicie.
Kurt Godel a demonstrat c ntr-un sistem formal exist propoziii, de exemplu P
care nu pot fi demonstrate, dar nici negarea lui P nu poate fi demonstrat.
O formulare a teoremei lui Godel ar fi urmtoarea: nici un sistem formal, respectnd
regulile matematice ale demonstraiei corecte, nu poate, nici chiar n principiu s
demonstreze toate propoziiile adevrate din aritmetica obinuit.
Turing a reformulat problema a zecea a lui Hilbert n modul urmtor:
8.2. Problema opririi
S se decid dac a n-a main Turing se va opri sau nu vreodat atunci cnd
acioneaz asupra numrului m.
Dac Tn aplicat lui m nu se oprete, vom scrie Tn (m) .
Turing a artat c nu exist un procedeu algoritmic complet automat de a rspunde la
probleme opririi.
S notm cu N mulimea tuturor propoziiilor dintr-un sistem formal i cu P mulimea
teoremelor dintr-un sistem formal adic mulimea propoziiilor care pot fi demonstrate n
sistemul formal. Turing a artat c mulimea P este o mulime numrabil recursiv dar
nu este i recursiv.
8.3. Maina Turing universal
Fie T o main Turing i toate instruciunile sale, prezentate pe band , s fie
codificate cu 0 i 1. Aceast band s fie banda de intrare ntr-o alt main Turing U
numit main Turing universal care va aciona asupra datelor de intrare la fel ca
maina T.
Se poate imagina un sistem de numerotare a mainilor Turing. Dac se consider
lista de instruciuni care definesc o main T codificate cu 0 i 1, numrul binar rezultat
va fi numrul mainii T.
31

De exemplu, maina UN+1, care plaseaz un 1 suplimentar la sfritul unei


secvene de 1 are numrul 177642.
Dac Tn este maina Turing cu numrul n , s fie m numrul binar pe care maina
l are de citit, dup care se oprete. Numrul situat la stnga pe band s fie p. Vom scrie
atunci Tn (m) p .
Ca o consecin, Turing a artat c nu poate exista un algoritm general de decizie.
i ca urmare se vede c algorimii nu decid asupra adevrului. Valabilitatea unui algoritm
trebuie stabilit prin mijolace exterioare sistemului.
8.4. Mainile Turing i activitatea creierului
n ncercarea de a gsi o formalizare a conceptului de main Turing a
descompus activitatea mainii n operaii elementare. Turing considera c nsui creierul
uman este o astfel de main , aa nct orice activitate ce are loc n creierul unui
matematician cnd acesta se gndete la o problem de matematic trebuie s se
desfoare sub forma unui procedeu mecanic. Dar tocmai preciznd ce se nelege prin
procedeu mecanic a rezultat c exist operaii matematice, bine definite care nu sunt
mecanice. Acesta este un rezultat cu implicaii i n domeniul inteligenei artificiale. ntradevr, inteligena artificial urmrete s imite comportamentul inteligent prin mijloace
computaionale.
ntr-o concepie pe care Roger Penrose o numete concepia AI tare
A) se susine c toat gndirea este calcul. Chiar tririle care implic contien
sunt produse prin executarea unor calcule.
ntr-o aa numit concepie AI slab
B) contiina este o caracteristic a aciunilor fizice ale creierului. Orice aciune
fizic poate fi simulat computaional.
Att A) ct i B) accept c un robot comandat de un calculator se poate
comporta convingtor, ca o persoan obinuit.
Roger Penrose utilizeaz rezultatele lui Turing pentru a respinge att pe A) ct i
pe B), susinnd c nu poate fi admis posibilitatea unei simulri efective a contiinei de
ctre vreun robot controlat de un calculator, c adic, efectele externe ale contiinei nu
pot fi simulate computaional n mod adecvat.

32