Sunteți pe pagina 1din 90

Complemente de matematic

a
pentru
Computer Science
Mircea Cr
asm
areanu

ii

Cuprins
1 Monoidul cuvintelor unui alfabet

2 Limbaje formale

3 Expresii regulate

15

4 Variet
ati de monoizi

21

5 Automate

29

6 Automate echivalente

33

7 Automat minimal

39

8 Actiuni

45

9 Gramatici si limbaje generate. Ierarhia Chomsky

53

10 Problema cuvintelor

57

11 Functii recursive

61

12 Multimi si limbaje recursiv enumerabile

67

13 Entropia, energia si corelatia surselor de informatie

71

14 Compilatoare 1: Analiz
a lexical
a

77

Bibliografie

81

Index

83

iii

iv

CUPRINS

Cursul 1

Monoidul cuvintelor unui


alfabet
In acest curs se deneste una din notiunile de baza ale ntregului curs.
Definitia 1.1 Numim alfabet o multime nevida ale carei elemente le
numim simboluri sau litere.
Exemple 1.2 i) = B = {0, 1} este alfabetul binar iar = {0, ..., 9}
este alfabetul zecimal. Alfabetul {A, ..., Z} are 26 de litere.
ii) Alfabetul ASCII (American Standard Code for Information Interchange)
contine 128 de simboluri pentru majoritatea computer languages.
In general vom utiliza alfabete nite dar exista si aspecte teoretice de
mare importanta ce apeleaza la alfabete innite, de cardinal alef zero=cardinalul multimii numerelor naturale N adica alfabete innit numarabile.
Definitia 1.3 Numim cuv
ant nevid peste o aplicatie w : Nk :=
{1, ..., k} cu k numar natural nenul numit lungimea cuv
antului w si
+
notat l(w) sau |w|. Fie multimea cuvintelor nevide.
Vom nota w = w(1)w(2)...w(k). Din motive tehnice se considera si
cuv
antul vid dat de functia vida si notat (sau ) avand l() = 0.
Multimea tuturor cuvintelor (stringurilor) peste o notam si va avea un
rol important n cele ce urmeaza. Deci = + {}.
Fie k multimea cuvintelor de lungime k; deci 0 = {} si 1 = .
Avem = k0 k . Elementele lui k le mai numim k-cuvinte.
Exemple 1.4 i) Dat a denim ak prin a0 = respectiv ak = a...a
unde n membrul drept a apare de k ori. Deci ak k .
ii) Pentru alfabetul binar avem 2 = {00, 01, 10, 11} si
1

M. Crasmareanu

3 = {000, 001, 010, 100, 011, 101, 110, 111}.


iii) Exemplul precedent sugereaza ca daca card = n atunci cardk = nk .
Definitia 1.5 Cuvintele w1 , w2 le numim egale si scriem w1 = w2
daca apartin uneia din situatiile urmatoare:
I) l(w1 ) = l(w2 ) = 0 adica w1 = w2 = ,
II) l(w1 ) = l(w2 ) = k 1 n care caz cerem ca pentru orice i Nk sa avem
w1 (i) = w2 (i).
Dupa cum era de asteptat avem:
Propozitia 1.6 Egalitatea este o relatie de echivalent
a pe .
Demonstratia Se verica (la Seminar) reexivitatea, simetria si tranzitivitatea. 
Vrem sa structuram multimea tuturor cuvintelor si introducem n acest
scop:
Definitia 1.7 Numim concatenare sau juxtapunere pe aplicatia :
, (w1 , w2 ) w1 w2 data de:
I) = si w = w = w,
II) w1 w2 : N|w1 |+|w2 | este denita prin:
II1) w1 w2 (i) = w1 (i) daca i N|w1 | ,
II2) w1 w2 (i) = w2 (i |w1 |) altfel.
Reamintim ca numim semigrup o pereche (S, ) cu S multime nevida si
o lege de compozitie asociativa pe S iar un monoid este un semigrup
avand un element neutru.
Exemple 1.8 i) Multimea drumurilor nchise (loop-uri) dintr-un varf
xat al unui graf formeaza mpreuna cu operatia de concatenare un monoid
n care element neutru este drumul nul. Din acest exemplu si Exemplul
1.4iii) rezulta ca anumite metode combinatoriale si de teoria grafurilor vor
utile n continuare.
ii) Alte exemple vor discutate la Seminar.
Obtinem astfel structuri remarcabile pe multimi de cuvinte:
Teorema 1.9 i) (+ , ) este semigrup.
ii) ( , , ) este monoid.
iii) l : ( , , ) (N, +, 0) este morfism de monoizi: l(w1 w2 ) = l(w1 ) +
l(w2 ).
Observatii 1.10 i) Daca card 2 atunci + si sunt necomutative.
In adevar, pentru alfabetul binar e w1 = 10 si w2 = 0; avem w1 w2 = 100 =
w2 w1 = 010.

Cursul 1

ii) Pentru simplicarea scrierii, la concatenarea unor cuvinte se pot utiliza


puteri pentru stringuri ce se repeta. De asemeni, paranteze pentru stringuri
de lungime mai mare ca 1 ce se repeta. Atentie, puterea a doua a lui 01, i.e.
0101, se scrie (01)2 si nu 012 care este 011.
Un motiv pentru care structura algebrica a acestor multimi de cuvinte
este bogata n proprietati este acela ca sunt liber generate.
Definitia 1.11 i) Semigrup S se numeste generat de multimea nita
X S daca orice element din S se scrie ca produs de elemente din X:
pentru orice a S exista x1 , ..., xk X asa ncat a = x1 ...xk . Spunem
despre X ca este multime de generatori pentru S. Monoidul (M, , e) se
numeste generat daca semigrupul SM = M \ {e} este generat.
ii) S se numeste liber daca exista o multime de generatori X pentru care
descompunerea oric
arui element a S ca mai sus este unica. M este liber
daca SM este liber.
Teorema 1.12 + si sunt liber generate de .
Exemple 1.13 i) Monoidul cu un singur element (cel neutru) se considera, prin denitie, generat de multimea vida. Tot prin conventie, acest
monoid este liber.
ii) N este liber cu generatorul {1}. Pana la un izomorsm, {e} si N sunt
singurii monoizi liberi comutativi.
iii) Z este generat de {1, +1} dar nu este liber deoarece, spre exemplu,
2 = (+1) + (+1) = (+1) + (1) + (+1) + (+1).
iv) Este posibil ca multimea de generatori ai unui monoid sa nu e unica.
Astfel, pentru Z avem si generatorii {2, 3}. Dar daca M este liber atunci
multimea generatorilor este unica.
Un rezultat foarte important pentru cele ce urmeaza este Proprietatea
de universalitate a monoizilor liberi care exprima faptul ca monoizii
liberi sunt obiecte initiale n categoria monoizilor:
Teorema 1.14 Fie M liber generat de GM , M un monoid oarecare si
f : GM M . Atunci exist
a si este unic F : M M morfism de monoizi
ce extinde pe f .
Demonstratie Fie a M oarecare si descompunerea sa unica a =
x1 ...xk . Denim F (a) = f (x1 )...f (xk ). 
Incheiem lista proprietatilor importante ale monoizilor liberi cu:
Propozitia 1.15 Dat monoidul liber M exist
a o multime finit
a si un
morfism surjectiv de monoizi f : M .

M. Crasmareanu

Demonstratie Fie ce genereaza liber pe M si incluziunea f : M .


Aplicam proprietatea de universalitate. 
O alta proprietate remarcabila a monoizilor liberi este data de regulile
de simplificare pe care o exemplicam direct pe monoidul cuvintelor. Fie
deci x, y, z, t cu xy = zt:
1) daca l(x) = l(z) atunci y = t,
2) daca l(x) < l(z) atunci exista m M asa ncat z = xm si y = mt,
3) daca l(x) > l(z) atunci exista m M astfel ca x = zm si t = my.
Definitia 1.16 Dat a si w notam |w|a numarul de litere a din
cuvantul w.
Exemple 1.17 |aba|a = 2, |aba|b = 1, |aba|c = 0; l(w) = a |w|a .
Definitia 1.18 i) Fie (S, ) un semigrup si T S submultime nevida.
Spunem ca T este subsemigrup al lui S daca T 2 T i.e. pentru orice x, y T
avem xy T . Daca S este monoid cu elementul neutru 1 spunem ca T este
submonoid daca este subsemigrup si 1 T .
ii) Un semisubgrup al lui S ce este grup (n sine nsusi) se va numi subgrup
al semigrupului (monoidului) S.
Pagini Web cu o parte din notiunile acestui curs:
1) http://en.wikipedia.org/wiki/Monoid
2) http://en.wikipedia.org/wiki/Initial and terminal objects
3) http://en.wikipedia.org/wiki/Universal property
SEMINARUL 1
S1.1 i) Sa se arate ca elementul neutru al unui monoid M este unic.
ii) Sa se arate ca x M oarecare admite cel mult un invers.
Rezolvare i) Fie e si e elemente neutre. Deoarece e este neutru avem
= ee iar deoarece e este neutru avem e = ee .
ii) Fie x si x inverse pentru x. Avem x = ex = (x x)x = x (xx ) =
x e = x .

S1.2 Sa se arate ca G(M ) = {x M ; x admite invers x1 } este grup;


numit grupul unit
atilor lui M .
Rezolvare Avem ca e G(M ) deoarece e = ee = ee adica e1 = e.
Daca x G(M ) atunci si x1 G(M ) cu (x1 )1 = x.
S1.3 Fie S o multime nevida. Sa se arate ca F (S) = {f : S S}
este monoid relativ la compunerea functiilor. Cine este grupul unitatilor lui
F (S)?

Cursul 1

Rezolvare Stim ca operatia de compunere a functiilor este asociativa


iar element neutru este 1S functia identica. Avem ca G(F (S)) = Bij(S) =
{f : S S; f bijectie}.
S1.4 Se cer a, b N asa ncat legea de compozitie liniar
a x y = ax + by
sa determine pe N o structura de monoid comutativ.
Rezolvare Din comutativitatea x y = y x avem ax + by = ay + bx
ceea ce nseamna (a b)(x y) = 0 pentru orice x, y numere naturale;
alegand x = y rezulta a = b si deci x y = a(x + y). Asociativitatea
a[a(x + y) + z] = a[x + a(y + z)] conduce la a2 = a. Cazul a = 0 este trivial
si-l eliminam; rezulta a = 1. In concluzie, avem (N, +, e = 0) ca unica
lege de compozitie liniara ce da structura de monoid comutativ pe multimea
numerelor naturale.
S1.5 Fie (M, ) si (N, ) doua multimi nzestrate cu legi de compozitie
si f : M N o surjectie. Sa se arate ca daca M este monoid (abelian)
atunci N este monoid (abelian).
S1.6 ! Sa se arate ca este posibila existenta unui subsemigrup T ale
unui monoid M asa ncat T este monoid fara a submonoid al lui M .
Rezolvare Fie M = N4 = {1, 2, 3, 4} cu legea xy = max{x, y}. Avem
imediat ca (M, , 1) este monoid. Fie T = {2, 3, 4}; T este subsemigrup al
lui M dar nu este submonoid deoarece 1 nu apartine lui T . Pe de alta parte
(T, , 2) este monoid.
S1.7 Elementul e al semigrupului S se numeste idempotent daca e2 = e.
Denim pentru idempotentul e multimea He = {x S; xe = ex = x, y
S xy = yx = e}.
i) Sa se arate ca He este multime nevida.
ii) Sa se arate ca He este subsemigroup al lui S.
iii) Sa se arate ca He este grup.
iv) Se cer idempotentii si grupurile corespunzatoare He pentru monoidul de
la exercitiul precedent.
v) Sa se arate ca un semigrup nit S admite idempotenti.
Rezolvare i) e He .
ii) Fie a, b He cu elementele corespunzatoare a , b . Avem: (ab)e = a(be) =
ae = e si e(ab) = (ea)b = eb = e respectiv (ab)(b a ) = a(bb )a = aea =
aa = e si (b a )(ab) = b (a a)b = b eb = b b = e.
iii) Fie a He cu corespondentul a si sa consideram a1 = ea e. Avem:
aa1 = (ae)a e = aa e = ee = e si a1 a = ea (ea) = ea a = ee = e. Mai

M. Crasmareanu

trebuie aratat ca a1 He : a1 e = ea ee = a1 si ea1 = eea e = a1 .


iv) Orice element e N4 este idempotent si He = {e}.
S1.8 Fie o relatie de echivalenta pe semigrupul (monoidul) S. Spunem
ca este o congruenta
pe S daca a b si s S implica sa sb si as bs.
Sa se arate ca n acest caz S/ este un semigrup (monoid).
Rezolvare Denim [a][b] := [ab] si trebuie aratata buna denire. Daca
a c si b d atunci ab cb si cb cd de unde rezulta ab cd. Faptul ca
S/ este semigrup (monoid cu identitatea [1]) este imediat.
Exemplu Egalitatea pe monoidul cuvintelor este o congruenta.
S1.9 i) Sa se arate ca un morsm de semigrupuri f : S T induce o
congruenta pe S.
ii) Invers, data congruenta pe S avem ca : S S/ , (a) = [a] este
morsm de semigrupuri.
In concluzie, exista o corespondenta naturala ntre congruente si morsme
de semigrupuri.
Rezolvare i) Denim pe S prin: a b daca f (a) = f (b). Cum
egalitatea este o echivalenta avem ca este o echivalenta pe S. Fie s S
oarecare. Cum f este morsm avem: f (as) = f (a)f (s) = f (b)f (s) = f (bs)
si f (sa) = f (s)f (a) = f (s)f (b) = f (sb); deci este o congruenta pe S.
ii) (ab) = [ab] = [a][b] = (a)(b).
S1.10 Fie f : S T morsm surjectiv de semigrupuri si relatia de
echivalenta indusa de f . Atunci f : S/ T, f ([a]) = f (a) este un
morsm bijectiv (i.e. izomorsm) de semigrupuri si notam S/ T .
Rezolvare Sa aratam buna denire: [a] = [b] implica f (a) = f (b) i.e.
f ([a]) = f ([b]). Fie t T ; cum f este surjectiv a exista s S asa
ncat f (s) = t, rezulta f ([s]) = t i.e. f este surjectiva. Daca f ([a]) =
f ([b]) atunci f (a) = f (b) i.e. [a] = [b], deci f este injectiva. Avem
si f ([a][b]) = f ([ab]) = f (ab) = f (a)f (b) = f ([a])f ([b]) i.e. f este
morsm de semigrupuri.
S1.11 Fie o multime nevida, T un semigrup si aplicatia f : T .
Atunci exista un unic morsm de semigrupuri g : + T ce extinde pe f
i.e. g(s) = f (s) pentru orice s S.
Rezolvare Fie w + cu expresia w = w(1)w(2)...w(k). Denim
g(w) = f (w(1))...f (w(k)). Avem imediat ca g extinde pe f si ca este morsm
de semigrupuri. Unicitatea rezulta din modul de constructie.

Cursul 2

Limbaje formale
Fixam alfabetul (nit) .
Definitia 2.1 Numim limbaj (formal) peste o submultime L i.e.
L este un element din multimea partilor lui i.e. L P( ). Un element
din L l numim propozitie sau afirmatie (statement n engleza). Daca L
este multime nita spunem ca avem un limbaj finit; n caz contrar avem un
limbaj infinit. Prin conventie, multimea vida se accepta ca limbajul vid
peste orice alfabet la fel ca si {}.
Observatii 2.2 i) = {}; astfel, primul limbaj n-are cuvinte n timp
ce al doilea limbaj are un cuvant.
ii) Limbajele de programare (e.q. Pascal, C, Java) sunt peste alfabetul
ASCII si sunt innite.
iii) Trebuie avuta o mare grija la modul (regula) de denire a unui limbaj. Astfel, avem limbajele peste alfabetul binar L1 = {0n 1n ; n N} si
L2 = {cuvinte cu acelasi numar de 0 si 1} care difera deoarece:
L1 = {, 01, 0011, 000111, ...}, L2 = {, 01, 10, 0011, 1001, 1010, 1100, 0101, ...}.
Observatia 2.3 Dat limbajul nevid L consideram multimea alph(L) =
{a ; u, v a. uav L}. Avem ca alph(L) este alfabetul minimal
peste care poate denit limbajul L.
I) Sa aratam ca alph(L) este nevida.
I1) L; atunci considerand u = v = rezulta ca a = alph(L).
I2) Fie w L, w = . Luand u = si v = w(2)...w(|w|) daca |w| > 1
respectiv v = daca |w| = 1 obtinem ca a = w(1) alph(L).
II) Cum alph(L) si este nita rezulta ca alph(L) este multime nita.
Deci alph(L) este un alfabet.
III) Faptul ca L (alph(L)) este imediat folosind rationamente de tipul
7

M. Crasmareanu

celor de la I.
IV) Faptul ca alph(L) este minimal cu proprietatea III l propunem ca Tema.
Operatii booleene cu limbaje 2.4: din teoria generala a multimilor
avem ca date limbajele L1 si L2 sunt atunci limbaje:
i) reuniunea L1 + L2 := L1 L2 , ii) intersectia L1 L2 ,
iii) complementara L1 := \ L1 .
Datorita structurii algebrice a lui putem deni si produsul L1 L2 =
{uv; u L1 , v L2 } care este evident un limbaj. Este avantajoasa notatia
exponentiala; astfel pentru limbajul L avem limbajele L0 = {}, Ln =
Ln1 L pentru numarul natural nenul n.
Definitia 2.5 Limbajul L se numeste independent la concatenare daca
L n2 Ln = .
Exemple 2.6 i) Pentru alfabetul binar si limbajul L = {01, 110} avem:
L2 = {0101, 01110, 11001, 110110},
L3 = {010101, 0111001, 1100101, 11011001, 0101110, 01110110, 11001110,
110110110}.
ii) Produsul limbajelor este necomutativ. Pentru L1 = {, 101} si L2 =
{0, 0101} avem L1 L2 = {1010, 1010101, 0, 0101} = {0101, 0101101, 0} =
L2 L1 .
Exemplul 2.7 Fie = {1, 2, 3}. L = {21, 213, 1, 2222, 3} este un
limbaj peste si 213222213 L4 L5 deoarece 213, 2222, 1, 3 L iar
21, 3, 2222, 1, 3 L. Totodata 213222213 9 .
M = {2, 13, 222} este limbaj peste si 213222213 L4 L5 M 5 M 7 desi
L M = .
Definitia 2.8 Dat limbajul L denim L+ = n1 Ln numit nchiderea
pozitiv
a respectiv L = n0 Ln numit nchiderea star sau Kleene lui L. (A se
vedea http://en.wikipedia.org/wiki/Stephen Cole Kleene pentru opera sa.)
Observatia 2.9 i) Notatia anterioara provine din faptul ca pentru L =
avem L+ = + si L = .
ii) Pentru limbajul L oarecare avem ca L+ este subsemigrup n + iar L
este submonoid n .
Propozitia 2.10 i) L , L+ = L L = LL , L = LL + {}
ii) L+ dac
a si numai dac
a L,

iii) L1 + L2 (L1 + L2 ) , (L1 L2 ) L1 L2 ,


iii) L1 (L2 L1 ) = (L1 L2 ) L1 ,

Cursul 2

iv) L1 (L2 L1 ) = (L1 L2 ) ,


v) L3 (L1 L2 L3 ) L2 = (L3 L1 L2 )+ .
Definitia 2.11 Limbajul L se numeste regulat daca este vid sau se poate
construi din elementele lui folosind doar operatiile de produs, + si .
Exemple 2.12 i) L = {numere binare nenule} este regulat peste alfabetul binar deoarece L = 1(0 + 1) ; orice numar binar nenul ncepe cu cifra
1 si se continua cu un sir (posibil vid) de 0 si 1. Aici si n cele ce urmeaza,
pentru simplicarea scrierii am renuntat la acolade.
ii) Z se scrie 0 + ( + m)d(0 + d) peste = {0, ..., 9, m = } unde
d = 1 + 2 + ... + 9.
iii) Q = 0 + ( + m)d(0 + d) + ( + m)(0 + (d(0 + d) ))p(0 + d) d peste =
{0, ..., 9, m, p = .} unde . este punctul (n notatia anglo-saxona)=virgula
zecimala.
iv) Numerele binare cu blocuri de 1 avand lungime para=(0 + 11) .
v) Numerele binare continand 1011=(0 + 1) 1011(0 + 1) .
Teorema 2.13 i) Un limbaj finit este regulat.
ii) Dac
a L1 si L2 sunt regulate atunci L1 L2 este regulat.
este regulat.
iii) Dac
a L este regulat atunci L
Definitia 2.14 Date cuvintele w, v spunem ca v este subcuv
ant al

