Sunteți pe pagina 1din 90

Complemente de matematic a pentru Computer Science Mircea Crmreanu as a

ii

Cuprins
1 Monoidul cuvintelor unui alfabet 2 Limbaje formale 3 Expresii regulate 4 Varieti de monoizi at 5 Automate 6 Automate echivalente 7 Automat minimal 8 Actiuni 9 Gramatici i limbaje generate. Ierarhia Chomsky s 10 Problema cuvintelor 11 Functii recursive 12 Multimi i limbaje recursiv enumerabile s 13 Entropia, energia i corelatia surselor de informatie s 14 Compilatoare 1: Analiz lexical a a Bibliograe Index 1 7 15 21 29 33 39 45 53 57 61 67 71 77 81 83

iii

iv

CUPRINS

Cursul 1

Monoidul cuvintelor unui alfabet


acest curs se denete una din notiunile de baz ale In s a ntregului curs. Denitia 1.1 Numim alfabet o multime nevid ale crei elemente le a a 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. general vom utiliza alfabete nite dar exist i aspecte teoretice de In a s mare important ce apeleaz la alfabete innite, de cardinal alef zero=cara a dinalul multimii numerelor naturale N adic alfabete innit numrabile. a a Denitia 1.3 Numim cuvnt nevid peste o aplicatie w : Nk := a {1, ..., k} cu k numr natural nenul numit lungimea cuvntului w i a a s + multimea cuvintelor nevide. notat l(w) sau |w|. Fie Vom nota w = w(1)w(2)...w(k). Din motive tehnice se consider i a s cuvntul vid dat de functia vid i notat (sau ) avnd l() = 0. a a s a Multimea tuturor cuvintelor (stringurilor) peste o notm i va avea un a s = + {}. rol important cele ce urmeaz. Deci n a Fie k multimea cuvintelor de lungime k; deci 0 = {} i 1 = . s = k . Elementele lui k le mai numim k-cuvinte. Avem k0 Exemple 1.4 i) Dat a denim ak prin a0 = respectiv ak = a...a unde membrul drept a apare de k ori. Deci ak k . n ii) Pentru alfabetul binar avem 2 = {00, 01, 10, 11} i s 1

M. Crmreanu as a

3 = {000, 001, 010, 100, 011, 101, 110, 111}. iii) Exemplul precedent sugereaz c dac card = n atunci cardk = nk . a a a Denitia 1.5 Cuvintele w1 , w2 le numim egale i scriem w1 = w2 s dac apartin uneia din situatiile urmtoare: a a I) l(w1 ) = l(w2 ) = 0 adic w1 = w2 = , a II) l(w1 ) = l(w2 ) = k 1 care caz cerem ca pentru orice i Nk s avem n a w1 (i) = w2 (i). Dup cum era de ateptat avem: a s Propozitia 1.6 Egalitatea este o relatie de echivalent pe . a Demonstratia Se veric (la Seminar) reexivitatea, simetria i tranzi a s tivitatea. Vrem s structurm multimea tuturor cuvintelor i introducem acest a a s n scop: Denitia 1.7 Numim concatenare sau juxtapunere pe aplicatia : , (w1 , w2 ) w1 w2 dat de: a I) = i w = w = w, s II) w1 w2 : N|w1 |+|w2 | este denit prin: a II1) w1 w2 (i) = w1 (i) dac i N|w1 | , a II2) w1 w2 (i) = w2 (i |w1 |) altfel. Reamintim c numim semigrup o pereche (S, ) cu S multime nevid i a as o lege de compozitie asociativ pe S iar un monoid este un semigrup a avnd un element neutru. a Exemple 1.8 i) Multimea drumurilor nchise (loop-uri) dintr-un vrf a xat al unui graf formeaz a mpreun cu operatia de concatenare un monoid a care element neutru este drumul nul. Din acest exemplu i Exemplul n s 1.4iii) rezult c anumite metode combinatoriale i de teoria grafurilor vor a a s utile continuare. n 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 morsm de monoizi: l(w1 w2 ) = l(w1 ) + l(w2 ). Observatii 1.10 i) Dac card 2 atunci + i sunt necomutative. a s adevr, pentru alfabetul binar e w1 = 10 i w2 = 0; avem w1 w2 = 100 = In a s w2 w1 = 010.

Cursul 1

ii) Pentru simplicarea scrierii, la concatenarea unor cuvinte se pot utiliza puteri pentru stringuri ce se repet. De asemeni, paranteze pentru stringuri a de lungime mai mare ca 1 ce se repet. Atentie, puterea a doua a lui 01, i.e. a 0101, se scrie (01)2 i nu 012 care este 011. s Un motiv pentru care structura algebric a acestor multimi de cuvinte a este bogat proprieti este acela c sunt liber generate. a n at a Denitia 1.11 i) Semigrup S se numete generat de multimea nit s a X S dac orice element din S se scrie ca produs de elemente din X: a pentru orice a S exist x1 , ..., xk X aa at a = x1 ...xk . Spunem a s nc despre X c este multime de generatori pentru S. Monoidul (M, , e) se a numete generat dac semigrupul SM = M \ {e} este generat. s a ii) S se numete liber dac exist o multime de generatori X pentru care s a a descompunerea oricrui element a S ca mai sus este unic. M este liber a a dac SM este liber. a Teorema 1.12 + i sunt liber generate de . s Exemple 1.13 i) Monoidul cu un singur element (cel neutru) se consider, prin denitie, generat de multimea vid. Tot prin conventie, acest a a monoid este liber. ii) N este liber cu generatorul {1}. Pn la un izomorsm, {e} i N sunt a a s 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 s nu e unic. a a Astfel, pentru Z avem i generatorii {2, 3}. Dar dac M este liber atunci s a multimea generatorilor este unic. a Un rezultat foarte important pentru cele ce urmeaz este Proprietatea a de universalitate a monoizilor liberi care exprim faptul c monoizii a a liberi sunt obiecte initiale categoria monoizilor: n Teorema 1.14 Fie M liber generat de GM , M un monoid oarecare i s . Atunci exist i este unic F : M M morsm de monoizi f : GM M as ce extinde pe f . Demonstratie Fie a M oarecare i descompunerea sa unic a = s a x1 ...xk . Denim F (a) = f (x1 )...f (xk ). Incheiem lista proprietilor importante ale monoizilor liberi cu: at Propozitia 1.15 Dat monoidul liber M exist o multime nit i un a a s morsm surjectiv de monoizi f : M .

M. Crmreanu as a

Demonstratie Fie ce genereaz liber pe M i incluziunea f : M . a s Aplicm proprietatea de universalitate. a O alt proprietate remarcabil a monoizilor liberi este dat de regulile a a a de simplicare pe care o exemplicm direct pe monoidul cuvintelor. Fie a deci x, y, z, t cu xy = zt: 1) dac l(x) = l(z) atunci y = t, a 2) dac l(x) < l(z) atunci exist m M aa at z = xm i y = mt, a a s nc s 3) dac l(x) > l(z) atunci exist m M astfel ca x = zm i t = my. a a s Denitia 1.16 Dat a i w notm |w|a numrul de litere a din s a a cuvntul w. a Exemple 1.17 |aba|a = 2, |aba|b = 1, |aba|c = 0; l(w) = a |w|a . Denitia 1.18 i) Fie (S, ) un semigrup i T S submultime nevid. s a 2 T i.e. pentru orice x, y T Spunem c T este subsemigrup al lui S dac T a a avem xy T . Dac S este monoid cu elementul neutru 1 spunem c T este a a submonoid dac este subsemigrup i 1 T . a s ii) Un semisubgrup al lui S ce este grup ( sine si) se va numi subgrup n nsu 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) S se arate c elementul neutru al unui monoid M este unic. a a ii) S se arate c x M oarecare admite cel mult un invers. a a e Rezolvare i) Fie e i e elemente neutre. Deoarece e este neutru avem s = ee iar deoarece e este neutru avem e = ee . ii) Fie x i x inverse pentru x. Avem x = ex = (x x)x = x (xx ) = s e = x . x

S1.2 S se arate c G(M ) = {x M ; x admite invers x1 } este grup; a a numit grupul unitilor lui M . at Rezolvare Avem c e G(M ) deoarece e = ee = ee adic e1 = e. a a 1 G(M ) cu (x1 )1 = x. Dac x G(M ) atunci i x a s S1.3 Fie S o multime nevid. S se arate c F (S) = {f : S S} a a a este monoid relativ la compunerea functiilor. Cine este grupul unitilor lui at F (S)?

Cursul 1

Rezolvare Stim c operatia de compunere a functiilor este asociativ a a iar element neutru este 1S functia identic. Avem c G(F (S)) = Bij(S) = a a {f : S S; f bijectie}. S1.4 Se cer a, b N aa at legea de compozitie liniar x y = ax + by s nc a s determine pe N o structur de monoid comutativ. a a Rezolvare Din comutativitatea x y = y x avem ax + by = ay + bx ceea ce nseamn (a b)(x y) = 0 pentru orice x, y numere naturale; a alegnd x = y rezult a = b i deci x y = a(x + y). Asociativitatea a a s a[a(x + y) + z] = a[x + a(y + z)] conduce la a2 = a. Cazul a = 0 este trivial i-l eliminm; rezult a = 1. concluzie, avem (N, +, e = 0) ca unica s a a In lege de compozitie liniar ce d structur de monoid comutativ pe multimea a a a numerelor naturale. S1.5 Fie (M, ) i (N, ) dou multimi s a nzestrate cu legi de compozitie i f : M N o surjectie. S se arate c dac M este monoid (abelian) s a a a atunci N este monoid (abelian). S1.6 ! S se arate c este posibil existenta unui subsemigrup T ale a a a unui monoid M aa at T este monoid fra a submonoid al lui M . s nc a Rezolvare Fie M = N4 = {1, 2, 3, 4} cu legea xy = max{x, y}. Avem imediat c (M, , 1) este monoid. Fie T = {2, 3, 4}; T este subsemigrup al a lui M dar nu este submonoid deoarece 1 nu apartine lui T . Pe de alt parte a (T, , 2) este monoid. S1.7 Elementul e al semigrupului S se numete idempotent dac e2 = e. s a Denim pentru idempotentul e multimea He = {x S; xe = ex = x, y S xy = yx = e}. i) S se arate c He este multime nevid. a a a ii) S se arate c He este subsemigroup al lui S. a a iii) S se arate c He este grup. a a iv) Se cer idempotentii i grupurile corespunztoare He pentru monoidul de s a la exercitiul precedent. v) S se arate c un semigrup nit S admite idempotenti. a a Rezolvare i) e He . ii) Fie a, b He cu elementele corespunztoare a , b . Avem: (ab)e = a(be) = a ae = e i e(ab) = (ea)b = eb = e respectiv (ab)(b a ) = a(bb )a = aea = s aa = e i (b a )(ab) = b (a a)b = b eb = b b = e. s iii) Fie a He cu corespondentul a i s considerm a1 = ea e. Avem: s a a aa1 = (ae)a e = aa e = ee = e i a1 a = ea (ea) = ea a = ee = e. Mai s

M. Crmreanu as a

trebuie artat c a1 He : a1 e = ea ee = a1 i ea1 = eea e = a1 . a a s iv) Orice element e N4 este idempotent i He = {e}. s S1.8 Fie o relatie de echivalent pe semigrupul (monoidul) S. Spunem a c este o congruenta pe S dac a b i s S implic sa sb i as bs. a a s a s S se arate c acest caz S/ este un semigrup (monoid). a a n Rezolvare Denim [a][b] := [ab] i trebuie artat buna denire. Dac s a a a a c i b d atunci ab cb i cb cd de unde rezult ab cd. Faptul c s s a a S/ este semigrup (monoid cu identitatea [1]) este imediat. Exemplu Egalitatea pe monoidul cuvintelor este o congruent. a S1.9 i) S se arate c un morsm de semigrupuri f : S T induce o a a congruent pe S. a ii) Invers, dat congruenta pe S avem c : S S/ , (a) = [a] este a a morsm de semigrupuri. concluzie, exist o corespondent natural In a a a ntre congruente i morsme s de semigrupuri. Rezolvare i) Denim pe S prin: a b dac f (a) = f (b). Cum a egalitatea este o echivalent avem c este o echivalent pe S. Fie s S a a a oarecare. Cum f este morsm avem: f (as) = f (a)f (s) = f (b)f (s) = f (bs) i f (sa) = f (s)f (a) = f (s)f (b) = f (sb); deci este o congruent pe S. s a ii) (ab) = [ab] = [a][b] = (a)(b). S1.10 Fie f : S T morsm surjectiv de semigrupuri i relatia de s echivalent indus de f . Atunci f : S/ T, f ([a]) = f (a) este un a a morsm bijectiv (i.e. izomorsm) de semigrupuri i notm S/ T . s a Rezolvare S artm buna denire: [a] = [b] implic f (a) = f (b) i.e. a aa a f ([a]) = f ([b]). Fie t T ; cum f este surjectiv a exist s S aa a s at f (s) = t, rezult f ([s]) = t i.e. f este surjectiv. Dac f ([a]) = nc a a a f ([b]) atunci f (a) = f (b) i.e. [a] = [b], deci f este injectiv. Avem a i f ([a][b]) = f ([ab]) = f (ab) = f (a)f (b) = f ([a])f ([b]) i.e. f este s morsm de semigrupuri. S1.11 Fie o multime nevid, T un semigrup i aplicatia f : T . a s + T ce extinde pe f Atunci exist un unic morsm de semigrupuri g : a 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 c g extinde pe f i c este morsm a s a de semigrupuri. Unicitatea rezult din modul de constructie. a

Cursul 2

Limbaje formale
Fixm alfabetul (nit) . a Denitia 2.1 Numim limbaj (formal) peste o submultime L i.e. i.e. L P( ). Un element L este un element din multimea prtilor lui a din L numim propozitie sau armatie (statement englez). Dac L l n a a este multime nit spunem c avem un limbaj nit; caz contrar avem un a a n limbaj innit. Prin conventie, multimea vid se accept ca limbajul vid a a peste orice alfabet la fel ca i {}. s Observatii 2.2 i) = {}; astfel, primul limbaj n-are cuvinte timp n ce al doilea limbaj are un cuvnt. a ii) Limbajele de programare (e.q. Pascal, C, Java) sunt peste alfabetul ASCII i sunt innite. s iii) Trebuie avut o mare grij la modul (regula) de denire a unui lima a baj. Astfel, avem limbajele peste alfabetul binar L1 = {0n 1n ; n N} i s L2 = {cuvinte cu acelai numr de 0 i 1} care difer deoarece: s a s a L1 = {, 01, 0011, 000111, ...}, L2 = {, 01, 10, 0011, 1001, 1010, 1100, 0101, ...}. Observatia 2.3 Dat limbajul nevid L considerm multimea alph(L) = a {a ; u, v a. uav L}. Avem c alph(L) este alfabetul minimal a peste care poate denit limbajul L. I) S artm c alph(L) este nevid. a aa a a I1) L; atunci considernd u = v = rezult c a = alph(L). a a a I2) Fie w L, w = . Lund u = i v = w(2)...w(|w|) dac |w| > 1 a s a respectiv v = dac |w| = 1 obtinem c a = w(1) alph(L). a a II) Cum alph(L) i este nit rezult c alph(L) este multime nit. s a a a a Deci alph(L) este un alfabet. III) Faptul c L (alph(L)) este imediat folosind rationamente de tipul a 7

M. Crmreanu as a

celor de la I. IV) Faptul c alph(L) este minimal cu proprietatea III propunem ca Tem. a l a Operatii booleene cu limbaje 2.4: din teoria general a multimilor a avem c date limbajele L1 i L2 sunt atunci limbaje: a s i) reuniunea L1 + L2 := L1 L2 , ii) intersectia L1 L2 , iii) complementara L1 := \ L1 . Datorit structurii algebrice a lui putem deni i produsul L1 L2 = a s {uv; u L1 , v L2 } care este evident un limbaj. Este avantajoas notatia a exponential; astfel pentru limbajul L avem limbajele L0 = {}, Ln = a Ln1 L pentru numrul natural nenul n. a Denitia 2.5 Limbajul L se numete independent la concatenare dac s a n = . L n2 L Exemple 2.6 i) Pentru alfabetul binar i limbajul L = {01, 110} avem: s L2 = {0101, 01110, 11001, 110110}, L3 = {010101, 0111001, 1100101, 11011001, 0101110, 01110110, 11001110, 110110110}. ii) Produsul limbajelor este necomutativ. Pentru L1 = {, 101} i L2 = s {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 i 213222213 L4 L5 deoarece 213, 2222, 1, 3 L iar s 21, 3, 2222, 1, 3 L. Totodat 213222213 9 . a M = {2, 13, 222} este limbaj peste i 213222213 L4 L5 M 5 M 7 dei s s L M = . Denitia 2.8 Dat limbajul L denim L+ = n1 Ln numit nchiderea pozitiv respectiv L = n0 Ln numit a 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 anterioar provine din faptul c pentru L = a a avem L+ = + i L = . s ii) Pentru limbajul L oarecare avem c L+ este subsemigrup + iar L a n este submonoid . n Propozitia 2.10 i) L , L+ = L L = LL , L = LL + {} ii) L+ dac i numai dac L, as a + L (L + L ) , (L L ) L L , iii) L1 1 2 1 2 2 1 2 iii) L1 (L2 L1 ) = (L1 L2 ) L1 ,

Cursul 2 iv) L (L2 L ) = (L1 L2 ) , 1 1 v) L3 (L1 L2 L3 ) L2 = (L3 L L2 )+ . 1

