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
L1 {}
L3 {a 2 n N }
CV (L) V * \ L
L0 {}
Li 1 Li L
L* {} L L2 ... Ln ...
n N
(notm
3
L*
L aceai mulime, fr {} ).
i 1
L ,
i 0
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 *
A, B V N ,
a V * .
forma
A aB
Aa
L {}
G (V N ,VT , S , P )
cu o
A aB
A a,
A, B V N , a VT
' ( q, ) q
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 ,
q0
q1
q2
q1
q0
q3
q2
q3
q0
q3
q2
q1
q0 :
Deci
x T (M ) .
' ( p, a ),
x * , a
p ( q , x )
'
extins la (q) :
*
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 }
Fig.2.2.3
S se demonstreze c
T (M ) T (M ' ) .
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 ) ,
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
Fig.3.2.1
10
Cb (00) * 0
C d (00) 01
C e 0 100
C c (00) *1
C f 0*10 *1(0 1) *
C1 0*
C 2 0 *10*
C3 0 *10*1(0 1) *
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
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 *
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 *
13
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
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 ...
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 } ,
: n n ,
i ( X 1 ,... X n )
unde
U*.
s (i )
i ( X 1 ,... X n )
i 1
X 1 1 ( X 1 , , X n )
X ( X , , X )
n
n n 1
S a
A bB
Bc
Sistemul de ecuaii va fi
17
Aa
(1)
(2)
S aA a
A aA bB a
(3)
B bB c
B b c,
*
A aA bb *c a
i deci
A a (bb c a ) a bb c a a .
*
S aa *bb * c aa *
iar limbajul
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
Un automat
( p, )
vom
scrie:
a : ( q, z ) ( p, ) ,
M
unde
a {},
, * ,
z i
( p , ) ( q, a , z )
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 .
19
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
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 .
*
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}
(1)
N
SA
B AB
A aB
{S , A, B}
SB
B BA
A bS
Ab
V0 {}
Deoarece S A b
i2
V2 { A} {S}
i3
V3 { A, S } V3 V2
( 2)
N
{S , A}
S w1 Aw2 w1 w3 w2 ,
P ( 2) {S A,
iar
A bS ,
A b}
L(G ) .
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
Ca B
A Ca S
C a D1
B Cb S
C b D2
D1 AA
D2 BB
Ca a
Cb b
G (VN ,VT , S , P ) ,
23
atunci
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
z uz 3i z 2 z 4i y
z 3 bb
z2 a
z4
y ba
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
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
Q {q0 , q1 , q2 , q3 , q4 )
{0,1}
{0,1, X ,Y , B}
F {q4 }
( q0 ,0) ( q1 , X , D)
( 2)
( q0 , Y ) (q3 , Y , D )
(3)
( 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
(1)
Regula aplicat
Situaia pe band i
poziia capului de citire
X 011
X 0 11
( 4)
X 0Y 1
(6)
X 0Y 1
(7 )
( q 2 , X ) ( q0 , X , D )
X 0Y 1
(1)
XX Y 1
(5)
( q1 , Y ) ( q1 , Y , D)
XXY 1
( 4)
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
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 }
M (Q, , , , q 0 , B, F ) ,
unde
(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
B abaB
B abaB
(7 )
Babb B
(1)
(6)
(8)
STOP
Babba
32