lui w daca exista x, y asa ncat w = xvy. Daca n plus, x sau y difera
de spunem ca v este subcuv
ant propriu al lui w. x l numim prefix sau
initial al lui w respectiv prefix propriu daca difera de ; analog y este sufix
sau terminal al lui w respectiv sufix propriu daca difera de .
O generalizare a Exemplului 2.3 este urmatoarea: pentru w e
SubP (w) multimea subcuvintelor proprii ale lui w. Avem ca SubP (w) este
un limbaj peste . Analog, pornind cu limbajul L obtinem limbajul P (L) =
wL SubP (W ).
Spre exemplu, pentru L = {0, 010, 111} avem P (L) = {0, 1, 01, 10, 11}.
Definitia 2.15([12, p. 55]) Relatia de echivalenta R pe monoidul o
numim cvasicongruent
a daca odata cu uRv avem si xuyRxvy pentru orice
x, y . Daca n plus, R are un numar nit de clase de echivalenta spunem
ca R este de index finit.
Exemple 2.16 i) Orice congruenta este cvasicongruenta.
ii) Fixam limbajul L si denim uRL v daca pentru orice x, y cu l(x) =
l(y) din xuy L rezulta xvy L si invers. Avem imediat ca RL este o elatie
de echivalenta pe .
Propozitia 2.17 RL este o cvasicongruent
a.

10

M. Crasmareanu

Demonstratie Fie u, v, a, b cu l(a) = l(b) si uRL v. Deci aub L


daca si numai daca avb L. Fie a = a x si b = yb cu x, y . Avem
a xuyb L daca si numai daca a xvybl L cu l(a ) = l(b ). Rezulta
xuyRL xvy pentru orice x, y . 
Propozitia 2.18 Limbajul L este saturat de RL adic
a L este reuniunea
claselor de echivalent
a relativ la RL .
Demonstratie Din denitie cu x = y = avem ca uRL v daca avem
echivalenta: u L daca si numai daca v L, ceea ce spune ca orice clasa
de echivalenta relativ la RL este inclusa n L. 
Propozitia 2.19 Orice cvasicongruent
a ce satureaz
a pe L este o rafinare
a lui RL .
Pagini Web utile:
1) http://en.wikipedia.org/wiki/Formal language
2) http://mathworld.wolfram.com/FormalLanguage.html
3) http://planetmath.org/encyclopedia/ImproperLanguage.html
SEMINARUL 2
S2.1 Fie = {1, 2, 3, 4} si limbajele L = {12, 4}, M = {, 3}. Se cer:
i) LM , M L, L2 M , L2 M 2 ,
ii) LM 2 L, M + , LM + , M .
Rezolvare i) LM = {12, 3, 123, 43}, M L = {12, 4, 312, 34}, L2 M =
{1212, 44, 12123, 443}, L2 M 2 = {1212, 44, 121233, 44333}.
ii) LM 2 L = {1212, 44, 123312, 4334}, M + = {, 3, 33, 333, ...}, LM + =
{12, 4, 123, 43, 1233, 433, ...}, M + = M deoarece M .
S2.2 Pentru anterior cate elemente din 4 ncep cu 22?
Rezolvare Avem 4 cifre n ce trebuie aranjate n perechi pentru a
forma ultimele doua cifre ale elementelor cerute=44 = 16. Multimea ceruta
este {2211, 2222, 2233, 2244, 2212, 2221, 2213, 2231, 2214, 2241, 2223, 2232,
2224, 2242, 2234, 2243}.
S2.3 Pentru = {1, 2, 3, 4, 5} se cer:
i) numarul elementelor lui 0 + 2 ,
ii) numarul elementelor lui 6 ce ncep cu 22 si sfarsesc cu 1.
Rezolvare i) |0 + 2 | = 1 + 52 = 26. ii) 53 = 125.
S2.4 Fie de la Ex. 2.1.
i) Cate cuvinte sunt n + de lungime strict mai mica de 5?

Cursul 2

11

ii) Cate cuvinte sunt n de lungime strict mai mica de 5?


iii) Cate cuvinte sunt n + ncepand cu 12 si de lungime strict mai mica
de 5?
Rezolvare i) |1 + ... + 4 | = 4 + 42 + 43 + 44 = 4 + 16 + 64 + 256 =
4(1 + 4 + 16 + 64) = 4 85 = 340.
ii) |0 + ... + 4 | = 1 + 340 = 341.
iii) 40 +41 +42 = 1+4+16 = 21 deoarece multimea ceruta este {12, 12x, 12xy;
x, y }.
S2.5 Se da limbajul L continand pe si alte 8 elemente diferite. Cate
elemente are L2 ?
Rezolvare L2 = L+{xy; x, y L\{}}; deci |L2 | = 9+82 = 9+64 = 73.
S2.6 Pentru = {0, 1, 2} sa se decida daca armatiile urmatoare apartin
limbajului L = (0 + 1) 2(0 + 1) 22(0 + 1) :
i) 120120210, ii) 1222011, iii) 22210101.
Rezolvare i) Nu, deoarece un element din L contine obligatoriu 22 ce
nu apare n armatia data.
ii) Da, scriind (1)2()22(011).
iii) Nu, deoarece un element din L ncepe cu 0 sau 1 iar armatia data ncepe
cu 2.
S2.7 Aceeasi problema pentru = {0, 1, 2, 3},
L = (0+1) 2(0+1)+ 22(0+1+3) si: i) 120122, ii) 1222011, iii) 3202210101.
Rezolvare i) Da, scriind (1)2(01)22().
ii) Nu, caci a treia cifra poate doar 0 sau 1 ori se ncepe cu 2 iar armatia
data nu satisface niciuna din aceste conditii.
iii) Nu, caci un element din L ncepe cu 0, 1 sau 2.
S2.8 Aceeasi problema pentru de la Ex. 2.6, L = (0 + 1) (102)(1 + 2)
si: i) 012102112, ii) 1110221212, iii) 10211111, iv) 102, v) 001102102.
Rezolvare i) Nu, deoarece naintea lui 102 apare 012 (0 + 1) .
ii) Da, scriind 11(102)21212.
iii) Da, scriind (102)11111.
iv) Da, scriind (102).
v) Nu, deoarece dupa 102 apare 102 ce nu apartine lui (1 + 2) .
S2.9 Pentru de la Ex. 2.7 se cere scrierea urmatoarelor limbaje:
i) L = {armatiile ce contin o singura data cifra 2},
ii) L = {armatiile ce contin de trei ori cifra 2},
iii) L = {armatiile ce contin cifra 2},

12

M. Crasmareanu

iv) L = {armatiile ce contin cuvantul 2112},


v) L = {armatiile ce contin cifra 2 n cuvinte de lungime 3}.
Rezolvare i) L = (0 + 1 + 3) 2(0 + 1 + 3) ,
ii) L = (0 + 1 + 3) 2(0 + 1 + 3) 2(0 + 1 + 3) 2(0 + 1 + 3) ,
iii) L = (0 + 1 + 3) 2+ (0 + 1 + 3) ,
iv) L = (0 + 1 + 2 + 3) 2112(0 + 1 + 2 + 3) ,
v) L = ((0 + 1 + 3) 23 )+ .
S2.10 (Program C) Darea de la tastatura a unui caracter, asarea
acestuia, a predecesorului si succesorului si a codurilor ASCII aferente.
//predecesorul si succesorul unui caracter si codurile lor ASCII
#include<iostream.h>
void main ()
{
char w, w1;
cout<< Dati litera:= ;
cin>>w;
w1=w;
cout<< Codul ASCII al literei <<w<< este: <<hex<<int(w)<<
<<dec<<int(w)<<endl;
cout<< Codul ASCII al literei << w<< este: <<hex
<<int(w-1)<< <<dec<<int(w-1)<<endl;
cout<< Codul ASCII al literei <<++w1<< este: <<hex
<<int(w1+1)<< <<dec<<int(w1+1)<<endl;
}
Exemplu:
Dati litera:= H <Enter>
Codul ASCII al literei H este: 48 72
Codul ASCII al literei G este: 47 71
Codul ASCII al literei I este: 49 73
(Pe prima coloana apare codul hexazecimal iar pe a doua coloana cel
zecimal.)
Tem
a Scrieti varianta Pascal a problemei.
S2.11 (Program C) Sa se aseze codurile, n hexazecimal si zecimal,
ale tuturor literelor.
//codurile ASCII ale tuturor literelor majuscule si minuscule
#include<iostream.h>

Cursul 2

13

void main ()
{
char lit;
int i;
for (lit=A; lit<=z; lit++)
{
i=lit;
cout<< Codul ASCII al literei <<lit<< este: <<hex<<i<<
<<dec<<i<< endl ;
}
}
Tem
a Scrieti varianta Pascal a problemei.
S2.12 (Program C) Dat un numar natural se cere caracterul corespunzator.
//conversia din ntreg n caracter
#include<iostream.h>
void main ()
{
int n;
cout<< Dati numarul natural n:= ;
cin>>n;
cout<< Caracterul corespunzator lui <<n<< este:= <<char(n)
<<endl;
}
Exemplu:
Dati numarul natural n:= 321 <Enter>
Caracterul corespunzator lui 321 este:= A
(Un caracter ocupa un singur octet spre deosebire de un ntreg care ocupa
2 octeti. De aceea se calculeaza numarul dat modulo 28 =256, n exemplul
nostru este 65 iar 65 este codul n zecimal al lui A.)
Tem
a Scrieti varianta Pascal a problemei.
S2.13 (Distanta Hamming pe k-cuvinte) Pentru k N denim
dH : k k R+ , dH (a, b) = |{i; a(i) = b(i)}|; deci dH (a, b) contorizeaza
numarul simbolurilor diferite din a si b. Sa se arate ca dH este o metric
a pe
k
:
I) (pozitiva denire) dH (a, b) 0; dH (a, b) = 0 daca si numai daca a = b,

14

M. Crasmareanu

II) (simetria) dH (a, b) = dH (b, a),


III) (inegalitatea triunghiului) dH (a, c) dH (a, b) + dH (b, c).
S2.14 Se da limbajul L nevid ce satisface L2 = L. Sa se arate ca:
i) daca L are un singur element atunci L = {},
ii) daca L are mai mult de un element atunci exista w L cu w = si astfel
ca pentru orice v = avem l(w) l(v). Sa se deduca de aici ca L,
iii) L = L.
Rezolvare i) Fie L = {w} si k = l(w). Avem L2 = {w2 } cu l(w2 ) = 2k.
Din ipoteza rezulta 2k = k i.e. k = 0.
iii) Avem L3 = L2 = L si analog pentru orice n 1 avem Ln = L; deci
L+ = L. Cum L rezulta ca L = L+ + = L + = L.
S2.15 In Matlab, e caracter (char) este reprezentat intern printr-o
valoare numerica corespondenta. astfel, n locul accesarii acestor valori, se
poate lucra cu caractere, asa cum apar acestea pe ecran. Un sir de caractere (string) eset, deci, un vector ale carui elemente sunt codurile numerice
corespunzatoare caracterelor de pe ecran.
Valorile de tip caracter se denesc folosind apostrofuri. De exemplu, se
deneste variabila x, cu valoare de tip caracter si se verica cu functia class
tipul acesteia:
>> x=a;
>> class(x)
ans =
char
Similar pentru siruri de caractere:
>> y=abcd;
>> whos y
Name Size Bytes Class
y
1x4
8
char array
Grand total is 4 elements using 8 bytes

Cursul 3

Expresii regulate
Ca si n cursul precedent xam de la bun nceput un alfabet (nit) .
Definitia 3.1 Consideram simbolurile ), (, +, ce nu apartin lui . Numim expresie regulat
a un cuvant w al alfabetului {, (, ), +, } avand una
din formele urmatoare:
i) w sau w = ,
ii) w = (xy) cu x, y expresii regulate,
iii) w = x + y cu x, y expresii regulate,
iv) w = x cu x expresie regulata.
Fie Rex() multimea expresiilor regulate.
Observatii 3.2 i) Modul de denire al expresiilor regulate este inductiv.
ii) Ca si n cursul precedent uneori vom renunta la parantezele redundante
atunci cand contextul de lucru este evident.
iii) Prin conventie, are prioritatea maxima, urmeaza concatenarea si apoi
+. Astfel, ((((xx) + y) + ((xy))x)) este (xx + y) + xyx.
Definitia 3.3 Aplicatia K : Rex() P( ) denita prin:
a) K() = , K(x) = {x} daca x ,
b) K(xy) = K(x)K(y), K(x + y) = K(x) + K(y),
c) K(x ) = (K(x)) ,
o numim interpretare.
Teorema 3.4 (Kleene) Limbajul L P( ) este regulat dac
a si numai
dac
a apartine imaginii aplicatiei de interpretare K i.e. exist
a o expresie
regulat
a w Rex() asa nc
at L = K(w).
Exemple 3.5 i) Fie x, y . Avem K((x+y)(x+y)) = {xx, xy, yx, yy}.
ii) K( + (x + y) (yx + xyx)) = {x, y} {yx, xyx}.
15

16

M. Crasmareanu

Definitia 3.6 Expresiile regulate w1 , w2 Rex() se numesc echivalente


daca K(w1 ) = K(w2 ). Notam w1 = w2 .
Exemple 3.7 i) w1 + w2 = w2 + w1 si + w = w + = w pentru orice
w1 , w2 , w Rex().
ii) xx y + y = x y.
Propozitia 3.8 Not
and cu E diverse expresii regulate avem urm
atoarele
propriet
ati de echivalent
a:
i) (E ) = E , E1 E2 = (E1 + E2 ) ,
ii)(asociativitate) E1 (E2 E3 ) = (E1 E2 )E3 , E1 + (E2 + E3 ) = (E1 + E2 ) + E3 ,
iii)(distributivitate) E1 (E2 + E3 ) = E1 E2 + E1 E3 , (E1 + E2 )E3 = E1 E3 +
E2 E3 .
Definitia 3.9 Expresia regulata E Rex() se numeste ambigu
a daca
exista o armatie n K(E) care se poate descrie n doua moduri diferite (fara
utilizarea cuvantului vid la concatenare!).
Exemplu 3.10 E = (xy) + (x + y) este ambigua deoarece xy K(E)
se poate scrie xy + si ca element din + (x + y) .
In scrierea unor limbaje de programare gasim expresii de tipul:
< litera >::= A|B|...|Z,

< cifra >::= 0|1|...|9,

< identicator >::=< litera > (< litera > | < cifra >)
ce sunt exact expresii regulate avand variabilele < litera >, < cifra > si
< identicator > iar simbolul | joaca rolul lui +.
Pentru limbajul xat L denim relatia: L = {(w, z) ; uwv
L uzv L, u, v }. Deoarece echivalenta logica este o relatie de
echivalenta avem ca L este o relatie de echivalenta. Sa aratam ca este o
congruenta. Fie (w, z) L si x oarecare. Avem ca (xw, xz) L si
(wx, zx) L n mod evident datorita regulilor de simplicare din monoidul
. L o numim congruenta sintactic
a asociata limbajului L iar monoidul
cat Syn(L) = /L se numeste monoidul sintactic al lui L.
Definitia 3.11 Limbajul L este recunoscut de monoidul M daca exista
un morsm de monoizi : M si P M asa ncat L = 1 (P ).
Propozitia 3.12 L este recunoscut de monoidul sintactic Syn(L).
Demonstratie Aplicatia de proiectie : Syn(L) este morsm de
monoizi si consideram P = (L). Avem evident L = 1 (P ). 
Utilitatea monoidului sintactic este data de:

Cursul 3

17

Teorema 3.13 Urm


atoarele afirmatii sunt echivalente:
i) L este regulat.
ii) Syn(L) este finit; adica L are indice nit.
iii) L este recunoscut de un monoid finit.
Definitia 3.14 i) Dat cuvantul w = x1 ...xn numim reversul sau
cuvantul wR = xn ...x1 . Se noteaza si M i(w) din engleza: mirror = oglinda.
ii) Un cuvant w l numim palindrom daca wR = w. Fie P al() multimea
acestor cuvinte simetrice.
iii) Dat limbajul L denim reversul sau limbajul LR = {wR ; w L}.
Exemplul 3.15 Daca are doua litere distincte a, b atunci {an ban ; n
N } P al().
R
R
R R
R
Propozitia 3.16 i) (L1 + L2 )R = LR
1 + L2 , (L1 L2 ) = L2 L1 , (L ) =
(LR ) .
ii) L este regulat dac
a si numai dac
a LR este regulat.
Inainte de a parasi subiectul limbaje vom cita opiniile deosebit de interesante ale zicianului Fritjof Capra din [1, p. 87-88]: ... limbajul este
un sistem de comunicare simbolica. Simbolurile sale-cuvinte, gesturi si alte
semne-servesc ca indicii pentru coordonarea lingvistica a actiunilor. Aceasta
la randul ei, creeaza notiunea de obiecte, si astfel simbolurile devin asociate
cu imaginile noastre mentale ale obiectelor. In aceeasi carte, la paginile
92-94, este prezentat ASL-American Sign Language ca exemplu de limbaj
utilizat n dialogul cu persoanele surde dar si cu cimpanzeii. La pagina 94
ncepe sectiunea Originile limbajului uman ce prezinta o foarte interesanta
teorie ce pune vorbirea n conexiune cu miscarile mainilor ca ind controlate de aceeasi regiune motoare a creierului (pag. 95). Citam de la pagina
97: Aparitia cuvintelor n comunicarea stramosilor nostri a adus avantaje
imediate. Cei care comunicau vocal, o puteau face si cand aveau mainile
ocupate, sau cand interlocutorul era ntors cu spatele. In cele din urma,
aceste avantaje evolutive vor aduce schimbarile anatomice necesare vorbirii
articulate desavarsite. Timp de zeci de mii de ani, pe masura evolutiei
traiectului nostru vocal, oamenii au comunicat printr-o combinatie de gesturi pecise si cuvinte vorbite pan
a cand, n nal, vorbirea a surclasat semnele
si a devenit forma dominanta de comunicare umana. Chiar si azi, folosim
gesturile atunci cand limbajul vorbit nu ne serveste.

Pagini Web utile:


1) http://en.wikipedia.org/wiki/Regular language
2) http://mathworld.wolfram.com/RegularExpression.html
3) http://planetmath.org/encyclopedia/RegularLanguage.html

18

M. Crasmareanu
SEMINARUL 3
S3.1 Dati exemple de palindroame din limba romana.

Rezolvare 1) cu 3 litere: apa, ara, aba, ata, asa, bob, coc, ere, mim,
rar, pop, sas, tot.
2) cu 4 litere: ?.
3) cu 5 litere: anina, caiac, capac, cojoc, etate, minim, soios, potop, reper,
rotor, tivit. In DEX98, exista n jur de 35 de palindroame de 5 litere.
4) 9 litere: aerisirea.
5) 7 litere: rotitor, elevele, atacata, rotator, rolelor, atasata, Elenele, etajate,
ala-bala, etalate, aerarea.
S3.2 Propozitii si expresii palindromice:
ELE NE SEDUC CU DESENELE.
ICRE, PUI, CIUPERCI.
ELE FAC CAFELE.
ENE PURTA PATRU PENE.
MARO.
O RAMA
RAPITOARE

ERA O TIPA
!

TOV. ION.
NOI VOTAM, MA,
Dialoguri palindromice:
- EREMIA, AI MERE?
- O, N-AM, ANO!
-ACU, DUDUCA!
- IZA, CAZI ?
- DA, CAD!
- A... DA !
Scrisoare palindromica :
DRAGA ILEANA, ACI M-A ATACAT RADA CU LUCA, DAR TAC. A
TA AMICA, ANA-ELIA GARD.
S3.3 (Program C): Dat un numar nr se cer numarul sau de cifre,
suma cifrelor sale, produsul cifrelor nenule, cifra de ordin k (cu k dat de la
tastatura) si inversatul sau.
//operatii cu cifrele unui numar
#include<iostream.h>
#include<math.h>
void main()
{
int n,k, nr, N=0, cifra, rasturnat=0;

Cursul 3

19

int suma=0, prod=1, cifrak;


cout<<dati numarul nr:= ;
cin>>nr;
cout<<dati ordinul cifrei k:= ;
cin>>k;
n=nr;
while (n!=0)
{
cifra=n%10;
N++;
suma+=cifra;
if (cifra!=0) prod*=cifra;
if (N==k) cifrak=cifra;
rasturnat=rasturnat*10+cifra;
n=n/10;
}
cout<<numarul are:= <<N<< cifre<<endl;
cout<<suma cifrelor este:= <<suma<<endl;
cout<<produsul cifrelor nenule este:= <<prod<<endl;
cout<<cifra de ordin <<k<< este:= <<cifrak<<endl;
cout<<numarul rasturnat este:= <<rasturnat<<endl;
}
Exemplu:
Dati numarul nr:= 987654321 <Enter>
Dati ordinul cifrei k:= 3 <Enter>
numarul are:= 9 cifre
suma cifrelor este:= 45
produsul cifrelor nenule este:= 362880
cifra de ordin 3 este:= 3
numarul rasturnat este:= 123456789
Tem
a Scrieti varianta Pascal a problemei.
S3.4 (Program C) Se da un numar natural N mai mare strict ca 2.
Se cere asarea unui sir de lungime N cu primele N/2 elemente n ordine
crescatoare iar ultimele N/2 elemente n ordine descrecatoare.
/*pentru N se cere un sir de lungime N cu primele N/2 elemente crescatoare si urmatoarele elemente descrescatoare*/
#include<iostream.h>
void main ()