Denitia 2.11 Limbajul L se numete regulat dac este vid sau se poate s a construi din elementele lui folosind doar operatiile de produs, + i . s Exemple 2.12 i) L = {numere binare nenule} este regulat peste alfabetul binar deoarece L = 1(0 + 1) ; orice numr binar nenul a ncepe cu cifra 1 i se continu cu un ir (posibil vid) de 0 i 1. Aici i cele ce urmeaz, s a s s s n a 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 ( notatia anglo-saxon)=virgula n a zecimal. a iv) Numerele binare cu blocuri de 1 avnd lungime par=(0 + 11) . a a v) Numerele binare continnd 1011=(0 + 1) 1011(0 + 1) . a Teorema 2.13 i) Un limbaj nit este regulat. ii) Dac L1 i L2 sunt regulate atunci L1 L2 este regulat. a s iii) Dac L este regulat atunci L este regulat. a Denitia 2.14 Date cuvintele w, v spunem c v este subcuvnt al a a aa at w = xvy. Dac plus, x sau y difer lui w dac exist x, y s nc a a a n a de spunem c v este subcuvnt propriu al lui w. x numim prex sau a a l initial al lui w respectiv prex propriu dac difer de ; analog y este sux a a sau terminal al lui w respectiv sux propriu dac difer de . a a O generalizare a Exemplului 2.3 este urmtoarea: pentru w e a SubP (w) multimea subcuvintelor proprii ale lui w. Avem c SubP (w) este a 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}. Denitia 2.15([12, p. 55]) Relatia de echivalent R pe monoidul o a numim cvasicongruent dac odat cu uRv avem i xuyRxvy pentru orice a a a s x, y . Dac plus, R are un numr nit de clase de echivalent spunem a n a a c R este de index nit. a Exemple 2.16 i) Orice congruent este cvasicongruent. a a ii) Fixm limbajul L i denim uRL v dac pentru orice x, y cu l(x) = a s a l(y) din xuy L rezult xvy L i invers. Avem imediat c RL este o elatie a s a . de echivalent pe a Propozitia 2.17 RL este o cvasicongruent. a

10

M. Crmreanu as a

Demonstratie Fie u, v, a, b cu l(a) = l(b) i uRL v. Deci aub L s x i b = yb cu x, y . Avem dac i numai dac avb L. Fie a = a s a s a a xuyb L dac i numai dac a xvybl L cu l(a ) = l(b ). Rezult a s a a xuyRL xvy pentru orice x, y . Propozitia 2.18 Limbajul L este saturat de RL adic L este reuniunea a claselor de echivalent relativ la RL . a Demonstratie Din denitie cu x = y = avem c uRL v dac avem a a echivalenta: u L dac i numai dac v L, ceea ce spune c orice clas as a a a de echivalent relativ la RL este inclus L. a a n Propozitia 2.19 Orice cvasicongruent ce satureaz pe L este o ranare a a 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} i limbajele L = {12, 4}, M = {, 3}. Se cer: s 2 M , L2 M 2 , i) LM , M L, L 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 cte elemente din 4 a ncep cu 22? Rezolvare Avem 4 cifre ce trebuie aranjate perechi pentru a n n forma ultimele dou cifre ale elementelor cerute=44 = 16. Multimea cerut a a 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) numrul elementelor lui 0 + 2 , a ii) numrul elementelor lui 6 ce a ncep cu 22 i sfresc cu 1. s as Rezolvare i) |0 + 2 | = 1 + 52 = 26. ii) 53 = 125. S2.4 Fie de la Ex. 2.1. i) Cte cuvinte sunt + de lungime strict mai mic de 5? a n a

Cursul 2

11

ii) Cte cuvinte sunt de lungime strict mai mic de 5? a n a + iii) Cte cuvinte sunt ncepnd cu 12 i de lungime strict mai mic a n a s a 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 cerut este {12, 12x, 12xy; a x, y }. S2.5 Se d limbajul L continnd pe i alte 8 elemente diferite. Cte a a s a elemente are L2 ? Rezolvare L2 = L+{xy; x, y L\{}}; deci |L2 | = 9+82 = 9+64 = 73. S2.6 Pentru = {0, 1, 2} s se decid dac armatiile urmtoare apartin a a a a 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 armatia dat. n a ii) Da, scriind (1)2()22(011). iii) Nu, deoarece un element din L ncepe cu 0 sau 1 iar armatia dat a ncepe cu 2. S2.7 Aceeai problem pentru = {0, 1, 2, 3}, s a L = (0+1) 2(0+1)+ 22(0+1+3) i: i) 120122, ii) 1222011, iii) 3202210101. s Rezolvare i) Da, scriind (1)2(01)22(). ii) Nu, cci a treia cifr poate doar 0 sau 1 ori se a a ncepe cu 2 iar armatia dat nu satisface niciuna din aceste conditii. a iii) Nu, cci un element din L a ncepe cu 0, 1 sau 2. S2.8 Aceeai problem pentru de la Ex. 2.6, L = (0 + 1) (102)(1 + 2) s a i: i) 012102112, ii) 1110221212, iii) 10211111, iv) 102, v) 001102102. s 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 dup 102 apare 102 ce nu apartine lui (1 + 2) . a S2.9 Pentru de la Ex. 2.7 se cere scrierea urmtoarelor limbaje: a i) L = {armatiile ce contin o singur dat cifra 2}, a a ii) L = {armatiile ce contin de trei ori cifra 2}, iii) L = {armatiile ce contin cifra 2},

12

M. Crmreanu as a

iv) L = {armatiile ce contin cuvntul 2112}, a v) L = {armatiile ce contin cifra 2 cuvinte de lungime 3}. n 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 tastatur a unui caracter, aarea a s acestuia, a predecesorului i succesorului i a codurilor ASCII aferente. s s //predecesorul i succesorul unui caracter i codurile lor ASCII s s #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 coloan apare codul hexazecimal iar pe a doua coloan cel a a zecimal.) Tem Scrieti varianta Pascal a problemei. a S2.11 (Program C) S se aeze codurile, hexazecimal i zecimal, a s n s ale tuturor literelor. //codurile ASCII ale tuturor literelor majuscule i minuscule s #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 Scrieti varianta Pascal a problemei. a S2.12 (Program C) Dat un numr natural se cere caracterul coresa punztor. a //conversia din ntreg caracter n #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 ocup un singur octet spre deosebire de un a ntreg care ocup a 8 =256, exemplul 2 octeti. De aceea se calculeaz numrul dat modulo 2 a a n nostru este 65 iar 65 este codul zecimal al lui A.) n Tem Scrieti varianta Pascal a problemei. a 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) contorizeaz a numrul simbolurilor diferite din a i b. S se arate c dH este o metric pe a s a a a k : I) (pozitiva denire) dH (a, b) 0; dH (a, b) = 0 dac i numai dac a = b, as a

14

M. Crmreanu as a

II) (simetria) dH (a, b) = dH (b, a), III) (inegalitatea triunghiului) dH (a, c) dH (a, b) + dH (b, c). S2.14 Se d limbajul L nevid ce satisface L2 = L. S se arate c: a a a i) dac L are un singur element atunci L = {}, a ii) dac L are mai mult de un element atunci exist w L cu w = i astfel a a s c pentru orice v = avem l(w) l(v). S se deduc de aici c L, a a a a iii) L = L. Rezolvare i) Fie L = {w} i k = l(w). Avem L2 = {w2 } cu l(w2 ) = 2k. s Din ipotez rezult 2k = k i.e. k = 0. a a iii) Avem L3 = L2 = L i analog pentru orice n 1 avem Ln = L; deci s L+ = L. Cum L rezult c L = L+ + = L + = L. a a S2.15 Matlab, e caracter (char) este reprezentat intern printr-o In valoare numeric corespondent. astfel, locul accesrii acestor valori, se a a n a poate lucra cu caractere, aa cum apar acestea pe ecran. Un ir de caracs s tere (string) eset, deci, un vector ale crui elemente sunt codurile numerice a corespunztoare caracterelor de pe ecran. a Valorile de tip caracter se denesc folosind apostrofuri. De exemplu, se denete variabila x, cu valoare de tip caracter i se veric cu functia class s s a tipul acesteia: >> x=a; >> class(x) ans = char Similar pentru iruri de caractere: s >> 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 i cursul precedent xm de la bun s n a nceput un alfabet (nit) . Denitia 3.1 Considerm simbolurile ), (, +, ce nu apartin lui . Nu a mim expresie regulat un cuvnt w al alfabetului {, (, ), +, } avnd una a a a din formele urmtoare: a 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 regulat. a Fie Rex() multimea expresiilor regulate. Observatii 3.2 i) Modul de denire al expresiilor regulate este inductiv. ii) Ca i cursul precedent uneori vom renunta la parantezele redundante s n atunci cnd contextul de lucru este evident. a iii) Prin conventie, are prioritatea maxim, urmeaz concatenarea i apoi a a s + ((xy))x)) este (xx + y) + xyx. +. Astfel, ((((xx) + y) Denitia 3.3 Aplicatia K : Rex() P( ) denit prin: a a) K() = , K(x) = {x} dac x , a 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 i numai as dac apartine imaginii aplicatiei de interpretare K i.e. exist o expresie a a regulat w Rex() aa at L = K(w). a s nc 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. Crmreanu as a

Denitia 3.6 Expresiile regulate w1 , w2 Rex() se numesc echivalente dac K(w1 ) = K(w2 ). Notm w1 = w2 . a a Exemple 3.7 i) w1 + w2 = w2 + w1 i + w = w + = w pentru orice s w1 , w2 , w Rex(). ii) xx y + y = x y. Propozitia 3.8 Notnd cu E diverse expresii regulate avem urmtoarele a a proprieti de echivalent: at 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 . Denitia 3.9 Expresia regulat E Rex() se numete ambigu dac a s a a exist o armatie K(E) care se poate descrie dou moduri diferite (fr a n n a aa utilizarea cuvntului vid la concatenare!). a Exemplu 3.10 E = (xy) + (x + y) este ambigu deoarece xy K(E) a se poate scrie xy + i ca element din + (x + y) . s scrierea unor limbaje de programare gsim expresii de tipul: In a < liter >::= A|B|...|Z, a < cifr >::= 0|1|...|9, a

< identicator >::=< liter > (< liter > | < cifr >) a a a ce sunt exact expresii regulate avnd variabilele < liter >, < cifr > i a a a s < identicator > iar simbolul | joac rolul lui +. a Pentru limbajul xat L denim relatia: L = {(w, z) ; uwv L uzv L, u, v }. Deoarece echivalenta logic este o relatie de a echivalent avem c L este o relatie de echivalent. S artm c este o a a a a a a a congruent. Fie (w, z) L i x oarecare. Avem c (xw, xz) L i a s a s (wx, zx) L mod evident datorit regulilor de simplicare din monoidul n a . L o numim congruenta sintactic asociat limbajului L iar monoidul a a ct Syn(L) = /L se numete monoidul sintactic al lui L. a s Denitia 3.11 Limbajul L este recunoscut de monoidul M dac exist a a M i P M aa at L = 1 (P ). un morsm de monoizi : s s nc Propozitia 3.12 L este recunoscut de monoidul sintactic Syn(L). Demonstratie Aplicatia de proiectie : Syn(L) este morsm de monoizi i considerm P = (L). Avem evident L = 1 (P ). s a Utilitatea monoidului sintactic este dat de: a

Cursul 3 Teorema 3.13 Urmtoarele armatii sunt echivalente: a i) L este regulat. ii) Syn(L) este nit; adic L are indice nit. a iii) L este recunoscut de un monoid nit.

17

Denitia 3.14 i) Dat cuvntul w = x1 ...xn numim reversul su a a cuvntul wR = xn ...x1 . Se noteaz i M i(w) din englez: mirror = oglind. a as a a R = w. Fie P al() multimea ii) Un cuvnt w numim palindrom dac w a l a acestor cuvinte simetrice. iii) Dat limbajul L denim reversul su limbajul LR = {wR ; w L}. a Exemplul 3.15 Dac are dou litere distincte a, b atunci {an ban ; n a a } P al(). N Propozitia 3.16 i) (L1 + L2 )R = LR + LR , (L1 L2 )R = LR LR , (L )R = 1 2 2 1 R ) . (L ii) L este regulat dac i numai dac LR este regulat. as a Inainte de a prsi subiectul limbaje vom cita opiniile deosebit de inaa teresante ale zicianului Fritjof Capra din [1, p. 87-88]: ... limbajul este un sistem de comunicare simbolic. Simbolurile sale-cuvinte, gesturi i alte a s semne-servesc ca indicii pentru coordonarea lingvistic a actiunilor. Aceasta a la rndul ei, creeaz notiunea de obiecte, i astfel simbolurile devin asociate a a s cu imaginile noastre mentale ale obiectelor. aceeai carte, la paginile In s 92-94, este prezentat ASL-American Sign Language ca exemplu de limbaj utilizat dialogul cu persoanele surde dar i cu cimpanzeii. La pagina 94 n s ncepe sectiunea Originile limbajului uman ce prezint o foarte interesant a a teorie ce pune vorbirea conexiune cu micrile minilor ca ind contron s a a late de aceeai regiune motoare a creierului (pag. 95). Citm de la pagina s a 97: Aparitia cuvintelor comunicarea strmoilor notri a adus avantaje n a s s imediate. Cei care comunicau vocal, o puteau face i cnd aveau minile s a a ocupate, sau cnd interlocutorul era a ntors cu spatele. cele din urm, In a aceste avantaje evolutive vor aduce schimbrile anatomice necesare vorbirii a articulate desvrite. Timp de zeci de mii de ani, pe msura evolutiei a as a traiectului nostru vocal, oamenii au comunicat printr-o combinatie de ges turi pecise i cuvinte vorbite pn cnd, nal, vorbirea a surclasat semnele s a a a n i a devenit forma dominant de comunicare uman. Chiar i azi, folosim s a a s gesturile atunci cnd limbajul vorbit nu ne servete. a s 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 SEMINARUL 3 S3.1 Dati exemple de palindroame din limba romn. a a

M. Crmreanu as a

Rezolvare 1) cu 3 litere: apa, ara, aba, ata, aa, bob, coc, ere, mim, s rar, pop, sas, tot. 2) cu 4 litere: ?. 3) cu 5 litere: anina, caiac, capac, cojoc, etate, minim, soios, potop, reper, rotor, tivit. DEX98, exist jur de 35 de palindroame de 5 litere. In a n 4) 9 litere: aerisirea. 5) 7 litere: rotitor, elevele, atacata, rotator, rolelor, ataata, Elenele, etajate, s 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. O RAMA MARO. ERA O TIPA RAPITOARE ! NOI VOTAM, MA, TOV. ION. 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 numr nr se cer numrul su de cifre, a a a suma cifrelor sale, produsul cifrelor nenule, cifra de ordin k (cu k dat de la tastatur) i inversatul su. a s a //operatii cu cifrele unui numar #include<iostream.h> #include<math.h> void main() { int n,k, nr, N=0, cifra, rasturnat=0;

Cursul 3 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 Scrieti varianta Pascal a problemei. a

19