20

M. Crasmareanu
{
int N, i;
cout<<Dati N(>2):= ;
cin>>N;
for (i=1;i<=N/2;i++)
cout<<i<< ;
for (i=(N+N%2)/2;i;i)
cout<<i<< ;
cout<<endl;
}

Exemplu: Pentru N=7 apare 1 2 3 4 3 2 1, iar pentru N=8 apare 1 2 3


4 4 3 2 1.
Tem
a Scrieti varianta Pascal a problemei.
S3.5 In Matlab funtia strcat(s1, s2,s3, ...) concateneaza pe orizontalaa sirurile s1, s2, s3, .... Spatiile nale ale sirurilor care se concateneaza
sunt ignorate.
>> s1=elemente ;
>> s2=de baza in ;
>> s3=Matlab;
>> strcat(s1, s2, s3)
ans =
elementede baza inMatlab
Tot pentru concatenare se poate utiliza operatorul [ ]. De aceasta data,
n sirul rezultat avem spatiile libere de la capatul sirurilor s1 si s2:
>> [s1 s2 s3]
ans =
elemente de baza in Matlab
Functia strcvcat(t1, t2, t3, ...) concateneaza pe verticala sirurile t1,
t2, t3, ... constituind un tablou de caractere:
>>
>>
>>
>>
ans
abc
def
ghi

t1=abc;
t2=def;
t3=ghi;
strvcat(t1, t2, t3)
=

Cursul 4

Variet
ati de monoizi
Fie monoidul M si congruentele Ci , i I pe M . Rezulta imediat ca C =
iI Ci este o congruenta pe M . Fie acum R o relatie oarecare pe M gandita
ca submultime n M M si sa observam ca exista congruente ce o includ,
n sensul incluziunii de multimi; spre exemplu congruenta total
a M M.
Aplicand argumentul anterior exista intersectia tuturor congruentelor ce
contin pe R si s-o notam R conform [8, p. 197]; rezulta ca R este cea
mai mica (n sensul relatiei de ordine data de incluziunea submultimilor lui
M M ) congruenta ce contine pe R: daca C este o congruenta si R C
atunci R C.
Definitia 4.1 R se numeste congruenta generat
a de R.
S
a ne amintim ca pentru limbaje regulate eram interesati de congruente
de index nit; n acest sens dam:
Propozitia 4.2 Dat alfabetul si C o congruenta
pe de index finit
exist
a o submultime finit
a T a lui asa nc
at C = T . Cu alte cuvinte,
orice congruent
a de index finit pe monoidul cuvintelor unui alfabet este de
tip sharp.
Demonstratie Fie w si clasa sa de echivalenta [w] relativ la C.
Denim l : /C N prin l([w]) = min{|z|; z [w]}. Cum C este de index
nit exista mC = max{l([w]; [w] /C)}; e kC = mC + 1. Rezulta ca
pentru orice [w] /C exista z [w] cu |z| < kC ; n caz contrar am avea
l([w]) kC 1 + l([w]), fals. Fie T = {(u, v) ; (u, v) C, |u|
C
kC , |v| kC } si e R congruenta T . Deoarece T ki=0
i rezulta ca T
este multime nita.
Avem din modul de denire, T C si deci R C. Mai ramane de aratat
ca C R. Vom proceda prin reducere la absurd. Fie deci (u, v) C cu
21

22

M. Crasmareanu

(u, v)
/ R. Putem presupune, eventual schimband ordinea datorita simetriei
relatiei de echivalenta C, ca |u| |v|; de asemeni, putem considera u si v asa
ncat |u| + |v| este cea mai mica posibila. Nu putem avea |u| < kC deoarece
ar rezulta si |v| < kC ceea ce spune ca (u, v) R. Fie deci |u| kC ;
prin urmare u = zu cu |u | = kC . Exista v [u ] cu |v | < kC . Deci,
(u , v ) T R C. Din [v] = [u] = [zu ] si [zu ] = [zv ] rezulta prin
tranzitivitate ca [v] = [zv ]. Daca am presupune ca (v, zv ) R ar rezulta
din aceasta relatie si u = zu , (zu , zv ) R ca (u, v) R ceea ce contrazice
presupunerea de plecare.
Prin urmare, (v, zv ) C, (v, zv )
/ R si |v|+|zv | < |v|+|zu | = |u|+|v|
ceea ce contrazice ipoteza de minimalitate de la care am plecat.

Definitie 4.3 O submultime nevida I a monoidului M se numeste ideal
daca din a I si s M oarecare rezulta as I si sa I.
Idealele sunt o sursa importanta de congruente. Astfel, dat idealul I
denim relatia CI pe M prin (a, b) CI daca sau a = b sau a si b apartin
simultan lui I. Se verica imediat ca CI este o congruenta pe M avand
drept clase de echivalenta multimile singleton {a} pentru a M \I respectiv
multimea I. Monoidul cat M/CI se noteaza M/I si regulile de calcul sunt:
I) {a}{b} := {ab} daca ab
/ I respectiv I n caz contrar,
II) {a}I = I{a} = II = I
si deci I este un zerou al lui M/I. Prin urmare, putem gandi M/I ca
ind format din M \ I si un zerou iar produsul a doua elemente nenule {a}
si {b} este e elementul nenul {ab} daca acesta nu apartine lui I, e zeroul
dat. Acest tip de congruente se numesc congruente Rees iar monoidul cat
M/I l numim monoid Rees dupa numele celui care le-a introdus.
Definitia 4.4 O clasa V de monoizi o numim varietate daca este nchisa
la considerarea submonoizilor, monoizilor cat si a produselor directe.
Prin urmare, V este o varietate daca:
V1) odata cu M V si S submonoid al lui M avem ca S V ,
V2) odata cu M V si C congruentape M avem ca M/C V ,
V3) odata cu Mi V , i I avem ca iI Mi V .
Exemple 4.5 Sunt varietati urmatoarele clase:
i) Clasa Com a monoizilor comutativi,
ii) Clasa Bm monozilor band
a n care ecare element este idempotent.
Prin contrast, clasa grupurilor nu este varietate; spre exemplu luam grupul
ciclic innit M =< a > iar submonoidul puterilor pozitive {1, a, a2 , ...} nu
mai este grup.

Cursul 4

23

Deoarece din acelasi motiv al limbajelor regulate suntem interesati n


nitudine, putem introduce si:
Definitia 4.6 O clasa V de monoizi niti o numim F-varietate daca
satisface V1, V2 si:
V3F) odata cu Mi V , i {1, 2} avem ca M1 M2 V .
Observatia 4.7 Este evident ca n loc de V3F putem lucra cu:
V3Fn) odata cu Mi V , i {1, ..., n} avem ca M1 ... Mn V pentru
orice n 2.
Exemple 4.8 Sunt F-variet
ati:
i) clasa tuturor monoizilor niti, n particular clasa tuturor monoizilor niti
dintr-o varietate V .
ii) clasa tuturor grupurilor nite.
iii) Fie o colectie nevida Vi , i I de F-varietati. Atunci iI Vi este o Fvarietate.
iv) Fie M = {Mj , j J} o colectie nevida de monoizi niti si V intersectia
tuturor F-varietatilor ce contine pe M . Aceasta intersectie exista deoarece
putem considera F-varietatea tuturor monoizilor niti. Conform iii) avem
ca V este F-varietate, cea mai mica n sensul incluziunii ce contine pe M .
Spunem ca V este generat
a de M si o mai notam B(Mj ; j J).
Definitia 4.9 Fie u, v . Spunem ca monoidul M satisface ecuatia
u = v daca pentru orice morsm de monoizi : M avem (u) = (v).
Mai putem spune ca u = v este ecuatia lui M .
Exemple 4.10 i) Ecuatia monoidului comutativ este xy = yx.
ii) Ecuatia monoidului banda este x2 = x.
Daca avem un sir (nit sau innit) (un , vn ) de perechi de elemente din
atunci putem considera clasa C a tuturor monoizilor avand ecuatiile
un = vn , n 1. Se arata imediat ca C este o varietate si o notam V (un =
vn , n 1). Spre exemplu, Com = V (xy = yx) si Bm = V (x2 = x). In
1935, Birkho a demonstrat rezultatul reciproc (mai dicil) si anume ca
orice varietate este denita de ecuatii.
S
a xam F-varietatea V si alfabetul . Fie LV () multimea limbajelor
peste al caror monoid sintactic apartine lui V . Orice limbaj din LV ()
este regulat avand monoidul sintactic asociat nit. Un criteriu util de testare
a apartenentei la LV () este dat de:
Propozitia 4.11 Fie limbajul L peste . Atunci L apartine lui LV ()
dac
a si numai dac
a L este recunoscut de un monoid din V .

24

M. Crasmareanu
Avem si:

Propozitia 4.12 Fie V si W dou


a F-variet
ati de monoizi. Atunci V
W dac
a si numai dac
a LV () LW () pentru orice alfabet finit .
Prin urmare avem:
Corolarul 4.13 Fie V si W dou
a F -variet
ati. Avem V = W dac
a si
numai dac
a LV () = LW () pentru orice alfabet finit .
Definitia 4.14 i) O aplicatie L ce asociaza unui alfabet nit o
submultime L () a limbajelor regulate peste o numim RL-functie.
ii) O RL-functie L o numim VRL-functie daca:
1) pentru orice alfabet multimea L () este nchisa la reuniune si luarea
complementarei,
2) date alfabetele i , i = 1, 2 si morsmul de monoizi : 1 2 avem ca
L L (2 ) implica 1 (L) L (1 ),
3) pentru orice alfabet , orice a si orice L L () avem ca a1 L si
La1 sunt n L () unde, prin denitie, w este element n a1 L daca
aw L.
Observatii 4.15 Conditia 1) de mai sus implica faptul ca L () este
nchisa la operatiile boolene de reuniune, intersectie si complementare. Conditia
3) implica, prin calcul inductiv dupa lungimea cuvantului u ca u1 L
si Lu1 sunt multimi din L ().
Aplicatia LV introdusa anterior este o RL-funtie. Avem mai mult:
Propozitia 4.16 Dac
a V este o F-varietate atunci aplicatia LV este o
VRL-functie.
Avem si reciproca, datorata lui Eilenberg (1975):
Propozitia 4.17 Fie L o VRL-functie. Atunci exist
a o F-varietate de
monoizi V asa nc
at L = LV .
Exemple 4.18 1) Daca M on este F-varietatea tuturor monoizilor niti
atunci VRL-functia corespunzatoare asociaza alfabetului multimea tuturor limbajelor regulate peste .
2) Fie T riv F-varietatea monoizilor triviali, constand n monoidul singleton {1}. Atunci LT riv () contine limbajele L avand monoidul sintactic
Syn(L) = {1}; prin urmare congruenta sintactica este congruenta totala.
In concluzie, LT riv () = {, }.
Un alt caz n care VRL-functia poate explicitata este cand V este
generata de un singur monoid:

Cursul 4

25

Propozitia 4.19 Fie V = B < M > F-varietatea generat


a de monoidul
finit M si fie alfabetul . Atunci LV () este algebra boolean
a generat
a de
limbajele 1 (z) pentru orice z M si orice morfism de monoizi :
M.
Exemplul 4.20 Fie M = {0, 1} cu nmultirea 0 0 = 0 1 = 1 0 =
0, 1 1 = 1. Avem ca M satisface ecuatiile x2 = x, xy = yx si deci B(M )
este inclusa n F-varietatea V (x2 = x, xy = yx). In fapt, se poate arata chiar
egalitatea acestor F-varietati iar ultima este numita F-varietatea monoizilor
semilaticeali notata SL.
Propozitia 4.21 Pentru alfabetul avem c
a LSL () este algebra boo
lean
a generat
a de limbajele A unde A .
Pagini Web utile:
1) http://en.wikipedia.org/wiki/Special classes of semigroups
2) http://en.wikipedia.org/wiki/Boolean algebra (structure)
3) http://en.wikipedia.org/wiki/Semigroup with two elements.
SEMINARUL 4
S4.1 (Lema de pompare Bar-Hillel) Fie L un limbaj regulat. Atunci
exista numarul natural nenul n = nL asa ncat orice cuvant w L cu |w| n
admite descompunerea w = xyz avand proprietatile:
i) 0 < |y| n,
ii) |xz| n,
iii) pentru orice k N avem xy k z L.
http://en.wikipedia.org/wiki/Pumping lemma for regular languages
S4.2 Folosind lema de pompare sa se arate ca urmatoarele limbaje nu
sunt regulate:
1) L = {an bn ; n 0},
2
2) L = {an ; n 0},
n
3) L = {a10 ; n 0},
n
4) L = {a2 ; n 1}.
Rezolvare 1) Vom contrazice lema de pompare. Fie w = an bn L cu
2n nL unde nL este dat de lema. Avem trei situatii:
I) x = al , y = am , z = anlm bn cu m > 0 din i). Fie i = 0 n iii) din lema;
rezulta anm bn L fals.
II) x = al , y = bnl bm , z = bnm cu n > l si m 0 din i). Avem 3 subcazuri:
II1) n = l; rezulta m > 0. Cu i = 0 n iii) avem ca an bnm L, fals.

26

M. Crasmareanu

II2) n > l si m = 0. Cu i = 0 avem al bn L, fals.


II3) n > l si m > 0. Cu i = 2 avem al anl bm anl bm bnm L, fals deoarece
simbolul a trebuie sa e naintea lui b.
III) x = an bm , y = bl , z = bnlm cu l > 0. Luam i = 0 si avem an bnl L
fals.
S4.3 X N se numete periodic
a daca este nita sau exista N0 0 si
p 1 asa ncat daca x N0 atunci x X daca si numai daca x + p X.
1) Daca X este periodica sa se arate ca X = A B unde A = X {i; 0
i < N0 } iar B = sj=1 {g(j) + pi; i 0} iar g(1), ..., g(s) = X {i; N0 i <
N0 + p}.
2) L = {a} este regulat daca si numai daca multimea X = {i; ai L} este
periodica.
Pentru a compara ntre ele siruri de caractere, se pot folosi operatori
relationali sau functii predenite n Matlab. Operatorii relationali (>, >=, <
, <=, ==, =) compara valorile corespunzatoare caracterelor din sir, comparatia realizandu-se element cu element. De exemplu:
>> A=abcd;
>> B=xbyd;
>> A==B
ans =
0 1 0 1
Valoarea 1 reprezinta true iar 0 reprezinta false. Astfel, valorile 1 arata
locurile unde simbolul este acelasi iar 0 indica locurile cu elemente diferite.
Avem si varianta:
>> B>A
ans =
1 0 1

Latici
Definitia 4.4 Fie L o multime nevida nzestrata cu doua legi de compozitie
(sau), (si) : L L L. Tripletul (L, , ) l numim latice daca
sunt satisfacute proprietatile:
L1) (comutativitate) a b = b a, a b = b a,
L2) (asociativitate) (a b) c = a (b c), (a b) c = a (b c),
L3) (absorbtie) a (a b) = a, a (a b) = a.
Exemplul 4.5 Fie multimea nevida A. Avem ca (L = P(A), , ) este
o latice. Invitam cititorul sa verice absorbtia: pentru X, Y P(A) avem
X (X Y ) = X si X (X Y ) = X.

Cursul 4

27

Proprietatea 4.6 Fie laticea L si a L. Are loc proprietatea de


idempotenta: a a = a and a a = a.
Demonstratie a a = a [a (a b)] = a (a x) = (L3) a. Analog
pentru a doua identitate. 
Definitia 4.7 Fie laticea L si L L nevida. Spunem ca L este sublatice
n L daca pentru orice x, y L avem ca x y L si x y L .
Exemple 4.8 i) Fie B A nevida. Atunci P(B) este sublatice n
P(A).
ii) Fie L = N cu operatiile a b = [a, b]=cel mai mic multiplu comun al
numerelor a si b, a b = (a, b)=cel mai mare divizor comun al numerelor
date. Avem ca (L, , ) este o latice.
Fie numerele prime distincte p si q. Atunci L = {1, p, q, pq} este o sublatice
n N .
Definitia 4.9 Numim semilatice o multime nevida M nzestrata cu o
operatie interna satisfacand:
SL1) (a b) c = a (b c),
SL2) a b = b a,
SL3) a a = a.
Deci (M, ) este un semigrup comutativ n care orice element este idempotent.
Exemple 4.10 Daca (L, , ) este o latice atunci (L, ) si (L, ) sunt
semilatice. Este posibil ca aceste exemple sa sugerat denumirea.
Observatia 4.11 Pe laticea L denim relatia a b daca a b = b.
Avem imediat ca este o relatie de ordine pe L. De asemeni, avem a b
daca si numai daca a b = a.
Definitia 4.12 i) Laticea L se numeste m
arginit
a daca exista un cel mai
mic element, notat 0, si exista un cel mai mare element, noatt 1.
ii) Daca L este marginita si x L spunem ca x L este complementul lui
x daca x x = 1 si x x = 0.
Observatia 4.13 Avem 0 = 1 si 1 = 0 dar nu orice element dintr-o
latice marginita admite complement !
Definitia 4.14 Laticea marginita (L, , , 0, 1) se numeste complementat
a daca orice a L admite complement unic.
Defnitia 4.15 Laticea L se numeste distributiv
a daca au loc proprietatile
de distributivitate:

28

M. Crasmareanu

D1) (a b) c = (a c) (b c),
D2) (a b) c = (a c) (b c).
Definitia 4.16 O latice (L, , , 0, 1,) complementata si distributiva se
numeste algebr
a Boole sau latice boolean
a.

Cursul 5

Automate
Desi n literatura de specialitate exista o multitudine de tipuri de automate,
notiunea utilizata n acest curs este urmatoarea:
Definitia 5.1 Numim automat un 5-uplu A = (Q, , q0 , , F ) unde Q si
sunt multimi nevide si nite, q0 Q, F Q nevida iar este o functie:
: Q ( {}) P(Q). Denumiri:
-Q=multimea st
arilor,
-=alfabetul de intrare; un element din se mai numeste input,
-q0 =starea initial
a,
-=functia de tranzitie,
-F =multimea st
arilor finale sau terminale.
Observatii 5.2 i) Datorita caracterului nit al multimilor implicate,
uneori se precizeaza n denumire ca A este un automat nit (AF).
ii) Notiunea introdusa mai poate ntalnita si cu numele de automat nedeterminist cu -tranzitii. Particularizari ale lui conduc la notiunea de automat
determinist (fara -tranzitii) respectiv automat determinist. Astfel avem:
Definitia 5.3 I) Automatul A se numeste:
i) nedeterminist (AFN) daca (q, ) = pentru orice q Q,
ii) determinist (AFD) daca satisface conditia precedenta plus conditia |(q, x)| =
1, pentru orice q Q si x . In continuare, vom considera n principal
AFD-uri (a se vedea cursul urmator) si deci functia de tranzitie se considera
: Q({}) Q deoarece daca (q, x) = {q } notam simplu (q, x) = q .
II) Data starea q Q numim nchiderea lui q multimea:
Cl(q) = {q} + kN {qk+1 Q; q2 (q1 = q, ), ..., qk+1 (qk , )}.
Pentru Q Q denim: Cl(Q ) = qQ Cl(q) si (Q , x) = qQ (q, x).
29

30

M. Crasmareanu
O notiune extem de importanta n ceea ce urmeaza este:

Definitia 5.4 Extinderea functiei de tranzitie la cuvinte este:


e : Q P(Q),
i) e (q, ) = Cl(q),
ii) e (q, wx) = Cl((e (q, w)), x), daca w si x .
Observatia 5.6 i) Pentru un AFD avem Cl(q) = {q} si deci e (q, x) =
Cl((q, x)) = (q, x) deoarece (q, x) are cardinalul 1. De aceea n multe
referinte bibliograce atunci cand se lucreaza cu AFD-uri se pastreaza (din
motive de simplitate) notatia si pentru functia extinsa !
ii) Un calcul inductiv imediat (dupa lungimea celui de al doilea cuvant) da
egalitatea: e (q, w1 w2 ) = e (e (q, w1 ), w2 ). Rezulta ca pentru un AFD si
cuvantul w = x1 ...xn avem:
e (q, w) = (...((q, x1 ), x2 ), ...xn ).
Exprimam astfel: cand automatul aat n starea q primeste cuvantul w el
trece n starea e (q, w). Daca e (q, w) = spunem ca automatul trece ntr-o
stare nedefinit
a iar daca |e (q, w)| 2 spunem ca automatul trece ntr-o
stare ambigu
a.
Cea mai importanta notiune din teoria automatelor este:
Definitia 5.7 Limbajul acceptat sau recunoscut de automatul A este:
L(A) = {w ; e (q0 , w) F = }. Prin urmare, pentru un AFD avem:
L(A) = {w ; e (q0 , w) F }.
Un element din L(A) se numeste cuv
ant recunoscut de A.
Din acest motiv notiunea de AFD se mai utilizeaza cu denumirea de
automat de acceptare. Exista o legatura profunda ntre expresiile regulate
si limbajele acceptate de automate:
Teorema 5.8 Dac
a E este o expresie regulat
a peste i.e. E Rex()
atunci exist
a un automat finit cu -tranzitii peste alfabetul astfel nc
at
K(E) = L(A).
Definitia 5.9 Limbajul L peste se numeste recognoscibil daca existaun
automat A cu alfabetul asa ncat L = L(A).
Exemple 5.10 i) Daca = B = {0, 1} atunci L = B \ B 010B este
recognoscibil conform Ex. 5.3.
ii) L = {0n 1n ; n 1} nu este recognoscibil.
Reprezent
ari ale automatelor finite

Cursul 5

31

Putem reprezenta un AF n doua moduri: tabelar si grac. Din motive


de simplitate vom alege doar primul mod desi uneori este preferat al doilea
mod datorita avantajului vizual: w este recunoscut (acceptat) de A
daca si numai daca n graful lui A exista un drum de la starea initiala q0 la
o stare nala q F , acest drum avand arcele etichetate succesiv cu literele
cuvantului w. Se spune ca w este eticheta (engleza label) drumului de la q0
la q .
Astfel daca Q = {q0 , ..., qn } si = {x1 , ..., xm } vom considera un tabel
cu n + 2 linii si m + 1 coloane de tipul:
Q\
q0
...
qi

x1

...

xj

...

xm

(qi , xj )

qn
unde sageata marcheaza starea initiala iar stari nale.
Exemplul 5.11 Fie AF-ul cu Q = {a, b, c}, q0 = a, F = {c}, = {0, 1}
si:
(a, 0) = {b}, (a, 1) = {a, b}, (b, 0) = {c}, (b, 1) = {a}, (c, 0) = {c}, (c, 1) =
{b, c}. Avem:
0
1
a b {a, b}
.
b
c
a
c c {b, c}
Fie w1 = 100100 si w2 = 0101. Avem:
i) e (a, w1 ) = e ((a, 1), 0010) = e (b, 0010) = e ((b, 0), 010) = e (c, 010) =
e ((c, 0), 10) = e (c, 10) = ((c, 1), 0) = ({b, c}, 0) = {(b, 0), (c, 0)} =
{c, c} {c} =
ii) e (a, w2 ) = e ((a, 0), 101) = e (b, 101) = e ((b, 1), 01) = e (a, 01) =
((a, 0), 1) = (b, 1) = {a} {c} = .
In concluzie, w1 L(A) si w2 L(A). Mai general, (01)+ L(A).
Pagini Web utile:
1) http://en.wikipedia.org/wiki/Automata theory
2) http://mathworld.wolfram.com/AutomataTheory.html
SEMINARUL 5

32

M. Crasmareanu
S5.1 Fie automatul nedeterminist:
q0
q1
q2
q3

0
q1
q2
q2

1
q0
q0
.
{q2 , q3 }

Sa se studieze cuvintele w1 = 11001, w2 = 1n 001m cu n 1, m 2 si


w3 = 0n , n 3.
Rezolvare w1 L(A) deoarece e (q0 , w1 ) = {q2 , q3 }, w2 L(A) deoarece
e (q0 , w2 ) = {q2 , q3 } dar w3 L(A) deoarece e (q0 , w3 ) = q2 = q3 .
S5.2 Fie AFD-ul:
q0
q1
q2

0
q0
q0
q1

1
q1
.
q2
q0

Sa se studieze cuvintele w1 = 0011 si w2 = 0111.


Rezolvare Deoarece e (q0 , w1 ) = q2 avem ca w1 L(A) iar din e (q0 , w2 ) =
q0 avem ca w2 L(A).
S5.3 Fie AFD-ul:
q0
q1
q2
q3

0
q0
q2
q2
q0

1
q0
q1 .
q3
q1

i) Sa se studieze w1 = 12 03 12 04 si w2 = 12 03 104 .
ii) Sa se arate ca w = ...010... L(A).
iii) Sa se deduca faptul ca L(A) = {0, 1} \ {0, 1} 010{0, 1} .
Rezolvare i) e (q1 , w1 ) = q2 F deci w1 L(A); e (q1 , w2 ) = q0 F
deci w2 L(A).
ii) e (q1 , ...010...) = q0 deoarece la aplicarea secventei 010 avem:
1) q0 q0 q0 q0 ,
2) q1 q2 q3 q0 ,
3) q2 q2 q3 q0 ,
4) q3 q0 q0 q0 .

Cursul 6

Automate echivalente
Deoarece aspectul cel mai important n functionarea unui automat l reprezinta
limbajul acceptat este naturala :
Definitia 6.1 Automatele A, A peste acelasi alfabet se numesc echivalente si notam A A daca L(A) = L(A ).
Cum egalitatea multimilor este o relatie de echivalenta avem:
Propozitia 6.2 Relatia este o relatie de echivalent
a pe multimea automatelor cu alfabetul fixat.
Prin urmare suntem interesati de gasirea unor reprezentanti remarcabili ai unei clase de echivalenta date; acest aspect motiveaza urmatoarele
teoreme de reducere. Astfel, un prim rezultat este legat de eliminarea tranzitiilor:
Teorema 6.3 Dat automatul A cu -tranzitii exist
a A f
ar
a -tranzitii
si echivalent cu A.
La fel de important este rezultatul urmator ce releva o egalitate AFN=AFD
din punctul de vedere al limbajelor acceptate:
Teorema 6.4 Dat AFN-ul A exist
a un AFD Ad echivalent cu A.
Demonstratie Presupunem A = (Q, , , q0 , F ) si e Ad = (Qd , , d , Q0 , Fd ):
i) Qd = P(Q), Q0 = {q0 }, Fd = {Z Qd ; Z F = },
ii) d : Qd ( {}) Qd este:
ii1) d (, x) = , (Z, ) = pentru Z Qd nevida si x ,
ii2) d (Z, x) = {(q, x); q Z}.
Avem ca Ad este AFD deoarece d (Z, x) are un singur element (=o multime)
privit ca element n Qd .
1) L(A) L(Ad )
33

34

M. Crasmareanu

Fie w L(A); deci Z = (q0 , w) F = i.e. Z Fd si avem d (Q0 , w) =


Z Fd ceea ce spune ca w L(Ad ).
2) L(Ad ) L(A)
Fie w L(Ad ); deci d (Q0 , w) Fd i.e. {(q0 , w)} F = ceea ce spune ca
w L(A). 
Exemplul 6.5 Fie A cu Q = {q0 , q1 , q2 }, = {0, 1}, F = {q2 } si functia
de tranzitie data de tabelul:

q0
q1
q2

0
q1
q2
q2

1
{q0 , q1 }
.
q0
{q1 , q2 }

Avem Qd = {Q1 , Q2 = Q0 , Q3 , Q4 , Q5 , Q6 , Q7 , Q8 = Q} cu Q1 = , Q3 =
{q1 }, Q4 = {q2 }, Q5 = {q0 , q1 } = Q2 + Q3 , Q6 = {q0 , q2 } = Q2 + Q4 ,
Q7 = {q1 , q2 } = Q3 + Q4 si:
-d (Q1 , 0) = Q1 , d (Q1 , 1) = Q1 ,
-d (Q2 , 0) = Q3 , d (Q2 , 1) = Q5 ,
-d (Q3 , 0) = Q4 , d (Q3 , 1) = Q2 ,
-d (Q4 , 0) = Q4 , d (Q4 , 1) = Q7 ,
-d (Q5 , 0) = d (Q2 , 0) + d (Q3 , 0) = Q3 + Q4 = Q7 , d (Q5 , 1) = d (Q2 , 1) +
d (Q3 , 1) = Q5 + Q2 = Q8 ,
-d (Q6 , 0) = d (Q2 , 0) + d (Q4 , 0) = Q3 + Q4 = Q7 , d (Q6 , 1) = d (Q2 , 1) +
d (Q4 , 1) = Q5 + Q7 = Q8 ,
-d (Q7 , 0) = d (Q3 , 0) + d (Q4 , 0) = Q4 + Q4 = Q4 , d (Q7 , 1) = d (Q3 , 1) +
d (Q4 , 1) = Q2 + Q7 = Q8 ,
-d (Q8 , 0) = d (Q2 , 0) + d (Q7 , 0) = Q3 + Q4 = Q7 , d (Q8 , 1) = d (Q2 , 1) +
d (Q7 , 1) = Q5 + Q8 = Q8 .
Avem Fd = {Q4 , Q6 , Q7 , Q8 } si deci tabelul lui Ad este:

Q1
Q2
Q3
Q4
Q5
Q6
Q7
Q8

0
Q1
Q3
Q4
Q4
Q7
Q7
Q4
Q7

1
Q1
Q5
Q2
Q7
Q8
Q8
Q8
Q8

Cursul 6

35

Definitia 6.6 Dat automatul A spunem ca starea q Q este accesibil


a

daca exista w asa ncat e (q0 , w) = q.


Observatia 6.7 Daca n denitia precedenta am lua w L(A) ar rezulta
q F . Dar asta nu nseamna ca orice stare nala este accesibila !
Teorema 6.8 Dat A exist
a Aac cu toate st
arile accesibile si echivalent
cu A.
Demonstratie Denim Aac = (Qac = {Q0 , ..., Qr+1 }, , ac , Q0 , Fac )
astfel:
i) Qac va constituita din anumite submultimi ale multimii starilor accesibile
ale lui A i.e. {q Q; w , e (q0 , w) = q}, Q0 = {q0 }, Fac = {Qj
Qac ; Qj F = },
ii) ac se determina prin recurenta astfel:
Pasul 1. Notam = {0, ..., n 1},
Pasul 2. Pentru i denim ac (Q0 , i) = {(q0 , i)} = Qi+1 . Obtinem
astfel n multimi ce pot coincide cu Q0 sau ntre ele; cele diferite le retinem
si le notam Q1 , ..., Qj .
Pasul 3. Pentru i denim ac (S, i) = {(q, i); q S} = Qj+i+1 cu
S {Q1 , ..., Qj }; din nou avem n multimi ce pot coincide cu Q0 , ..., Qj sau
ntre ele; cele diferite le renumerotam Qj+1 , ..., Qj+k .
Continuam acest procedeu pana cand nu mai obtinem multimi noi; deci
am gasit r 1 asa ncat Qr+1 {Q0 , ..., Qr } dar Qr+s = Qr+1 pentru orice
s 2. Atunci Qac = {Q0 , ..., Qr+1 }. 
Exemplul 6.9 Fie A cu Q = {q0 , q1 , q2 }, = {0, 1}, F = {q2 } si functia
de tranzitie data de tabelul:
q0
q1
q2

0
q1
{q1 , q2 }
q2

1
q2
.
q1
{q1 , q2 }

Avem deci:
Pasul 1. Observam ca multimea starilor accesibile este tot Q deoarece
e (q0 , ) = q0 , (q0 , 0) = q1 , (q0 , 1) = q1 .
Pasul 2. ac (Q0 , 0) = (q0 , 0) = {q1 } = Q1 , ac (Q0 , 1) = (q0 , 1) = {q2 } =
Q2 . Retinem Q1 si Q2 .
Pasul 3. ac (Q1 , 0) = (q1 , 0) = {q1 , q2 } = Q3 , ac (Q1 , 1) = (q1 , 1) =
{q1 } = Q1 ,
ac (Q2 , 0) = (q2 , 0) = {q2 } = Q2 , ac (Q2 , 1) = (Q2 , 1) = (q2 , 1) =
{q1 , q2 } = Q3 . Deci retinem Q3 .

36

M. Crasmareanu

Pasul 4. ac (Q3 , 0) = (q1 , 0) + (q2 , 0) = {q1 , q2 } + {q2 } = {q1 , q2 } = Q3 ,


ac (Q3 , 1) = (q1 , 1) + (q2 , 1) = {q1 } + {q1 , q2 } = {q1 , q2 } = Q3 .
In concluzie, Qac = {Q0 , Q1 , Q2 , Q3 }, F3 = {Q2 , Q3 } si avem tabelul pentru
ac :
0
1
Q0 Q1 Q2
Q1
Q3 Q1 .
Q2 Q2 Q3
Q3 Q3 Q3
Avem ac,e (Q0 , ) = Q0 , ac (Q0 , 0) = Q1 , ac (Q0 , 1) = Q2 , ac,e (Q0 , 00) =
Q3 ceea ce spune ca toate starile sunt accesibile.
Definitia 6.10 i) Dat AFD-ul A starea q Q o numim productiv
a (sau

coaccesibil
a) daca exista w asa ncat e (q, w) F .
ii) Un automat cu toate starile accesibile si productive se numeste trim.
Observatia 6.11 Din denitie avem ca q0 este productiva daca L(A) =
deoarece luam orice w L(A).
Teorema 6.11 Dat AFD-ul A exist
a un AFD Ap cu toate st
arile productive si echivalent cu A.
Demonstratie Construim Ap = (Qp = {Q1 , ..., Qr+1 }, , p , Q0 , Fp ) cu
Q0 = {q0 } si procedand analog cu demonstratia anterioara luand Q1 = F si
Fp = {Qj Qp ; Qj F = }. 
SEMINARUL 6
S6.1 Sa se studieze AFD-ul cu |Q| = || = 1.
Rezolvare Avem Q = {q0 } = F , = {0} si : Q Q, (q0 , 0) = q0 .
Rezulta L(A) = {0} . Reprezentarea tabelara:
0
.
q0

q0

Observatie Un AFD cu || = 1 se numeste autonom.


S6.2 Sa se studieze AFD-ul cu |Q| = 1 si || = 2. Generalizare.
Rezolvare Avem Q si F ca mai sus iar = {0, 1}. Evident (q0 , 0) =
(q0 , 1) = q0 si deci L(A) = {0, 1} . Reprezentarea tabelara:
q0

0
q0

1
.
q0

Cursul 6

37

Generalizare: Q = {q0 } = F , = {0, ..., n} si (q0 , i) = q0 , 1 i n.


Avem L(A) = {0, ..., n} . Evident, acest automat este un trim.
S6.3 Sa se studieze AFD-ul cu |Q| = 2 si || = 1.
Rezolvare Fie Q = {q0 , q1 } si = {0}.
I)

q0
q1

0
q0 .
q0

a) F = {q0 }; avem L(A) = {0} .


b) F = {q0 , q1 }; avem L(A) = {0} .
c) F = {q1 }; avem L(A) = .
II)

q0
q1

0
q1 .
q1

a) F = {q0 }; avem L(A) = .


b) F = {q0 , q1 }; avem L(A) = {0} .
c) F = {q1 }; avem L(A) = {0} .
III)

q0
q1

0
q0 .
q1

a) F = {q0 }; avem L(A) = {0} .


b) F = {q0 , q1 }; avem L(A) = {0} .
c) F = {q1 }; avem L(A) = .
IV)

q0
q1

0
q1 .
q0

a) F = {q0 }; avem L(A) = {02n ; n N }.


b) F = {q0 , q1 }; avem L(A) = {0} .
c) F = {q1 }; avem L(A) = {02n+1 ; n N }.
Automatul III se poate identica cu permutarea identica 1 =
(
)
0 1
iar automatul IV cu permutarea twist 2 =
.
1 0

0 1
0 1

38

M. Crasmareanu
S6.4 Automatul ciclic C (p, r).

Rezolvare Fie Q = {q0 , ..., qr+p1 }


tranzitie:

q0
..
.

si = {0}. Consideram functia de


0
q1
..
.

qr1
..
.

qr
..
.

qr+p2
qr+p1

qr+p1
qr

Daca automatul paraseste una din starile q0 , ..., qr1 el nu se mai ntoarce
niciodata n acea stare; le putem numi f
ar
a ntoarcere. Ciclul de stari
qr , ..., gr+p1 se poate numi ciclul f
ar
a evadare, n engleza no escape.
S6.5 Sa se studieze AFD-ul cu Q
functia:

q0
q1

= {q0 , q1 }, = {0, 1}, F = {q0 } si


0
q0
q1

1
q1 .
q1

Rezolvare L(A) = {0} .


S6.6 Sa se studieze AFD-ul cu Q = {q0 , q1 , q2 }, F = {q1 }, = {0, 1} si
functia:

0 1
q0 q1 q2
.
q1 q1 q2
q2
q2 q2
Rezolvare L(A) = {0}+ (= {0} {0} = {0} {0} ).

Cursul 7

Automat minimal
Am vazut n cursul precedent ca pretul platit pentru adaugarea anumitor
proprietati (convenabile) unui automat se reecta n cresterea, uneori foarte
mare (rapida), a numarului de stari. Este astfel naturala ntrebarea daca
putem lucra cu anumite conditii de minimalitate.
Definitia 7.1 Fie A un AFD.
i) Dat numarul natural k denim relatia =k pe Q prin: q1 =k q2 daca pentru
orice w ki=0 i avem e (q1 , w) F daca si numai daca e (q2 , w) F .
Spunem ca starile q1 si q2 sunt k-echivalente.
ii) Denim relatia pe Q prin: q1 q2 daca q1 =k q2 pentru orice k N.
Vom spune ca q1 si q2 sunt echivalente.
Reamintim ca apartenenta unui element la o multime se studiaza cu
ajutorul unei functii:
Definitia 7.2 Data multimea nevida X si submultimea sa Y denim
functia caracteristic
a a lui Y functia Y : X {0, 1} data de:
i) Y (x) = 1 daca x Y , ii) Y (x) = 0 altfel.
Exista autori care fac alegerea inversa: Y (x) = 0 daca x Y ([15, p. 84])
dar n literatura clasica (romaneasca) avem alegerea de mai sus.
Prin urmare, q1 =k q2 daca si numai daca F (e (q1 , w)) = F (e (q2 , w))
pentru orice w 0 + ... + k . Astfel, obtinem ca q1 =0 q2 daca si numai
daca q1 , q2 apartin simultan lui F sau Q \ F . O caracterizare pentru =k cu
k 1 este:
Propozitia 7.3 q1 =k q2 dac
a si numai dac
a q1 =k1 q2 si (q1 , x) =k1
(q2 , x) pentru orice x \ {}.
Deoarece relatia de egalitate este o echivalenta avem:
39

40

M. Crasmareanu
Propozitia 7.4 Relatiile =k si sunt echivalente pe Q.

Notam atunci Qm si Fm multimile cat determinate de pe Q respectiv


F . Denim m : Qm Qm prin m ([q], w) = [e (q, w)]. Se verica
imediat buna denire a acestei aplicatii.
Notiunea centrala a acestui curs este:
Definitia 7.5 AFD-ul A se numeste minimal daca pentru orice AFD A
echivalent cu A avem |Q| |Q |. In particular, automatul cu o singura stare
este minimal.
Avem deci Problema:
Input: A AFD,
Output: A AFD minimal si echivalent cu A.
Trebuie subliniat ca automatul minimal este unic pana la un izomorsm:
Definitia 7.6 AFD-urile A, A cu aceeasi se numesc izomorfe daca
exista o bijectie h : Q Q asa ncat: q0 = h(q0 ), F = h(F ) si h((q, x)) =
(h(q), x) pentru orice q Q si orice x i.e. urmatoarea diagrama este
comutativa:
Q Q
h
h .

Q Q
Rezulta imediat ca:
1) h(e (q, w)) = e (h(q), w) pentru orice w ,
2) L(A) = L(A ) si deci A, A sunt echivalente. Putem spune ca un izomorsm realizeaza n fapt, o recontorizare a starilor.
In determinarea automatului minimal de un mare folos este rezultatul
urmator:
Propozitia 7.7 i) Fie q1 , q2 Q pentru |Q| = n. Atunci q1 q2 dac
a
si numai dac
a q1 =n2 q2 .
ii) Dac
a Qm este n bijectie cu Q atunci automatul A este minimal.
Unul din rezultatele centrale ale acestui curs este:
Teorema 7.8 Dat AFD-ul A avem c
a Am = (Qm , , m , [q0 ], Fm ) este
automat minimal echivalent cu A.
Definitia 7.9 i) Daca n denitia automatului retinem primele trei elemente SA = (Q, , ) atunci obtinem notiunea de semiautomat.
ii) Un semiautomat (automat) se numeste conex daca orice doua stari se pot
uni i.e. oricare ar q1 , q2 Q exista w asa ncat e (q1 , w) = q2 .

Cursul 7

41

iii) Un semiautomat (automat) se numeste perfect daca este conex si satisface