S3.4 (Program C) Se d un numr natural N mai mare strict ca 2. a a Se cere aarea unui ir de lungime N cu primele N/2 elemente ordine s s n cresctoare iar ultimele N/2 elemente ordine descrectoare. a n a /*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 { 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; }

M. Crmreanu as a

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 Scrieti varianta Pascal a problemei. a S3.5 Matlab funtia strcat(s1, s2,s3, ...) concateneaz pe orizonIn a tala irurile s1, s2, s3, .... Spatiile nale ale irurilor care se concateneaz as s a 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 aceast dat, a a irul rezultat avem spatiile libere de la captul irurilor s1 i s2: n s a s s >> [s1 s2 s3] ans = elemente de baza in Matlab Functia strcvcat(t1, t2, t3, ...) concateneaz pe vertical irurile t1, a as t2, t3, ... constituind un tablou de caractere: >> >> >> >> ans abc def ghi t1=abc; t2=def; t3=ghi; strvcat(t1, t2, t3) =

Cursul 4

Varieti de monoizi at
Fie monoidul M i congruentele Ci , i I pe M . Rezult imediat c C = s a a iI Ci este o congruent pe M . Fie acum R o relatie oarecare pe M gndit a a a ca submultime M M i s observm c exist congruente ce o includ, n s a a a a sensul incluziunii de multimi; spre exemplu congruenta total M M . n a Aplicnd argumentul anterior exist intersectia tuturor congruentelor ce a a contin pe R i s-o notm R conform [8, p. 197]; rezult c R este cea s a a a mai mic ( sensul relatiei de ordine dat de incluziunea submultimilor lui a n a M M ) congruent ce contine pe R: dac C este o congruent i R C a a a s atunci R C. Denitia 4.1 R se numete congruenta generat de R. s a S ne amintim c pentru limbaje regulate eram interesati de congruente a a de index nit; acest sens dm: n a Propozitia 4.2 Dat alfabetul i C o congruenta pe de index nit s aa at C = T . Cu alte cuvinte, exist o submultime nit T a lui a a s nc orice congruent de index nit pe monoidul cuvintelor unui alfabet este de a tip sharp. Demonstratie Fie w i clasa sa de echivalent [w] relativ la C. s a Denim l : /C N prin l([w]) = min{|z|; z [w]}. Cum C este de index nit exist mC = max{l([w]; [w] /C)}; e kC = mC + 1. Rezult c a a a pentru orice [w] /C exist z [w] cu |z| < kC ; caz contrar am avea a n l([w]) kC 1 + l([w]), fals. Fie T = {(u, v) ; (u, v) C, |u| kC , |v| kC } i e R congruenta T . Deoarece T kC i rezult c T s a a i=0 este multime nit. a Avem din modul de denire, T C i deci R C. Mai rmne de artat s a a a c C R. Vom proceda prin reducere la absurd. Fie deci (u, v) C cu a 21

22

M. Crmreanu as a

(u, v) R. Putem presupune, eventual schimbnd ordinea datorit simetriei / a a relatiei de echivalent C, c |u| |v|; de asemeni, putem considera u i v aa a a s s at |u| + |v| este cea mai mic posibil. Nu putem avea |u| < kC deoarece nc a a ar rezulta i |v| < kC ceea ce spune c (u, v) R. Fie deci |u| kC ; s a cu |u | = k . Exist v [u ] cu |v | < k . Deci, prin urmare u = zu a C C (u , v ) T R C. Din [v] = [u] = [zu ] i [zu ] = [zv ] rezult prin s a tranzitivitate c [v] = [zv ]. Dac am presupune c (v, zv ) R ar rezulta a a a din aceast relatie i u = zu , (zu , zv ) R c (u, v) R ceea ce contrazice a s a presupunerea de plecare. Prin urmare, (v, zv ) C, (v, zv ) R i |v|+|zv | < |v|+|zu | = |u|+|v| / s ceea ce contrazice ipoteza de minimalitate de la care am plecat. Denitie 4.3 O submultime nevid I a monoidului M se numete ideal a s dac din a I i s M oarecare rezult as I i sa I. a s a s Idealele sunt o surs important de congruente. Astfel, dat idealul I a a denim relatia CI pe M prin (a, b) CI dac sau a = b sau a i b apartin a s simultan lui I. Se veric imediat c CI este o congruent pe M avnd a a a a drept clase de echivalent multimile singleton {a} pentru a M \I respectiv a multimea I. Monoidul ct M/CI se noteaz M/I i regulile de calcul sunt: a a s I) {a}{b} := {ab} dac ab I respectiv I caz contrar, a / n II) {a}I = I{a} = II = I i deci I este un zerou al lui M/I. Prin urmare, putem gndi M/I ca s a ind format din M \ I i un zerou iar produsul a dou elemente nenule {a} s a i {b} este e elementul nenul {ab} dac acesta nu apartine lui I, e zeroul s a dat. Acest tip de congruente se numesc congruente Rees iar monoidul ct a M/I numim monoid Rees dup numele celui care le-a introdus. l a Denitia 4.4 O clas V de monoizi o numim varietate dac este a a nchis a la considerarea submonoizilor, monoizilor ct i a produselor directe. a s Prin urmare, V este o varietate dac: a V1) odat cu M V i S submonoid al lui M avem c S V , a s a V2) odat cu M V i C congruent pe M avem c M/C V , a s a a V3) odat cu Mi V , i I avem c iI Mi V . a a Exemple 4.5 Sunt varieti urmtoarele clase: at a i) Clasa Com a monoizilor comutativi, ii) Clasa Bm monozilor band care ecare element este idempotent. a n Prin contrast, clasa grupurilor nu este varietate; spre exemplu lum grupul a ciclic innit M =< a > iar submonoidul puterilor pozitive {1, a, a2 , ...} nu mai este grup.

Cursul 4

23

Deoarece din acelai motiv al limbajelor regulate suntem interesati s n nitudine, putem introduce i: s Denitia 4.6 O clas V de monoizi niti o numim F-varietate dac a a satisface V1, V2 i: s V3F) odat cu Mi V , i {1, 2} avem c M1 M2 V . a a Observatia 4.7 Este evident c loc de V3F putem lucra cu: a n V3Fn) odat cu Mi V , i {1, ..., n} avem c M1 ... Mn V pentru a a orice n 2. Exemple 4.8 Sunt F-varieti: at i) clasa tuturor monoizilor niti, particular clasa tuturor monoizilor niti n dintr-o varietate V . ii) clasa tuturor grupurilor nite. iii) Fie o colectie nevid Vi , i I de F-varieti. Atunci iI Vi este o F a at varietate. iv) Fie M = {Mj , j J} o colectie nevid de monoizi niti i V intersectia a s tuturor F-varietilor ce contine pe M . Aceast intersectie exist deoarece at a a putem considera F-varietatea tuturor monoizilor niti. Conform iii) avem c V este F-varietate, cea mai mic sensul incluziunii ce contine pe M . a a n Spunem c V este generat de M i o mai notm B(Mj ; j J). a a s a Denitia 4.9 Fie u, v . Spunem c monoidul M satisface ecuatia a M avem (u) = (v). u = v dac pentru orice morsm de monoizi : a Mai putem spune c u = v este ecuatia lui M . a Exemple 4.10 i) Ecuatia monoidului comutativ este xy = yx. ii) Ecuatia monoidului band este x2 = x. a Dac avem un ir (nit sau innit) (un , vn ) de perechi de elemente din a s atunci putem considera clasa C a tuturor monoizilor avnd ecuatiile a un = vn , n 1. Se arat imediat c C este o varietate i o notm V (un = a a s a vn , n 1). Spre exemplu, Com = V (xy = yx) i Bm = V (x2 = x). s In 1935, Birkho a demonstrat rezultatul reciproc (mai dicil) i anume c s a orice varietate este denit de ecuatii. a S xm F-varietatea V i alfabetul . Fie LV () multimea limbajelor a a s peste al cror monoid sintactic apartine lui V . Orice limbaj din LV () a este regulat avnd monoidul sintactic asociat nit. Un criteriu util de testare a a apartenentei la LV () este dat de: Propozitia 4.11 Fie limbajul L peste . Atunci L apartine lui LV () dac i numai dac L este recunoscut de un monoid din V . as a

24 Avem i: s

M. Crmreanu as a

Propozitia 4.12 Fie V i W dou F-varieti de monoizi. Atunci V s a at W dac i numai dac LV () LW () pentru orice alfabet nit . as a Prin urmare avem: Corolarul 4.13 Fie V i W dou F -varieti. Avem V = W dac i s a at a s numai dac LV () = LW () pentru orice alfabet nit . a Denitia 4.14 i) O aplicatie L ce asociaz unui alfabet nit o a submultime L () a limbajelor regulate peste o numim RL-functie. ii) O RL-functie L o numim VRL-functie dac: a 1) pentru orice alfabet multimea L () este nchis la reuniune i luarea a s complementarei, 2) date alfabetele i , i = 1, 2 i morsmul de monoizi : avem c s a 1 2 L L (2 ) implic 1 (L) L (1 ), a 3) pentru orice alfabet , orice a i orice L L () avem c a1 L i s a s 1 sunt L () unde, prin denitie, w este element a1 L dac La n n a aw L. Observatii 4.15 Conditia 1) de mai sus implic faptul c L () este a a nchis la operatiile boolene de reuniune, intersectie i complementare. Conditia a s c u1 L 3) implic, prin calcul inductiv dup lungimea cuvntului u a a a a i Lu1 sunt multimi din L (). s Aplicatia LV introdus anterior este o RL-funtie. Avem mai mult: a Propozitia 4.16 Dac V este o F-varietate atunci aplicatia LV este o a VRL-functie. Avem i reciproca, datorat lui Eilenberg (1975): s a Propozitia 4.17 Fie L o VRL-functie. Atunci exist o F-varietate de a monoizi V aa at L = LV . s nc Exemple 4.18 1) Dac M on este F-varietatea tuturor monoizilor niti a atunci VRL-functia corespunztoare asociaz alfabetului multimea tu a a turor limbajelor regulate peste . 2) Fie T riv F-varietatea monoizilor triviali, constnd monoidul singlea n ton {1}. Atunci LT riv () contine limbajele L avnd monoidul sintactic a Syn(L) = {1}; prin urmare congruenta sintactic este congruenta total. a a concluzie, LT riv () = {, }. In Un alt caz care VRL-functia poate explicitat este cnd V este n a a generat de un singur monoid: a

Cursul 4

25

Propozitia 4.19 Fie V = B < M > F-varietatea generat de monoidul a nit M i e alfabetul . Atunci LV () este algebra boolean generat de s a a limbajele 1 (z) pentru orice z M i orice morsm de monoizi : s M. Exemplul 4.20 Fie M = {0, 1} cu nmultirea 0 0 = 0 1 = 1 0 = 2 = x, xy = yx i deci B(M ) 0, 1 1 = 1. Avem c M satisface ecuatiile x a s este inclus F-varietatea V (x2 = x, xy = yx). fapt, se poate arta chiar a n In a egalitatea acestor F-varieti iar ultima este numit F-varietatea monoizilor at a semilaticeali notat SL. a Propozitia 4.21 Pentru alfabetul avem c LSL () este algebra boo a unde A . lean generat de limbajele A a 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 exist numrul natural nenul n = nL aa at orice cuvnt w L cu |w| n a a s nc a admite descompunerea w = xyz avnd proprietile: a at 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 s se arate c urmtoarele limbaje nu a a a 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 lem. Avem trei situatii: a I) x = al , y = am , z = anlm bn cu m > 0 din i). Fie i = 0 iii) din lem; n a rezult anm bn L fals. a II) x = al , y = bnl bm , z = bnm cu n > l i m 0 din i). Avem 3 subcazuri: s II1) n = l; rezult m > 0. Cu i = 0 iii) avem c an bnm L, fals. a n a

26

M. Crmreanu as a

II2) n > l i m = 0. Cu i = 0 avem al bn L, fals. s II3) n > l i m > 0. Cu i = 2 avem al anl bm anl bm bnm L, fals deoarece s simbolul a trebuie s e a naintea lui b. III) x = an bm , y = bl , z = bnlm cu l > 0. Lum i = 0 i avem an bnl L a s fals. S4.3 X N se numete periodic dac este nit sau exist N0 0 i a a a a s p 1 aa at dac x N0 atunci x X dac i numai dac x + p X. s nc a as a 1) Dac X este periodic s se arate c X = A B unde A = X {i; 0 a a a a i < N0 } iar B = s {g(j) + pi; i 0} iar g(1), ..., g(s) = X {i; N0 i < j=1 N0 + p}. 2) L = {a} este regulat dac i numai dac multimea X = {i; ai L} este as a periodic. a Pentru a compara ntre ele iruri de caractere, se pot folosi operatori s relationali sau functii predenite Matlab. Operatorii relationali (>, >=, < n , <=, ==, =) compar valorile corespunztoare caracterelor din ir, coma a s paratia realizndu-se element cu element. De exemplu: a >> A=abcd; >> B=xbyd; >> A==B ans = 0 1 0 1 Valoarea 1 reprezint true iar 0 reprezint false. Astfel, valorile 1 arat a a a locurile unde simbolul este acelai iar 0 indic locurile cu elemente diferite. s a Avem i varianta: s >> B>A ans = 1 0 1 Latici Denitia 4.4 Fie L o multime nevid a nzestrat cu dou legi de compozitie a a (sau), (i) : L L L. Tripletul (L, , ) numim latice dac s l a sunt satisfcute proprietile: a at 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 nevid A. Avem c (L = P(A), , ) este a a o latice. Invitm cititorul s verice absorbtia: pentru X, Y P(A) avem a a X (X Y ) = X i X (X Y ) = X. s

Cursul 4

27

Proprietatea 4.6 Fie laticea L i a L. Are loc proprietatea de s idempotent: a a = a and a a = a. a Demonstratie a a = a [a (a b)] = a (a x) = (L3) a. Analog pentru a doua identitate. Denitia 4.7 Fie laticea L i L L nevid. Spunem c L este sublatice s a a L dac pentru orice x, y L avem c x y L i x y L . n a a s Exemple 4.8 i) Fie B A nevid. Atunci P(B) este sublatice a n P(A). ii) Fie L = N cu operatiile a b = [a, b]=cel mai mic multiplu comun al numerelor a i b, a b = (a, b)=cel mai mare divizor comun al numerelor s date. Avem c (L, , ) este o latice. a Fie numerele prime distincte p i q. Atunci L = {1, p, q, pq} este o sublatice s . N n Denitia 4.9 Numim semilatice o multime nevid M a nzestrat cu o a operatie intern satisfcnd: a a a SL1) (a b) c = a (b c), SL2) a b = b a, SL3) a a = a. Deci (M, ) este un semigrup comutativ care orice element este idempon tent. Exemple 4.10 Dac (L, , ) este o latice atunci (L, ) i (L, ) sunt a s semilatice. Este posibil ca aceste exemple s sugerat denumirea. a Observatia 4.11 Pe laticea L denim relatia a b dac a b = b. a Avem imediat c este o relatie de ordine pe L. De asemeni, avem a b a dac i numai dac a b = a. as a Denitia 4.12 i) Laticea L se numete mrginit dac exist un cel mai s a a a a mic element, notat 0, i exist un cel mai mare element, noatt 1. s a ii) Dac L este mrginit i x L spunem c x L este complementul lui a a as a s x dac x x = 1 i x x = 0. a Observatia 4.13 Avem 0 = 1 i 1 = 0 dar nu orice element dintr-o s latice mrginit admite complement ! a a Denitia 4.14 Laticea mrginit (L, , , 0, 1) se numete complemen a a s tat dac orice a L admite complement unic. a a Defnitia 4.15 Laticea L se numete distributiv dac au loc proprietile s a a at de distributivitate:

28 D1) (a b) c = (a c) (b c), D2) (a b) c = (a c) (b c).

M. Crmreanu as a

Denitia 4.16 O latice (L, , , 0, 1,) complementat i distributiv se as a numete algebr Boole sau latice boolean. s a a

Cursul 5

Automate
Dei literatura de specialitate exist o multitudine de tipuri de automate, s n a notiunea utilizat acest curs este urmtoarea: a n a Denitia 5.1 Numim automat un 5-uplu A = (Q, , q0 , , F ) unde Q i s sunt multimi nevide i nite, q0 Q, F Q nevid iar este o functie: s a : Q ( {}) P(Q). Denumiri: -Q=multimea strilor, a -=alfabetul de intrare; un element din se mai numeste input, -q0 =starea initial, a -=functia de tranzitie, -F =multimea strilor nale sau terminale. a Observatii 5.2 i) Datorit caracterului nit al multimilor implicate, a uneori se precizeaz denumire c A este un automat nit (AF). a n a ii) Notiunea introdus mai poate alnit i cu numele de automat nedeter a nt as minist cu -tranzitii. Particulrizri ale lui conduc la notiunea de automat a a determinist (fr -tranzitii) respectiv automat determinist. Astfel avem: aa Denitia 5.3 I) Automatul A se numete: s i) nedeterminist (AFN) dac (q, ) = pentru orice q Q, a ii) determinist (AFD) dac satisface conditia precedent plus conditia |(q, x)| = a a 1, pentru orice q Q i x . continuare, vom considera principal s In n AFD-uri (a se vedea cursul urmtor) i deci functia de tranzitie se consider a s a } notm simplu (q, x) = q . : Q({}) Q deoarece dac (q, x) = {q a a II) Dat starea q Q numim a 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) i (Q , x) = qQ (q, x). s 29

30

M. Crmreanu as a O notiune extem de important ceea ce urmeaz este: a n a

Denitia 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), dac w i x . a s Observatia 5.6 i) Pentru un AFD avem Cl(q) = {q} i deci e (q, x) = s Cl((q, x)) = (q, x) deoarece (q, x) are cardinalul 1. De aceea multe n referinte bibliograce atunci cnd se lucreaz cu AFD-uri se pstreaz (din a a a a motive de simplitate) notatia i pentru functia extins ! s a ii) Un calcul inductiv imediat (dup lungimea celui de al doilea cuvnt) d a a a egalitatea: e (q, w1 w2 ) = e (e (q, w1 ), w2 ). Rezult c pentru un AFD i a a s cuvntul w = x1 ...xn avem: a e (q, w) = (...((q, x1 ), x2 ), ...xn ). Exprimm astfel: cnd automatul aat starea q primete cuvntul w el a a n s a trece starea e (q, w). Dac e (q, w) = spunem c automatul trece n a a ntr-o stare nedenit iar dac |e (q, w)| 2 spunem c automatul trece a a a ntr-o stare ambigu. a Cea mai important notiune din teoria automatelor este: a Denitia 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 numete cuvnt recunoscut de A. s a Din acest motiv notiunea de AFD se mai utilizeaz cu denumirea de a automat de acceptare. Exist o legtur profund a a a a ntre expresiile regulate i limbajele acceptate de automate: s Teorema 5.8 Dac E este o expresie regulat peste i.e. E Rex() a a atunci exist un automat nit cu -tranzitii peste alfabetul astfel at a nc K(E) = L(A). Denitia 5.9 Limbajul L peste se numete recognoscibil dac existun s a a automat A cu alfabetul aa at L = L(A). s nc Exemple 5.10 i) Dac = B = {0, 1} atunci L = B \ B 010B este a recognoscibil conform Ex. 5.3. ii) L = {0n 1n ; n 1} nu este recognoscibil. Reprezentri ale automatelor nite a

Cursul 5

31

Putem reprezenta un AF dou moduri: tabelar i grac. Din motive n a s de simplitate vom alege doar primul mod dei uneori este preferat al doilea s mod datorit avantajului vizual: w este recunoscut (acceptat) de A a dac i numai dac graful lui A exist un drum de la starea initial q0 la as a n a a F , acest drum avnd arcele etichetate succesiv cu literele o stare nal q a a cuvntului w. Se spune c w este eticheta (englez label) drumului de la q0 a a a la q . Astfel dac Q = {q0 , ..., qn } i = {x1 , ..., xm } vom considera un tabel a s cu n + 2 linii i m + 1 coloane de tipul: s Q\ q0 ... qi qn unde sgeata marcheaz starea initial iar stri nale. a a a a Exemplul 5.11 Fie AF-ul cu Q = {a, b, c}, q0 = a, F = {c}, = {0, 1} i: s (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 i w2 = 0101. Avem: s 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} = . concluzie, w1 L(A) i w2 L(A). Mai general, (01)+ L(A). In s Pagini Web utile: 1) http://en.wikipedia.org/wiki/Automata theory 2) http://mathworld.wolfram.com/AutomataTheory.html SEMINARUL 5 x1 ... xj ... xm

(qi , xj )

32 S5.1 Fie automatul nedeterminist: q0 q1 q2 q3 0 q1 q2 q2 1 q0 q0 . {q2 , q3 }

M. Crmreanu as a

S se studieze cuvintele w1 = 11001, w2 = 1n 001m cu n 1, m 2 i a s 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

S se studieze cuvintele w1 = 0011 i w2 = 0111. a s Rezolvare Deoarece e (q0 , w1 ) = q2 avem c w1 L(A) iar din e (q0 , w2 ) = a q0 avem c w2 L(A). a S5.3 Fie AFD-ul: q0 q1 q2 q3 0 q0 q2 q2 q0 1 q0 q1 . q3 q1

i) S se studieze w1 = 12 03 12 04 i w2 = 12 03 104 . a s ii) S se arate c w = ...010... L(A). a a iii) S se deduc faptul c L(A) = {0, 1} \ {0, 1} 010{0, 1} . a a a 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 functionarea unui automat reprezint n l a limbajul acceptat este natural : a Denitia 6.1 Automatele A, A peste acelai alfabet se numesc echiva s lente i notm A A dac L(A) = L(A ). s a a Cum egalitatea multimilor este o relatie de echivalent avem: a Propozitia 6.2 Relatia este o relatie de echivalent pe multimea au a tomatelor cu alfabetul xat. Prin urmare suntem interesati de gsirea unor reprezentanti remarca a bili ai unei clase de echivalent date; acest aspect motiveaz urmtoarele a a a teoreme de reducere. Astfel, un prim rezultat este legat de eliminarea tranzitiilor: Teorema 6.3 Dat automatul A cu -tranzitii exist A fr -tranzitii a a a i echivalent cu A. s La fel de important este rezultatul urmtor ce relev o egalitate AFN=AFD a a din punctul de vedere al limbajelor acceptate: Teorema 6.4 Dat AFN-ul A exist un AFD Ad echivalent cu A. a Demonstratie Presupunem A = (Q, , , q0 , F ) i e Ad = (Qd , , d , Q0 , Fd ): s i) Qd = P(Q), Q0 = {q0 }, Fd = {Z Qd ; Z F = }, ii) d : Qd ( {}) Qd este: ii1) d (, x) = , (Z, ) = pentru Z Qd nevid i x , as ii2) d (Z, x) = {(q, x); q Z}. Avem c Ad este AFD deoarece d (Z, x) are un singur element (=o multime) a privit ca element Qd . n 1) L(A) L(Ad ) 33

34

M. Crmreanu as a

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

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 i: s -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 } i deci tabelul lui Ad este: s 0 Q1 Q3 Q4 Q4 Q7 Q7 Q4 Q7 1 Q1 Q5 Q2 Q7 Q8 Q8 Q8 Q8

Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8

Cursul 6

35

Denitia 6.6 Dat automatul A spunem c starea q Q este accesibil a a aa at (q , w) = q. dac exist w s nc e 0 a a Observatia 6.7 Dac denitia precedent am lua w L(A) ar rezulta a n a q F . Dar asta nu nseamn c orice stare nal este accesibil ! a a a a Teorema 6.8 Dat A exist Aac cu toate strile accesibile i echivalent a a s cu A. Demonstratie Denim Aac = (Qac = {Q0 , ..., Qr+1 }, , ac , Q0 , Fac ) astfel: i) Qac va constituit din anumite submultimi ale multimii strilor accesibile a a , (q , w) = q}, Q = {q }, F ale lui A i.e. {q Q; w e 0 0 0 ac = {Qj Qac ; Qj F = }, ii) ac se determin prin recurent astfel: a a Pasul 1. Notm = {0, ..., n 1}, a 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 i le notm Q1 , ..., Qj . s a 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 renumerotm Qj+1 , ..., Qj+k . a Continum acest procedeu pn cnd nu mai obtinem multimi noi; deci a a a a am gsit r 1 aa at Qr+1 {Q0 , ..., Qr } dar Qr+s = Qr+1 pentru orice a s nc s 2. Atunci Qac = {Q0 , ..., Qr+1 }. Exemplul 6.9 Fie A cu Q = {q0 , q1 , q2 }, = {0, 1}, F = {q2 } i functia s de tranzitie dat de tabelul: a q0 q1 q2 0 q1 {q1 , q2 } q2 1 q2 . q1 {q1 , q2 }

Avem deci: Pasul 1. Observm c multimea strilor accesibile este tot Q deoarece a a a 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 i Q2 . s 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. Crmreanu as a

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 . concluzie, Qac = {Q0 , Q1 , Q2 , Q3 }, F3 = {Q2 , Q3 } i avem tabelul pentru In s 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 c toate strile sunt accesibile. a a Denitia 6.10 i) Dat AFD-ul A starea q Q o numim productiv (sau a aa at (q, w) F . coaccesibil) dac exist w s nc e a a a ii) Un automat cu toate strile accesibile i productive se numete trim. a s s Observatia 6.11 Din denitie avem c q0 este productiv dac L(A) = a a a deoarece lum orice w L(A). a Teorema 6.11 Dat AFD-ul A exist un AFD Ap cu toate strile proa a ductive i echivalent cu A. s Demonstratie Construim Ap = (Qp = {Q1 , ..., Qr+1 }, , p , Q0 , Fp ) cu Q0 = {q0 } i procednd analog cu demonstratia anterioar lund Q1 = F i s a a a s Fp = {Qj Qp ; Qj F = }. SEMINARUL 6 S6.1 S se studieze AFD-ul cu |Q| = || = 1. a Rezolvare Avem Q = {q0 } = F , = {0} i : Q Q, (q0 , 0) = q0 . s . Reprezentarea tabelar: Rezult L(A) = {0} a a q0 0 . q0

Observatie Un AFD cu || = 1 se numete autonom. s S6.2 S se studieze AFD-ul cu |Q| = 1 i || = 2. Generalizare. a s Rezolvare Avem Q i F ca mai sus iar = {0, 1}. Evident (q0 , 0) = s (q0 , 1) = q0 i deci L(A) = {0, 1} . Reprezentarea tabelar: s a q0 0 q0 1 . q0

Cursul 6

37

Generalizare: Q = {q0 } = F , = {0, ..., n} i (q0 , i) = q0 , 1 i n. s . Evident, acest automat este un trim. Avem L(A) = {0, ..., n} S6.3 S se studieze AFD-ul cu |Q| = 2 i || = 1. a s Rezolvare Fie Q = {q0 , q1 } i = {0}. s I) q0 q1 a) F = {q0 }; avem L(A) = {0} . b) F = {q0 , q1 }; avem L(A) = {0} . c) F = {q1 }; avem L(A) = . II) q0 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 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 q0 . q0

0 q1 . q1

0 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 identic 1 = a ( ) 0 1 iar automatul IV cu permutarea twist 2 = . 1 0

0 1 0 1

38 S6.4 Automatul ciclic C (p, r). Rezolvare Fie Q = {q0 , ..., qr+p1 } tranzitie: q0 . . . qr1 . . . qr+p2 qr+p1

M. Crmreanu as a

i = {0}. Considerm functia de s a 0 q1 . . . qr . . . .

qr+p1 qr

Dac automatul prsete una din strile q0 , ..., qr1 el nu se mai a aa s a ntoarce niciodat acea stare; le putem numi fr a n a a ntoarcere. Ciclul de stri a qr , ..., gr+p1 se poate numi ciclul fr evadare, englez no escape. a a n a S6.5 S se studieze AFD-ul cu Q a functia: q0 q1 Rezolvare L(A) = {0} . S6.6 S se studieze AFD-ul cu Q = {q0 , q1 , q2 }, F = {q1 }, = {0, 1} i a s functia: 0 1 q0 q1 q2 . q1 q1 q2 q2 q2 q2 Rezolvare L(A) = {0}+ (= {0} {0} = {0} {0} ). = {q0 , q1 }, = {0, 1}, F = {q0 } i s 0 q0 q1 1 q1 . q1

Cursul 7

Automat minimal
Am vzut cursul precedent c pretul pltit pentru adugarea anumitor a n a a a proprieti (convenabile) unui automat se reect creterea, uneori foarte at a n s mare (rapid), a numrului de stri. Este astfel natural a a a a ntrebarea dac a putem lucra cu anumite conditii de minimalitate. Denitia 7.1 Fie A un AFD. i) Dat numrul natural k denim relatia =k pe Q prin: q1 =k q2 dac pentru a a k i avem (q , w) F dac i numai dac (q , w) F . orice w i=0 a s a e 2 e 1 Spunem c strile q1 i q2 sunt k-echivalente. a a s ii) Denim relatia pe Q prin: q1 q2 dac q1 =k q2 pentru orice k N. a Vom spune c q1 i q2 sunt echivalente. a s Reamintim c apartenenta unui element la o multime se studiaz cu a a ajutorul unei functii: Denitia 7.2 Dat multimea nevid X i submultimea sa Y denim a a s functia caracteristic a lui Y functia Y : X {0, 1} dat de: a a i) Y (x) = 1 dac x Y , ii) Y (x) = 0 altfel. a Exist autori care fac alegerea invers: Y (x) = 0 dac x Y ([15, p. 84]) a a a dar literatura clasic (romneasc) avem alegerea de mai sus. n a a a Prin urmare, q1 =k q2 dac i numai dac F (e (q1 , w)) = F (e (q2 , w)) as a pentru orice w 0 + ... + k . Astfel, obtinem c q1 =0 q2 dac i numai a as dac q1 , q2 apartin simultan lui F sau Q \ F . O caracterizare pentru =k cu a k 1 este: Propozitia 7.3 q1 =k q2 dac i numai dac q1 =k1 q2 i (q1 , x) =k1 as a s (q2 , x) pentru orice x \ {}. Deoarece relatia de egalitate este o echivalent avem: a 39

40

M. Crmreanu as a Propozitia 7.4 Relatiile =k i sunt echivalente pe Q. s

Notm atunci Qm i Fm multimile ct determinate de pe Q respectiv a s a Q F . Denim m : Qm a m prin m ([q], w) = [e (q, w)]. Se veric imediat buna denire a acestei aplicatii. Notiunea central a acestui curs este: a Denitia 7.5 AFD-ul A se numete minimal dac pentru orice AFD A s a echivalent cu A avem |Q| |Q |. particular, automatul cu o singur stare In a este minimal. Avem deci Problema: Input: A AFD, Output: A AFD minimal i echivalent cu A. s Trebuie subliniat c automatul minimal este unic pn la un izomorsm: a a a Denitia 7.6 AFD-urile A, A cu aceeai se numesc izomorfe dac s a exist o bijectie h : Q Q aa at: q0 = h(q0 ), F = h(F ) i h((q, x)) = a s nc s (h(q), x) pentru orice q Q i orice x i.e. urmtoarea diagram este s a a comutativ: a Q Q h h . Q Q Rezult imediat c: a a 1) h(e (q, w)) = e (h(q), w) pentru orice w , 2) L(A) = L(A ) i deci A, A sunt echivalente. Putem spune c un izomors a sm realizeaz fapt, o recontorizare a strilor. a n a determinarea automatului minimal de un mare folos este rezultatul In urmtor: a Propozitia 7.7 i) Fie q1 , q2 Q pentru |Q| = n. Atunci q1 q2 dac a i numai dac q1 =n2 q2 . s a ii) Dac Qm este bijectie cu Q atunci automatul A este minimal. a n Unul din rezultatele centrale ale acestui curs este: Teorema 7.8 Dat AFD-ul A avem c Am = (Qm , , m , [q0 ], Fm ) este a automat minimal echivalent cu A. Denitia 7.9 i) Dac denitia automatului retinem primele trei ele a n mente SA = (Q, , ) atunci obtinem notiunea de semiautomat. ii) Un semiautomat (automat) se numete conex dac orice dou stri se pot s a a a uni i.e. oricare ar q1 , q2 Q exist w aa at e (q1 , w) = q2 . a s nc

Cursul 7

41

iii) Un semiautomat (automat) se numete perfect dac este conex i satisface s a s . e (q, w1 w2 ) = e (q, w2 w1 ) pentru orice q Q i w1 , w2 s Observatii 7.10 1) Dac automatul A este conex atunci orice stare q Q este accesibil. a a 2) Dac automatul A este conex atunci orice stare q Q este productiv; a a n aa at (q, w) = adevr, xm qf F i din conexitate va exista w s nc e a a s qf F . 3) Din 1) i 2) rezult c un automat conex este un trim. s a a Denitia 7.11 O congruenta pe (semi)automatul A este o relatie de echivalent pe Q cu proprietatea c q1 q2 implic (q1 , x) (q2 , x) a a a pentru orice x . Rezult c e (q1 , w) e (q2 , w) pentru orice w . a a Pagini Web utile: 1) http://planetmath.org/encyclopedia/Minimal2.html SEMINARUL 7 S7.1 Semiautomatul grup i automatul grup. s Rezolvare Fie grupul nit G i semiautomatul SAG = (G, G, ) cu s dat de multiplicarea G. Avem c SAG este conex i dac G este a n a s a comutativ atunci SAG este perfect. Dat q0 G i F G avem automatul s AG = (SAG , q0 , F ) care are toate strile accesibile i productive; deci AG a s este trim. S7.2 Sumatorul modulo n. Rezolvare Fie n numr natural nenul. Semiautomatul numit astfel este a SAn = (N<n = {0, ..., n 1}, N<n , ) cu (q, x) = q + x(mod n). S7.3 Se cere un semiautomat care s recunoasc constantele zecimale a a fr semn pornind dintr-o stare initial START. aa a Rezolvare Fie Q = {q0 , q1 , q2 , q3 , q4 } unde: q0 =START, q1 =constant a ntreag, q2 =constant a a ntreag cu punct zecimal, q3 =constant cu parte a a fractionar, q4 =eroare. Fie ={.,0,...,9} i dat de: a s a 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 congruent pe Sn dac i numai dac este de a a s a

42

M. Crmreanu as a

tipul urmtor: exist d 2 un divizor al lui n aa at partitia este de tip a a s nc Rd adic are d clase cu acelai numr de elemente i ordonnd elementele a s a s a unei clase cresctor avem c diferenta dintre dou elemente consecutive este a a a d. ii) Fie d1 , d2 2 divizori ai lui n; dac d1 |d2 atunci Rd2 Rd1 . a S7.5 Fie automatul A peste alfabetul binar cu Q = {q0 , q1 , q2 , q3 } i: s q0 q1 q2 q3 Se cere L(A). Rezolvare Avem L(A) = {01n ; n N} + {10n ; n N}. S7.6 Fie automatul avnd Q = {q0 , ..., qn }, = {1, ..., n} i: a s q0 q1 . . . qn1 qn 1 q1 2 q2 qn ... n 0 q1 q3 q2 q3 1 q2 q1 q3 q3

unde locurile necompletate apare multimea vid. Se cere L(A). n a Rezolvare L(A) = {w = 12...n}. S7.7 Se d automatul cu Q = {q0 } = F , = {1, ..., n} i: a s q0 i se cere L(A). s Rezolvare L(A) = {}. S7.8 Dat alfabetul binar se cere un automat care s recunoasc limbajul a a L(A) = {(01)n ; n N}. 1 ... ... n

Cursul 7 Rezolvare Fie Q = {q0 , q1 , q2 } i: s q0 q1 q2 0 q1 q1 1 . q2

43

S7.9 Dat alfabetul multimea L o numim recognoscibil dac a a exist un automat A peste aa at L(A) = L. S se arate c multimile a s nc a a singleton sunt recognoscibile. Rezolvare i) Fixm L = {w = a1 ...an }. Fie A peste cu Q = a {q0 , ..., qn }, F = {qn } i: s q0 q1 . . . qn1 qn a1 q1 a2 q2 qn ... an

unde locurile necompletate apare multimea vid. Avem L(A) = {w}. n a ii) Fie L = {} i A peste cu Q = {q0 , q1 }, F = {q0 } i: s s q0 q1 Avem L(A) = {}. S7.10 S se arate c multimea vid este recognoscibil. a a a a Rezolvare Fie A peste cu Q = {q0 , q1 }, F = {q1 } i: s q0 q1 Avem L(A) = . S7.11 Fie L1 i L2 recognoscibile. S se arate c L1 L2 este recognoscis a a bil. a ... ai q0 q0 ... . ... ai q1 q1 ... .

44

M. Crmreanu as a

Rezolvare Presupunem Li = L(Ai ), 1 i 2 i e A cu Q = Q1 Q2 , s 1 , q 2 ), F = (F Q )(Q F ) i ((q , q ), x) = ( (q , x), (q , x)). q0 = (q0 0 1 2 1 2 s 1 2 1 1 2 2 Avem imediat c L(A) = L1 + L2 . a Consecint Orice multime nit din este recognoscibil. a a a S7.12 Dac x s se arate c L = x este recognoscibil. a a a S7.13 Pentru L i w denim w1 L = { ; w L} s s i familia acestor multimi cu posibilitatea includerii i a multimii vide. s L a Atunci L este recognoscibil dac i numai dac este nit. a as a L S7.14 Dac L este recognoscibil atunci \ L este recognoscibil. a a a S7.15 Dac L1 i L2 sunt recognoscibile atunci sunt recognoscibile: a s i) L1 L2 ; ii) L1 L2 . S7.16 S se arate c, relativ la alfabetul binar, limbajul L = {0n 1n ; n a a N} nu este recognoscibil. Rezolvare Fie, prin reducere la absurd, A cu L(A) = L i e, eventual s prin renumerotare, qn = e (q0 , 0n ). S se presupunem c qn = qm . Avem, a a e (q0 , 0m 1n ) = e (qm , 1n ) = e (q0 , 0n 1n ) F i deci 0m 1n L(A) = L. Dar s atunci m = n ceea ce spune c Q este innit. Fals. a a S7.17 Fie alfabetele 1 , 2 i f : cu f 1 (2 ) = 1 . S se arate s a 1 2 este recognoscibil atunci f (L) este recognoscibil. c dac L 1 a a a a S7.18 Dat semiautomatul SA i w e functia Fw : Q Q, Fw (q) = s prin w w dac F e (q, w). Denim SA pe a w1 = Fw2 . S se arate c a a 1 2 SA este o congruent pe . a Rezolvare Fie x, y oarecare. Dac w1 SA w2 atunci evident a xw1 y SA xw2 y. Observatie Fie w1 SA w2 i x, y . Atunci sau xw1 y, xw2 y apartin s 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 ] i deci SA =L(A) . s S7.19 Fie L recognoscibil de ctre automatul AL . Atunci AL =L . a a Denitia 7.20 Congruenta L pentru L recognoscibil se numete a s congruenta Myhill.

Cursul 8

Actiuni
Fixm acest curs o multime nevid X, nu neaprat nit. Reamintim c a n a a a a exercitiul 1.3 am introdus grupul bijectiilor lui X, Bij(X) = {f : X n X; f bijectie}. Pentru simplitate, acelai grup vom nota cu S(X) deoarece s l dac X are n elemente atunci acest grup este bine cunoscutul grup simetric a Sn . Denitia 8.1 Numim grup de transformri pe X un subgrup G al lui a S(X). Notiuni analoage se denesc prin nlocuirea cuvntului grup cu a monoid respectiv semigrup. Din conditia de subgrup avem: GT1) dac f1 , f2 G atunci f2 f1 G, a GT2) dac f G atunci f este bijectie i f 1 G. a s Una din cele mai importante notiuni matematice este: Denitia 8.2 Dat grupul (G, , e) oarecare, numim actiune (la stnga) a a lui G pe X o aplicatie : G X X, (g, x) gx satisfcnd: a a A1) g2 (g1 x) = (g2 g1 )x, A2) ex = x, pentru orice g1 , g2 G i orice x X. s Observatia 8.3 Exist i notiunea de actiune la dreapta, : X G as X, (x, g) xg cu propritile: at A1) (xg1 )g2 = x(g1 g2 ), A2) xe = x. Dar cele dou notiuni sunt echivalente sensul urmtor: a n a I) dat o actiune la stnga avem c aplicatia (x, g) = g 1 x este o actiune a a a adevr: la dreapta. In a 1 1 1 A1) (xg1 )g2 = g2 (g1 x) = (g2 g1 1)x = (g1 g2 )1 x = x(g1 g2 ), 45

46

M. Crmreanu as a

A2) xe = e1 x = ex = x. II) Reciproc dat o actiune la dreapta avem c aplicatia (g, x) = xg 1 este a a o actiune la stnga. adevr, a In a 1 1 1 1 A1) g2 (g1 x) = (xg1 )g2 = x(g1 g2 ) = x(g2 g1 )1 = (g2 g1 )x, A2) ex = xe1 = xe = x. Prin urmare, cele ce urmeaz ne vom restrnge la actiuni la stnga, acesn a a a tea ind cel mai des alnite matematic (spre exemplu studiul pront n a n prietilor de simetrie ale unui obiect matematic) fr a pierde din vedere at aa faptul c proprietile A1, A2 sunt analoage proprietilor extinderii functiei a at at de tranzitie e din teoria automatelor. Acest fapt a i motivat alegerea s subiectului acestui curs. Fixm deci : G X X i pentru orice g G denim g : X X a s 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 morsm de grupuri. Demonstratie Trebuie artat c (g2 g1 ) = (g2 ) (g1 ). Cum aces a a tea sunt aplicatii trebuie artat egalitatea pentru orice x X. Dar asta a a nseamn exact A1. a Corolarul 8.6 Imaginea prin a lui G este un grup de transformri pe a X. Demonstratie Este o consecint a rezultatului clasic din teoria grupurilor: a dat un morsm de grupuri : G G avem c (G) este subgrup G . a n (Artati !). a Avem i reciproca acestui ultim rezultat: s Propozitia 8.7 Dat grupul de transformri G al lui X avem c: a a i) incluziunea i : G S(X) este un morsm 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 i un al treilea rezultat analog: s

Cursul 8

47

Propozitia 8.8 Dat morsmul 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. concluzie, urmtoarele trei notiuni sunt echivalente: In a i) actiune a lui G pe X, ii) morsm de grupuri : G S(X), iii) G=grup de transformri pe X. a Astfel, diferite surse bibliograce poate aprea una din aceste forme n a echivalente. Denitia 8.9 Spunem c elementele x, y X sunt relatia i a n s notm x y dac exist g G a. y = g (x) i.e. y = gx. a a a . Propozitia 8.10 este o relatie de echivalent pe X. a Demostratie reexivitatea: x x doarece lum g = e, a simetria: presupunem x y cu y = g (x) i aplicm g1 acestei egaliti. s a at Rezult x = g 1 y i deci y x, a s tranzitivitatea: presupunem x y, y z cu y = g1 x, z = g2 y. Rezult a A1 z = g2 (g1 x) = (g2 g1 ) x i deci x z. s Denitia 8.11 Clasa de echivalent a lui x X raport cu se a n numete orbita lui x la actiunea i o notm Gx sau Orb (x). Multimea s s a orbitelor o notm X/G i o numim spatiul factor al lui X la actiunea lui G. a s Avem surjectia : X X/G numit proiectie. a Dac discutia anterioar ne-a plasat pe X este natural i o privire a a a s asupra lui G. Denitia 8.12 Dat x X numim stabilizatorul lui x multimea Stab(x) = {g G; gx = x}. Propozitia 8.13 Stab(x) este subgrup G. n Demonstratie S observm mai ai c Stab(x) este nevid deoarece a a nt a a e Stab(x). i) Fie g1 , g2 Stab(X); avem imediat c g1 g2 Stab(x), a ii) Fie g Stab(x) oarecare; deci g 1 (gx) = g 1 x de unde rezult c g 1 x = a a 1 g)x = ex = x, deci g 1 Stab(x). (g Observatie Din acest motiv, uneori Stab(x) este numit grupul de izotropie a lui x X.

48 O proprietate remarcabil a stabilizatorilor este: a

M. Crmreanu as a

Propozitia 8.14 Dac y Orb(x) atunci Stab(x) i Stab(y) sunt sub a s grupuri conjugate. Demonstratie Presupunem c y = ax, a G. a 1 Stab(y) dup cum se veric imediat. i) dat g Stab(x) avem c aga a a a Deci aStab(x)a1 Stab(y), ii) a arta Stab(y) aStab(x)a1 este echivalent cu a arta relatia a a a1 Stab(y)a Stab(x) care este analoag celei de la i) cu argumentul x = a a1 y. Corolarul 8.15 Dac un element al unei orbite O are stabilizator abelian a (nit) atunci toate elementele lui O au stabilizatorul abelian (nit). Mai mult, oricare ar x, y O avem |Stab(x)| = |Stab(y)|. Denitia 8.16 Fie H subgrup al lui G i elementele xate x, y G. s Spunem c x, y sunt H-right echivalente i notm xH r y dac exist a s a a a h H aa at x = yh. s nc Propozitia 8.17 r este o relatie de echivalent pe G. a Demonstratie 1) reexivitatea: lum h = e H. 2) simetria: e x = a yh. Rezult c y = xh1 i cum h1 H avem cerinta. 3) tranzitivitatea: a a s presupunem x = yh1 i y = zh2 . Rezult x = z(h2 h1 ) i cum h2 h1 H s a s avem concluzia. Multimea ct o notm G/H. Clasa de echivalent a lui x G este a a a xH = {xh; h H} i aplicatia h H xh xH este evident bijectie; deci s |xH| = |H|. Cum multimea claselor de echivalent constituie o partitie a a lui G rezult c dac G este grup nit avem |G/H| |H| = |G|. a a a 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 c este a 1 corect denit: dac y = g1 x = g2 x atunci g2 g1 Stab(x) i deci g1 = g2 h a a s cu h Stab(x); rezult c g1 Stab(x) = g2 Stab(x), ceea ce voiam. a a Propozitia 8.18 este bijectie. Demonstratie Evident este surjectie cic dat gStab(x) G/Stab(x) a vom considera y = gx Orb(x). Fie acum (y1 ) = (y2 ) cu y1 = g1 x, y2 = g2 x; rezult g1 Stab(x) = g2 Stab(x) i.e. g1 h1 = g2 h2 cu h1 , h2 Stab(x). a Deci g2 = g1 h1 h1 i avem y2 = (g1 h1 h1 )x = g1 (h1 h1 x) = g1 x = y1 s 2 2 2 folosind c Stab(x) este subgrup. a

Cursul 8

49

concluzie, dac G i X sunt multimi nite avem pentru orice x X: In a s |Orb(x)| |Stab(x)| = |G|, (8.1).

Denitia 8.19 Permutarea [a1 , ..., ak ] din Sn o numim permutare ciclic a sau k-ciclu deoarece avem a1 a2 ... ak a1 . Un 2-ciclu numim l transpozitie. Propozitia 8.20 1) Orice element din Sn este produs de permutri ci a clice distincte sensul c un element apare cel mult odat. n a a 2) Transpozitiile genereaz Sn . a 3) Transpozitiile [12], ..., [1n] genereaz Sn deoarece [ab] = [1a][1b][1a]. a 4) Transpozitiile [12], [23], ..., [n 1n] genereaz Sn deoarece a [1k] = [k 1k]...[23][12][23]...[k 1k]. 5) Transpozitia [12] i n-ciclul [12...n] genereaz Sn deoarece [kk + 1] = s a [12...n]k1 [12][12...n]1k . Denitia 8.21 Actiunea lui G pe X se numete: s i) tranzitiv dac exist o singur orbit i.e. X/G este o multime singleton, a a a a a ii) liber dac toti stabilizatorii se reduc la {e}. a a SEMINARUL 8 S8.1 Fie N (o) numrul orbitelor actiunii lui G pe X i.e. X = Orb(x1 ) a ... 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 numra dou moduri distincte elementele lui X ina n a variate de actiunea lui G. Avem: |F ix(g)| = |Stab(x)|, (8.3)
gG xX

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

|F ix(g)| =

i=1

|Orb(xi )|

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

50

M. Crmreanu as a

S8.2 Fie X = N3 = {1, 2, 3} i G = {e, f, d} cu e = [1][2][3] permutarea s identic, d = [1, 2, 3] i f = [1, 3, 2]. Considerm actiunea natural a lui G a s a a pe X. i) S se arate c G este subgrup S3 ; deci grup. a a n ii) Se cer numrul orbitelor acestei actiuni. a 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 i d2 = f, f 2 = d. Deci d = f 1 sau a f = d1 ceea ce arat s nc a c G este subgrup S3 . a n ii) |F ix(e)| = 3, |F ix(d)| = |F ix(f )| = 0 i deci N (o) = 3+0+0 = 1. Orbita s 3 unic este a ntreaga multime X ceea ce puteam vedea i direct: 1 1 cu s g = e; 1 2 cu g = d; 1 3 cu g = f ; deci toate elementele lui X sunt echivalente ntre ele. Interpretare geometric: X este multimea vrfurilor unui triunghi echia a lateral , e=aplicatia identic, d=rotatia sens orar de unghi , f =rotatia a n 3 a s sens trigonometric de unghi . Avem imediat c f = d1 i f 2 = d. n 3 S8.3 Se d semiautomatul A peste alfabetul binar cu Q = {q0 , ..., q5 } i a s dat de: (q0 , 0) = q1 , (q0 , 1) = q5 , (qi , 0) = qi , (qi , 1) = qi1 , 1 i 5. a i) Se cere reprezentarea tabelar a lui . a ii) Dac F = Q \ {q0 } se cere L(A) pentru automatul A. 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 } i: s q0 q1 q2 q3 0 {q0 , q1 , q3 } q2 q3 1 q0 .

S se studieze cuvintele w1 = 0110, w2 = 101101 i w3 = 1011. a s

Cursul 8 Rezolvare w1 , w2 L(A) iar w3 L(A). /

51

S8.5 S se arate c : (Z, +) R R, (k, x) = k + x este o actiune a a i s se studieze. s a Rezolvare Vericarea axiomelor de actiune este imediat. Fie M = a 1 , ([x]) = e2ix = cos(2x) + isin(2x). R/(Z, +, ) i e : M S s S vericm buna denire: [x] = [y] implic y = x + n i deci cos(2y) + a a a s isin(2y) = cos(2x) + isin(2x). 1) este injectiv deoarece (x) = (y) implic e2i(yx) = 1 adic yx Z a a a ceea ce nseamn [x] = [y]. a 2) este surjectiv mod evident. a n concluzie, R/(Z, +, ) = S 1 . Avem: In i) Orb(x) = x + Z pentru orice x R, ii) Stab(x) = {0}. Deci, este actiune liber i netranzitiv. as a S8.6 S se arate c : (R, +) R R, (t, x) = et x este o actiune i a a s s se studieze. a Rezolvare Vericarea axiomelor de actiune este imediat. Avem doar a 3 orbite: i) [0] = {0} i Stab(0) = R, s , ii) [1] = R+ iii) [1] = R . Deci R/(R, +, ) = {[0], [1], [1]}; pentru orice x = 0 avem Stab(x) = {0}. Deci actiunea este neliber i netranzitiv. as a S8.7 Fie n numr natural nenul. Un element (vector) din Rn notm a l a x = (x1 , ..., xn ). S se arate c : (Rn , +) R2n R2n , (, (, y )) = a a a x ( + x, y ) este o actiune i s se studieze. a s a Rezolvare Vericarea axiomelor de actiune este imediat. Avem a n } i (, y ) ( y ) prin intermediul lui a = . Deci Stab(, y ) = {0 x s x 0, x R2n /(Rn , +, ) = ( Rn ) Rn . Actiunea este liber i netranzitiv. 0, as a S8.8 S se arate c translatia : (Rn , +) Rn Rn , (, x) = a + x a a a este o actiune i s se studieze. s a Rezolvare Vericarea axiomelor de actiune este imediat. Orice punct a n /(Rn , +, ) = {[ x se transleaz origine cu a = i deci R a n xs 0]}. Actiunea este liber i tranzitiv. as a S8.9 (Grupul ciclic de ordinul 2) S se arate c (Z2 , +) este grup a a izomorf cu (C2 , ) unde C2 = {1, 1}.

52

M. Crmreanu as a Rezolvare Cele dou grupuri au aceeai tabel Cayley: a s a (Z2 , +) 0 1 (C2 , +) 1 1 0 0 1 1 1 1 1 1 0 1 1 . 1

Prin urmare corespondenta 0 1, 1 1 este un izomorsm de grupuri de la Z2 la C2 . Generalizare Grupul ciclic de ordinul n este multimea Cn a simetri ilor de rotatie ale unui poligon regulat cu n laturi. Cn este deci multimea 2k rotatiilor de unghi k = n cu k {0, ..., n 1}, operatia de grup ind compunerea rotatiilor. Rezult c (Cn , ) este grup izomorf cu (Zn , +). a a S8.10 S se arate c : C2 R R, (, x) = x este o actiune pe R a a i s se studieze. s a Rezolvare Vericarea axiomelor de actiune este imediat. Avem a Orb(x) = {x, x} i Stab(x) = {1}; deci actiunea dat este liber i nes a a s tranzitiv. a S8.11 S se arate c : (C2 C2 ) R2 R2 , ((, ), (x, y)) = (x, y) a a este o actiune i s se studieze. s a Rezolvare Vericarea axiomelor de actiune este imediat. Avem a Orb(x, y) = {(x, y), (x, y), (x, y), (x, y)} i Stab(x, y) = {(1, 1)}; deci s actiunea este liber i netranzitiv. as a S8.12 S se arate c : (R , ) Rn Rn , (, x) = este o actiune a a x i s se studieze. s a Rezolvare Vericarea axiomelor de actiune este imediat. Avem a = Stab( = R iar pentru x = avem Stab() = 1 iar Orb() Orb(0) 0, 0) 0 x x este dreapta prin originea lui Rn fr origine. Spatiul ct Rn \{ aa a 0}/(R , +, ) se noteaz P n1 R i se numete spatiul proiectiv real n 1-dimensional. a s s n \ { este liber i netranzitiv. Actiunea pe R 0} as a

Cursul 9

Gramatici i limbaje s generate. Ierarhia Chomsky


Denitia 9.1 Numim gramatic sau sistem generativ un 4-uplu a G = (VN , VT , S, P ) cu: i) VN =multime nevid, nit, numit multimea variabilelor (neterminalilor), a a a ii) VT =multime nevid, nit, disjunct de VN , numit multimea termi a a a a nalilor. V = VN VT este vocabularul lui G, iii) S VN este simbolul de start sau axioma gramaticii, iv) P V V , nit, este multimea regulilor de generare (productie). a Elementele (, ) P sunt supuse conditiei ca s contin un simbol din a a VN ; putem scrie P (V VN V ) V . Conventii de notatie 9.2 I) Urmtoarele simboluri noteaz elemente din VN : a a -A, B, C, ..., S, ... -numele italice scrise cu minuscule: expresie, instructiune, ... II) Urmtoarele simboluri noteaz terminali: a a -a, b, c, ..., 0, ..., 9 -operatori: +, , , / -simboluri de punctuatie, paranteze, -uniti lexicale: id, if, while, begin, ... at 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 notm . l a V) Dac A 1 ,..., A n sunt toate productiile cu originea A, (Aa n productii), notm: A 1 |...|n . a VI) O gramatic va precizat prin productiile sale; de aici se deduc a a multimile VN i VT iar S este partea stng a primei productii. s a a 53

54

M. Crmreanu as a

Exemplu 9.3 Gramatica S SOS| S|(S)|id, O +| | |/ are VN = {S, O} i VT = {id, +, , , /, (, )}. s Denitia 9.4 Date u, v V scrierea u v noteaz faptul c u = v a a sau exist un ir nit u1 = u, ..., un = v de elemente din V astfel c ui a s a ui+1 , 1 i n 1. Un astfel de ir numim derivare. s l Vom mai folosi notatiile: -(i) : derivarea direct a folosit regula i din P , a -i : derivarea s-a fcut aplicnd i pai (reguli), a a s -(i)j : se aplic regula i de j ori. a ii) Limbajul generat de G este L(G) = {w VT ; S w} iar w L(G) l numim fraz G. a n 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 dac L(G1 ) = L(G2 ). a Ierarhia Chomsky 9.5 Fixm gramatica G: a 0) G general se numete de tip 0, a s 1) dac toate productiile satisfac conditia || || atunci spunem a c G este de tip 1 sau monotone, a 1) dac toate productiile sunt de forma A cu A VN , , a V , V + atunci spunem c G este dependent de context, a a 2) dac toate productiile sunt context-free i.e. de forma A cu A a VN , V + atunci spunem c G este de tip 2 sau context-free, a lin) dac toate productiile sunt de forma A sau A B cu A, B a Vn , , VT atunci spunem c G este gramatic liniar, a a a 3) dac toate productiile sunt de forma A aB sau A a cu A, B VN a i a VT atunci spunem c G este de tip 3 sau regulat, s a a 3) dac toate productiile sunt de forma A sau A B (respectiv a A B) cu A, B VN , VT atunci spunem c G este drept liniar a a (respectiv stng liniar). a a Limbajul L VT se numete de tip r, 0 r 3 sau liniar dac exist o s a a gramatic G de tip r sau liniar a. L = L(G). a a . Gramaticile 1 i 1 sunt echivalente i la fel 3 i 3. Notnd cu Lin s s s a respectiv Lr multimea limbajelor liniare respectiv de tip r avem: L3 Lin L2 L1 L0 i acest ir de incluziuni stricte se numete ierarhia lui Chomsky (1956). s s s Lingvistul american Noam Chomsky a introdus gramaticile libere de context scopul descrierii limbilor naturale. Dei acest scop s-a dovedit n s

Cursul 9

55

mult prea ambitios, limbajele (gramaticile) context-free s-au artat utile a n descrierea limbajelor de programare. Astfel, au fost utilizate de Bachus pentry FORTRAN i Naur pentru ALGOL (din acest motiv, gramaticile s libere de context se numesc uneori gramatici forma Backus-Naur) timp n n 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. Aceleai limbaje context-free sunt deosebit de importante proiectarea s n compilatoarelor. Pentru generaliti asupra operei lui Chomsky a se vedea at http://en.wikipedia.org/wiki/Noam Chomsky ca i site-ul personal s http://www.chomsky.info/. Alte site-uri recomandate: -http://en.wikipedia.org/wiki/Chomsky hierarchy -http://mathworld.wolfram.com/Grammar.html. aplicatii, s notm c dat L L0 se caut r maximal pentru care In a a a a L L0 . Astfel, este posibil ca initial s avem L = L(G) cu G de tip r dar a s existe r > r i G de tip r astfel at L = L(G ). a s nc SEMINARUL 9 S9.1([13, p. 18]) S se arate c L1 = {an bn ; n 0} Lin L3 . a a Rezolvare([10, p. 11]) Fie gramatica G cu VN = {S}, VT = {a, b} i s P : S ab|aSb. Avem c G este liniar dar nu este regulat. Artm prin a a a aa inductie c L1 L(G). a 1) pasul de pornire e evident din prima regul. a 2) presupunem c ak bk L(G), k 1. Deci avem o derivare S ak bk cu a

56

M. Crmreanu as a

un = ak bk i un1 = ak1 Sbk1 . Avem atunci uni (2) ak1 (aSb)bk1 = s k Sbk (1) ak+1 bk+1 ceea ce voiam. a A mai rmas de artat c L(G) L1 . Analiznd derivrile posibile din a a a a a G avem P F (G) = {ak Sbk , ak bk } dar ultima derivare nu mai poate continua datorit regulilor de productie din G. Avem deci concluzia. a S9.2([13, p. 18]) S se arate c L2 = L1 L1 L2 Lin . a a S9.3([13, p. 18]) S se arate c L3 = {an bn cn ; n 1} L1 L2 . a a Rezolvare([10, p. 20]) Fie G cu VN = {S, A}, VT = {a, b, c} i P : S s abc|aSA, bA bbc, cA AC. Este o gramatic monoton dar nu de tipul a a 2. Artm prin inductie c L3 L(G). aa a S9.4([13, p. 18]) S se arate c L4 = {a2 ; n 0} L1 L2 . a a Rezolvare([10, p. 24]) Fie G cu VN = {S, A, B, C}, VT = {a} i P : s S BAB, BA BC, CA AAC, CB AAB, A a, B . S9.5([13, p. 18]) S se arate c L5 = {an ; n 0} L1 L2 . a a S9.6([13, p. 18]) S se arate c L6 = {an ; n = prim} L1 L2 . a a S9.7([13, p. 18]) S se arate c L7 = {an bm an bm ; n, m 1} L1 L2 . a a S9.8([13, p. 18]) S se arate c L8 = {an bm ; n 1, 1 m 2n } a a L1 L2 . S9.9([13, p. 18]) S se arate c L9 = {an bm cp ; 1 n m p} L1 L2 a a . S9.10([13, p. 18]) S se arate c L10 L2 Lin unde L10 este lima a bajul lui Dyck pentru vocabularul {a, b} i.e. limbajul generat de gramatica independent de context G = ({S}, {a, b}, S, P ) cu P : S SS|aSb|. a S9.11 . Rezolvare . S9.12 . Rezolvare .
2 n

Cursul 10

Problema cuvintelor
Deoarece vom lucra acest curs pe grupuri, extindem mai ai denitia n nt cuvintelor pentru a formaliza notiunea de invers. Fixm X = {x1 , ..., xk } a o multime nit. Numim cuvnt de lungime n pe multimea X o functie a a w : Nn = {1, ..., n} X {1}. Dac w(i) = (wi , i ) atunci cuvntul w a a se mai noteaz w = x11 ...xn . Operatia de concatenare se denete uzual: a s w wn ww := x11 ...xn xw1 ...xwn i rmne asociativ. Fie W (X) acest monoid a a a s w wn n 1 relativ la cuvntul vid. a Denitia 10.1 i) O echivalent elementar pe W (X) este o pereche de a a cuvinte de forma (d1 x x d2 , d1 d2 ) cu {1} i d1 , d2 cuvinte arbitrare. s w w ii) Pe W (X) denim o relatie modul urmtor: dou cuvinte le numim n a a echivalente dac pot legate printr-un lant nit de echivalente elementare. a Astfel, cele dou cuvinte se transform unul cellalt prin tergerea sau a a n a s 1 sau x1 x , w = 1, ..., n. introducerea unor perechi xw xw w w Propozitia 10.2 Relatia astfel introdus este o congruenta. a Monoidul ct devine grup denind inversul astfel: [w = x11 ...xn ]1 = a w wn n ...x1 ] i notnd cu 1 clasa cuvntului vid.. Acest grup numit [w = xwn s a a w1 grupul liber generat de X i notat F (X); are o proprietate de universalitate s categoria grupurilor: pentru orice grup G i elemente xate g1 , ..., gk G n s exist un unic morsm de grupuri : F (X) G satisfcnd (xi ) = gi , i = a a a 1, ..., k. Mai general, xm R = {c1 , ..., cm } o multime de cuvinte peste nua mite relatii. Intersectia tuturor subgrupurilor normale ce contine R notm l a N (R) i este subgrup normal. Putem vorbi atunci de grupul factor F ()/N (R) s notat < X|R > i pentru care elementele lui X le numim generatori. Mai s spunem c grupul G =< X|R > este prezentat prin generatori i relatii. a s 57

58

M. Crmreanu as a

Observatia 10.3 Trebuie avut grij att precizarea generatorilor ct a a n a i a relatiilor: s 1) Prezentarea < x, y|xy = yx, xyx1 = yxy 1 > este greit deoarece s a x = y. Inmultim a doua relatie la dreapta cu y: xyx1 y = yx = xy. Simplicm prin xy la stnga i avem x1 y = 1 de unde concluzia. a a s 2) Relatiile x2 = y 2 = (xy)2 = 1 implic comutativitatea xy = yx. a In adevr, din ultima relatie: xyxy = 1 pe care o a nmultim la stnga succesiv a cu x i apoi y. s 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 lund x = [12] i [123]. De aici rezult c S3 este primul grup simetric a s a a neabelian deoarece din a treia relatie avem yx = xy 1 iar y 1 = y are da y 2 = 1 care mpreun cu a doua relatie conduce la contradictia y = 1. a Notiunea central a acestui curs a fost formulat de Dehn sub numele de a a s se gseasc o procedur continnd problema cuvintelor astfel: dat w X a a a a a un numr nit de instructiuni pentru a decide dac w = 1 sau nu. O a a formulare modern este urmtoarea: a a Denitia 10.5 Grupul G =< X|R > are solutie la problema cuvintelor ; w = 1} este recunoscut de un automat dac limbajul W (G) = {w X a determinist. Exemplul 10.6 Dac X este nit atunci grupul liber F (X) =< X| > a a are solutie la problema cuvintelor. Denitia 10.7 Dat grupul G =< X|R > i limbajul L X spunem s c perechea (X, L) este o structur rational pentru G dac L este regulat a a a a i L genereaz pe G. s a Considerm un simbol $ X (the padding simbol=simbolul auxiliar) a / i denim X = X {$} i X(2, $) = X X \{$, $}. Denim : X X s s X(2, $) prin: 1) (u = x1 ...xm , v = y1 ...yn ) = (x1 , y1 )...(xn , yn )(xn+1 , $)...(xm , $) dac a n < m, 2) (u, v) = (x1 , y1 )...(xn , yn ) dac n = m, a 3) (u, v) = (x1 , y1 )...(xm , ym )($, yn+1 )...($, yn ) dac n > m. a ; denim Fie (X, L) structur rational pentru G i w X a a s Lw = {(w1 , w2 ); w1 , w2 L, w1 = ww2 }. Denitia 10.8 i) Structura rational (X, L) a lui G se numete structur a s a automat dac L i Lx , pentru orice x L, sunt limbaje regulate. a a s

Cursul 10 ii) Grupul G se numete automat dac admite o structur automat. s a a a

59

Exemple 10.9 Sunt grupuri automate urmtoarele clase de grupuri: a grupurile nite, grupurile libere nit generate, grupurile abeliene nit generate, grupuri braid. 1 Dat w X cu w = 1 reamintim c w =F (X) i = 1k (ui ri u1 ) cu a i ui F (X), ri R, k N. Fie a(w) cea mai mic valoare a lui k. a Denitia 10.10 Functia izoperimetric a lui G =< X|R > este fG : a N N: f (n) = max{a(w); |w| n, w = 1}. Problema cuvintelor pe grupuri automate este rezolvat de: a Teorema 10.11 Dac G este grup automat atunci: a 1) G admite o prezentare nit cu functia izoparametric marginit superior a a a de o functie ptratic. a a 2) G are solutie la problema cuvintelor. Demonstatia acestui rezultat fundamental se bazeaz pe: a Propozitia 10.12 Fie < X|R > o prezentare nit a grupului G. a Urmtoarele sunt echivalente: a i) Functia izoparameric este mrginit superior de o functie recursiv. a a a a ii) G are solutie la problema cuvintelor. iii) Functia izoparametric este mrginit. a a a SEMINARUL 10 S10.1 S se arate c urmtoarele sunt prezentri ale grupului trivial: a a a a 2 = y 3 , xyx = yxy >. a) < x, y|x 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 stnga i la a s 2 yx2 = xyxyx adic y 7 = y 3 yy 3 = xyxyx. Tot din a doua dreapta avem: x a 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 i din y 2 = y 3 avem y = 1. s Revenind la a doua relatie rezult i x = 1. as S10.2 Grupul diedral (dihedral group englez) Dn este grupul simetrin a ilor de rotatie al unei plci form de poligon regulat cu n laturi. (Alti a n a

60

M. Crmreanu as a

autori noteaz D2n .) Fie r rotatia de unghi 2 jurul unei axe de simel a n n trie perpendicular pe poligon i s rotatia de unghi jurul unie axe de a s n simetrie din planul poligonului. Atunci o prezentare a lui Dn este: Dn =< r, s|rn = 1, s2 = 1, sr = rn1 s > i orice element din Dn este de forma rk sau rk s cu 0 k n1. Identitile s at de calcul Dn : n 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. Rezult i alte perechi de generatori: as I) (rs, s) deoarece r = (rs)s, II) (rs, r2 s). Rezolvare . S10.3 Exist c si grupul diedral innit D generat de t, s : Z Z, t(z) = a z + 1, s(z) = z. Avem s2 = 1 timp ce t are ordin innit. Identitatea n tst = s este evident din schema membrului stng: z z + 1 z 1 a a 2 = 1, tst = s >. z = s(z). Deci: D =< t, s|s Rezolvare . S10.4 Rezolvare

Cursul 11

Functii recursive
acest curs considerm functii f de tipul urmtor: In a a -functie partial dac f : X N cu X submultime (nevid ) a lui Nn , a a a -functie total dac f este denit pe tot Nn . a a a Pentru simplitatea scrierii, ambele tipuri de functii le notm la fel f : Nn a N, elegndu-se din context tipul. Fie P multimea tuturor functiilor nt a partiale (deci orice n) i T multimea tuturor functiilor totale. De asemenea, s n-uplul (x1 , ..., xn ) notm x. l a Denitia 11.1 1) Fie numerele naturale n, k 1 i functiile g : Nk s N, h1 , ..., hk : Nn N din P. Numim compunerea lor functia f = g n N dat de f () = g(h (), ..., h ()). Evident f P (h1 , ..., hk ) : N a x 1 x k x membrul stng ind denit acolo unde se poate deni membrul drept. Mai a spunem cm denit operatorul de superpozitie SUP. a 2) Fie g : Nn N i h : Nn+2 N din P. Functia partial f : Nn+1 N s a dat de f (, 0) = g(), f (, y + 1) = h(, f (), y) se numete obtinut prin a x x x x x s a recursie primitiv. Cazul n = 0 este admis i atunci g se consider numr a s a a natural xat. Mai spunem cm denit operatorul de recursie primitiv REC. a a Observatia 11.2 Dat x avem c f (, y) este denit: sau pentru niciun a x y sau pentru orice y N sau pentru y Nk = {1, ..., k} cu k determinat de g i h. s Denitia 11.3 1) Urmtoarele functii le numim initiale: a i) functia zero z : N N, z(x) = 0, ii) fuctia succesor : N N, (x) = x + 1, iii) functii proiectie kr : Nk N, kr () = xr , k 1, 1 r k. x Evident, toate functiile initiale apartin lui T . 61

62

M. Crmreanu as a

2) Numim clas de functii o submultime a lui P i clas de functii totale o a s a submultime a lui T . 3) O clas C de functii totale o numim a nchis primitiv recursiv dac: a a i) toate functiile initiale apartin lui C . ii) C este nchis la compunere i.e. dac g, h1 , ..., hk C atunci g(h1 , ..., hk ) a a C. iii) C este nchis la recursia primitiv i.e. dac g, h C atunci f otinut a a a a din g i h prin recursie primitiv este element din C . s a Exist o cea mai mic multime a a nchis primitiv recursiv F (pr) anume a intersectia tuturor claselor nchise primitiv recursiv. Denitia 11.4 Un element f F (pr) numim functie primitiv recur l siv. a Teorema 11.4 (de caracterizare) Fie f T . Atunci f F (pr) dac i numai dac exist un ir f0 , ..., fk = f unde fi este sau functie a s a a s initial sau se obtine prin compunere din unele fj cu j < i sau se obtine a prin recursie primitiv din dou functii fj , j < i. a a Denitia 11.6 Un ir de tipul celui precedent numim denitie primitiv s l recursiv a lui f . a Exemplu 11.7 Fie f : Nn N element dintr-o clas a nchis primitv a m N prin g(x , ..., x ) = f (y , ..., y ) unde recursiv C i denim g : N s 1 m 1 n yi este sau o constant sau xj pentru un j xat. Atunci g C deoarece a g = f (h1 , ..., hm ) cu hj sau functie constant (care este primitiv recursiv; a a vezi Ex. 10.?) sau o functie kj . Propozitia 11.8 Fie C o clas a nchis primitiv recursiv i g C de a s forma g : Nn+1 N. Atunci urmtoarele functii in lui C : a apart y 1)(adunarea repetat) f1 : Nn+1 N, f1 (X, y) = g(X, t). a t=0 y n+1 N, f (X, y) = 2)( nmultirea repetat) f2 : N a 1 t=0 g(X, t). Demonstratie Denitia primitiv recursiv a acestor functii este: a 1) f1 (, 0) = g(, 0), f1 (, y + 1) = f1 (, y) + g(, y + 1). x x x x x 2) f2 (, 0) = g(, 0), f2 (, y + 1) = f2 (, y)g(, y + 1). x x x x x Denitia 11.9 1) Dat n 1 numim predicat n-ar o armatie P (x1 , ..., xn ) n variabile ce este adevrat sau fals functie de valorile variabilelor n a a a n considerate ca elemente din N. Predicatul dat se identic cu multimea a T (P ) = { N; P () = adevrat}. x x a a 2) Dat C o clas a a nchis primitiv recursiv. O submultime A a lui Nn o a particular, un predicat numim C dac functia caracteristic A C . In n a a n-ar este C dac T (P ) C . n a

Cursul 11

63

Pentru rezultatul urmtor reamintim c date predicatele P i Q avem: a a s P Q nseamn P sau Q, P Q a nseamn P i Q iar P este negatia a s lui P . Propozitia 11.10 Fie C o clas a nchis primitiv recursiv i A, B Nn . a as Dac A i B sunt C atunci AB, AB i Nn \A sunt C . In consecint, a s n s n a date predicatele n-are P i Q din C avem c P Q, P Q i P sunt C . s a s n Demonstratie AB = A B , AB = sg(A + B ) i cA = 1A . s cele ce urmeaz x = y In a nseamn predicatul P (x, y) adevrat doar a a cnd x i y sunt egale, etc.: a s 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 (<). . Denitia 11.12 1)Fie multimea X i functia partial f : X X. Se s a numete iteratia sau iterata lui f functia partial F : X N X dat s a a de F (x, 0) = f (x) i F (x, n + 1) = f (F (x, n)). Dac f este total notm s a a a F (x, n) = f n (x). 2) Spunem c functia f : Nn Nk apartine clasei C dac toate functiile a a kj f sunt din C pentru 1 j k. 3) Clasa C de functii se numeste nchis la iteratii dac odat cu functia a a a f : Nn Nn din C avem c i iterata F : Nn+1 Nn este din C . as Se poate arta c dac C este a a a nchis primitiv recursiv atunci C este a nchis la iteratii. Suntem interesati reciproca acestui fapt. a n Propozitia 11.13 Fie C o clas de functii ce contine functiile initiale a i este s nchis la iteratii. Atunci C este a nchis primitiv recursiv. a Vom introduce acum cea mai genral clas de functii recursive pena a tru care trebuie considerat un nou mod de generare de functii. Fie deci n+1 N o functie partial. Vom deni o alt functie g : Nn N f : N a a prin g()=cea mai mic valoare a lui y N pentru care f (, y) = 0. Dax a x torit caracterului partial al lui f sunt necesare cteva precizri i de aceea a a a s introducem: Denitia 11.14 Functia de minimizare a lui f este functia partial a g : Nn N dat de: a 1) g() = r dac f (, r) = 0 i pentru 0 s < r, f (, s) este denit i x a x s x a s nenul, a

64

M. Crmreanu as a

2) g() este nedenit caz contrar. Folosim notatia g() = y (f (, y = x a n x x 0)). Atentie, g poate partial chiar i cnd f este total. Spunem c am a s a a a denit operatorul de minimizare MIN Denitia 11.15 Date functiile f i g ca mai sus, spunem c g se obtine s a din f prin minimizare regulat dac f este total i pentru orice x Nn a a a s exist y N aa at f (, y) = 0. Rezult c g este atunci functie total. a s nc x a a a Denitia 11.16 Clasa functiilor recursive ete cea mai mic clas C a a de functii totale care este nchis primitiv recursiv i a s nchis la minimizare a reguluat i.e. dac f C i g se obtine din f prin minimizare regulat a a s a atunci g C . O astfel de clas exist, ind de fapt intersectia tuturor claselor ce veric a a a proprietile mentionate. at Denitia 11.17 1) O submultime A a lui Nn se numete recursiv dac s a a A este functie recursiv. a 2) Predicatul n-ar P se numete recursiv dac multimea s a AP = { Nn ; P () = adevrat} este recursiv. x x a a Denitia 11.18 Clasa functiilor partial recursive este cea mai mic clas a a de functii partiale ce contine functiile initiale i este s nchis la compunere, a primtiv recursivitate i minimizare. s Clasa functiilor partial recursive ce sunt totale este nchis primitiv rea cursiv i s nchis la minimizare regulat; prin urmare contine clasa functiilor a a recursive. Deci, o functie recursiv este partial recursiv i total dar reci a as a proca nu este valabil. a Exemple 11.19 Functia f : N N, f (x) = y (x(y +1) = 0) este partial recursiv dar neind total nu este recursiv. adevr, f (0) = 0 i rest a a a In a s n f este nedenit. a Denitia 11.20 Se dau functiile f, g : N2 N. Spunem c f este a func ia de minimizare limitat a lui g dac g(x, z) = y z(f (x, y) = 0) t a a i.e. valoarea g(x, z) se obtine astfel: dac exist 0 y0 z astfel ca a a f (x, 0) > 0, ..., f (x, y0 1) > 0 i f (x, y0 ) = 0 atunci g(x, z) = y0 ; caz s n contrar g(x, z) = z + 1. Spunem c am denit operatorul de minimizare a limitat. a Concluzii: Criteriul de recunoatere a functiilor primitiv res cursive sau recursive Se dau irul nit de functii f0 , ..., fk i functia f : s s 1) irul dat numim pr-ir dac orice element al su este functie initial s l s a a a sau se obtine din precedentele elemente cu operatorii SUP sau REC. Dac a

Cursul 11 plus folosim i operatorul MIN spunem c avem un r-ir. n s a s 2) f este primitiv recursiv dac exist un pr-ir cu f ca element nal. a a a s 3) f este recursiv dac exist un r-ir cu f ca element nal. a a a s SEMINARUL 11

65

S11.1 S se arate c urmtoarele functii sunt primitiv recursive: a a a 2 N, s(x, t) = x + y. 1) functia sum s : N a 2) functia produs sau multiplicare m : N2 N, m(x, y) = xy. 3) functia exponential exp : N2 N, exp(x, y) = xy . a 4) functia factorial F ac : N N, F ac(x) = x!. 5) orice functie constant c : Nn N, c() = c cu c N xat. a x 6) functia predecesor P red : N N, P red(x) = x1 dac x > 1 i P red(0) = a s 0. 7) scderea proprie : N2 N, xy = max{x y, 0}. a 8) functia modul | | : N N. 9) functia semn sg : N N, sg(x) = 1 dac x > 0 i sg(0) = 0. a s a s 10) sg : N N, sg(x) = 0 dac x > 0 i 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 c 11 , 33 , , 33 este o denitie primitiv recursiv pentru a a s. cele ce urmeaz vom restrnge demonstratia la indicarea recursivitii. In a a at 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) S considerm n = 1; atunci functia constant 0 este z, functia constant a a a a 1 este z, functia constant 2 este 2 z, etc. Pentru n general, functia a constant c este c n1 cu c : N N functia constant c. a a 6) P red(0) = 0, P red(x + 1) = x = s(x, 0). 7) x0 = x = s(x, 0), x(y + 1) = P red(xy). 8) |x y| = (xy) + y x. 9) sg(0) = 0, sg(x + 1) = 1. S11.2 S se arate c functiile urmtoare sunt primitiv recursive: a a a 1) ./. : N2 N, x/y = cel mai mic numr natural mai mic sau egal cu a x/y dac y > 0 respectiv x/0 = 0. a 2) ./. : N2 N, x/y = cel ami mic numr natural mai mare sau egal cu a x/y dac y > 0 respectiv x/0 = 0. a 3) rest : N2 N, rest(x, y) = restul artirii lui x la y dac y > 0 respectiv mp a rest(x, 0) = 0. 4) prim : N N, prim(n) = al n-lea numr prim cu prim(0) = 2. a

66 Rezolvare . S11.3 . Rezolvare

M. Crmreanu as a

Cursul 12

Multimi i limbaje recursiv s enumerabile


Denitia 12.1 Submultime a A a lui N se numete recursiv enumerabil (r. s a e. pe scurt) dac A = sau exist f : N N recursiv aa at A = f (N. a a a s nc Alti autori folosesc denumirea de multime semirecursiv, [15, p. 93] a Observatia 12.2 Notiunea astfel introdus formalizeaz conceptul de a a multime listabil deoarece elementele lui A se pot lista: f (0), f (1), ..., printr a o procedur cu un numr nit de instructiuni. a a Pentru a caracteriza acest tip de multime considerm functia caracter a istic partial a lui A, pA : N N: pA (x) = 1 dac x A i pA (x) este a a a s nedenit dac x nu apartine lui A. a a Propozitia 12.3 Pentru A N urmtoarele armatii sunt echivalente: a 1) A este r.e.. 2) A este domeniul de denitie al unei functii partial recursive g : N N. 3) functia caracteristic partial pA este partial recursive. a a 4) A este imaginea unie functii partial recursive. 5) sau A = sau exist o functie primitiv recursiv f : N N aa at a a s nc A = f (N). Demonstratie 1) 2). Dac A = atunci putem considera A ca a domeniu al unei functii g partial recursive avnd domeniul vid: spre exemplu a g(x) = cel mai mic y natural pentru care x + y + 1 = 0. Fie acum A = f (N) cu f recursiv i denim g(x) = cel mai mic y natural pentru care f (y) = x. as Avem c g este partial recursiv i A = dom(g). a as g cu z functia zero. Rezult c pA este partial 2 3). Avem pA = 1z a a recursiv ind obtinut din g i functii primitiv recursive prin compunere. a a s 67

68

M. Crmreanu as a

3) 4). Fie f = 11 + (1pA ), reamintind c 11 este functia identic pe a a N. Avem concluzia. 4) 5). Avem existenta functiilor primitiv recursive u : N N i v : N2 s N aa at f (x) = u(h(t)) unde h(t) = cel mai mic t pentru care v(x, t) = 0. s nc S presupunem acum A nevid i e a0 A pentru care denim F : N2 N a as prin: i) F (x, n) = u(r(t)) unde r(t) = cel mai mic t pentru care t n(v(x, t) = 0) dac exist astfel de t, a a ii) F (x, n) = a0 caz contrar. n Avem c F este primitiv recursiv i F (N2 ) = A. Fie J : N2 N bijectia a as primitiv recursiv de la Exercitiul ??. Atunci F J 1 = F (K, L) : N N a este primitiv recursiv cu imaginea A. a 5) 1). Evident. Propozitia 12.4(Kleene) Multimea A N este recursiv dac i nu a as mai dac A i N \ A sunt ambele r.e.. a s Denitia 12.5 1)Fie X numtime numrabil i : X N o bijectie a as xat. Atunci submultimea A a lui X se numete recursiv(respectiv r.e.) a s a relativ la dac (A) este recursiv (respectiv r.e.). a a 2) Numim enumerare Gdel pentru X o aplicatie injectiv : X N pentru o a care (X) este recursiv. a Fixm cele ce urmeaz multimea nit A de cardinal n i de asemeni a n a a s bijectia {1, ..., n} A, i ai . Avem urmtoarele enumerri Gdel ale lui a a o : A I) 1 (ai1 ...aik ) = k ij (n + 1)j1 , j=1 II) (ai1 ...aik ) = k ij nj , 1 j=1 k ij k III) 2 (ai1 ...aik ) = 2 a j=1 pj unde pj este al j-lea numr prim impar. Denitia 12.6 Limbajul L peste A se numete recursiv (respectiv r.e.) s dac (L) este recursiv (respectiv r.e.) unde este 1 , sau 2 . a 1 Fie gramatica G = (VN , VT , S, P ) i A = VN VT ; presupunem A = s {a1 , ..., an }. S notm productiile P = {1 1 , ..., l l } i e i = |i |, a a s i = |i |. Propozitia 12.7 Pentru i {1, ..., l} exist o functie primitiv recursiv a a fi : N2 N astfel ca, dac m = 2 (x1 ...xk ) i x1 ...xk = x1 ...xr1 i xr+i ...xk a s 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. i reciproc. s

Cursul 12 Teorema 12.9 Un limbaj de tip 1 este recursiv.

69

Observatia 12.10 i) Reciproca teoremei precedente nu este adevrat: a a exist limbaje recursive care nu sunt dependente de context. a ii) Fie S N multime r.e. ce nu este recursiv i : A N una din enu as merrile Gdel precedente. Exist o functie recursiv strict cresctoare f : a o a a a ); atunci f (S) este r.e. i nerecursiv. Mai mult, (1 (f (S))) = N (A s a f (S) i deci 1 (f (S)) este limbaj r.e. nerecursiv. s concluzie avem schema urmtoare: In a L1 Lr Lr.e. = L0 .

cu Lr multimea limbajelor recursive i Lr.e. multimea limbajelor r.e. s Propozitia 12.11 Dac L este un limbaj r.e. atunci la fel este a 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. Crmreanu as a

Cursul 13

Entropia, energia i corelatia s surselor de informatie


Denitia 13.1 Numim surs de informatie o pereche S = (, ) cu a alfabet i o distributie de probabilitate pe adic o aplicatie : R+ s a sastisfcnd s (s) = 1. Distributia o numim pozitiv dac (s) > 0 a a a a pentru orice s . Observatii 13.2 i) Avem c (s) [0, 1] pentru orice s . a ii) O surs de informatie poate gndit ca un dispozitiv black-box care a a a emite simboluri din ecare astfel de simbol s ind emis cu probabilitatea (s). iii) Fixm || = n i notm S = ( = (si ), = (i )), 1 i n cu conventia a s a p1 ... pn . Vom nota tabelar: S s1 p1 ... ... sn pn

1 Exemplul 13.3 u (s) = n pentru orice s este o distributie pozitiv a de probabilitate numit distributia uniform. a a

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

72

M. Crmreanu as a

la limbaje peste : iii) () = 0, a a iv) (L) = wL (w) dac L este submultime nevid a lui . Numrul real nenegativ (L) numim -msura lui L. Astfel, u -msura a l a a lui L o numim indicatorul de cod al lui L. Denitia 13.4 Limbajul produs L1 L2 se numete neambiguu dac pen s a tru orice w L1 L2 exist cuvintele unice u L1 i v L2 aa at w = uv. a s s nc Propozitia 13.5 1) (k ) = 1 pentru orice k 1. 2) (iI Li ) iI (Li ) pentru orice familie Li , i I cel mult numabil r a cu urmtorea conventie: dac exist i I aa at de submultimi ale lui a a a s nc (Li ) = atunci (iI ) = . Dac familia Li are multimile disjuncte a atunci avem egalitate. 3) (L1 L2 ) (L1 )(L2 ). Dac produsul L1 L2 este neambiguu atunci avem a egalitate. 4) (L ) i0 (Ln ) i0 ((L))n cu conventia: (L) = implic a (L ) = . Conceptul de entropie ca msur a informatiei i a gradului de incertia a s tudine, a fost introdus 1948 de ctre Claude Shannon. Aceast notiune n a a este profund analoag conceputului similar din termodinamic unde a fost a a introdus de ctre Clausius 1864 ca msur a gradului de dezordine al unui a n a a sistem zic. Deoarece din punct de vedere matematic, informatia furnizat de sim a bolul sk este Ik = log pk rezult c media ponderat a informatiilor a a a furnizate de sursa dat este: a Denitia 13.6 Se numete entropie a sursei S numrul real nenegativ: s a H() =
n i=1

pi log pi

unde logaritmul este baza 2 i avem conventia 0 log 0 = 0. Unitatea de n s msur a entropiei este biti/simbol. a a Alegerea bazei 2 se poate considera ca ind neimportant matematic a datorit proprietii de schimbare a bazei logaritmilor i este impus din a at s a punct de vedere tehnic de utilizarea calculului binar procesarea datelor n de ctre calculatoare. a Lema 13.7 Dac b > 0 i x > 0 atunci logb x x 1 cu egalitate doar a s pentru x = 1.

Cursul 13

73

Propozitia 13.8 Inegalitatea Gibbs Fie numerele reale (pi , qi ), 1 i n satisfcnd: a a i) 0 pi , qi 1, ii) n qi 1 = n pi . i=1 i=1 Atunci: n pi log pi n pi log qi . Avem egalitate dac i numai a s i=1 i=1 daca pi = qi pentru totti i Nn . a Corolar 13.9 Pentru orice surs de n informatii avem: 0 H() a log n = H(u ). 1 1 1 Demonstratie Avem H(u ) = n n log n = log n = log n. Deoarece i=1 pi [0, 1] avem pi log pi 0 i rezult membrul stng. Pentru membrul s a a 1 drept aplicm inegalitatea Gibbs cu qi = n , 1 i n. a Cazurile de egalitate pentru inegalitatea precedent sunt precizate de: a Propozitia 13.10 i) H() = 0 dac i numai dac p1 = 1. as a ii) H() = log n dac i numai dac = u . as a Demonstratie i) H() = 0 dac i numai pentru orice i Nn avem a s pi log pi = 0. Cum nu putem avea c toti pi sunt nuli deoarece suma lor a este 1 rezult c trebuie s existe mcar un indice i aa at pi = 1. Din a a a a s nc ordonarea probabilitilor pi rezult p1 = 1. at a ii) rezult din cazul de egalitate al Inegalitii Gibbs. a at Observatia 13.11 termodinamic unui sistem zic izolat, o stare de In a echilibru este caracterizat de entropie maxim. Prin analogie, am putea a a numi distributia uniform ca ind starea de echilibru informational al a sursei date, toate cele n simboluri (stri) ind la fel de probabile. a Denitia 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 c sursa produs S 2 genereaz grupe de cte dou mesaje a a a a ale sursei S. Analog pentru o putere k 2 oarecare. Propozitia 13.13 H(S1 S2 ) = H(S1 ) + H(S2 ). In consecint H(S k ) = a kH(S). Demosntratie 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 ). Denitia 13.14 Pentru sursa dat initial denim: a 1) redundanta R = log n H(), 2) ecienta = H() . log n

74 Exemplul 13.15 (n=2) Notnd p1 = p avem: a S s1 p s2 1p

M. Crmreanu as a

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 ptratelor vitezelor, a matematicianul romn Octav Onicescu a introdus 1964 conceptul urmtor: a n a Denitia 13.16 Numim energia sursei date numrul real strict pozitiv: a E() =
n i=1

p2 . i

1 Propozitia 13.17 i) E(u ) = n E() 1. 1 ii) E() = n dac i numai dac = u . as a iii) E() = 1 dac i numai dac p1 = 1. as a iv) E(S1 S2 ) = E(S1 )E(S2 ). 1 Demonstratie i) Faptul c E(u ) = n este imediat ca i inegalitatea a n s din dreapta deoarece pi ind subunitare avem E() i=1 p1 . Pentru a 1 a i=1 arta inegalitatea din stnga e xi = pi n ; rezult n xi = 0. Avem a a 1 E() = n + n x2 . i=1 i ii) Avem egalitate stnga dac i numai dac toti xi sunt nuli. n a as a iii) Avem egalitate dreapta dac i numai dac p2 = pi ceea ce revine la n as a i p1 = 1 i p2 = ... = pn = 0. s 2 iv) i,j (pi qj )2 = ( p2 )( qj ) din independenta celor dou surse. a i

Denitia 13.18 Date sursele S1 i S2 de aceeai dimensiune n numim: s s i) corelatia lor numrul real nenegativ C(1 , 2 ) = n pi qi . a i=1 ii) coecientul de corelatie numrul real nenegativ CC(1 , 2 ) = C(1 ,2 ) . a
E1 )E(2 )

Propozitia 13.19 CC(1 , 2 ) 1 = CC(, ) cu egalitate dac i a s numai dac 1 = 2 . a Demonstratie Faptul c CC(, ) = 1 este imediat iar inegalitatea este a exact inegalitatea Cauchy-Buniakowski-Schartz (CBS) din teoria produselor scalar. Avem egalitate inegalitatea CBS dac i numai dac vectorii n a s a n-dimensionali 1 , 2 sunt coliniari adic exist numrul real aa at a a a s nc 1 2 = 1 . Dar din pi = p2 = 1 rezult = 1. a i

Cursul 13 SEMINAR 13
1 S13.1 Se d o surs cu n = 5 i p1 = 2 , p2 = 1 , p3 = 1 , p4 = p5 = a a s 4 8 cere entropia, redundanta, ecienta i energia acestei surse. s 1 16 .

75

Se

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

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

76

M. Crmreanu as a

Cursul 14

Compilatoare 1: Analiz a lexical a


Denitia 14.1 i) Un translator este un program (cutie neagr) care primete a s la intrare un text scris ntr-un limbaj de programare, limbajul surs, i proa s duce la ieire un text echivalent scris alt limbaj de programare, limbajul s n obiect. ii) Dac limbajul surs este un limbaj de nivel a a nalt iar limbajul obiect este un limbaj de nivel inferior (limbaj de asamblare sau cod main), atunci s a translatorul respectiv se numete compilator. s Procesul de compilare a unui program are loc mai multe faze. O faz n a este o operatie unitar cadrul creia are loc transformarea programului a n a surs dintr-o reprezentare alta. a n Principalele faze ale unei compilri sunt: a 1) Analiza lexical: textul sursa este preluat sub forma unei secvente de cara actere care sunt grupate apoi entitati numite atomi; atomilor li se atribuie n coduri lexicale, astfel c, la ieirea acestei faze, programul surs apare ca o a s a secventa de asemenea coduri. Exemple de atomi: cuvinte cheie, identica tori, constante numerice, semne de punctuatie etc. 2) Analiza sintactic are ca scop gruparea atomilor rezultati urma anala n izei lexicale structuri sintactice. O structur sintactic poate vzut ca n a a a a un arbore ale crui noduri terminale reprezint atomi, timp ce nodurile a a n interioare reprezint iruri de atomi care formeaz o entitate logic . Exemas a a ple de structuri sintactice: expresii, instructiuni, declaratii etc. 3) Pe durata analizei sintactice, de obicei are loc i o analiz semantic, s a a ceea ce nseamn efectuarea unor vericri legate de: a a -compatibilitatea tipurilor datelor cu operatiile care ele sunt implicate, n 77

78

M. Crmreanu as a

-respectarea regulilor de vizibilitate impuse de limbajul surs. a 4) Generarea de cod intermediar: aceast faz are loc transformarea n a a arborelui sintactic ntr-o secventa de instructiuni simple, similare macroin structiunilor unui limbaj de asamblare. Diferenta dintre codul intermediar i un limbaj de asamblare este principal aceea c codul intermediar nu s n a n se specic registrele utilizate operatii. Exemple de reprezentri pentru a n a codul intermediar: instructiunile cu trei adrese, notatia postx, etc. Codul intermediar are avantajul de a mai uor de optimizat dect codul main s a s a . 5) Optimizarea de cod este o faz optional al crei rol este modicarea a a a unor portiuni din codul intermediar generat astfel at programul rezultat nc s satisfac anumite criterii de performant viznd timpul de executie sau/i a a a a s spatiul de memorie ocupat. 6) Generarea codului nal presupune transformarea instructiunilor codului intermediar (eventual optimizat) instructiuni main (sau de asamblare) n s a pentru calculatorul inta (cel pe care se va executa programul compilat). t afar de aceste actiunile, procesul de compilare mai include urmtoarele: In a a 7) Gestionarea tabelei de simboluri: tabela de simboluri este o structur de a date destinat pstrrii de informatii despre simbolurile (numele) care apar a a a programul surs; compilatorul face referire la aceast tabel aproape n a a a n toate fazele compilrii. 8) Tratarea erorilor: un compilator trebuie s e a a capabil s recunoasc anumite categorii de erori ce pot apare prograa a n mul surs; tratarea unei erori presupune detectarea ei, emiterea unui mesaj a corespunztor i revenirea din eroare, adic, pe ct posibil, continuarea proa s a a cesului de compilare pn la epuizarea textului surs, astfel at numrul a a a nc a de compilri necesare eliminrii tuturor erorilor dintr-un program s e ct a a a a mai mic. Practic, exist erori specice ecrei faze de compilare. a a Derularea procesului de compilare Fazele unui proces de compilare se pot antui, principiu, dou modnl n n a uri: -la ieirea/nalul ecrei faze se va genera un ier intermediar continnd s a s a forma de reprezentare a programului surs rezultat faza respectiv, ier a a n a s ce va constitui intrare pentru faza urmtoare. acest caz, ecare faz va a In n a avea loc cel putin o parcurgere a programului surs, de la a nceput la sfrit. as O asemenea parcurgere se numete trecere. s -dou sau mai multe faze de compilare se a ntreptrund astfel at ele s se a nc a execute printr-o singur trecere. a Aplicarea uneia sau alteia dintre aceste dou modaliti depinde de natura a at limbajului compilat precum i de mediul care urmeaz s ruleze coms n a a pilatorul. Astfel, sprijinul proiectantilor de compilatoare au fost create n

Cursul 14

79

instrumente software precum generatoarele de analizoare lexicale i sintacs tice, generatoarele de compilatoare sau sistemele de scriere a translatoarelor. Aceste instrumente sunt programe care produc compilatoare sau prti din a compilatoare, primind la intrare o specicare a limbajului surs precum i a s a calculatorului int. t a Un analizor lexical citete textul surs caracter cu caracter i-l transs a s form a ntr-o secvent de uniti primitive (elementare) numite uniti lexia at at cale, englez tokens. n a O unitate lexical descrie o secvent de caractere cu o anumit semnicatie a a a i este tratat ca o entitate logic. Astfel, pentru ecare limbaj de progras a a mare se stabilesc, atunci cnd se proiecteaz acel limbaj, unitile lexicale a a at corespunztoare. a Majoritatea limbajelor utilizeaz urmtoarele uniti lexicale: a a at 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 comport cel putin dou aspecte: a a I) gsirea unei modaliti de descriere a unitilor lexicale; astfel, se constat a at at a c expresiile regulate sunt instrumentele ce pot descrie orice unitate lexical. a a II) recunoaterea acestor uniti lexicale ceea ce constituie analiza lexical s at a propriu zis; dac descrierea se face prin intermediul expresiilor regulate a a atunci mecanismul de recunoatere este automatul nit determinist conform s Teoremei 5.8. Unitile lexicale sunt de dou categorii: at a a) uniti ce descriu un ir anume de caractere; exemplu if, while, ++ := ; at s b) uniti ce descriu o clas de iruri: identicatori, constante, etc. at a s al doilea caz, vom considera o unitate lexical ca ind o pereche (tipul, In a valoarea). Pentru uniti lexicale ce descriu un ir anume, prin conventie tipul at s este acel ir iar valoarea coincide cu tipul. Astfel, caracterul ( este de tip s parantez stng iar alpha este unitate lexical de tip identicator care are a a a a valoarea alpha. Mai spunem c alpha este o instant a tokenului identicator a a sau lexem. LEXEM e 1) Cuvnt sau parte de cuvnt care servete ca suport minimal a a s al semnicatiei; morfem lexical. 2) Unitate de baz a vocabularului care a reprezint asocierea unuia sau a mai multor sensuri; cuvnt; unitate lexical. a a a din fr. lexeme. Sursa : NODEX (341523)

80

M. Crmreanu as a 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

Bibliograe
[1] Capra, F., Conexiuni ascunse, Ed. Tehnic, Bucureti, 2004. a s [2] Cazacu, C., Teoria calculabilitii efective, Ed. Univ. Al. I. Cuza, Iai, at s 1996. [3] Chiswell, I., A Couse in Formal Languages, Automata and Groups, Universitext, Springer-Verlag, London, 2009. [4] Grigora Gh., Limbaje formale i tehnici de compilare, Ed. Univ. Al. s s I. Cuza, Iai, 1985. s [5] Grigora Gh., Constructia compilatoarelor. Algoritmi fundamentali, Ed. s Univ. Al. I. Cuza, Iai, 2005. s [6] Gontineac M., Limbaje formale i automate, s 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 studiul limban jelor formale. Teorie i exercitii, Editura de Vest, Timioara, 2006. s s [10] Jucan, T.; Andrei, S., Limbaje formale i teria automatelor: Teorie i s s practic, Ed. Univ. Al. I. Cuza, Iai, 2002. a s [11] Onicescu, O.; Stefnescu V., Elemente de statistic informationalu a a c aplicatii, Ed. Tehnic, Bucureti, 1979. a s [12] Orman G., Limbaje formale, Ed. Tehnic, Bucureti, 1982. a s a s [13] Pun, Gh., Gramatici contextuale, Ed. Academiei, Bucureti, 1982. 81

82

Bibliograe

[14] Simovici D., Limbaje formale i tehnici de compilare, EDP, Bucureti, s s 1978. [15] Srivastava, S. M., A course in mathematical logic, Universitext, Springer-Verlag, 2008. [16] Serbnati L. D., Limbaje de programare i compilatoare, Ed. Academiei, a s Bucureti, 1987. s [17] Tomescu I., Introducere combinatoric, Ed. Tehnic, Bucureti, 1972. n a a s (Cap. 8, p. 93.) [18] Tiplea F. L., Fundamentele algebrice ale informaticii, Ed. Polirom, Iai, s 2006.

Index
-msura unui limbaj, 72 a k-cuvnt, 1 a nchiderea Kleene a unui limbaj, 8 nchiderea pozitiv a unui limbaj, 8 a nmultirea repetat, 62 a coecientul de corelatie a dou surse, a 74 compilator, 77 compunere de functii partiale, 61 concatenarea cuvintelor, 2 congruent pe un (semi)automat, 41 a congruent pe un semigrup, 6 a semiautomat (automat) conex, 41 congruent Rees, 22 a congruenta generat de o relatie, 21 a actiune a unui grup pe o multime, 45 congruenta Myhill, 44 actiune liber, 49 a congruenta total, 21 a actiune tranzitiv, 49 a corelatia a dou surse, 74 a adunarea repetat, 62 a cuvnt nevid, 1 a alfabet, 1 cuvnt recunoscut de un automat, 30 a alfabetul binar, 1 cuvntul vid, 1 a alfabetul minimal al unui limbaj, 8 cuvinte egale, 2 alfabetul zecimal, 1 cvasicongruent, 9 a algebr Boole, 28 a analiz lexical, 77 a a denitie primitiv recursiv, 62 a analiz semantic, 78 a a derivare ntr-o gramatic, 54 a analiz sintactic, 77 a a distanta Hamming pe k-cuvinte, 14 analizor lexical, 79 distributia uniform de probabilitate, a 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 Gdel, 68 o automate izomorfe, 40 evolutia limbajului, 17 automatul ciclic, 38 expresie ambigu, 16 a 83

84 expresie regulat, 15 a expresii regulate echivalente, 16

Index

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 caracteristic a unei submultimi, a ideal ntr-un monoid, 22 39 functia caracteristic partial a unei idempotent, 5 a a ierarhia Chomsky a gramaticilor, 54 multimi, 67 indicatorul de cod al unui limbaj, 72 functia de minimizare, 64 inegalitatea Gibbs, 73 functia de minimizare limitat, 64 a iterata unei functii, 63 functia exponential, 65 a functia factorial, 65 functia izoparametric a unui grup a nit generat, 59 functia modul, 65 functia produs (multiplicare), 65 functia semn, 65 functia sum, 65 a functie partial, 61 a functie partial recursiv, 64 a functie primitiv recursiv, 62 a functie recursiv, 64 a functie total, 61 a functii initiale, 62 generare de cod intermediar, 78 generarea codului nal, 78 generatori ai unui semigrup, 3 gestionarea tabelei de simboluri, 78 gramatic, 53 a gramatici echivalente, 54 grup automat, 59 grup de izotropie, 47 grup de transformri, 45 a 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 boolean, 28 a latice complementat, 27 a latice distributiv, 28 a latice mrginit, 27 a a 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 gramatic, 54 a limbajul obiect al unui compilator, 77 limbajul surs al unui compilator, 77 a litere, 1 lungimea unui cuvnt, 1 a metric=distant, 14 a a minimizare regulat, 64 a monoid, 2 monoid band, 22 a

Index monoid liber, 3 monoid Rees, 22 monoid semilaticeal, 25 monoidul cuvintelor, 2 multime listabil, 67 a multime periodic, 26 a multime recognoscibil, 43 a multime recursiv enumerabil (semire a cursiv), 67 a multime recursiv, 64 a numrul literelor dintr-un cuvnt, 4 a a obiect initial, 3 operatii boolene cu limbaje, 8 operatorul de minimizare limitat, 64 a operatorul de minimizare MIN, 64 operatorul de recursie primitiv REC, a 61 operatorul de superpozitie SUP, 61 optimizare de cod, 78 orbit, 47 a palindrom, 17 permutare ciclic =k-ciclu, 49 a pr-ir, 65 s predicat, 62 predicat primitiv recursiv, 63 predicat recursiv, 64 prex, 9 prex propriu, 9 prezentarea grupurilor prin generatori i relatii, 57 s problema cuvintelor, 58 proprietatea de universalitate a monoizilor liberi, 3 r-ir, 65 s recursie primitiv, 61 a redundanta unei surse de informatie, 73

85 reguli de simplicare monoidul cun vintelor, 4 reprezentarea tabelar a automatelor, a 31 reversul unui cuvnt, 17 a ridicarea la putere a unui simbol, 2 RL-functie, 24 scderea proprie, 65 a semiautomat, 41 semiautomat (automat) perfect, 41 semiautomatul (automatul) grup, 41 semigrup, 2 semigrup liber, 3 semilatice, 27 simboluri, 1 spatiul proiectiv real, 52 stri k-echivalente, 39 a stri echivalente, 39 a stabilizator, 47 stare accesibil a unui automat, 35 a stare ambigu a unui automat, 30 a stare nedenit a unui automat, 30 a stare productiv a unui automat, 36 a structur automat pentru un grup, a a 59 structur rational pentru un grup, a a 58 subcuvnt, 9 a subcuvnt propriu, 9 a subgrup, 4 sublatice, 27 submonoid, 4 subsemigrup, 4 sux, 9 sux propriu, 9 sumatorul modulo n, 41 surs de informatie, 71 a sursa produs de informatii, 73

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

Index