e (q, w1 w2 ) = e (q, w2 w1 ) pentru orice q Q si w1 , w2 .
Observatii 7.10
1) Daca automatul A este conex atunci orice stare q Q este accesibila.
2) Daca automatul A este conex atunci orice stare q Q este productiva; n
adevar, xam qf F si din conexitate va exista w asa ncat e (q, w) =
qf F .
3) Din 1) si 2) rezulta ca un automat conex este un trim.
Definitia 7.11 O congruenta
pe (semi)automatul A este o relatie de
echivalenta pe Q cu proprietatea ca q1 q2 implica (q1 , x) (q2 , x)
pentru orice x . Rezulta ca e (q1 , w) e (q2 , w) pentru orice w .
Pagini Web utile:
1) http://planetmath.org/encyclopedia/Minimal2.html
SEMINARUL 7
S7.1 Semiautomatul grup si automatul grup.
Rezolvare Fie grupul nit G si semiautomatul SAG = (G, G, ) cu
data de multiplicarea n G. Avem ca SAG este conex si daca G este
comutativ atunci SAG este perfect. Dat q0 G si F G avem automatul
AG = (SAG , q0 , F ) care are toate starile accesibile si productive; deci AG
este trim.
S7.2 Sumatorul modulo n.
Rezolvare Fie n numar natural nenul. Semiautomatul numit astfel este
SAn = (N<n = {0, ..., n 1}, N<n , ) cu (q, x) = q + x(mod n).
S7.3 Se cere un semiautomat care sa recunoasca constantele zecimale
fara semn pornind dintr-o stare initiala START.
Rezolvare Fie Q = {q0 , q1 , q2 , q3 , q4 } unde: q0 =START, q1 =constanta
ntreaga, q2 =constanta ntreaga cu punct zecimal, q3 =constanta cu parte
fractionara, q4 =eroare. Fie ={.,0,...,9} si data de:
1) (q0 , .) = (q1 , .) = q2 , (q2 , .) = (q3 , .) = (q4 , .) = (q4 , i) = q4 ,
2) (q0 , i) = (q1 , i) = q2 , (q2 , i) = (q3 , i) = q3
unde i N<9 .
S7.4 Fie SAn sumatorul modulo n.
i) O partitie pe N<n este o congruenta pe Sn daca si numai daca este de

42

M. Crasmareanu

tipul urmator: exista d 2 un divizor al lui n asa ncat partitia este de tip
Rd adica are d clase cu acelasi numar de elemente si ordonand elementele
unei clase crescator avem ca diferenta dintre doua elemente consecutive este
d.
ii) Fie d1 , d2 2 divizori ai lui n; daca d1 |d2 atunci Rd2 Rd1 .
S7.5 Fie automatul A peste alfabetul binar cu Q = {q0 , q1 , q2 , q3 } si:

q0
q1
q2
q3

0
q1
q3
q2
q3

1
q2
q1
q3
q3

Se cere L(A).
Rezolvare Avem L(A) = {01n ; n N} + {10n ; n N}.
S7.6 Fie automatul avand Q = {q0 , ..., qn }, = {1, ..., n} si:

q0
q1
..
.

1
q1

...

q2

qn1
qn

qn

unde n locurile necompletate apare multimea vida. Se cere L(A).


Rezolvare L(A) = {w = 12...n}.
S7.7 Se da automatul cu Q = {q0 } = F , = {1, ..., n} si:

q0

...
...

si se cere L(A).
Rezolvare L(A) = {}.
S7.8 Dat alfabetul binar se cere un automat care sa recunoasca limbajul
L(A) = {(01)n ; n N}.

Cursul 7

43

Rezolvare Fie Q = {q0 , q1 , q2 } si:

q0
q1
q2

0
q1

q1

.
q2

S7.9 Dat alfabetul multimea L o numim recognoscibil


a daca
exista un automat A peste asa ncat L(A) = L. Sa se arate ca multimile
singleton sunt recognoscibile.
Rezolvare i) Fixam L = {w = a1 ...an }. Fie A peste cu Q =
{q0 , ..., qn }, F = {qn } si:

q0
q1
..
.

a1
q1

a2

...

an

q2

qn1
qn

qn

unde n locurile necompletate apare multimea vida. Avem L(A) = {w}.


ii) Fie L = {} si A peste cu Q = {q0 , q1 }, F = {q0 } si:

q0
q1

...

ai
q1
q1

...
.

Avem L(A) = {}.


S7.10 Sa se arate ca multimea vida este recognoscibila.
Rezolvare Fie A peste cu Q = {q0 , q1 }, F = {q1 } si:

q0
q1

...

ai
q0
q0

...
.

Avem L(A) = .
S7.11 Fie L1 si L2 recognoscibile. Sa se arate ca L1 L2 este recognoscibila.

44

M. Crasmareanu

Rezolvare Presupunem Li = L(Ai ), 1 i 2 si e A cu Q = Q1 Q2 ,


q0 = (q01 , q02 ), F = (F1 Q2 )(Q1 F2 ) si ((q1 , q2 ), x) = (1 (q1 , x), 2 (q2 , x)).
Avem imediat ca L(A) = L1 + L2 .
Consecint
a Orice multime nita din este recognoscibila.
S7.12 Daca x sa se arate ca L = x este recognoscibil.
S7.13 Pentru L si w denim w1 L = { ; w L}
si L familia acestor multimi cu posibilitatea includerii si a multimii vide.
Atunci L este recognoscibila daca si numai daca L este nita.
S7.14 Daca L este recognoscibila atunci \ L este recognoscibila.
S7.15 Daca L1 si L2 sunt recognoscibile atunci sunt recognoscibile:
i) L1 L2 ; ii) L1 L2 .
S7.16 Sa se arate ca, relativ la alfabetul binar, limbajul L = {0n 1n ; n
N} nu este recognoscibil.
Rezolvare Fie, prin reducere la absurd, A cu L(A) = L si e, eventual
prin renumerotare, qn = e (q0 , 0n ). Sa se presupunem ca qn = qm . Avem,
e (q0 , 0m 1n ) = e (qm , 1n ) = e (q0 , 0n 1n ) F si deci 0m 1n L(A) = L. Dar
atunci m = n ceea ce spune ca Q este innita. Fals.
S7.17 Fie alfabetele 1 , 2 si f : 1 2 cu f 1 (2 ) = 1 . Sa se arate
ca daca L 1 este recognoscibila atunci f (L) este recognoscibila.
S7.18 Dat semiautomatul SA si w e functia Fw : Q Q, Fw (q) =
e (q, w). Denim SA pe prin w1 w2 daca Fw1 = Fw2 . Sa se arate ca
SA este o congruent
a pe .
Rezolvare Fie x, y oarecare. Daca w1 SA w2 atunci evident
xw1 y SA xw2 y.
Observatie Fie w1 SA w2 si x, y . Atunci sau xw1 y, xw2 y apartin
lui L(A) sau xw1 y, xw2 y apartin lui \ L(A). Deci:
w1 SA w2 [xw1 y L(A) xw2 y L(A), x, y ].
Fie L . Denim L prin:
w1 L w2 [xw1 y L xw2 y L, x, y ]
si deci SA =L(A) .
S7.19 Fie L recognoscibila de catre automatul AL . Atunci AL =L .
Definitia 7.20 Congruenta L pentru L recognoscibila se numeste
congruenta Myhill.

Cursul 8

Actiuni
Fixam n acest curs o multime nevida X, nu neaparat nita. Reamintim ca
n exercitiul 1.3 am introdus grupul bijectiilor lui X, Bij(X) = {f : X
X; f bijectie}. Pentru simplitate, acelasi grup l vom nota cu S(X) deoarece
daca X are n elemente atunci acest grup este bine cunoscutul grup simetric
Sn .
Definitia 8.1 Numim grup de transform
ari pe X un subgrup G al lui
S(X). Notiuni analoage se denesc prin nlocuirea cuvantului grup cu
monoid respectiv semigrup.
Din conditia de subgrup avem:
GT1) daca f1 , f2 G atunci f2 f1 G,
GT2) daca f G atunci f este bijectie si f 1 G.
Una din cele mai importante notiuni matematice este:
Definitia 8.2 Dat grupul (G, , e) oarecare, numim actiune (la stanga)
a lui G pe X o aplicatie : G X X, (g, x) gx satisfacand:
A1) g2 (g1 x) = (g2 g1 )x,
A2) ex = x,
pentru orice g1 , g2 G si orice x X.
Observatia 8.3 Exista si notiunea de actiune la dreapta, : X G
X, (x, g) xg cu propritatile:
A1) (xg1 )g2 = x(g1 g2 ),
A2) xe = x.
Dar cele doua notiuni sunt echivalente n sensul urmator:
I) data o actiune la stanga avem ca aplicatia (x, g) = g 1 x este o actiune
la dreapta. In adevar:
A1) (xg1 )g2 = g21 (g11 x) = (g21 g1 1)x = (g1 g2 )1 x = x(g1 g2 ),
45

46

M. Crasmareanu

A2) xe = e1 x = ex = x.
II) Reciproc data o actiune la dreapta avem ca aplicatia (g, x) = xg 1 este
o actiune la stanga. In adevar,
A1) g2 (g1 x) = (xg11 )g21 = x(g11 g21 ) = x(g2 g1 )1 = (g2 g1 )x,
A2) ex = xe1 = xe = x.
Prin urmare, n cele ce urmeaza ne vom restrange la actiuni la stanga, acestea ind cel mai des ntalnite n matematica (spre exemplu n studiul proprietatilor de simetrie ale unui obiect matematic) fara a pierde din vedere
faptul ca proprietatile A1, A2 sunt analoage proprietatilor extinderii functiei
de tranzitie e din teoria automatelor. Acest fapt a si motivat alegerea
subiectului acestui curs.
Fixam deci : G X X si pentru orice g G denim g : X X
prin x gx.
Propozitia 8.4 g S(X).
Demonstratie Avem: g g1 : x g 1 x g(g 1 x) = (gg 1 )x =
ex = x. Analog, g g1 : x gx g 1 (gx) = (g 1 g)x = ex = x. In
concluzie, g este bijectie cu (g ) = g1 . 
Putem deci deni : G S(X), g g .
Propozitia 8.5 este morfism de grupuri.
Demonstratie Trebuie aratat ca (g2 g1 ) = (g2 ) (g1 ). Cum acestea sunt aplicatii trebuie aratata egalitatea pentru orice x X. Dar asta
nseamna exact A1. 
Corolarul 8.6 Imaginea prin a lui G este un grup de transform
ari pe
X.
Demonstratie Este o consecinta a rezultatului clasic din teoria grupurilor:
dat un morsm de grupuri : G G avem ca (G) este subgrup n G .
(Aratati !). 
Avem si reciproca acestui ultim rezultat:
Propozitia 8.7 Dat grupul de transform
ari G al lui X avem c
a:
i) incluziunea i : G S(X) este un morfism de grupuri,
ii) aplicatia : G X X, (g, x) g(x) este o actiune a lui G pe X.
Demonstratie i) evident, i(g1 g2 ) = g1 g2 = i(g1 ) i(g2 ),
ii) A1 g2 (g1 x) = g2 (g1 (x)) = (g2 g1 )(x) = (g2 g1 )x; A2 ex = 1X (x) = x.

Avem si un al treilea rezultat analog:

Cursul 8

47

Propozitia 8.8 Dat morfismul de grupuri : G S(X) avem c


a
aplicatia : G X X, (g, x) (g)(x) este o actiune a lui G pe X.
Demonstratie A1) g2 (g1 x) = (g2 )((g1 )(x)) = (g2 ) (g1 )(x) =
(g2 g1 )(x) = (g2 g1 )x,
A2) ex = (e)(x) = 1X (x) = x. 
In concluzie, urmatoarele trei notiuni sunt echivalente:
i) actiune a lui G pe X,
ii) morsm de grupuri : G S(X),
iii) G=grup de transformari pe X.
Astfel, n diferite surse bibliograce poate aparea una din aceste forme
echivalente.
Definitia 8.9 Spunem ca elementele x, y X sunt n relatia si
notam x y daca exista g G a.. y = g (x) i.e. y = gx.
Propozitia 8.10 este o relatie de echivalent
a pe X.
Demostratie reflexivitatea: x x doarece luam g = e,
simetria: presupunem x y cu y = g (x) si aplicam g1 acestei egalitati.
Rezulta x = g 1 y si deci y x,
tranzitivitatea: presupunem x y, y z cu y = g1 x, z = g2 y. Rezulta
A1
z = g2 (g1 x) = (g2 g1 ) x si deci x z. 
Definitia 8.11 Clasa de echivalenta a lui x X n raport cu se
numeste orbita lui x la actiunea si o notam Gx sau Orb (x). Multimea
orbitelor o notam X/G si o numim spatiul factor al lui X la actiunea lui G.
Avem surjectia : X X/G numita proiectie.
Daca discutia anterioara ne-a plasat pe X este naturala si o privire
asupra lui G.
Definitia 8.12 Dat x X numim stabilizatorul lui x multimea Stab(x) =
{g G; gx = x}.
Propozitia 8.13 Stab(x) este subgrup n G.
Demonstratie Sa observam mai ntai ca Stab(x) este nevida deoarece
e Stab(x).
i) Fie g1 , g2 Stab(X); avem imediat ca g1 g2 Stab(x),
ii) Fie g Stab(x) oarecare; deci g 1 (gx) = g 1 x de unde rezulta ca g 1 x =
(g 1 g)x = ex = x, deci g 1 Stab(x). 
Observatie Din acest motiv, uneori Stab(x) este numit grupul de izotropie
a lui x X.

48

M. Crasmareanu
O proprietate remarcabila a stabilizatorilor este:

Propozitia 8.14 Dac


a y Orb(x) atunci Stab(x) si Stab(y) sunt subgrupuri conjugate.
Demonstratie Presupunem ca y = ax, a G.
i) dat g Stab(x) avem ca aga1 Stab(y) dupa cum se verica imediat.
Deci aStab(x)a1 Stab(y),
ii) a arata Stab(y) aStab(x)a1 este echivalent cu a arata relatia
a1 Stab(y)a Stab(x) care este analoaga celei de la i) cu argumentul x =
a1 y. 
Corolarul 8.15 Dac
a un element al unei orbite O are stabilizator abelian
(finit) atunci toate elementele lui O au stabilizatorul abelian (finit). Mai
mult, oricare ar fi x, y O avem |Stab(x)| = |Stab(y)|.
Definitia 8.16 Fie H subgrup al lui G si elementele xate x, y G.
Spunem ca x, y sunt H-right echivalente si notam xH r y daca exista
h H asa ncat x = yh.
Propozitia 8.17 r este o relatie de echivalent
a pe G.
Demonstratie 1) reexivitatea: luam h = e H. 2) simetria: e x =
yh. Rezulta ca y = xh1 si cum h1 H avem cerinta. 3) tranzitivitatea:
presupunem x = yh1 si y = zh2 . Rezulta x = z(h2 h1 ) si cum h2 h1 H
avem concluzia. 
Multimea cat o notam G/H. Clasa de echivalenta a lui x G este
xH = {xh; h H} si aplicatia h H xh xH este evident bijectie; deci
|xH| = |H|. Cum multimea claselor de echivalenta constituie o partitie a
lui G rezulta ca daca G este grup nit avem |G/H| |H| = |G|.
Revenind la actiuni e H = Stab(x); deci |G/Stab(x)| |Stab(x)| = |G|.
Fie : Orb(x) G/Stab(x), y = gc (x) = gStab(x). Avem ca este
corect denita: daca y = g1 x = g2 x atunci g21 g1 Stab(x) si deci g1 = g2 h
cu h Stab(x); rezulta ca g1 Stab(x) = g2 Stab(x), ceea ce voiam.
Propozitia 8.18 este bijectie.
Demonstratie Evident este surjectie caic dat gStab(x) G/Stab(x)
vom considera y = gx Orb(x). Fie acum (y1 ) = (y2 ) cu y1 = g1 x, y2 =
g2 x; rezulta g1 Stab(x) = g2 Stab(x) i.e. g1 h1 = g2 h2 cu h1 , h2 Stab(x).
1
Deci g2 = g1 h1 h1
si avem y2 = (g1 h1 h1
2
2 )x = g1 (h1 h2 x) = g1 x = y1
folosind ca Stab(x) este subgrup. 

Cursul 8

49

In concluzie, daca G si X sunt multimi nite avem pentru orice x X:


|Orb(x)| |Stab(x)| = |G|,

(8.1).

Definitia 8.19 Permutarea [a1 , ..., ak ] din Sn o numim permutare ciclic


a
sau k-ciclu deoarece avem a1 a2 ... ak a1 . Un 2-ciclu l numim
transpozitie.
Propozitia 8.20 1) Orice element din Sn este produs de permut
ari ciclice distincte n sensul c
a un element apare cel mult odat
a.
2) Transpozitiile genereaz
a Sn .
3) Transpozitiile [12], ..., [1n] genereaz
a Sn deoarece [ab] = [1a][1b][1a].
4) Transpozitiile [12], [23], ..., [n 1n] genereaz
a Sn deoarece
[1k] = [k 1k]...[23][12][23]...[k 1k].
5) Transpozitia [12] si n-ciclul [12...n] genereaz
a Sn deoarece [kk + 1] =
[12...n]k1 [12][12...n]1k .
Definitia 8.21 Actiunea lui G pe X se numeste:
i) tranzitiv
a daca exista o singura orbita i.e. X/G este o multime singleton,
ii) liber
a daca toti stabilizatorii se reduc la {e}.
SEMINARUL 8
S8.1 Fie N (o) numarul orbitelor actiunii lui G pe X i.e. X = Orb(x1 )
... Orb(xN (o) ) cu Orb(xi ) Orb(xj ) = pentru i, j diferite. Pentru g G
e F ix(g) = {x X; gx = x}. Are loc formula Burnside:

N (o) |G| =
|F ix(g)|.
(8.2)
gG

Rezolvare Vom numara n doua moduri distincte elementele lui X invariate de actiunea lui G. Avem:

|F ix(g)| =
|Stab(x)|,
(8.3)
gG

xX

N (o)
si deci membrul drept din (7.2) este i=1
yOrb(xi ) |Stab(y)|. Dar pentru
orice y, z Orb(xi ) avem: |Stab(y)| = |Stab(z)|f rac|G||Orb(xi ) rezulta:

gG

N (o)

|F ix(g)| =

i=1

|Orb(xi )|

|G|
= N (o) |G|.
|Orb(xi )|

50

M. Crasmareanu

S8.2 Fie X = N3 = {1, 2, 3} si G = {e, f, d} cu e = [1][2][3] permutarea


identica, d = [1, 2, 3] si f = [1, 3, 2]. Consideram actiunea naturala a lui G
pe X.
i) Sa se arate ca G este subgrup n S3 ; deci grup.
ii) Se cer numarul orbitelor acestei actiuni.
Rezolvare i) df = [1, 2, 3][1, 3, 2] = [1][2][3] = e, f d = [1, 3, 2][1, 2, 3] =
[1][2][3] = 3 si d2 = f, f 2 = d. Deci d = f 1 sau nca f = d1 ceea ce arata
ca G este subgrup n S3 .
= 1. Orbita
ii) |F ix(e)| = 3, |F ix(d)| = |F ix(f )| = 0 si deci N (o) = 3+0+0
3
unica este ntreaga multime X ceea ce puteam vedea si direct: 1 1 cu
g = e; 1 2 cu g = d; 1 3 cu g = f ; deci toate elementele lui X sunt
echivalente ntre ele.
Interpretare geometrica: X este multimea varfurilor unui triunghi echilateral , e=aplicatia identica, d=rotatia n sens orar de unghi 3 , f =rotatia
n sens trigonometric de unghi 3 . Avem imediat ca f = d1 si f 2 = d.
S8.3 Se da semiautomatul A peste alfabetul binar cu Q = {q0 , ..., q5 } si
data de: (q0 , 0) = q1 , (q0 , 1) = q5 , (qi , 0) = qi , (qi , 1) = qi1 , 1 i 5.
i) Se cere reprezentarea tabelara a lui .
ii) Daca F = Q \ {q0 } se cere L(A) pentru automatul A.
Rezolvare i)

q0
q1
q2
q3
q4
q5

0
q1
q1
q2
q3
q4
q5

1
q5
q0
q1 .
q2
q3
q4

ii) L(A) = {0n ; n N } + {010n ; n N } + {1a 0m ; a = 1, 2, 3, 4, m N} +


{15 0n ; n N }.
S8.4 Fie automatul A peste alfabetul binar cu Q = {q0 , q1 , q2 , q3 } si:

q0
q1
q2
q3

0
{q0 , q1 , q3 }
q2
q3

1
q0
.

Sa se studieze cuvintele w1 = 0110, w2 = 101101 si w3 = 1011.

Cursul 8

51

Rezolvare w1 , w2 L(A) iar w3


/ L(A).
S8.5 Sa se arate ca : (Z, +) R R, (k, x) = k + x este o actiune
si sa se studieze.
Rezolvare Vericarea axiomelor de actiune este imediata. Fie M =
R/(Z, +, ) si e : M S 1 , ([x]) = e2ix = cos(2x) + isin(2x).
Sa vericam buna denire: [x] = [y] implica y = x + n si deci cos(2y) +
isin(2y) = cos(2x) + isin(2x).
1) este injectiva deoarece (x) = (y) implica e2i(yx) = 1 adica yx Z
ceea ce nseamna [x] = [y].
2) este surjectiva n mod evident.
In concluzie, R/(Z, +, ) = S 1 . Avem:
i) Orb(x) = x + Z pentru orice x R,
ii) Stab(x) = {0}.
Deci, este actiune libera si netranzitiva.
S8.6 Sa se arate ca : (R, +) R R, (t, x) = et x este o actiune si
sa se studieze.
Rezolvare Vericarea axiomelor de actiune este imediata. Avem doar
3 orbite:
i) [0] = {0} si Stab(0) = R,
ii) [1] = R+ ,
iii) [1] = R .
Deci R/(R, +, ) = {[0], [1], [1]}; pentru orice x = 0 avem Stab(x) = {0}.
Deci actiunea este nelibera si netranzitiva.
S8.7 Fie n numar natural nenul. Un element (vector) din Rn l notam
x
= (x1 , ..., xn ). Sa se arate ca : (Rn , +) R2n R2n , (
a, (
x, y)) =
(
a+x
, y) este o actiune si sa se studieze.
Rezolvare Vericarea axiomelor de actiune este imediata. Avem
Stab(
x, y) = {0n } si (
x, y) (0, y) prin intermediul lui a
=
x. Deci
2n
n
n

R /(R , +, ) = (0, R ) Rn . Actiunea este libera si netranzitiva.


S8.8 Sa se arate ca translatia : (Rn , +) Rn Rn , (
a, x
) = a
+x

este o actiune si sa se studieze.


Rezolvare Vericarea axiomelor de actiune este imediata. Orice punct
x
se transleaza n origine cu a
=
x si deci Rn /(Rn , +, ) = {[0]}. Actiunea
este libera si tranzitiva.
S8.9 (Grupul ciclic de ordinul 2) Sa se arate ca (Z2 , +) este grup
izomorf cu (C2 , ) unde C2 = {1, 1}.

52

M. Crasmareanu
Rezolvare Cele doua grupuri au aceeasi tabela Cayley:
(Z2 , +)
b
0
b
1
(C2 , +)
1
1

b
0
b
0
b
1
1
1
1

b
1
b
1
b
0
1
1 .
1

Prin urmare corespondenta b


0 1, b
1 1 este un izomorsm de grupuri
de la Z2 la C2 .
Generalizare Grupul ciclic de ordinul n este multimea Cn a simetriilor de rotatie ale unui poligon regulat cu n laturi. Cn este deci multimea
rotatiilor de unghi k = 2k
ia de grup ind
n cu k {0, ..., n 1}, operat
compunerea rotatiilor. Rezulta ca (Cn , ) este grup izomorf cu (Zn , +).
S8.10 Sa se arate ca : C2 R R, (, x) = x este o actiune pe R
si sa se studieze.
Rezolvare Vericarea axiomelor de actiune este imediata. Avem
Orb(x) = {x, x} si Stab(x) = {1}; deci actiunea data este libera si netranzitiva.
S8.11 Sa se arate ca : (C2 C2 ) R2 R2 , ((, ), (x, y)) = (x, y)
este o actiune si sa se studieze.
Rezolvare Vericarea axiomelor de actiune este imediata. Avem
Orb(x, y) = {(x, y), (x, y), (x, y), (x, y)} si Stab(x, y) = {(1, 1)}; deci
actiunea este libera si netranzitiva.
S8.12 Sa se arate ca : (R , ) Rn Rn , (, x
) =
x este o actiune
si sa se studieze.
Rezolvare Vericarea axiomelor de actiune este imediata. Avem
Orb(0) = 0, Stab(0) = R iar pentru x
= 0 avem Stab(
x) = 1 iar Orb(
x)
n
este dreapta prin originea lui R fara origine. Spatiul cat Rn \{0}/(R , +, )
se noteaza P n1 R si se numeste spatiul proiectiv real n 1-dimensional.
Actiunea pe Rn \ {0} este libera si netranzitiva.

Cursul 9

Gramatici si limbaje
generate. Ierarhia Chomsky
Definitia 9.1 Numim gramatic
a sau sistem generativ un 4-uplu
G = (VN , VT , S, P ) cu:
i) VN =multime nevida, nita, numita multimea variabilelor (neterminalilor),
ii) VT =multime nevida, nita, disjuncta de VN , numita multimea terminalilor. V = VN VT este vocabularul lui G,
iii) S VN este simbolul de start sau axioma gramaticii,
iv) P V V , nita, este multimea regulilor de generare (productie).
Elementele (, ) P sunt supuse conditiei ca sa contina un simbol din
VN ; putem scrie P (V VN V ) V .
Conventii de notatie 9.2
I) Urmatoarele simboluri noteaza elemente din VN :
-A, B, C, ..., S, ...
-numele italice scrise cu minuscule: expresie, instructiune, ...
II) Urmatoarele simboluri noteaza terminali:
-a, b, c, ..., 0, ..., 9
-operatori: +, , , /
-simboluri de punctuatie, paranteze,
-unitati lexicale: id, if, while, begin, ...
III) X, Y, Z, ... sunt elemente din V iar u, v, x, y, z, w, ... sunt cuvinte din V .
IV) , , , ... sunt cuvinte din V . Un element (, ) P l notam .
V) Daca A 1 ,..., A n sunt toate productiile cu originea n A, (Aproductii), notam: A 1 |...|n .
VI) O gramatica va precizata prin productiile sale; de aici se deduc
multimile VN si VT iar S este partea stanga a primei productii.
53

54

M. Crasmareanu

Exemplu 9.3 Gramatica S SOS| S|(S)|id, O +| | |/ are


VN = {S, O} si VT = {id, +, , , /, (, )}.
Definitia 9.4 Date u, v V scrierea u v noteaza faptul ca u = v
sau exista un sir nit u1 = u, ..., un = v de elemente din V astfel ca ui
ui+1 , 1 i n 1. Un astfel de sir l numim derivare.
Vom mai folosi notatiile:
-(i) : derivarea directa a folosit regula i din P ,
-i : derivarea s-a facut aplicand i pasi (reguli),
-(i)j : se aplica regula i de j ori.
ii) Limbajul generat de G este L(G) = {w VT ; S w} iar w L(G) l
numim fraz
a n G.
iii) F P (G) = { V ; S } este multimea formelor propozitionale ale lui
G. Deci L(G) = F P (G) VT i.e. limbajul generat este multimea formelor
propozitionale ce contin doar simboli terminali.
v) Gramaticele G1 , G2 se numesc echivalente daca L(G1 ) = L(G2 ).
Ierarhia Chomsky 9.5 Fixam gramatica G:
0) G generala se numeste de tip 0,
1) daca toate productiile satisfac conditia || || atunci spunem
ca G este de tip 1 sau monotone,
1) daca toate productiile sunt de forma A cu A VN , ,
V , V + atunci spunem ca G este dependent
a de context,
2) daca toate productiile sunt context-free i.e. de forma A cu A
VN , V + atunci spunem ca G este de tip 2 sau context-free,
lin) daca toate productiile sunt de forma A sau A B cu A, B
Vn , , VT atunci spunem ca G este gramatic
a liniar
a,
3) daca toate productiile sunt de forma A aB sau A a cu A, B VN
si a VT atunci spunem ca G este de tip 3 sau regulat
a,
3) daca toate productiile sunt de forma A sau A B (respectiv
A B) cu A, B VN , VT atunci spunem ca G este drept liniar
a
(respectiv st
ang liniar
a).
Limbajul L VT se numeste de tip r, 0 r 3 sau liniar daca exista o
gramatica G de tip r sau liniara a. . L = L(G).
Gramaticile 1 si 1 sunt echivalente si la fel 3 si 3. Notand cu Lin
respectiv Lr multimea limbajelor liniare respectiv de tip r avem:
L3 Lin L2 L1 L0
si acest sir de incluziuni stricte se numeste ierarhia lui Chomsky (1956).
Lingvistul american Noam Chomsky a introdus gramaticile libere de
context n scopul descrierii limbilor naturale. Desi acest scop s-a dovedit

Cursul 9

55

mult prea ambitios, limbajele (gramaticile) context-free s-au aratat utile n


descrierea limbajelor de programare. Astfel, au fost utilizate de Bachus
pentry FORTRAN si Naur pentru ALGOL (din acest motiv, gramaticile
libere de context se numesc uneori gramatici n forma Backus-Naur) n timp
ce recent HTML-ul a fost descris cu un limbaj independent de context.
An HTML document (with arbitrary text content) has this sort of structure:
<HTML>
<HEAD> <TITLE> Jane Does Home Page </TITLE> </HEAD>
<BODY> <H1> Jane Doe </H1> <H2> Home Page </H2>
<P>
<CENTER> <IMG src=jane.jpg> </CENTER>
</P>
</BODY>
</HTML>
The expression <HTML> must be followed by </HTML>, <HEAD> must
be followed by </HEAD>, and so on, in the same pattern as matched parentheses. Thus recognizing that a string belongs to a certain CFL (context-free
language) is one of the tasks performed by a web browser.
Aceleasi limbaje context-free sunt deosebit de importante n proiectarea
compilatoarelor.
Pentru generalitati asupra operei lui Chomsky a se vedea
http://en.wikipedia.org/wiki/Noam Chomsky ca si site-ul personal
http://www.chomsky.info/. Alte site-uri recomandate:
-http://en.wikipedia.org/wiki/Chomsky hierarchy
-http://mathworld.wolfram.com/Grammar.html.
In aplicatii, sa notam ca dat L L0 se cauta r maximal pentru care
L L0 . Astfel, este posibil ca initial sa avem L = L(G) cu G de tip r dar
sa existe r > r si G de tip r astfel ncat L = L(G ).
SEMINARUL 9
S9.1([13, p. 18]) Sa se arate ca L1 = {an bn ; n 0} Lin L3 .
Rezolvare([10, p. 11]) Fie gramatica G cu VN = {S}, VT = {a, b} si
P : S ab|aSb. Avem ca G este liniara dar nu este regulata. Aratam prin
inductie ca L1 L(G).
1) pasul de pornire e evident din prima regula.
2) presupunem ca ak bk L(G), k 1. Deci avem o derivare S ak bk cu

56

M. Crasmareanu

un = ak bk si un1 = ak1 Sbk1 . Avem atunci uni (2) ak1 (aSb)bk1 =


ak Sbk (1) ak+1 bk+1 ceea ce voiam.
A mai ramas de aratat ca L(G) L1 . Analizand derivarile posibile din
G avem P F (G) = {ak Sbk , ak bk } dar ultima derivare nu mai poate continua
datorita regulilor de productie din G. Avem deci concluzia.
S9.2([13, p. 18]) Sa se arate ca L2 = L1 L1 L2 Lin .
S9.3([13, p. 18]) Sa se arate ca L3 = {an bn cn ; n 1} L1 L2 .
Rezolvare([10, p. 20]) Fie G cu VN = {S, A}, VT = {a, b, c} si P : S
abc|aSA, bA bbc, cA AC. Este o gramatica monotona dar nu de tipul
2. Aratam prin inductie ca L3 L(G).
n

S9.4([13, p. 18]) Sa se arate ca L4 = {a2 ; n 0} L1 L2 .


Rezolvare([10, p. 24]) Fie G cu VN = {S, A, B, C}, VT = {a} si P :
S BAB, BA BC, CA AAC, CB AAB, A a, B .
2

S9.5([13, p. 18]) Sa se arate ca L5 = {an ; n 0} L1 L2 .


S9.6([13, p. 18]) Sa se arate ca L6 = {an ; n = prim} L1 L2 .
S9.7([13, p. 18]) Sa se arate ca L7 = {an bm an bm ; n, m 1} L1 L2 .
S9.8([13, p. 18]) Sa se arate ca L8 = {an bm ; n 1, 1 m 2n }
L1 L2 .
S9.9([13, p. 18]) Sa se arate ca L9 = {an bm cp ; 1 n m p} L1 L2
.
S9.10([13, p. 18]) Sa se arate ca L10 L2 Lin unde L10 este limbajul lui Dyck pentru vocabularul {a, b} i.e. limbajul generat de gramatica
independenta de context G = ({S}, {a, b}, S, P ) cu P : S SS|aSb|.
S9.11 .
Rezolvare .
S9.12 .
Rezolvare .

Cursul 10

Problema cuvintelor
Deoarece vom lucra n acest curs pe grupuri, extindem mai ntai denitia
cuvintelor pentru a formaliza notiunea de invers. Fixam X = {x1 , ..., xk }
o multime nita. Numim cuv
ant de lungime n pe multimea X o functie
w : Nn = {1, ..., n} X {1}. Daca w(i) = (wi , i ) atunci cuvantul w
se mai noteaza w = xw11 ...xwnn . Operatia de concatenare se deneste uzual:

ww := xw11 ...xwnn xw1 ...xwn si ramane asociativa. Fie W (X) acest monoid
n
1
relativ la cuvantul vid.
Definitia 10.1 i) O echivalent
a elementar
a pe W (X) este o pereche de
cuvinte de forma (d1 xw x
d
,
d
d
)
cu

{1}
si d1 , d2 cuvinte arbitrare.
w 2 1 2
ii) Pe W (X) denim o relatie n modul urmator: doua cuvinte le numim
echivalente daca pot legate printr-un lant nit de echivalente elementare.
Astfel, cele doua cuvinte se transforma unul n celalalt prin stergerea sau
1
introducerea unor perechi xw x1
w sau xw xw , w = 1, ..., n.
Propozitia 10.2 Relatia astfel introdus
a este o congruenta
.
Monoidul cat devine grup denind inversul astfel: [w = xw11 ...xwnn ]1 =
n ...x1 ]
[w = xw
si notand cu 1 clasa cuvantului vid.. Acest grup numit
w1
n
grupul liber generat de X si notat F (X); are o proprietate de universalitate
n categoria grupurilor: pentru orice grup G si elemente xate g1 , ..., gk G
exista un unic morsm de grupuri : F (X) G satisfacand (xi ) = gi , i =
1, ..., k.
Mai general, xam R = {c1 , ..., cm } o multime de cuvinte peste numite relatii. Intersectia tuturor subgrupurilor normale ce contine R l notam
N (R) si este subgrup normal. Putem vorbi atunci de grupul factor F ()/N (R)
notat < X|R > si pentru care elementele lui X le numim generatori. Mai
spunem ca grupul G =< X|R > este prezentat prin generatori si relatii.
57

58

M. Crasmareanu

Observatia 10.3 Trebuie avut grija atat n precizarea generatorilor cat


si a relatiilor:
1) Prezentarea < x, y|xy = yx, xyx1 = yxy 1 > este gresita deoarece
x = y. Inmultim a doua relatie la dreapta cu y: xyx1 y = yx = xy.
Simplicam prin xy la stanga si avem x1 y = 1 de unde concluzia.
2) Relatiile x2 = y 2 = (xy)2 = 1 implica comutativitatea xy = yx. In
adevar, din ultima relatie: xyxy = 1 pe care o nmultim la stanga succesiv
cu x si apoi y.
Exemple 10.4 1) Cn :< x|xn = 1 > este prezentarea grupului ciclic de
ordin n 2 din cursul 8.
2) < x, y|x2 = y 3 = 1, yxy = x > este o prezentare a grupului simetric
S3 luand x = [12] si [123]. De aici rezulta ca S3 este primul grup simetric
neabelian deoarece din a treia relatie avem yx = xy 1 iar y 1 = y are da
y 2 = 1 care mpreuna cu a doua relatie conduce la contradictia y = 1.
Notiunea centrala a acestui curs a fost formulata de Dehn sub numele de
problema cuvintelor astfel: dat w X sa se gaseasca o procedura continand
un numar nit de instructiuni pentru a decide daca w = 1 sau nu. O
formulare moderna este urmatoarea:
Definitia 10.5 Grupul G =< X|R > are solutie la problema cuvintelor
daca limbajul W (G) = {w X ; w = 1} este recunoscut de un automat
determinist.
Exemplul 10.6 Daca X este nita atunci grupul liber F (X) =< X| >
are solutie la problema cuvintelor.
Definitia 10.7 Dat grupul G =< X|R > si limbajul L X spunem
ca perechea (X, L) este o structur
a rational
a pentru G daca L este regulat
si L genereaza pe G.
Consideram un simbol $
/ X (the padding simbol=simbolul auxiliar)
si denim X = X {$} si X(2, $) = X X \{$, $}. Denim : X X
X(2, $) prin:
1) (u = x1 ...xm , v = y1 ...yn ) = (x1 , y1 )...(xn , yn )(xn+1 , $)...(xm , $) daca
n < m,
2) (u, v) = (x1 , y1 )...(xn , yn ) daca n = m,
3) (u, v) = (x1 , y1 )...(xm , ym )($, yn+1 )...($, yn ) daca n > m.
Fie (X, L) structura rationala pentru G si w X ; denim
Lw = {(w1 , w2 ); w1 , w2 L, w1 = ww2 }.
Definitia 10.8 i) Structura rationala (X, L) a lui G se numeste structur
a
automat
a daca L si Lx , pentru orice x L, sunt limbaje regulate.

Cursul 10

59

ii) Grupul G se numeste automat daca admite o structura automata.


Exemple 10.9 Sunt grupuri automate urmatoarele clase de grupuri:
grupurile nite, grupurile libere nit generate, grupurile abeliene nit generate, grupuri braid.

Dat w X cu w = 1 reamintim ca w =F (X) i = 1k (ui ri1 u1


i ) cu
ui F (X), ri R, k N. Fie a(w) cea mai mica valoare a lui k.
Definitia 10.10 Functia izoperimetric
a a lui G =< X|R > este fG :
N N:
f (n) = max{a(w); |w| n, w = 1}.
Problema cuvintelor pe grupuri automate este rezolvata de:
Teorema 10.11 Dac
a G este grup automat atunci:
1) G admite o prezentare finit
a cu functia izoparametric
a marginit
a superior
de o functie p
atratic
a.
2) G are solutie la problema cuvintelor.
Demonstatia acestui rezultat fundamental se bazeaza pe:
Propozitia 10.12 Fie < X|R > o prezentare finit
a a grupului G.
Urm
atoarele sunt echivalente:
i) Functia izoparameric
a este m
arginit
a superior de o functie recursiv
a.
ii) G are solutie la problema cuvintelor.
iii) Functia izoparametric
a este m
arginit
a.
SEMINARUL 10
S10.1 Sa se arate ca urmatoarele sunt prezentari ale grupului trivial:
a) < x, y|x2 = y 3 , xyx = yxy >.
b) < x, y|xy = y 2 x, yx = x2 y >.
c) < x, y, z|xy = y 2 x, yz = z 2 y, zx = x2 z >.
Rezolvare a) Din a doua relatie prin nmultirea cu x la stanga si la
dreapta avem: x2 yx2 = xyxyx adica y 7 = y 3 yy 3 = xyxyx. Tot din a doua
relatie prin nmultire la dreapta cu yx avem xyxyx = yxy 2 x; deci y 7 = yxy 2 x
de unde avem y 6 (= x4 ) = xy 2 x. Obtinem x2 = y 2 si din y 2 = y 3 avem y = 1.
Revenind la a doua relatie rezulta si x = 1.
S10.2 Grupul diedral (dihedral group n engleza) Dn este grupul simetriilor de rotatie al unei placi n forma de poligon regulat cu n laturi. (Alti

60

M. Crasmareanu

autori l noteaza D2n .) Fie r rotatia de unghi 2


n jurul unei axe de simen
trie perpendiculara pe poligon si s rotatia de unghi n jurul unie axe de
simetrie din planul poligonului. Atunci o prezentare a lui Dn este:
Dn =< r, s|rn = 1, s2 = 1, sr = rn1 s >
si orice element din Dn este de forma rk sau rk s cu 0 k n1. Identitatile
de calcul n Dn :
i) ra rb = rk cu k = a + b(mod n),
ii) (ra s)rb = rl s cu l = a b(mod n),
iii) (ra s)(rb s) = rl s.
Rezulta si alte perechi de generatori:
I) (rs, s) deoarece r = (rs)s,
II) (rs, r2 s).
Rezolvare .
S10.3 Exista c si grupul diedral infinit D generat de t, s : Z Z, t(z) =
z + 1, s(z) = z. Avem s2 = 1 n timp ce t are ordin innit. Identitatea
tst = s este evidenta din schema membrului stang: z z + 1 z 1
z = s(z). Deci: D =< t, s|s2 = 1, tst = s >.
Rezolvare .
S10.4
Rezolvare

Cursul 11

Functii recursive
In acest curs consideram functii f de tipul urmator:
-functie partial
a daca f : X N cu X submultime (nevida ) a lui Nn ,
-functie total
a daca f este denita pe tot Nn .
Pentru simplitatea scrierii, ambele tipuri de functii le notam la fel f : Nn
N, ntelegandu-se din context tipul. Fie P multimea tuturor functiilor
partiale (deci orice n) si T multimea tuturor functiilor totale. De asemenea,
n-uplul (x1 , ..., xn ) l notam x
.
Definitia 11.1 1) Fie numerele naturale n, k 1 si functiile g : Nk
N, h1 , ..., hk : Nn N din P. Numim compunerea lor functia f = g
(h1 , ..., hk ) : Nn N data de f (
x) = g(h1 (
x), ..., hk (
x)). Evident f P
membrul stang ind denit acolo unde se poate deni membrul drept. Mai
spunem cam denit operatorul de superpozitie SUP.
2) Fie g : Nn N si h : Nn+2 N din P. Functia partiala f : Nn+1 N
data de f (
x, 0) = g(
x), f (
x, y + 1) = h(
x, f (
x), y) se numeste obtinut
a prin
recursie primitiv
a. Cazul n = 0 este admis si atunci g se considera numar
natural xat. Mai spunem cam denit operatorul de recursie primitiv
a REC.
Observatia 11.2 Dat x
avem ca f (
x, y) este denit: sau pentru niciun
y sau pentru orice y N sau pentru y Nk = {1, ..., k} cu k determinat de
g si h.
Definitia 11.3 1) Urmatoarele functii le numim initiale:
i) functia zero z : N N, z(x) = 0,
ii) fuctia succesor : N N, (x) = x + 1,
iii) functii proiectie kr : Nk N, kr (
x) = xr , k 1, 1 r k.
Evident, toate functiile initiale apartin lui T .
61

62

M. Crasmareanu

2) Numim clas
a de functii o submultime a lui P si clas
a de functii totale o
submultime a lui T .
3) O clasa C de functii totale o numim nchis
a primitiv recursiv daca:
i) toate functiile initiale apartin lui C .
ii) C este nchisa la compunere i.e. daca g, h1 , ..., hk C atunci g(h1 , ..., hk )
C.
iii) C este nchisa la recursia primitiva i.e. daca g, h C atunci f otinuta
din g si h prin recursie primitiva este element din C .
Exista o cea mai mica multime nchisa primitiv recursiv F (pr) anume
intersectia tuturor claselor nchise primitiv recursiv.
Definitia 11.4 Un element f F (pr) l numim functie primitiv recursiv
a.
Teorema 11.4 (de caracterizare) Fie f T . Atunci f F (pr)
dac
a si numai dac
a exist
a un sir f0 , ..., fk = f unde fi este sau functie
initial
a sau se obtine prin compunere din unele fj cu j < i sau se obtine
prin recursie primitiv
a din dou
a functii fj , j < i.
Definitia 11.6 Un sir de tipul celui precedent l numim definitie primitiv
recursiv
a a lui f .
Exemplu 11.7 Fie f : Nn N element dintr-o clasa nchisa primitv
recursiv C si denim g : Nm N prin g(x1 , ..., xm ) = f (y1 , ..., yn ) unde
yi este sau o constanta sau xj pentru un j xat. Atunci g C deoarece
g = f (h1 , ..., hm ) cu hj sau functie constanta (care este primitiv recursiva;
vezi Ex. 10.?) sau o functie kj .
Propozitia 11.8 Fie C o clas
a nchis
a primitiv recursiv si g C de
forma g : Nn+1 N. Atunci urm
atoarele functii
apartin lui C :
n+1

t).
1)(adunarea repetat
a) f1 : N
N, f1 (X, y) = yt=0 g(X,
y
n+1

t).
2)(nmultirea repetat
a) f2 : N
N, f1 (X, y) = t=0 g(X,
Demonstratie Denitia primitiv recursiva a acestor functii este:
1) f1 (
x, 0) = g(
x, 0), f1 (
x, y + 1) = f1 (
x, y) + g(
x, y + 1).
2) f2 (
x, 0) = g(
x, 0), f2 (
x, y + 1) = f2 (
x, y)g(
x, y + 1).

Definitia 11.9 1) Dat n 1 numim predicat n-ar o armatie P (x1 , ..., xn )
n n variabile ce este adevarata sau falsa n functie de valorile variabilelor
considerate ca elemente din N. Predicatul dat se identica cu multimea
T (P ) = {
x N; P (
x) = adevarata}.
2) Data C o clasa nchisa primitiv recursiv. O submultime A a lui Nn o
numim n C daca functia caracteristica A C . In particular, un predicat
n-ar este n C daca T (P ) C .

Cursul 11

63

Pentru rezultatul urmator reamintim ca date predicatele P si Q avem:


P Q nseamna P sau Q, P Q nseamna P si Q iar P este negatia
lui P .
Propozitia 11.10 Fie C o clas
a nchis
a primitiv recursiv
a si A, B Nn .
n
consecint
Dac
a A si B sunt n C atunci AB, AB si N \A sunt n C . In
a,
date predicatele n-are P si Q din C avem c
a P Q, P Q si P sunt n C .
A.
Demonstratie AB = A B , AB = sg(A + B ) si cA = 1

In cele ce urmeaza x = y nseamna predicatul P (x, y) adevarat doar
cand x si y sunt egale, etc.:
Propozitia 11.11 Predicatele x = y, x = y, x < y, x y, x > y, x y
sunt primitiv recursive.

Demonstratie = (x, y) = sg(|x y|), < (x, y) = sg(xy).


Analog, =
este (=), este < =, este (<). .
Definitia 11.12 1)Fie multimea X si functia partiala f : X X. Se
numeste iteratia sau iterata lui f functia partiala F : X N X data
de F (x, 0) = f (x) si F (x, n + 1) = f (F (x, n)). Daca f este totala notam
F (x, n) = f n (x).
2) Spunem ca functia f : Nn Nk apartine clasei C daca toate functiile
kj f sunt din C pentru 1 j k.
3) Clasa C de functii se numeste nchis
a la iteratii daca odata cu functia
f : Nn Nn din C avem ca si iterata F : Nn+1 Nn este din C .
Se poate arata ca daca C este nchisa primitiv recursiv atunci C este
nchisa la iteratii. Suntem interesati n reciproca acestui fapt.
Propozitia 11.13 Fie C o clas
a de functii ce contine functiile initiale
si este nchis
a la iteratii. Atunci C este nchis
a primitiv recursiv.
Vom introduce acum cea mai genrala clasa de functii recursive pentru care trebuie considerat un nou mod de generare de functii. Fie deci
f : Nn+1 N o functie partiala. Vom deni o alta functie g : Nn N
prin g(
x)=cea mai mica valoare a lui y N pentru care f (
x, y) = 0. Datorita caracterului partial al lui f sunt necesare cateva precizari si de aceea
introducem:
Definitia 11.14 Functia de minimizare a lui f este functia partiala
g : Nn N data de:
1) g(
x) = r daca f (
x, r) = 0 si pentru 0 s < r, f (
x, s) este denita si
nenul
a,

64

M. Crasmareanu

2) g(
x) este nedenita n caz contrar. Folosim notatia g(
x) = y (f (
x, y =
0)). Atentie, g poate partiala chiar si cand f este totala. Spunem ca am
denit operatorul de minimizare MIN
Definitia 11.15 Date functiile f si g ca mai sus, spunem ca g se obtine
din f prin minimizare regulat
a daca f este totala si pentru orice x
Nn
exista y N asa ncat f (
x, y) = 0. Rezulta ca g este atunci functie totala.
Definitia 11.16 Clasa functiilor recursive ete cea mai mica clasa C
de functii totale care este nchisa primitiv recursiv si nchisa la minimizare
reguluata i.e. daca f C si g se obtine din f prin minimizare regulata
atunci g C .
O astfel de clasa exista, ind de fapt intersectia tuturor claselor ce verica
proprietatile mentionate.
Definitia 11.17 1) O submultime A a lui Nn se numeste recursiv
a daca
A este functie recursiva.
2) Predicatul n-ar P se numeste recursiv daca multimea
AP = {
x Nn ; P (
x) = adevarat} este recursiva.
Definitia 11.18 Clasa functiilor partial recursive este cea mai mica clasa
de functii partiale ce contine functiile initiale si este nchisa la compunere,
primtiv recursivitate si minimizare.
Clasa functiilor partial recursive ce sunt totale este nchisa primitiv recursiv si nchisa la minimizare regulata; prin urmare contine clasa functiilor
recursive. Deci, o functie recursiva este partial recursiva si totala dar reciproca nu este valabila.
Exemple 11.19 Functia f : N N, f (x) = y (x(y +1) = 0) este partial
recursiva dar neind totala nu este recursiva. In adevar, f (0) = 0 si n rest
f este nedenita.
Definitia 11.20 Se dau functiile f, g : N2 N. Spunem ca f este
func tia de minimizare limitat
a a lui g daca g(x, z) = y z(f (x, y) = 0)
i.e. valoarea g(x, z) se obtine astfel: daca exista 0 y0 z astfel ca
f (x, 0) > 0, ..., f (x, y0 1) > 0 si f (x, y0 ) = 0 atunci g(x, z) = y0 ; n caz
contrar g(x, z) = z + 1. Spunem ca am denit operatorul de minimizare
limitat
a.
Concluzii: Criteriul de recunoastere a functiilor primitiv recursive sau recursive Se dau sirul nit de functii f0 , ..., fk si functia f :
1) sirul dat l numim pr-sir daca orice element al sau este functie initiala
sau se obtine din precedentele elemente cu operatorii SUP sau REC. Daca

Cursul 11

65

n plus folosim si operatorul MIN spunem ca avem un r-sir.


2) f este primitiv recursiv
a daca exista un pr-sir cu f ca element nal.
3) f este recursiv
a daca exista un r-sir cu f ca element nal.
SEMINARUL 11
S11.1 Sa se arate ca urmatoarele functii sunt primitiv recursive:
1) functia sum
a s : N2 N, s(x, t) = x + y.
2) functia produs sau multiplicare m : N2 N, m(x, y) = xy.
3) functia exponential
a exp : N2 N, exp(x, y) = xy .
4) functia factorial F ac : N N, F ac(x) = x!.
5) orice functie constant
a c : Nn N, c(
x) = c cu c N xat.
6) functia predecesor P red : N N, P red(x) = x1 daca x > 1 si P red(0) =
0.
: N2 N, xy
= max{x y, 0}.
7) sc
aderea proprie
8) functia modul | | : N N.
9) functia semn sg : N N, sg(x) = 1 daca x > 0 si sg(0) = 0.
10) sg : N N, sg(x) = 0 daca x > 0 si sg(0) = 1.
Rezolvare 1) s(x, 0) = 11 (x), s(x, y+1) = s(x, y)+1 = 33(x, y, s(x, y)).
Putem spune ca 11 , 33 , , 33 este o denitie primitiv recursiva pentru
s. In cele ce urmeaza vom restrange demonstratia la indicarea recursivitatii.
2) m(x, 0) = z(x), m(x, y + 1) = m(x, y) + x.
3) exp(x, 0) = 1, exp(x, y + 1) = m(exp(x, y), x).
4) F ac(0) = 1, F ac(x + 1) = m(F ac(x), x + 1).
5) Sa consideram n = 1; atunci functia constanta 0 este z, functia constanta
1 este z, functia constanta 2 este 2 z, etc. Pentru n general, functia
constanta c este c n1 cu c : N N functia constanta c.
6) P red(0) = 0, P red(x + 1) = x = s(x, 0).
= x = s(x, 0), x(y
+ 1) = P red(xy).

7) x0
+ y x.

8) |x y| = (xy)
9) sg(0) = 0, sg(x + 1) = 1.
S11.2 Sa se arate ca functiile urmatoare sunt primitiv recursive:
1) ./. : N2 N, x/y = cel mai mic numar natural mai mic sau egal cu
x/y daca y > 0 respectiv x/0 = 0.
2) ./. : N2 N, x/y = cel ami mic numar natural mai mare sau egal cu
x/y daca y > 0 respectiv x/0 = 0.
3) rest : N2 N, rest(x, y) = restul mpartirii lui x la y daca y > 0 respectiv
rest(x, 0) = 0.
4) prim : N N, prim(n) = al n-lea numar prim cu prim(0) = 2.

66

M. Crasmareanu
Rezolvare .
S11.3 .
Rezolvare

Cursul 12

Multimi si limbaje recursiv


enumerabile
Definitia 12.1 Submultime a A a lui N se numeste recursiv enumerabil
a (r.
e. pe scurt) daca A = sau exista f : N N recursiva asa ncat A = f (N.
Alti autori folosesc denumirea de multime semirecursiv
a, [15, p. 93]
Observatia 12.2 Notiunea astfel introdusa formalizeaza conceptul de
multime listabil
a deoarece elementele lui A se pot lista: f (0), f (1), ..., printro procedura cu un numar nit de instructiuni.
Pentru a caracteriza acest tip de multime consideram functia caracteristic
a partial
a a lui A, pA : N N: pA (x) = 1 daca x A si pA (x) este
nedenita daca x nu apartine lui A.
Propozitia 12.3 Pentru A N urm
atoarele afirmatii sunt echivalente:
1) A este r.e..
2) A este domeniul de definitie al unei functii partial recursive g : N N.
3) functia caracteristic
a partial
a pA este partial recursive.
4) A este imaginea unie functii partial recursive.
5) sau A = sau exist
a o functie primitiv recursiv
a f : N N asa nc
at
A = f (N).
Demonstratie 1) 2). Daca A = atunci putem considera A ca
domeniu al unei functii g partial recursive avand domeniul vid: spre exemplu
g(x) = cel mai mic y natural pentru care x + y + 1 = 0. Fie acum A = f (N)
cu f recursiva si denim g(x) = cel mai mic y natural pentru care f (y) = x.
Avem ca g este partial recursiva si A = dom(g).
g cu z functia zero. Rezulta ca pA este partial
2 3). Avem pA = 1z
recursiva ind obtinuta din g si functii primitiv recursive prin compunere.
67

68

M. Crasmareanu

pA ), reamintind ca 11 este functia identica pe


3) 4). Fie f = 11 + (1
N. Avem concluzia.
4) 5). Avem existenta functiilor primitiv recursive u : N N si v : N2
N asa ncat f (x) = u(h(t)) unde h(t) = cel mai mic t pentru care v(x, t) = 0.
Sa presupunem acum A nevida si e a0 A pentru care denim F : N2 N
prin:
i) F (x, n) = u(r(t)) unde r(t) = cel mai mic t pentru care t n(v(x, t) = 0)
daca exista astfel de t,
ii) F (x, n) = a0 n caz contrar.
Avem ca F este primitiv recursiva si F (N2 ) = A. Fie J : N2 N bijectia
primitiv recursiva de la Exercitiul ??. Atunci F J 1 = F (K, L) : N N
este primitiv recursiva cu imaginea A.
5) 1). Evident. 
Propozitia 12.4(Kleene) Multimea A N este recursiv
a dac
a si numai dac
a A si N \ A sunt ambele r.e..
Definitia 12.5 1)Fie X numtime numarabila si : X N o bijectie
xata. Atunci submultimea A a lui X se numeste recursiv
a(respectiv r.e.)
relativ la daca (A) este recursiva (respectiv r.e.).
2) Numim enumerare G
odel pentru X o aplicatie injectiva : X N pentru
care (X) este recursiva.
Fixam n cele ce urmeaza multimea nita A de cardinal n si de asemeni
bijectia {1, ..., n} A, i ai . Avem urmatoarele enumerari Godel ale lui
A :

I) 1 (ai1 ...aik ) = kj=1 ij (n + 1)j1 ,

II) 1 (ai1 ...aik ) = kj=1 ij nj ,

i
III) 2 (ai1 ...aik ) = 2k kj=1 pjj unde pj este al j-lea numar prim impar.
Definitia 12.6 Limbajul L peste A se numeste recursiv (respectiv r.e.)
daca (L) este recursiv (respectiv r.e.) unde este 1 , 1 sau 2 .
Fie gramatica G = (VN , VT , S, P ) si A = VN VT ; presupunem A =
{a1 , ..., an }. Sa notam productiile P = {1 1 , ..., l l } si e i = |i |,
i = |i |.
Propozitia 12.7 Pentru i {1, ..., l} exist
a o functie primitiv recursiv
a
fi : N2 N astfel ca, dac
a m = 2 (x1 ...xk ) si x1 ...xk = x1 ...xr1 i xr+i ...xk
atunci fi (r, m) = 2 (x1 ...xr1 r+i ...xk ) respectiv fi (r, m) = m alftel fi (r, m) =
m.
Teorema 12.8 Un limbaj de tip 0 este r.e. si reciproc.

Cursul 12

69

Teorema 12.9 Un limbaj de tip 1 este recursiv.


Observatia 12.10 i) Reciproca teoremei precedente nu este adevarata:
exista limbaje recursive care nu sunt dependente de context.
ii) Fie S N multime r.e. ce nu este recursiva si : A N una din enumerarile Godel precedente. Exista o functie recursiva strict crescatoare f :
N (A ); atunci f (S) este r.e. si nerecursiva. Mai mult, (1 (f (S))) =
f (S) si deci 1 (f (S)) este limbaj r.e. nerecursiv.
In concluzie avem schema urmatoare:
L1 ( Lr ( Lr.e. = L0 .
cu Lr multimea limbajelor recursive si Lr.e. multimea limbajelor r.e.
Propozitia 12.11 Dac
a L este un limbaj r.e. atunci la fel este nchierea

sa Kleene L .
SEMINARUL 12
S12.1 .
Rezolvare .
S12.2 .
Rezolvare .
S12.3 .
Rezolvare .
S12.4 .
Rezolvare .
S12.5 .
S12.6 .
Rezolvare .
S12.7 .
Rezolvare .
S12.8 .
Rezolvare .

70

M. Crasmareanu

Cursul 13

Entropia, energia si corelatia


surselor de informatie
Definitia 13.1 Numim surs
a de informatie o pereche S = (, ) cu
alfabet si odistributie de probabilitate pe adica o aplicatie : R+
sastisfacand s (s) = 1. Distributia o numim pozitiv
a daca (s) > 0
pentru orice s .
Observatii 13.2 i) Avem ca (s) [0, 1] pentru orice s .
ii) O sursa de informatie poate gandita ca un dispozitiv black-box care
emite simboluri din ecare astfel de simbol s ind emis cu probabilitatea
(s).
iii) Fixam || = n si notam S = ( = (si ), = (i )), 1 i n cu conventia
p1 ... pn . Vom nota tabelar:
S

s1
p1

...
...

sn
pn

Exemplul 13.3 u (s) = n1 pentru orice s este o distributie pozitiva


de probabilitate numita distributia uniform
a.
Putem extinde la monoidul cuvintelor obtinandu-se un morsm de la
la monoidul multiplicativ al lui [0, 1], : ([0, 1], , 1) considerand:
i) () = 0,
ii) (w) = (w(1))...(w(k)) pentru orice w k , k 2.
Proprietatea de morsm o interpretam astfel: probabilitatea emiterii unui
simbol este independenta de simbolurile emise anterior; din acest motiv,
sursele de informatii astfel denite mai sunt numite f
ar
a memorie, cele cu
memorie mai ind numite surse Markov. Obtinem astfel o extindere a lui
71

72

M. Crasmareanu

la limbaje peste :
iii) () = 0,

iv) (L) = wL (w) daca L este submultime nevida a lui .


Numarul real nenegativ (L) l numim -m
asura lui L. Astfel, u -masura
lui L o numim indicatorul de cod al lui L.
Definitia 13.4 Limbajul produs L1 L2 se numeste neambiguu daca pentru orice w L1 L2 exista cuvintele unice u L1 si v L2 asa ncat w = uv.
Propozitia
13.5 1) (k ) = 1 pentru orice k 1.
2) (iI Li ) iI (Li ) pentru orice familie Li , i I cel mult numrabil
a

de submultimi ale lui cu urm


atorea conventie: dac
a exist
a i I asa nc
at
(Li ) = atunci (iI ) = . Dac
a familia Li are multimile disjuncte
atunci avem egalitate.
3) (L1 L2 ) (L1 )(L2 ). Dac
a produsul L1 L2 este neambiguu atunci avem
egalitate.

4) (L ) i0 (Ln ) i0 ((L))n cu conventia: (L) = implic


a
(L ) = .
Conceptul de entropie ca masura a informatiei si a gradului de incertitudine, a fost introdus n 1948 de catre Claude Shannon. Aceasta notiune
este profund analoaga conceputului similar din termodinamica unde a fost
introdus de catre Clausius n 1864 ca masura a gradului de dezordine al unui
sistem zic.
Deoarece din punct de vedere matematic, informatia furnizata de simbolul sk este Ik = log pk rezulta ca media ponderata a informatiilor
furnizate de sursa data este:
Definitia 13.6 Se numeste entropie a sursei S numarul real nenegativ:
H() =

pi log pi

i=1

unde logaritmul este n baza 2 si avem conventia 0 log 0 = 0. Unitatea de


masura a entropiei este biti/simbol.
Alegerea bazei 2 se poate considera ca ind neimportanta matematic
datorita proprietatii de schimbare a bazei logaritmilor si este impusa din
punct de vedere tehnic de utilizarea calculului binar n procesarea datelor
de catre calculatoare.
Lema 13.7 Dac
a b > 0 si x > 0 atunci logb x x 1 cu egalitate doar
pentru x = 1.

Cursul 13

73

Propozitia 13.8 Inegalitatea Gibbs Fie numerele reale (pi , qi ), 1


i n satisf
ac
and:
i) 0
pi , qi 1,
ii) ni=1 qi
1 = ni=1 pi .

Atunci: ni=1 pi log pi ni=1 pi log qi . Avem egalitate dac


a si numai
daca
a pi = qi pentru totti i Nn .
Corolar 13.9 Pentru orice surs
a de n informatii avem: 0 H()
log n = H(u ).

Demonstratie Avem H(u ) = ni=1 n1 log n1 = log n1 = log n. Deoarece


pi [0, 1] avem pi log pi 0 si rezulta membrul stang. Pentru membrul
drept aplicam inegalitatea Gibbs cu qi = n1 , 1 i n. 
Cazurile de egalitate pentru inegalitatea precedenta sunt precizate de:
Propozitia 13.10 i) H() = 0 dac
a si numai dac
a p1 = 1.
ii) H() = log n dac
a si numai dac
a = u .
Demonstratie i) H() = 0 daca si numai pentru orice i Nn avem
pi log pi = 0. Cum nu putem avea ca toti pi sunt nuli deoarece suma lor
este 1 rezulta ca trebuie sa existe macar un indice i asa ncat pi = 1. Din
ordonarea probabilitatilor pi rezulta p1 = 1.
ii) rezulta din cazul de egalitate al Inegalitatii Gibbs. 
Observatia 13.11 In termodinamica unui sistem zic izolat, o stare de
echilibru este caracterizata de entropie maxima. Prin analogie, am putea
numi distributia uniforma ca ind starea de echilibru informational al
sursei date, toate cele n simboluri (stari) ind la fel de probabile.
Definitia 13.12 Se dau sursele de informatie S1 = (1 , {pi }, i I), S2 =
(2 , {qj },
j J). Numim produsul lor sursa S1 S2 = (1 2 , {pi qj }). (Avem
imediat i,j pi qj = 1.)
Putem spune ca sursa produs S 2 genereaza grupe de cate doua mesaje
ale sursei S. Analog pentru o putere k 2 oarecare.
consecint
Propozitia 13.13 H(S1 S2 ) = H(S1 ) + H(S2 ). In
a H(S k ) =
kH(S).

Demosntrat
ie i,j pi qj log(pi qj ) = i,j pi qj log pi i,j pi qj log qj =

j qj H(S1 ) +
i pi H(S2 ).
Definitia 13.14 Pentru sursa data initial denim:
1) redundanta R = log n H(),
2) eficienta = H()
log n .

74

M. Crasmareanu
Exemplul 13.15 (n=2) Notand p1 = p avem:
S

s1
p

s2
1p

i) H(p, 1 p) = = p log p (1 p) log(1 p),


ii) R = 1 + p log p + (1 p) log(1 p).
Inspirat de expresia energiei cinetice care este suma patratelor vitezelor,
matematicianul roman Octav Onicescu a introdus n 1964 conceptul urmator:
Definitia 13.16 Numim energia sursei date numarul real strict pozitiv:
E() =

p2i .

i=1

Propozitia 13.17 i) E(u ) = n1 E() 1.


ii) E() = n1 dac
a si numai dac
a = u .
iii) E() = 1 dac
a si numai dac
a p1 = 1.
iv) E(S1 S2 ) = E(S1 )E(S2 ).
Demonstratie i) Faptul ca E(u ) = n1 este imediatca si inegalitatea
din dreapta deoarece pi ind subunitare avem E() ni=1 p1 . Pentru a
arata inegalitatea
din stanga e xi = pi n1 ; rezulta ni=1 xi = 0. Avem

n
E() = n1 + i=1 x2i .
ii) Avem egalitate n stanga daca si numai daca toti xi sunt nuli.
iii) Avem egalitate n dreapta daca si numai daca p2i = pi ceea ce revine la
p1 =1 si p2 = ... =
pn = 0.

iv) i,j (pi qj )2 = ( p2i )( qj2 ) din independenta celor doua surse. 
Definitia 13.18 Date sursele S1 si S2 de aceea
si dimensiune n numim:
i) corelatia lor numarul real nenegativ C(1 , 2 ) = ni=1 pi qi .
ii) coeficientul de corelatie numarul real nenegativ CC(1 , 2 ) = C(1 ,2 ) .
E1 )E(2 )

Propozitia 13.19 CC(1 , 2 ) 1 = CC(, ) cu egalitate dac


a si
numai dac
a 1 = 2 .
Demonstratie Faptul ca CC(, ) = 1 este imediat iar inegalitatea este
exact inegalitatea Cauchy-Buniakowski-Schartz (CBS) din teoria produselor
scalar. Avem egalitate n inegalitatea CBS daca si numai daca vectorii
n-dimensionali 1 ,
coliniari adica exista numarul real asa ncat
2 sunt
2 = 1 . Dar din
p1i = p2i = 1 rezulta = 1. 

Cursul 13

75
SEMINAR 13

S13.1 Se da o sursa cu n = 5 si p1 = 21 , p2 = 14 , p3 = 18 , p4 = p5 =
cere entropia, redundanta, ecienta si energia acestei surse.

1
16 .

Se

1
Rezolvare H = 12 1 + 14 2 + 18 3 + 16
4 2 = 15
i/simbol.
8 = 1.875 bit
1.875
R = log 5 H = 2.3219 1.8750 = 0.4469, = 2.3219 = 0.8075,
1
1
2
+ 64
+ 256
= 0.25 + 0.0625 + 0.0156 + 0.0078 = 0.3359
E = 41 + 16

S13.2 .
Rezolvare .
S13.3 .
Rezolvare .
S13.4 .
Rezolvare .
S13.5 .
Rezolvare .
S13.6 .
Rezolvare .
S13.7 .
Rezolvare .

76

M. Crasmareanu

Cursul 14

Compilatoare 1: Analiz
a
lexical
a
Definitia 14.1 i) Un translator este un program (cutie neagra) care primeste
la intrare un text scris ntr-un limbaj de programare, limbajul surs
a, si produce la iesire un text echivalent scris n alt limbaj de programare, limbajul
obiect.
ii) Daca limbajul sursa este un limbaj de nivel nalt iar limbajul obiect este
un limbaj de nivel inferior (limbaj de asamblare sau cod masina), atunci
translatorul respectiv se numeste compilator.
Procesul de compilare a unui program are loc n mai multe faze. O faza
este o operatie unitara n cadrul careia are loc transformarea programului
sursa dintr-o reprezentare n alta.
Principalele faze ale unei compilari sunt:
1) Analiza lexical
a: textul sursa este preluat sub forma unei secvente de caractere care sunt grupate apoi n entitati numite atomi; atomilor li se atribuie
coduri lexicale, astfel ca, la iesirea acestei faze, programul sursa apare ca o
secventa de asemenea coduri. Exemple de atomi: cuvinte cheie, identicatori, constante numerice, semne de punctuatie etc.
2) Analiza sintactic
a are ca scop gruparea atomilor rezultati n urma analizei lexicale n structuri sintactice. O structura sintactica poate vazuta ca
un arbore ale carui noduri terminale reprezinta atomi, n timp ce nodurile
interioare reprezinta siruri de atomi care formeaza o entitate logica . Exemple de structuri sintactice: expresii, instructiuni, declaratii etc.
3) Pe durata analizei sintactice, de obicei are loc si o analiz
a semantic
a,
ceea ce nseamna efectuarea unor vericari legate de:
-compatibilitatea tipurilor datelor cu operatiile n care ele sunt implicate,
77

78

M. Crasmareanu

-respectarea regulilor de vizibilitate impuse de limbajul sursa.


4) Generarea de cod intermediar: n aceasta faza are loc transformarea
arborelui sintactic ntr-o secventa de instructiuni simple, similare macroinstructiunilor unui limbaj de asamblare. Diferenta dintre codul intermediar
si un limbaj de asamblare este n principal aceea ca n codul intermediar nu
se specica registrele utilizate n operatii. Exemple de reprezentari pentru
codul intermediar: instructiunile cu trei adrese, notatia postx, etc. Codul
intermediar are avantajul de a mai usor de optimizat decat codul masina
.
5) Optimizarea de cod este o faza optionala al carei rol este modicarea
unor portiuni din codul intermediar generat astfel ncat programul rezultat
sa satisfaca anumite criterii de performanta vizand timpul de executie sau/si
spatiul de memorie ocupat.
6) Generarea codului final presupune transformarea instructiunilor codului
intermediar (eventual optimizat) n instructiuni masina (sau de asamblare)
pentru calculatorul tinta (cel pe care se va executa programul compilat).
In afara de aceste actiunile, procesul de compilare mai include urmatoarele:
7) Gestionarea tabelei de simboluri: tabela de simboluri este o structura de
date destinata pastrarii de informatii despre simbolurile (numele) care apar
n programul sursa; compilatorul face referire la aceasta tabela aproape n
toate fazele compilarii. 8) Tratarea erorilor: un compilator trebuie sa e
capabil sa recunoasca anumite categorii de erori ce pot apare n programul sursa; tratarea unei erori presupune detectarea ei, emiterea unui mesaj
corespunzator si revenirea din eroare, adica, pe cat posibil, continuarea procesului de compilare pana la epuizarea textului sursa, astfel ncat numarul
de compilari necesare eliminarii tuturor erorilor dintr-un program sa e cat
mai mic. Practic, exista erori specice ecarei faze de compilare.
Derularea procesului de compilare
Fazele unui proces de compilare se pot nlantui, n principiu, n doua moduri:
-la iesirea/nalul ecarei faze se va genera un sier intermediar continand
forma de reprezentare a programului sursa rezultata n faza respectiva, sier
ce va constitui intrare pentru faza urmatoare. In acest caz, n ecare faza va
avea loc cel putin o parcurgere a programului sursa, de la nceput la sfarsit.
O asemenea parcurgere se numeste trecere.
-doua sau mai multe faze de compilare se ntrepatrund astfel ncat ele sa se
execute printr-o singura trecere.
Aplicarea uneia sau alteia dintre aceste doua modalitati depinde de natura
limbajului compilat precum si de mediul n care urmeaza sa ruleze compilatorul. Astfel, n sprijinul proiectantilor de compilatoare au fost create

Cursul 14

79

instrumente software precum generatoarele de analizoare lexicale si sintactice, generatoarele de compilatoare sau sistemele de scriere a translatoarelor.
Aceste instrumente sunt programe care produc compilatoare sau parti din
compilatoare, primind la intrare o specicare a limbajului sursa precum si
a calculatorului tinta.
Un analizor lexical citeste textul sursa caracter cu caracter si-l transforma ntr-o secventa de unitati primitive (elementare) numite unit
ati lexicale, n engleza tokens.
O unitate lexicala descrie o secventa de caractere cu o anumita semnicatie
si este tratata ca o entitate logica. Astfel, pentru ecare limbaj de programare se stabilesc, atunci cand se proiecteaza acel limbaj, unitatile lexicale
corespunzatoare.
Majoritatea limbajelor utilizeaza urmatoarele unitati lexicale:
1) constante; exemplu: 737, 68.94, 3e + 2,
2) identificatori; exemplu: alpha, un ident,
3) operatori; exemplu: +, , /, <, >,
4) cuvinte rezervate; exemplu: begin, while,
5) semne speciale; de exemplu: ; . : .
Problema analizei lexicale comporta cel putin doua aspecte:
I) gasirea unei modalitati de descriere a unitatilor lexicale; astfel, se constata
ca expresiile regulate sunt instrumentele ce pot descrie orice unitate lexicala.
II) recunoasterea acestor unitati lexicale ceea ce constituie analiza lexicala
propriu zisa; daca descrierea se face prin intermediul expresiilor regulate
atunci mecanismul de recunoastere este automatul nit determinist conform
Teoremei 5.8.
Unitatile lexicale sunt de doua categorii:
a) unitati ce descriu un sir anume de caractere; exemplu if, while, ++ := ;
b) unitati ce descriu o clasa de siruri: identicatori, constante, etc.
In al doilea caz, vom considera o unitate lexicala ca ind o pereche (tipul,
valoarea).
Pentru unitati lexicale ce descriu un sir anume, prin conventie tipul
este acel sir iar valoarea coincide cu tipul. Astfel, caracterul ( este de tip
paranteza stanga iar alpha este unitate lexicala de tip identificator care are
valoarea alpha. Mai spunem ca alpha este o instanta a tokenului identicator
sau lexem.
LEXEM e 1) Cuvant sau parte de cuvant care serveste ca suport minimal
al semnicatiei; morfem lexical. 2) Unitate de baza a vocabularului care
reprezinta asocierea unuia sau a mai multor sensuri; cuvant; unitate lexicala.
din fr. lexeme. Sursa : NODEX (341523)

80

M. Crasmareanu
limbaje cu compilator C, FORTRAN, Pascal, ALGOL, BASIC

Pagini Web utile:


1) http://en.wikipedia.org/wiki/Compiler
2) http://ro.wikipedia.org/wiki/GNU Compiler Collection

Bibliografie
[1] Capra, F., Conexiuni ascunse, Ed. Tehnica, Bucuresti, 2004.
[2] Cazacu, C., Teoria calculabilit
atii efective, Ed. Univ. Al. I. Cuza, Iasi,
1996.
[3] Chiswell, I., A Couse in Formal Languages, Automata and Groups,
Universitext, Springer-Verlag, London, 2009.
[4] Grigoras Gh., Limbaje formale si tehnici de compilare, Ed. Univ. Al.
I. Cuza, Iasi, 1985.
[5] Grigoras Gh., Constructia compilatoarelor. Algoritmi fundamentali, Ed.
Univ. Al. I. Cuza, Iasi, 2005.
[6] Gontineac M., Limbaje formale si automate,
http://www.math.uaic.ro/mgonti/.

Note de curs,

[7] Holcombe W. M. L., Algebraic automata theory, Cambridge studies in


advanced mathematics 1, Cambridge Univ. Press, 1982.
[8] Howie J. M., Automata and Languages, Claredon Press, Oxford, 1991.
[9] Ivan Gh.; Ivan M., Concepte algebrice fundamentale n studiul limbajelor formale. Teorie si exercitii, Editura de Vest, Timisoara, 2006.
[10] Jucan, T.; Andrei, S., Limbaje formale si teria automatelor: Teorie si
practic
a, Ed. Univ. Al. I. Cuza, Iasi, 2002.
[11] Onicescu, O.; Stefanescu V., Elemente de statistic
a informationalcu
aplicatii, Ed. Tehnica, Bucuresti, 1979.
[12] Orman G., Limbaje formale, Ed. Tehnica, Bucuresti, 1982.
[13] Paun, Gh., Gramatici contextuale, Ed. Academiei, Bucuresti, 1982.
81

82

Bibliografie

[14] Simovici D., Limbaje formale si tehnici de compilare, EDP, Bucuresti,


1978.
[15] Srivastava, S. M., A course in mathematical logic, Universitext,
Springer-Verlag, 2008.
[16] Serbanati L. D., Limbaje de programare si compilatoare, Ed. Academiei,
Bucuresti, 1987.
[17] Tomescu I., Introducere n combinatoric
a, Ed. Tehnica, Bucuresti, 1972.
(Cap. 8, p. 93.)
[18] T
iplea F. L., Fundamentele algebrice ale informaticii, Ed. Polirom, Iasi,
2006.

Index
-masura unui limbaj, 72
k-cuvant, 1
nchiderea Kleene a unui limbaj, 8
nchiderea pozitiva a unui limbaj, 8
nmultirea repetata, 62

coecientul de corelatie a doua surse,


74
compilator, 77
compunere de functii partiale, 61
concatenarea cuvintelor, 2
congruenta pe un (semi)automat, 41
congruenta pe un semigrup, 6
semiautomat (automat) conex, 41
congruenta Rees, 22
congruenta generata de o relatie, 21
actiune a unui grup pe o multime, 45
congruenta Myhill, 44
actiune libera, 49
congruenta totala, 21
actiune tranzitiva, 49
corelatia a doua surse, 74
adunarea repetata, 62
cuvant nevid, 1
alfabet, 1
cuvant recunoscut de un automat, 30
alfabetul binar, 1
cuvantul vid, 1
alfabetul minimal al unui limbaj, 8
cuvinte egale, 2
alfabetul zecimal, 1
cvasicongruenta, 9
algebra Boole, 28
analiza lexicala, 77
denitie primitiv recursiva, 62
analiza semantica, 78
derivare ntr-o gramatica, 54
analiza sintactica, 77
distanta Hamming pe k-cuvinte, 14
analizor lexical, 79
distributia uniforma de probabilitate,
aplicatia de interpretare, 15
71
automat, 29
distributie de probabilitate, 71
automat autonom, 36
automat nit determinist (AFD), 29 ecuatia unui monoid, 23
automat nit nedeterminst (AFN), 29 ecienta unei surse de informatie, 73
automat minimal, 40
energia unei surse de informatie, 74
automat nedeterminist, 29
entropie, 72
automate echivalente, 33
enumerare Godel, 68
automate izomorfe, 40
evolutia limbajului, 17
automatul ciclic, 38
expresie ambigua, 16
83

84

Index

expresie regulata, 15
expresii regulate echivalente, 16

grupul ciclic de ordinul n-prezentare,


58
grupul diedral, 60
F-varietate de monoizi, 23
grupul diedral innit, 60
formula Burnside, 49
grupul simetric, 45
functia caracteristica a unei submultimi,
ideal ntr-un monoid, 22
39
functia caracteristica partiala a unei idempotent, 5
ierarhia Chomsky a gramaticilor, 54
multimi, 67
indicatorul de cod al unui limbaj, 72
functia de minimizare, 64
inegalitatea Gibbs, 73
functia de minimizare limitata, 64
iterata unei functii, 63
functia exponentiala, 65
functia factorial, 65
functia izoparametrica a unui grup
nit generat, 59
functia modul, 65
functia produs (multiplicare), 65
functia semn, 65
functia suma, 65
functie partiala, 61
functie partial recursiva, 64
functie primitiv recursiva, 62
functie recursiva, 64
functie totala, 61
functii initiale, 62
generare de cod intermediar, 78
generarea codului nal, 78
generatori ai unui semigrup, 3
gestionarea tabelei de simboluri, 78
gramatica, 53
gramatici echivalente, 54
grup automat, 59
grup de izotropie, 47
grup de transformari, 45
grup liber, 57
grupul bijectiilor unei multimi, 5, 45
grupul ciclic de ordin 2, 51
grupul ciclic de ordinul n-denitia,
52

latice, 26
latice booleana, 28
latice complementata, 27
latice distributiva, 28
latice marginita, 27
laticea submultimilor unei multimi,
26
lema de pompare, 25
limbaj (formal), 7
limbaj acceptat de un automat, 30
limbaj independent la concatenare, 8
limbaj produs neambiguu, 72
limbaj r.e. nerecursiv, 69
limbaj recognoscibil, 30
limbaj recunoscut de un monoid, 16
limbaj recursiv, 68
limbaj regulat, 9
limbajul generat de o gramatica, 54
limbajul obiect al unui compilator,
77
limbajul sursa al unui compilator, 77
litere, 1
lungimea unui cuvant, 1
metrica=distanta, 14
minimizare regulata, 64
monoid, 2
monoid banda, 22

Index
monoid liber, 3
monoid Rees, 22
monoid semilaticeal, 25
monoidul cuvintelor, 2
multime listabila, 67
multime periodica, 26
multime recognoscibila, 43
multime recursiv enumerabila (semirecursiva), 67
multime recursiva, 64
numarul literelor dintr-un cuvant, 4
obiect initial, 3
operatii boolene cu limbaje, 8
operatorul de minimizare limitata, 64
operatorul de minimizare MIN, 64
operatorul de recursie primitiva REC,
61
operatorul de superpozitie SUP, 61
optimizare de cod, 78
orbita, 47
palindrom, 17
permutare ciclica =k-ciclu, 49
pr-sir, 65
predicat, 62
predicat primitiv recursiv, 63
predicat recursiv, 64
prex, 9
prex propriu, 9
prezentarea grupurilor prin generatori si relatii, 57
problema cuvintelor, 58
proprietatea de universalitate a
monoizilor liberi, 3
r-sir, 65
recursie primitiva, 61
redundanta unei surse de informatie,
73

85
reguli de simplicare n monoidul cuvintelor, 4
reprezentarea tabelara a automatelor,
31
reversul unui cuvant, 17
ridicarea la putere a unui simbol, 2
RL-functie, 24
scaderea proprie, 65
semiautomat, 41
semiautomat (automat) perfect, 41
semiautomatul (automatul) grup, 41
semigrup, 2
semigrup liber, 3
semilatice, 27
simboluri, 1
spatiul proiectiv real, 52
stari k-echivalente, 39
stari echivalente, 39
stabilizator, 47
stare accesibila a unui automat, 35
stare ambigua a unui automat, 30
stare nedenita a unui automat, 30
stare productiva a unui automat, 36
structura automata pentru un grup,
59
structura rationala pentru un grup,
58
subcuvant, 9
subcuvant propriu, 9
subgrup, 4
sublatice, 27
submonoid, 4
subsemigrup, 4
sux, 9
sux propriu, 9
sumatorul modulo n, 41
sursa de informatie, 71
sursa produs de informatii, 73

86
teorema Kleene, 15
tipul unei unitati lexicale, 79
translator, 77
transpozitie, 49
tratarea erorilor la compilare, 78
trim, 36
unitati lexicale, 79
valoarea unei unitati lexicale, 79
varietate de monoizi, 22
VRL-functie, 24

Index

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