Documente Academic
Documente Profesional
Documente Cultură
1 Mulţimi 5
1.1 Operaţii cu mulţimi . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Cardinalul unei mulţimi . . . . . . . . . . . . . . . . . . . . . 7
1.3 Numere prime . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3 Grafuri 37
3.1 Grafuri orientate . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.2 Grafuri neorientate . . . . . . . . . . . . . . . . . . . . . . . . 47
4 Automate finite 51
4.1 Alfabet şi limbaj . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.2 Automate finite deterministe şi nedeterministe . . . . . . . . 54
4.3 Echivalenţa automatelor . . . . . . . . . . . . . . . . . . . . . 61
3
4 CUPRINS
Capitolul 1
Mulţimi
5
6 CAPITOLUL 1. MULŢIMI
P(X) = {A ; A ⊆ X}.
2. Propoziţie
Pentru orice mulţimi A, B, C, avem:
(i) dacă A ⊆ B atunci A ∪ B = B
(ii) A ∪ B = B ∪ A
(iii) A ∪ (B ∪ C) = (A ∪ B) ∪ C
(iv) dacă A ⊆ B atunci A ∩ B = A
(v) A ∩ B = B ∩ A
(vi) A ∩ (B ∩ C) = (A ∩ B) ∩ C
(vii) A ∩ (B ∪ C) = (A ∩ B) ∪ (A ∩ C)
(viii) A ∪ (B ∩ C) = (A ∪ B) ∩ (A ∪ C)
(ix) dacă A ⊆ B atunci B \ (B \ A) = A
(x) dacă C ⊇ B ⊇ A atunci C \ A ⊇ C \ B
(xi) C \ (A ∪ B) = (C \ A) ∩ (C \ B)
(xii) C \ (A ∩ B) = (C \ A) ∪ (C \ B).
Ultimele două proprietăţi se numesc legile lui De Morgan.
Demonstraţie
Demonstrăm (iii) şi (xi).
(iii) Demonstrăm A ∪ (B ∪ C) ⊆ (A ∪ B) ∪ C. Dacă x ∈ A ∪ (B ∪ C),
atunci sau x ∈ A sau x ∈ B ∪ C; dacă x ∈ A atunci x ∈ A ∪ B şi deci
x ∈ (A ∪ B) ∪ C. Dacă x ∈ B ∪ C, atunci sau x ∈ B sau x ∈ C; dacă x ∈ B,
atunci x ∈ A ∪ B şi x ∈ (A ∪ B) ∪ C; dacă x ∈ C atunci x ∈ (A ∪ B) ∪ C.
Analog, (A ∪ B) ∪ C ⊆ A ∪ (B ∪ C).
(xi) Incluziunea C \ (A ∪ B) ⊆ (C \ A) ∩ (C \ B): dacă x ∈ C \ (A ∪ B), atunci
x ∈ C şi x ̸∈ A ∪ B; rezultă x ̸∈ A şi x ̸∈ B, deci x ∈ C \ A şi x ∈ C \ B; ı̂n
concluzie x ∈ (C \ A) ∩ (C \ B).
Cealaltă incluziune: (C \A)∩(C \B) ⊆ C \(A∪B); dacă x ∈ (C \A)∩(C \B),
atunci x ∈ (C \ A) şi x ∈ (C \ B), deci x ∈ C şi x ̸∈ A şi x ̸∈ B. Rezultă că
1.2. CARDINALUL UNEI MULŢIMI 7
x ̸∈ A ∪ B, deci x ∈ C \ (A ∪ B).
3. Definiţie
Fie A şi B două mulţimi nevide; dacă a ∈ A şi b ∈ B, atunci (a, b) se
numeşte pereche ordonată. Două perechi ordonate (a, b) şi (c, d) sunt egale
dacă şi numai dacă a = c şi b = d. Produsul Cartezian al lui A cu B, notat
A × B, este mulţimea tuturor perechilor ordonate: A × B = {(a, b) ; a ∈
A şi b ∈ B}. Dacă A = B, se notează A2 = A × A.
O relaţie este o submulţime de perechi ordonate; mai precis, o relatie
este o submulţime R ⊆ A × B. Domeniul relaţiei R este Dom(R) =
{a ∈ A ; există b ∈ B astfel ı̂ncât (a, b) ∈ R}. Imaginea relaţiei R este
Im(R) = {b ∈ B ; există a ∈ A astfel ı̂ncât (a, b) ∈ R}.
O funcţie definită pe A cu valori ı̂n B (notaţia uzuală este
f : A 7→ B) este o relaţie f ⊆ A × B astfel ı̂ncât pentru orice a ∈ A există şi
este unic b ∈ B astfel ı̂ncât (a, b) ∈ f ; se notează b = f (a) dacă (a, b) ∈ f .
Mulţimea A este domeniul (de definiţie), iar B este codomeniul funcţiei f .
O funcţie f : A 7→ B se numeşte injectivă dacă din x ̸= y rezultă
f (x) ̸= f (y).
Imaginea funcţiei f , notată f (A) sau Im(f ) este mulţimea
{y ∈ B există x ∈ A astfel ı̂ncât f (x) = y}.
O funcţie f : A 7→ B se numeşte surjectivă dacă f (A) = B.
O funcţie se numeşte bijectivă dacă este injectivă şi surjectivă. Dacă
f : A 7→ B este o funcţie bijectivă, atunci funcţia inversă a lui f este
funcţia notată f −1 , definită prin f −1 : B 7→ A, f −1 (t) = s dacă f (s) = t.
Evident f (f −1 (t)) = t pentru orice t ∈ B şi f −1 (f (s)) = s pentru orice s ∈ A.
Funcţia inversă f −1 este bijectivă .
Definiţie
8 CAPITOLUL 1. MULŢIMI
5. Propoziţie
Orice mulţime nevidă S ⊆ N are un cel mai mic element, i.e. există
n0 ∈ S astfel ı̂ncâ n0 ≤ m pentru orice m ∈ S.
Demonstraţie Fie S ca mai sus şi fie
7. Mulţimi numărabile
Aşa cum am menţionat, N este mulţime infinită. Prin definiţie, cardi-
nalul lui N este ℵ0 (litera ℵ se citeşte ”alef”). Orice mulţime echipotentă cu
N se numeşte numărabilă. O mulţime finită sau numărabilă se numeşte cel
mult numărabilă.
Observaţie
O mulţime A este numărabilă dacă şi numai dacă se poate scrie sub forma
unui şir, i.e. A = {a0 , a1 , a2 , ...}.
Demonstraţie Dacă A = {a0 , a1 , a2 , ...}, atunci f : N 7→ A, f (n) = an este
funcţie bijectivă. Reciproc, dacă A este numărabilă, atunci există o aplicaţie
bijectivă f : N 7→ A; dacă notăm an = f (n), atunci demonstraţia se incheie.
Evident, mulţimea {a0 , a1 , ...} este numărabilă şi este inclusă ı̂n A.
9. Corolar
Dacă A este o mulţime infinită, atunci pentru orice submulţime finită
F ⊂ A, mulţimile A şi A \ F sunt echipotente.
Demonstraţie Fie F = {a0 , a1 , ..., an−1 }; atunci A\F este mulţime infinită
şi deci conţine o submulţime numărabilă:
f : A \ F 7→ A,
{
x, dacă x ∈ A \ {a0 , a1 , ...an−1 , an , an+1 , ...}
f (x) =
an−1 , dacă x = an , n ∈ N⋆
este bijectivă.
10. Propoziţie
Fie X şi Y două mulţimi nevide şi fie f : X 7→ Y .
i. Dacă X şi Y sunt mulţimi numărabile, atunci X ∪ Y este numărabilă.
ii. Dacă f este injectivă şi Y este numărabilă, atunci X este numărabilă.
iii. Dacă f este surjectivă şi X este numărabilă, atunci Y este numărabilă.
iv. Produsul cartezian N × N este mulţime numărabilă.
Demonstraţie Primele două afirmaţii sunt uşor de demonstrat; pentru a
demonstra-o pe a treia, considerăm aplicaţia injectivă
g : Y 7→ X, g(y) = x, unde x este un element cu proprietatea f (x) = y.
iv. Funcţia f : N × N 7→ N, f (m, n) = 2m 3n este injectivă.
Este evident că N ⊂ Z; demonstrăm ı̂n continuare că N şi Z sunt echipo-
tente, i.e. card(Z) = ℵ0 .
12. Propoziţie
Mulţimea numerelor ı̂ntregi este numărabilă.
Demonstraţie
Mulţimea Z poate fi scrisă sub forma unui şir: Z = {0, 1, −1, 2, −2, 3, ...},
sau, echivalent, aplicaţia f : N 7→ Z,
{ n
− 2 , dacă n este par
f (n) = n+1
2
, dacă n este impar
este bijectivă.
14. Propoziţie
Mulţimea numerelor raţionale este numărabilă, deci card(Q) = ℵ0 .
Demonstraţie
Mulţimea numerelor raţionale pozitive poate fi scrisă ca un şir:
1 1 2 1 2 3 1 2 3 4 1
, , , , , , , , , , , ···
1 2 1 3 2 1 4 3 2 1 5
Şirul de mai sus conţine la un anumit pas toate fracţiile pentru care suma
dintre numărător şi numitor este aceeaşi.
Un alt argument: aplicaţia f : Z × N⋆ 7→ Q, f (m, n) = mn
este surjectivă
şi se poate aplica propoziţia 10(iii).
Demonstraţie
Facem demonstraţia prin reducere la absurd: presupunem că mulţimea
A poate fi scrisă sub forma unui şir: A = {x1 , x2 , x3 , ...}; din definiţia lui A,
rezultă că
x1 = a11 a12 a13 ...., x2 = a21 a22 a23 ...., x3 = a31 a32 a33 ....,
(cu notaţii evidente). Considerăm elementul y = b1 b2 b3 .... astfel ı̂ncât pentru
orice i ∈ N⋆ , bi ∈ X şi bi ̸= aii . Rezultă că y ∈ A dar y ̸= xn , ∀n ∈ N⋆ , ceea
ce constituie o contradicţie .
17. Propoziţie
Mulţimea numerelor reale nu este numărabilă; prin definiţie, cardinalul
ei este ℵ1 .
Divizibilitate
Fie a, b ∈ Z, a ̸= 0; se spune că a divide b (se notează a| b) dacă ∃c ∈ Z
astfel ı̂ncât b = ac. În acest caz, a se numeşte divizor al lui b, iar b este
multiplu al lui a.
Următoarele proprietăţi sunt evidente:
(i) ∀a ∈ Z⋆ , a| a şi a| − a.
(ii) ∀a ∈ Z, 1| a şi − 1| a.
(iii) Dacă a| b şi b| c, atunci a| c.
(iv) Dacă a| b şi a| c atunci ∀m, n ∈ Z, a| (bm + cn).
b = aq + r şi 0 ≤ r < a
S = {b − as ≥ 0 ; s ∈ Z}
b − a(q + 1) = (b − aq) − a = r − a ≥ 0,
a| q1 − q2 | = | r1 − r2 | < a
20. Definiţie
Fie a ∈ N, a ≥ 2; numărul a se numeşte prim dacă are numai doi di-
vizori, anume 1 şi a; numărul a se numeşte compus dacă nu este prim.
Numărul 1 nu este nici prim nici compus.
21. Propoziţie
Mulţimea numerelor prime este infinită.
Demonstraţie
Presupunând prin absurd că mulţimea numerelor prime este finită, o
putem scrie sub forma: {p1 , p2 , ..., pn }. Rezultă că există un cel mai mare
număr prim, de exemplu pn . Atunci numărul natural P = p1 p2 ...pn + 1 este
prim şi strict mai mare decât pn , contradicţie.
22. Propoziţie
(i) Fie a, b ∈ Z şi fie p un număr prim. Dacă p| ab, atunci p| a sau p| b.
(ii) Generalizare: fie a1 , a2 , ..., ak ∈ Z şi fie p ∈ N un număr prim. Dacă
p | a1 a2 ...ak atunci ∃i ∈ {1, 2, ..., k} astfel ı̂ncât p | ai .
Demonstraţie
(i) Dacă a = 0 sau b = 0, este evident. Presupunem că a, b ∈ N⋆ ; dacă
p ̸ | a, atunci considerăm mulţimea
S = {x ∈ N ; p | ax şi p ̸ | x}
ar = a(p − cq),
deci p | ar. În concluzie: p | ar şi p ̸ |r. Dar r < c şi r ∈ N, ceea ce contrazice
faptul că c este cel mai mic element al lui S.
n = n1 n2 şi 2 ≤ n1 ≤ n − 1, 2 ≤ n2 ≤ n − 1
Prin ipoteză, şi n1 şi n2 se pot scrie ca produse de numere prime, deci n
se poate scrie ca produs de numere prime. Pentru a demonstra unicitatea,
presupunem că:
n = p1 p2 ...pr = p′1 p′2 ...p′s ,
unde p1 ≤ p2 ≤ ... ≤ pr şi p′1 ≤ p′2 ≤ ... ≤ p′s sunt toate numere prime.
Deoarece p1 | n = p′1 p′2 ...p′s , din propoziţia 3 (ii), obţinem că ∃j ∈ {1, 2, ..., s}
astfel ı̂ncât
p1 | p′j
Deoarece p1 şi p′j sunt ambele prime, rezultă p1 = p′j . În mod analog,
p′1 | p1 p2 ...pr , deci ∃i ∈ {1, 2, ..., r} astfel ı̂ncât p′1 | pi , deci p′1 = pi . Avem:
p1 = p′j ≥ p′1 = pi ≥ p1 ,
24. Corolar
Fie n ∈ N, n ≥ 2. Atunci există numerele prime p1 < p2 < ... < pr şi
m1 , m2 , .., mr ∈ N astfel ı̂ncât
n = pm1 m2 mr
1 p2 ...pr
(a) d | a şi d | b
(b) dacă x ∈ N şi x | a, x | b, atunci x | d.
Reamintim că numărul d se numeşte cel mai mare divizor comun
(c.m.m.d.c.) al numerelor a şi b şi se notează d = (a, b). Două numere
naturale a şi b se numesc prime ı̂ntre ele dacă (a, b) = 1.
Demonstraţie
Dacă a = 1 sau b = 1, atunci evident d = 1. Dacă a > 1 şi b > 1, atunci
considerăm factorizările (ca ı̂n corolarul 5):
a = pm 1 m2 mr n1 n2 nr
1 p2 ...pr , b = p1 p2 ...pr
Facem menţiunea că dacă pj nu este factor prim al lui a (sau b), atunci
exponentul corespunzător mj (sau nj ) este 0. Cel mai mare divizor comun
al lui a şi b este:
∏r
min{mj , nj }
d= pj
j=1
cu
0 ≤ vj ≤ mj şi 0 ≤ vj ≤ mj , ∀j = 1, 2, ..., r,
deci x | d. Unicitatea lui d rezultă din unicitatea factorizărilor lui a şi b.
27. Propoziţie
Pentru orice a, b ∈ N, există x, y ∈ Z astfel ı̂ncât
(a, b) = ax + by
Demonstraţie
1.3. NUMERE PRIME 17
S = {ax + by > 0 ; x, y ∈ Z}
q1 , q2 , ..., qn+1 ∈ Z
deci (b, r1 ) | (a, b). Rezultă (a, b) = (b, r1 ). Cuaceeaşi metodă, se poate
demonstra:
(b, r1 ) = (r1 , r2 ) = (r2 , r3 ) = ... = (rn−1 , rn )
Concluzia rezultă acum din egalitatea:
29. Exemple
(i) Pentru orice două numere ı̂ntregi consecutive, algoritmul lui Euclid se
opreşte după doi paşi.
(ii) Calculaţi numărul de paşi necesari pentru a calcula c.m.m.d.c. a doi
termeni consecutivi ai şirului lui Fibonacci, Fn+1 şi Fn .
Demonstraţie
(i) (a, a + 1) = (a, 1) = (0, 1) = 1
(ii) Fie (Fk )k∈N şirul lui Fibonacci; restul lui ı̂mpărţirii lui Fk+1 la Fk este
Fk−1 , deoarece Fk+1 = Fk + Fk−1 . Rezultă:
Lemă
În algoritmul lui Euclid, la fiecare iteraţie produsul celor două numere
(curente) este micşorat de cel puţin 2 ori. Fie a, b ∈ N, 0 < b < a şi fie
r restul ı̂mpărţirii lui a la b. La fiecare pas, perechea a, b este ı̂nlocuită cu
perechea b, r. Avem:
a = bq + r ≥ b + r > 2r,
deoarece b > r. Rezultă br < 21 ab, ceea ce demonstrează lema.
Dacă aplicaăm algoritmul lui Euclid numerelor a şi b, atunci, după k paşi,
produsul numerelor curente este cel mult 2−k ab. Acest produs este cel puţin
1, deci 2k ≤ ab. Logaritmând, obţinem:
31. Exemplu
Estimarea din rezultatul precedent este mult mai bună decât estimarea
iniţială a + b. De exemplu, dacă se calculează c.m.m.d.c. a doi ı̂ntregi cu 100
de cifre, atunci teorema 12 dă estimarea pentru numărul de paşi ai algorit-
mului lui Euclid k ≤ 2 log2 10100 = 200 log2 10 < 720.
32. Exerciţiu
Fie 0 < b < a două numere ı̂ntregi pentru care algoritmul lui Euclid are
n paşi. Să se demonstreze că a ≥ Fn+1 şi b ≥ Fn .
Demonstraţie
Prin inducţie; dacă n = 1, atunci a ≥ 2 şi b ≥ 1 sunt evident adevărate.
Presupunem că afirmaţia este adevărată pentru orice 1 ≤ k ≤ n − 1 şi
o demonstrăm pentru n. Să presupunem că algoritmul lui Euclid pentru
calculul (a, b) are n paşi. Fie a = bq + r (q este câtul şi r este restul); atunci
1 ≤ r < b. Algoritmul lui Euclid pentru calculul (b, r) are n − 1 paşi şi deci,
conform ipotezei de inducţie, rezultă
b ≥ Fn şi r ≥ Fn−1
Obţinem:
a = bq + r ≥ b + r ≥ Fn + Fn−1 = Fn+1 ,
20 CAPITOLUL 1. MULŢIMI
p | ap − a
ap − a = (b + 1)p − (b + 1) =
iar demonstraţia a fost dată de matematicianul englez Andrew Wiles ı̂n anul
1995.
34. Propoziţie
Pentru orice număr natural n ≥ 2, există n − 1 numere naturale compuse.
Demonstraţie
Fie n ∈ N; atunci numerele:
n! + 2, n! + 3, n! + 4, ..., n! + n
Notaţia uzuală pentru numărul numerelor prime mai mici decât un număr
natural dat, n , este π(n). S-a acceptat că nu se poate da o formulă exactă
pentru π(n). Principalul rezultat asupra lui π(n) este:
35. Teoremă
Fie n ∈ N, n ≥ 2; atunci:
π(n)
lim n =1
n→∞
ln n
În continuare vom vedea cum se pot rezolva parţial dificultăţile (i), (ii) şi
(iii) de mai sus.
1.3. NUMERE PRIME 23
38. Observaţie
Pentru calculul puterilor ale lui 2, se poate reduce numărul de operaţii
prin calculul succesiv al pătratelor; exemplificăm cu 224 şi 229 ):
(a) pentru a calcula 224 :
23 = 8
26 = (23 )2 = 64
212 = (26 )2 = 4096
224 = (212 )2 = 16777216
Numărul de operaţii s-a redus de la 23 la 5.
(b) pentru a calcula 229 :
22 = 4
23 = 22 · 2 = 8
26 = (23 )2 = 64
27 = 26 · 2 = 128
214 = (27 )2 = 16384
228 = (214 )2 = 268435456
229 = 228 · 2 = 536870912
Un rezultat general este:
39. Propoziţie
Fie n ∈ N; dacă n are k cifre ı̂n baza 2, atunci 2n poate fi calculat prin
cel mult 2k ı̂nmulţiri.
Demonstraţie
Demonstrăm prin inducţie după k; pentru k = 1 este evident. Dacă
n ≥ 2 are k + 1 cifre ı̂n baza 2, atunci scriem n = 2q + r, r find restul, deci
r ∈ {0, 1}. Rezultă că q are k cifre ı̂n baza 2, deci putem calcula 2q prin cel
mult 2k ı̂nmulţiri (conform ipotezei de inducţie); din relaţia 2n = (2q )2 · 2r ,
rezultă pentru calculul lui 2n cel mult 2k + 1 + 1 = 2(k + 1) ı̂nmulţiri.
41. Exemplu
Să verificăm dacă 25 | 224 − 1. Începem prin a calcula puterile lui 2 şi
verificăm de fiecare dată dacă puterea respectivă este mai mică decât 25; dacă
da, continuăm cu următoarea putere; dacă nu, ı̂mpărţim puterea respectivă
la 25 şi continuăm cu puterile restului.
23 = 16 < 25
26 = 64 > 25
64 = 25 · 2 + 14
Acum calculăm 142 = 196 > 25 (fără observaţia anterioară ar fi trebuit
să calculăm 212 = (26 )2 ).
196 = 25 · 7 + 21
Acum calculăm 212 = 441 > 25 (ı̂n loc de 224 = (212 )2 ).
441 = 25 · 17 + 16
În final testăm dacă 25 |16−1 (ı̂n loc de 25 | 224 −1); deoarece 25 ̸ |16−1,
rezultă că 25 nu este prim.
42. Exemplu
Aplicăm testul Miller-Rabin pentru n = 561. Factorizăm a561 − a:
a561 − a = a(a560 − 1) =
1.3. NUMERE PRIME 25
= a(a280 − 1)(a280 + 1) =
= a(a140 − 1)(a140 + 1)(a280 + 1) =
= a(a70 − 1)(a70 + 1)(a140 + 1)(a280 + 1) =
= a(a35 − 1)(a35 + 1)(a70 + 1)(a140 + 1)(a280 + 1)
Dacă 561 ar fi număr prim, atunci, conform micii teoreme a lui Fermat, el ar
trebui să dividă a561 − a, ∀a ∈ N (acest fapt este de altfel adevărat); rezultă
(ı̂n ipoteza că 561 ar fi număr prim) că 561 trebuie să dividă cel puţin unul
dintre factorii de mai sus. Se observă că pentru a = 2 niciun factor nu este
multiplu de 561, deci numărul 561 nu este prim.
26 CAPITOLUL 1. MULŢIMI
Capitolul 2
2.1 Introducere
1.Definiţie
Fie M o mulţime nevidă şi fie M ×M = {(x, y) |x, y ∈ M } produsul cartezian.
O relaţie pe mulţimea M este orice submulţime nevidă ξ ⊆ M × M . Dacă
(x, y) ∈ ξ, atunci se notează xξ y şi se citeşte ”x este ı̂n relaţia ξ cu y”. Dacă
(x, y) ̸∈ ξ, atunci se notează x ̸ ξ y.
2.Exemple
i. Fie M = Z mulţimea numerelor ı̂ntregi; pentru orice m, k ∈ Z fie
mρ k ⇔ m | k , (”m divide k”, sau ”k este multiplu de m”); prin definiţie,
0ρ 0. De exemplu, 2 | 4 şi 3 ̸ | − 4.
ii. Fie R mulţimea numerelor reale şi fie xρ y ⇔ x ≤ y (relaţia ”mai mic
sau egal”).
iii. Fie n ∈ N ⋆ un număr natural fixat. Relaţia ”congruenţa modulo n” se
defineşte pe Z prin x ≡n y ⇔ n| x − y, ∀x, y ∈ Z.
iv. Relaţia de egalitate pe M : xρ y ⇔ x = y.
v. Relaţia universală pe M : xρ y, ∀x, y ∈ M .
vi. Pe mulţimea studenţilor din Universitatea Politehnica, fie relaţia:
xρ y ⇔ studenţii x şi y sunt ı̂n aceeaşi grupă.
3.Observaţie
Fie M ̸= ∅; funcţiile (aplicaţiile) definite pe M cu valori ı̂n M sunt un caz
particular de relaţii.
27
28 CAPITOLUL 2. RELAŢII ŞI FUNCŢII
5. Exerciţiu
Verificaţi proprietăţile de mai sus pentru relaţiile definite ı̂n Exemplul 2.
6. Operaţii cu relaţii
Fie M ̸= ∅ şi fie ρ şi ϕ două relaţii pe M .
Reuniunea lui ρ cu ϕ se defineşte prin:
i.e., xρ ∪ ϕ y ⇔ xρ y sau xϕ y .
Analog, intersecţia lui ρ cu ϕ se defineşte prin:
xρ ∩ ϕ y ⇔ xρ y şi xϕ y.
xρ−1 y ⇔ yρ x.
ρ = ρ ∪ ρ2 ∪ ρ3 ∪ ... ∪ ρn ∪ ....
0 · 0 = 0 , 0 · 1 = 0 , 1 · 0 = 0 , 1 · 1 = 1.
Putem acum calcula matricele asociate reuniunii, intersecţiei, etc. Fie ρ şi ϕ
două relaţii pe M având matricele Mρ = (aij ) şi Mϕ = (bij ).
Atunci matricea reuniunii ρ∪ ϕ este Mρ∪ ϕ = (aij ∨bij ), iar matricea intersecţiei
ρ ∩ ϕ este Mρ∩ ϕ = (aij · bij ).
Matricea produsului ρϕ este Mρϕ = (ai1 · b1j ∨ ai2 · b2j ∨ ... ∨ ain · bnj ).
Matricea inversei ρ−1 este the transpusa MρT = (aji ).
Matricea ı̂nchiderii tranzitive a lui ρ este matricea reuniunii tuturor puterilor
lui ρ.
8. Exerciţiu
Fie M = {1, 2, 3} şi fie relaţiile (pe M ):
xρ y ⇔ x divide y
xϕ y ⇔ x = y + 1.
Găsiţi matricele relaţiilor ρ, ϕ, ρ ∪ ϕ, ρ ∩ ϕ, ρ · ϕ, ρn , ϕn , ρ, ϕ.
30 CAPITOLUL 2. RELAŢII ŞI FUNCŢII
10. Exemple
i. Egalitatea este o relaţie de echivalenţă.
ii. Relaţia universală este relaţie de echivalenţă.
iii. Congruenţa modulo n este o relaţie de echivalenţă.
iv. Pe mulţimea ı̂ntregilor Z, fie m ∼ k dacă şi numai dacă m | k şi k | m;
atunci ∼ este o relaţie de echivalenţă pe Z.
v. Fie f : M 7→ R o funcţie arbitrară şi fie x ∼f y ⇔ f (x) = f (y). Atunci
∼f este o relaţie de echivalenţă pe M . Evident, ∼f este egalitatea dacă şi
numai dacă f este injectivă; relaţia ∼f este relaţia universală dacă şi numai
dacă f este constantă.
11. Definiţie
Fie (M, ∼) o relaţie de echivalenţă; pentru orice x ∈ M definim clasa de
b = {y ∈ M | y ∼ x}. Mulţimea M
echivalenţă a lui x prin x c = {bx | x ∈ M}
se numeşte mulţimea claselor de echivalenţă, sau mulţimea factor (cât).
12. Propoziţie
Fie (M, ∼) o relaţie de echivalenţă; atunci:
b ̸= ∅, ∀x ∈ M .
a. x
Fie x, y ∈ M ; dacă x ∼ y atunci x
b. ∪ b = yb, iar dacă x ̸∼ y, atunci xb ∩ yb = ∅.
c. x∈M x b = M.
Demonstraţie a. x ∈ x b, ∀x ∈ M (aplicând reflexivitatea).
b. Fie x, y ∈ M astfel ı̂ncât x ∼ y; demonstrăm egalitatea x b = yb prin dublă
b ⊆ yb. Fie z ∈ x
incluziune; mai ı̂ntâi, x b; z ∼ x şi x ∼ y implică z ∼ y (
tranzitivitatea), deci z ∈ yb. Analog, yb ⊆ x b.
Presupunem acum x ̸∼ y şi x b ∩ yb ̸= ∅. Fie t ∈ xb ∩ yb; atunci t ∼ x şi t ∼ y,
deci x ∼ y, contradicţie.
c. Este evident, deoarece x ∈ x b, ∀x ∈ M .
13. Definiţie
Fie M ̸= ∅; o partiţie pe M este o familie de mulţimi A = (Ai )i∈J astfel
ı̂ncât:
2.2. RELAŢII DE ECHIVALENŢĂ 31
a. Ai ⊆ M, ∀i ∈ J.
Ai ∩ Aj = ∅ , ∀i ̸= j.
b. ∪
c. i∈J Ai = M .
14. Teoremă
a. Fie (M, ∼) o relaţie de echivalenţă. Atunci familia de submulţimi
c = (b
M x)x∈M este o partiţie pe M .
b. Fie A = (Ai )i∈J o partiţie pe o mulţime nevidă M . Atunci relaţia
x ∼A y ⇔ ∃i ∈ J astfel ı̂ncât x, y ∈ Ai este o relaţie de echivalenţă pe M ,
c coincide cu partiţia dată, A.
iar mulţimea claselor de echivalenţă M
Demonstraţie a. Faptul că mulţimea factor este partiţie s-a demonstrat ı̂n
Propoziţia 7.
b. Este uşor de demonstrat că ∼A este relaţie de echivalenţă. Fie acum
x ∈ M ; atunci există i ∈ J astfel ı̂ncât x ∈ Ai . Demonstrăm ı̂n continuare
b = Ai . Dacă y ∈ x
că x b, atunci y ∼A x; din definiţia lui ∼A rezultă y ∈ Ai .
Dacă y ∈ Ai , atunci y ∼A x, deci y ∈ x b.
15. Exerciţiu
Cele două construcţii de mai sus sunt inverse una alteia, i.e. fiind dată o
relaţie de echivalenţă (M, ∼) definim (ca ı̂n a) partiţia M c; asociem acum
acestei partiţii relaţia de echivalenţă ∼M
c (ca ı̂n b). Rezultă că ∼ =∼M c. Re-
ciproc, fiind dată o partiţie A pe M , definim relaţia de echivalenţă ∼A (ca ı̂n
b). Asociem acum relaţiei ∼A partiţia M c, definită prin clasele de echivalenţă
asociate (ca ı̂n a). Rezultă A = M c.
16. Exemple
i. Dacă relaţia este egalitatea, atunci fiecare clasă de echivalenţă conţine un
singur element: x b = {x}.
ii. În cazul relaţiei universale, există o singură clasă de echivalenţă.
iii. Dacă M = Z şi m ∼ k ⇔ m| k şi k| m, atunci b 0 = {0} (prin definiţie)
b = {−m, m}, ∀m ̸= 0.
şi m
iv. Fie n ∈ N ⋆ şi fie (Z, ≡n ) congruenţa (mod n). Fie k ∈ Z; atunci
b
k = {m ∈ Z ; n | m − k}. Există n clase de echivalenţă: b 0 = {mn ; m ∈
Z}, b 1 = {mn + 1 ; m ∈ Z}, b 2 = {mn + 2 ; m ∈ Z}, ..., n[ −1 =
{mn + (n − 1) ; m ∈ Z}. Notaţia uzuală ı̂n acest caz este Zn .
v. Fie T = {z ∈ C ; |z| = 1} cercul unitate şi fie n ∈ N, n ≥ 2 un
număr natural fixat. Fie Un = {z ∈ T ; z n = 1}. Pe T definim relaţia
32 CAPITOLUL 2. RELAŢII ŞI FUNCŢII
17. Exerciţiu
(a) Fie f : M 7→ R o funcţie arbitrară şi fie x ∼f y ⇔ f (x) = f (y). Dacă
x ∈ M , atunci x b = {y ∈ M ; f (x) = f (y)}. Fie M c mulţimea factor şi fie
g:M c 7→ R, g(b x) = f (x). Să se demonstreze că aplicaţia g este bine definită
şi injectivă.
Soluţie Pentru a demonstra că g este bine definită, trebuie demonstrat că
dacă xb = yb, atunci g(b
x) = (b y ), i.e. dacă x ∼f y, atunci f (x) = f (y); aceasta
este o consecinţă directă a definiţiei relaţiei ∼f .
Presupunem că g(b x) = g(by ). Atunci, din definiţia lui g rezultă f (x) = f (y),
deci x ∼f y; ı̂n concluzie, x b = yb, deci g este injectivă.
19. Exemple
i. Egalitatea este o relaţie de ordine totală; relaţia totală nu este antisimet-
rică.
ii. Mulţimile de numere N, Z, Q, R sunt total ordonate de relaţia uzuală ≤
(”mai mic sau egal”).
iii. Pe mulţimea numerelor naturale, N, fie mρ n ⇔ m| n (”divide”) şi prin
definiţie 0ρ 0. Atunci ρ este o relaţie de ordine (dar nu este totală).
iv. Pe mulţimea numerelor ı̂ntregi, Z, relaţia de mai sus (”divide”) nu este
antisimetrică.
iv. Fie f : M 7→ R şi fie xρf y ⇔ f (x) ≤ f (y). Relaţia ρf este reflexivă şi
tranzitivă; este şi antisimetrică dacă şi numai dacă f injectivă.
v. Fie X ̸= ∅ şi fie P(X) = {A ; A ⊆ X} mulţimea părţilor lui X. Pe P(X)
relaţia uzuală de incluziune: A ⊆ B este relaţie de ordine. (P(X), ⊆) este
2.3. RELAŢII DE ORDINE 33
total ordonată dacă şi numai dacă X are un singur element. Se observă că
∅ ⊆ A ⊆ X, ∀A ∈ P(X).
20. Definiţii
Fie (M, ≤) o mulţime ordonată şi fie A ⊆ M .
a. Un element x ∈ M se numeşte majorant al lui A dacă şi numai dacă
a ≤ x, ∀a ∈ A.
b. Un element y ∈ M se numeşte minorant al lui A dacă şi numai dacă
y ≤ a, ∀a ∈ A.
c. Submulţimea A se numeşte majorată dacă şi numai dacă mulţimea
majoranţilor ei este nevidă; A se numeşte minorată dacă şi numai dacă
mulţimea minoranţilor ei este nevidă. A se numeşte mărginită dacă şi nu-
mai dacă este şi minorată şi majorată.
d. Fie A o mulţime majorată. Un element ψ ∈ M se numeşte marginea
superioară a lui A (se notează sup(A)) dacă:
i. ψ este majorant al lui A, i.e. a ≤ ψ, ∀a ∈ A, şi
ii. dacă x ∈ M este un majorant al lui A, atunci ψ ≤ x.
e. Fie A o mulţime minorată. Un element ϕ ∈ M se numeşte marginea
inferioară a lui A (se notează inf(A)) dacă:
i. ϕ este minorant al lui A, i.e. ϕ ≤ a, ∀a ∈ A şi
ii. dacă y ∈ M este un minorant al lui A, atunci y ≤ ϕ.
21. Exemplu
Fie (Q, ≤) mulţimea numerelor raţionale cu ordinea uzuală; atunci submulţimea
A = {x ∈ Q ; x2 < 2} este nevidă şi majorată, dar nu are margine supe-
reale, (R, ≤) cu aceeaşi relaţie de ordine, A are
rioară. În mulţimea numerelor√
margine superioară, şi anume 2. Axioma lui Cantor afirmă că ı̂n mulţimea
numerelor reale orice submulţime nevidă şi majorată are margine superioară.
22. Exemplu
Fie (N, |) mulţimea numerelor naturale ordonată cu relaţia ”divide” şi fie
A = {6, 8, 12}; atunci A este mărginită şi sup(A) = 2, inf(A) = 24.
Să se generalizeze exemplul la o submulţime finită arbitrară.
23. Exerciţiu
i. Fie X ̸= ∅ şi fie (P(X), ⊆). Dacă A = {H, K} ⊆ P(X), atunci
sup(A) = H ∪ K şi inf(A) = H ∩ K.
Să se generalizeze la o submulţime arbitrară A ⊆ P(X).
34 CAPITOLUL 2. RELAŢII ŞI FUNCŢII
24. Exerciţiu
Fie M ̸= ∅ şi fie ρ o relaţie reflexivă şi tranzitivă pe M . Definim the relaţia:
x ∼ρ y ⇔ xρ y şi yρ x, ∀x, y ∈ M.
25. Definiţii
O mulţime ordonată (L, ≤) se numeşte latice dacă pentru orice elemente
a, b ∈ L există inf{a, b} şi sup{a, b}. O latice (L, ≤) se numeşte completă dacă
pentru orice submulţime nevidă A ⊆ L, există inf A şi sup A. Exemple uzuale
de latici complete sunt mulţimea părţilor unei mulţimi nevide cu incluziunea
şi orice interval ı̂nchis şi mărginit de numere reale cu ordinea uzuală.
O aplicaţie f : L 7→ L se numeşte crescătoare dacă:
A ̸= ∅ deoarece inf L ∈ L;
x ∈ A ⇒ f (x) ∈ A; ı̂ntr-adevăr, dacă x ≤ f (x), atunci, aplicând f
rezultă (din faptul că f este crescătoare), f (x) ≤ f (f (x)), ceea ce implică
f (x) ∈ A.
Fie a = sup A; vom demonstra prin dublă inegalitate că f (a) = a.
Demonstrăm mai ı̂ntâi inegalitatea a ≤ f (a). Avem:
Grafuri
2. Observaţie
Pentru a vizualiza un graf orientat, considerăm V o mulţime de puncte (ı̂n
plan), iar A o mulţime de arce orientate.
3. Exemple
37
38 CAPITOLUL 3. GRAFURI
Gω : 0 −→ 1 −→ 2 −→ .....
Pn : 0 −→ 1 −→ 2 −→ ..... −→ (n − 1) −→ n
Qn :
4. Exerciţiu
i. Găsiţi graful orientat G = (V, A, i, t) cu reprezentarea:
5. Observaţie
Toate tipurile de reţele (calculatoare, internet, telecomunicaţii, transport,
etc) pot fi reprezentate prin grafuri.
6. Definiţie
Două grafuri orientate G = (V, A, i, t) şi G′ = (V ′ , A′ , i′ , t′ ) se numesc izomorfe
dacă există două aplicaţii bijective hA : A 7→ A′ and hV : V 7→ V ′ astfel ı̂ncât:
hV ◦i = i′ ◦hA şi hV ◦t = t′ ◦hA . Perechea h = (hA , hV ) se numeşte izomorfism
de grafuri. Ideea de de grafuri izomorfe poate fi schematizată astfel:
hA (a)
v −→ w ı̂n G ⇔ hV (v) −→ hV (w) ı̂n G′ .
a
7. Exemplu
Fie G = (V, A, i, t) un graf orientat, fie v ∈ V un vârf fixat şi fie:
A′ = {a ∈ A ; i(a) = v sau t(a) = v} şi
V ′ = {w ∈ V ; ∃a ∈ A′ astfel ı̂ncât i(a) = w sau t(a) = w}.
Atunci G′ = (V ′ , A′ , i′ , t′ ) se numeşte subgraful generat de v.
8. Exerciţiu
Găsiţi subgrafurile generate de fiecare vârf.
9. Definiţie
Fie G = (V, A, i, t) un graf orientat. Un drum ı̂n G este definit de două
40 CAPITOLUL 3. GRAFURI
ii’. ∃vi2 −→ vn şi vn −→ vin−2 ; din nou, există două cazuri ....
În final (după un număr finit de paşi) obţinem două vârfuri adiacente vik−1
şi vik astfel ı̂ncât:
vik−1 −→ vn şi vn −→ vik .
Drumul hamiltonian este:
11. Definiţie
Fie G = (V, A, i, t) un graf orientat finit, V = {v1 , v2 , ..., vn } şi fie
bij = card{a ∈ A ; vi −→ vj }. Matricea adiacentă asociată grafului G
este MG = (bij )1≤i,j≤n .
12. Exemplu
Fie G1 şi G2 astfel:
Atunci matricele adiacente asociate sunt:
0 2 1 1 1 2
MG1 = 1 1 1 MG2 = 2 2 0 .
0 1 2 1 2 0
Cu ajutorul matricelor adiacente se poate obţine următorul test de izomor-
fism pentru grafurile orientate finite simple.
13. Teoremă
Fie G1 şi G2 două grafuri orientate finite cu legături simple şi fie
MG1 = (xij )1≤i,j≤n şi MG2 = (yij )1≤i,j≤m matricel adiacente asociate. Următoarele
afirmaţii sunt echivalente:
a. G1 şi G2 sunt izomorfe.
b. m = n şi există o permutare σ pe {1, 2, ..., n} astfel ı̂ncât
xij = yσ(i)σ(j) , ∀ 1 ≤ i, j ≤ n.
Demonstraţie a⇒ b Fie G1 şi G2 izomorfe şi fie G1 = (V1 , A1 , i1 , t1 ),
G2 = (V2 , A2 , i2 , t2 ), V1 = {v1 , v2 , ..., vn }, V2 = {w1 , w2 , ..., wn }. Fie h =
(hV , hA ) izomorfismul, i.e. hV : V1 7→ V2 , hA : A1 7→ A2 ca ı̂n Definiţia
6. Fie i ∈ {1, 2, ..., n} fixate şi fie wk = hV (vi ); aplicaţia σ : {1, 2, ..., n} 7→
{1, 2, ..., n}, , σ(i) = k este o permutare şi, ı̂n plus, hV (vi ) = wσ(i) . Grafurile
sunt izomorfe, deci:
Aceeşi demonstraţie este corectă şi ı̂n cazul xij = 0, ceea ce ı̂ncheie demonstraţia.
Rezultă că G1 şi G2 sunt izomorfe, ı̂n timp ce G1 şi G3 nu sunt izomorfe.
deg+ (v); fie U2 ⊆ V2 mulţimea similară ı̂n G2 . Un arc ı̂n Γ se obţine unind
un vârf din U1 cu un vârf din U2 dacă şi numai dacă au aceleaş grade. Dacă
aplicaţia astfel obţinută nu este o bijecţie ı̂ntre U1 şi U2 atunci cele două
grafuri nu sunt izomorfe.Dacă este bijecţie, atunci ı̂ncercăm să o extindem la
ı̂ntreg V1 : pentru orice v ∈ V1 \ U1 , considerăm toate vârfurile u ∈ U1 astfel
ı̂ncât v −→ u sau u −→ v; facem acelaşi lucru şi ı̂n G2 . Prelungim aplicaţia
corespunzătoare unind v ∈ V1 \ U1 cu w ∈ V2 \ U2 dacă şi numai dacă au
aceleaş grade. Dacă obţinem o bijecţie ı̂ntre V1 şi V2 , atunci cele două grafuri
orientate sunt izomorfe.
Algoritmul
1) Se verifică dacă card(V1 ) = card(V2 ); dacă da, mergi la pasul 2; dacă nu,
mergi la pasul 7.
2) Se calculează gradele vârfurilor din G1 şi din G2 şi se determină mulţimile
U1 şi U2 . Dacă U1 = V1 şi U2 = V2 , atunci mergi la pasul 4; dacă nu, mergi
la pasul 3.
3) Pentru fiecare vârf din V1 \ U1 , se determină vârfurile adiacente din U1 ; la
fel ı̂n G2 .
4) Se construieşte graful (orientat) Γ. Mergi la pasul 5.
5) Se verifică dacă este adevărată condiţia de izomorfism; dacă da, mergi la
pasul 6; dacă nu, mergi la pasul 7.
6) G1 şi G2 sunt izomorfe.
7) G1 şi G2 nu sunt izomorfe.
15. Teoremă
( V) = {v1 , v2 , ..., vn } şi fie
Fie G = (V, A, i, t) un graf orientat finit simplu,
(r)
MG = (bij )ij matricea sa adiacentă. Fie MGr = bij puterea r a matricei
ij
MG .
(r)
i. bij este egal cu numărul drumurilor de lungime r având originea ı̂n vi şi
vârful terminal ı̂n vj .
ii. Graful G nu are circuite dacă şi numai dacă matricea MG este nilpotentă.
iii. Fie X = MG + MG2 + ... + MGr . Dacă X = (xij )ij , atunci xij este egal cu
numărul drumurilor de lungime mai mică sau egală decât r cu originea ı̂n vi
şi vârful terminal ı̂n vj .
Demonstraţie i. Prin inducţie după r. Dacă r = 1, atunci concluzia este
evidentă. Presupunem că afirmaţia este adevărată pentru 1 ≤ m ≤ r şi o
(r+1)
demonstrăm pentru r + 1. Prin definiţie, MGr+1 = MGr · MG , i.e. bij =
3.1. GRAFURI ORIENTATE 45
∑
n
(r) (r+1) (r)
bik bkj . Rezultă că bij este exact suma acelor bik cu proprietatea
m=1
(r+1)
bkj = 1, i.e. vk −→ vj . Conform ipotezei, rezultă că bij este egal cu
numărul drumurilor de lungime r cu originea ı̂n vi şi vârful terminal ı̂n vj .
ii. Dacă ı̂n G nu există circuite, rezultă că nu există drumuri de lungime mai
mare sau egală cu n + 1; din i, se obţine MGr+1 = O.
Reciproc, dacă există m ∈ N astfel ı̂ncât MGm = O, atunci nu există drumuri
de lungime mai mare decât m; pe de altă parte, dacă graful ar conţine cir-
cuite, atunci ar conţine drumuri de orice lungime, contradicţie.
iii. Evident, din i.
16. Exerciţii
Fie n ∈ N . Să se calculeze numărul drumurilor de lungime mai mică sau
egală cu n ı̂ntre orice două vârfuri ı̂n următoarele grafuri orientate:
fixate ı̂n V , să se găsească un drum de lungime minimă cu originea ı̂n u şi
vârful terminus ı̂n v.then the problem is to find a path of minimum length
connecting u to w; un astfel de drum (dacă există) se numeşte drum minimal.
Următorul algoritm este o soluţie la această problemă.
1) Se notează cu 0 vârful u.
2) Se notează cu 1 toate vârfurile v ∈ V \ {u} cu proprietatea u −→ v.
3) Fie Vp mulţimea vârfurilor notate cu p ; se notează cu p + 1 toate vârfurile
x cu proprietatea
18. Exerciţiu
În următoarele grafuri orientate, găsiţi un drum minimal ı̂ntre vârfurile u şi
w.
3.2. GRAFURI NEORIENTATE 47
Două noduri u, w sunt adiacente dacă ∃ a ∈ E astfel ı̂ncât φ(a) = (u, w). Un
lanţ (sau drum) d de lungime r este o mulţime de r muchii, a1 , a2 , ..., ar şi
r + 1 noduri v1 , v2 , ..., vr+1 astfel ı̂ncât:
a1 a2 ar
v1 − − −− v2 − − −− ...... − − −− vr+1
20. Exemplu
21. Definiţie
Fie H = (V, E, φ) un graf neorientat. Pentru orice v ∈ V, definim:
22. Propoziţie
Relaţia definită mai sus este o relaţie de echivalenţă pe V . Pentru fiecare nod
v ∈ V , clasa de echivalenţă asociată este componenta conexă a lui v. Graful
este conex dacă şi numai dacă mulţimea factor Vb are un singur element.
Demonstraţie Evident.
23. Notaţie
Fie H = (V, E, φ) un graf finit neorientat. Notăm n(H) = card(V ) numărul
nodurilor, m(H) = card(E) numărul muchiilor şi p(H) numărul componen-
telor conexe.
Numărul ciclurilor (numărul cyclomatic) al grafului H este, prin
definiţie:
µ(H) = m(H) − n(H) + p(H).
24. Teoremă
Fie H = (V, E, φ) un graf finit neorientat cu legături simple astfel ı̂ncât
n(H) ≥ 2. Atunci:
a) µ(H) ≥ 0.
b) Dacă H1 , H2 , ..., Hp(H) sunt componentele conexe ale lui H, atunci
deci
∑
p(H)
∑
p(H)
∑
p(H)
µ(Hi ) = m(Hi ) − n(Hi ) + p(H) =
i=1 i=1 i=1
Automate finite
51
52 CAPITOLUL 4. AUTOMATE FINITE
2. Propoziţie
Pentru orice alfabet nevid A, mulţimea tuturor cuvintelor, A⋆ este numărabilă.
Demonstraţie Pentru a defini o funcţie bijectivă de la N ı̂n A⋆ , fixăm mai
ı̂ntâi o ordine a literelor ı̂n alfabet: A = {x1 , x2 , ..., xn }. Cuvintele din A⋆
pot fi enumerate urmând următoarele două reguli:
1. Pentru orice k ∈ N , toate cuvintele de lungime k sunt enumerate ı̂naintea
tuturor cuvintelor de lungime k + 1.
2. Cele nk cuvinte de lungime k sunt enumerate ı̂n ordine lexicografică, i.e.
cuvântul xi1 xi2 ...xik precede cuvântul xj1 xj2 ...xjk dacă ∃ m ∈ {0, 1, ..., k − 1}
astfel ı̂ncât ip = jp , ∀ p = 1, 2, ..., m şi im+1 < jm+1 .
De exemplu, dacă A = {a}, atunci A⋆ = {e, a, aa, aaa, ...}, iar dacă A =
{a, b}, atunci A⋆ = {e, a, b, aa, ab, ba, bb, aaa, aab, aba, baa, abb, bab, bba, bbb, ...}.
3. Definiţii
Fie A un alfabet şi fie α, β ∈ A⋆ . Concatenarea lui α cu β se notează
αβ şi se defineşte prin: |αβ| = |α| + |β|, αβ(j) = α(j) dacă 1 ≤ j ≤ |α| şi
αβ(|α| + j) = β(j) dacă 1 ≤ j ≤ |β|. De exemplu, dacă α = ab, β = ba, γ =
sent, atunci αβ = abba, βα = baab, αγ = absent.
2. Observaţie
Operaţia de concatenare este asociativă: (α)βγ = α(βγ) şi are ca element
neutru cuvântul vid: αe = eα = α.
3. Definiţie
Fie A un alfabet. Un limbaj peste A este orice submulţime L ⊆ A⋆ .
4. Definiţii
Fie L1 and L2 două limbaje peste acelaşi alfabet fixat, A. Concatenarea
lui L1 cu L2 se notează L1 L2 şi este, prin definiţie,
L1 L2 = {α ; α = β1 β2 , β1 ∈ L1 şi β2 ∈ L2 }.
5. Definiţie
Închiderea (sau Kleene star) unui limbaj L (peste alfabetul A) este, prin
definiţie:
6. Exemple
a. {a}⋆ = {ak ; k ∈ N }.
b. Dacă L1 = {a} , L2 = {b}, atunci L1 L2 = {ab}, (L1 L2 )⋆ = {(ab)k ; k ∈
N }.
L1 ∪ L2 = {a, b} şi L1 (L1 ∪ L2 ) = {aa, ab}.
L⋆1 L2 = {an b ; n ∈ N }, L⋆1 (L1 ∪ L2 ) = {an+2 , an+1 b ; n ∈ N }.
L1 (L1 ∪ L2 )⋆ = {aα ; α ∈ {a, b}⋆ }; de fapt L1 (L1 ∪ L2 )⋆ este format din
toate cuvintele peste {a, b} care ı̂ncep cu un a.
7. Definiţii
Începem cu un exemplu. Fie
Descrierea acestui limbaj folosind operaţiile cu limbaje definite mai sus este:
L = {0}⋆ {1}{0}⋆ (∅⋆ ∪ {0}{1}{0}⋆ ). Se poate scrie mai simplu, fără paran-
tezele acolade: L = 0⋆ 10⋆ (∅⋆ ∪ 010⋆ ).
Ideea este că uneori se poate da o reprezentare finită unui număr infinit de
cuvinte. Într-o formulare precisă, problema este ı̂n ce cuvinte (peste un alfa-
bet fixat) pot fi reprezentate folosind un număr finit de concatenări, reuniuni
şi ı̂nchideri. Suntem conduşi la următoarea definiţie.
Fie A un alfabet fixat. Expresiile regulate peste A sunt, prin definiţie,
obţinute respectând regulile următoare:
i. ∅ şi simbolurile din A sunt expresii regulate.
ii. Dacă µ şi ν sunt expresii regulate, atunci (µν) este expresie regulată.
54 CAPITOLUL 4. AUTOMATE FINITE
iii. Dacă µ şi ν sunt expresii regulate, atunci (µ ∪ ν) este expresie regulată.
iv. Dacă µ este expresie regulată, atunci µ⋆ este expresie regulată.
v. Orice expresie regulată se obţine din regulile (i), (ii), (iii), (iv).
Formal, o expresie regulată este un cuvânt peste alfabetul A ∪ {(, ), ∅, ∪,⋆ }.
Relaţia exactă dintre expresiile regulate şi limbaje se poate explicita prin
funcţia
L : A⋆ 7→ {L ; L limbaj peste A},
cu proprietăţile:
i. L(∅) = ∅ şi L(a) = {a}, ∀a ∈ A.
ii. L((µν)) = L(µ)L(ν), ∀µ, ν expresii regulate.
iii. L((µ ∪ ν)) = L(µ) ∪ L(ν), ∀µ, ν expresii regulate.
iv. L(µ⋆ ) = L(µ)⋆ , ∀µ expresie regulată.
Un limbaj L se numeşte limbaj regulat dacă poate fi reprezentat printr-
o expresie regulată, i.e., formal, există o expresie regulată µ astfel ı̂ncât
L(µ) = L. De fapt, clasa limbajelor regulate este cea mai mică mulţime de
limbaje care conţine ∅, {a}, ∀a ∈ A şi este ı̂nchisă la reuniune, concatenare
şi ı̂nchidere.
Un dispozitiv (algoritm) de recunoaştere a unui limbaj este un dis-
pozitiv (algoritm) care poate recunoaşte (ı̂ntr-un număr finit de paşi) dacă
un cuvânt aparţine (sau nu) unui limbaj dat.
8. Exemplu
Fie A = {a, b}; să calculăm L(((a ∪ b)⋆ a)). Nu este dificil de intuit că
răspunsul este ”toate cuvintele peste A care se termină cu a”. Demonstraţia
formală conform definiţiei precedente este:
= L((a ∪ b))⋆ {a} = (L(a) ∪ L(b))⋆ {a} = ({a} ∪ {b})⋆ {a} = {a, b}⋆ {a}.
9. Definiţii
Un automat finit determinist este M = (K, A, δ, s, F ), unde:
K este o mulţime nevidă finită; elementele ei se numesc stări.
A este un alfabet.
s ∈ K se numeşte stare iniţială.
F ⊆ K; elementele ei se numesc stări finale.
δ : K × A 7→ K este o aplicaţie numită funcţia de tranziţie.
Automatul are o bandă de intrări pe care se pot citi cuvinte (literă cu
literă); la fiecare moment, automatul este ı̂ntr-o stare dată şi citind o literă
trece ı̂ntr-o altă stare conform instrucţiunilor date de funcţia de tranziţie.
Procesul continuă până ce automatul citeşte toate literele din cuvântul in-
trare. Rezultatul este o stare care constituie răspunsul la intrarea dată.
Schematic, putem reprezenta un automat astfel:
Relaţia nu este nici reflexivă şi nici tranzitivă. Închiderea reflexivă şi tranzi-
tivă a acestei relaţii este ”trece ı̂n mai mulţi paşi sau ı̂n zero paşi”:
⋆
(q, α) 7→ (p, β) ⇔ ∃α1 , α2 , ..., αk ∈ A⋆ şi q1 , q2 , ..., qk ∈ K astfel ı̂ncât
⋆
finală q ∈ F astfel ı̂ncât (s, α) 7→ (q, e).
Limbajul acceptat de către automatul M se notează L(M) şi este mulţimea
tuturor cuvintelor acceptate: L(M) = {α ∈ A⋆ ; α este acceptat de M}.
10. Exemplu
Fie M = (K, A, δ, s, F ), astfel ı̂ncât:
K = {q0 , q1 }, A = {a, b}, s = q0 , F = {q0 }
iar funcţia δ este:
δ(q0 , a) = q0 , δ(q0 , b) = q1 ,
δ(q1 , a) = q1 , δ(q1 , b) = q0 .
Determinăm evoluţia automatului din starea q0 citind cuvântul aabba:
(q0 , aabba) 7→ (q0 , abba) 7→ (q0 , bba) 7→ (q1 , ba) 7→ (q0 , a) 7→ (q0 , e).
(q0 , abbba) 7→ (q0 , bbba) 7→ (q1 , bba) 7→ (q0 , ba) 7→ (q1 , a) 7→ (q1 , e).
11. Definiţie
Fie M = (K, A, δ, s, F ) un automat finit determinist. Automatului M
i se poate asocia un graf orientat G definit după cum urmează. Vârfurile
a
grafului sunt stările, arcele sunt litere şi q 7→ p in G ⇔ δ(q, a) = p. Starea
iniţială se indică prin semnul >, iar stările finale printr-un cerc.
12. Exemple
i. Graful orientat asociat automatului din exemplul 2 este:
4.2. AUTOMATE FINITE DETERMINISTE ŞI NEDETERMINISTE 57
13. Exemple
Găsiţi limbajele acceptate de automatele definite de grafurile orientate
următoare:
a.
58 CAPITOLUL 4. AUTOMATE FINITE
Cuvintele a, aba, ababa, ... sunt acceptate; limbajul acceptat este a(ba)⋆ .
b.
14. Definiţie
Comportamentul ”determinist” al automatelor deterministe se referă la fap-
tul că starea curentă şi litera de intrare determină ı̂n mod unic starea următoare.
Această proprietate permite predicţia evoluţiei automatului determinist dacă
se cunosc starea actuală şi cuvântul ce urmează a fi citit (de fapt dacă se
cunoaşte configuraţia).
Într-un automat finit nedeterminist, evoluţia este doar parţial determinată
de starea curentă şi de litera ce urmează a fi citită. Dintr-o stare dată, prin
citirea unei intrări, automatul nedeterminist poate trece ı̂ntr-o stare aleasă
ı̂n mod aleator dintr-o mulţime de stări posibile. Mai mult, automatul nede-
terminist poate citi (la un moment dat) nu numai litere, ci şi cuvinte. În
general, nu este simplu să se proiecteze un automat determinist având un
limbaj acceptat dat. Aceeaşi problemă pentru automate nedeterministe este
mult mai uşor de rezolvat, tocmai datorită flexibilităţii acestor dispozitive.
15. Definiţie
Fie automatul finit nedeterminist:
K = {q0 , q1 , q2 , q3 , q4 }, A = {a, b}, s = q0 , F = {q4 } şi relaţia de tranziţie:
7→ (q0 , abaab) 7→ (q0 , baab) 7→ (q0 , aab) 7→ (q0 , ab) 7→ (q0 , b, ) 7→ (q0 , e).
În acest caz automatul se opreşte ı̂ntr-o stare care nu este stare finală.
(q0 , baababaab) 7→ (q1 , ababaab) 7→ (q3 , babaab) 7→ (q4 , abaab) 7→
7→ (q4 , baab) 7→ (q4 , aab) 7→ (q4 , ab) 7→ (q4 , b) 7→ (q4 , e).
De această dată, automatul se opreşte ı̂ntr-o stare finală, deci cuvântul
baababaab este acceptat.
Cele două evoluţii diferite s-au obţinut prin cele două posibilităţi pe care le
are automatul ı̂n starea q0 : poate citi simbolul a sau poate citi cuvântul ba.
16. Exerciţiu
În precedentul automat, să se determine toate evoluţiile posibile din configuraţia
(q0 , abbabb).
17. Observaţie
Un automat determinist este un caz particular de automat nedeterminist:
relaţia de tranziţie ∆ ⊆ K × A⋆ × K este, ı̂n cazul automatelor deterministe
o funcţie δ : K × A 7→ K. În consecinţă, un automat nedeterminist este
determinist dacă sunt ı̂ndeplinite condiţiile:
i. pentru orice (q, α, p) ∈ ∆ rezultă α ∈ A;
ii. pentru orice q ∈ K şi a ∈ A, există un unic p ∈ K astfel ı̂ncât (q, a, p) ∈ ∆.
18. Exerciţii
i. Reprezentaţi graful orientat asociat automatului:
K = {q0 , q1 , q2 }, A = {a, b}, s = q0 , F = {q2 } şi
∆ = {(q0 , e, q1 ), (q0 , a, q0 ), (q0 , b, q2 ), (q1 , a, q2 ),
(q1 , ab, q0 ), (q2 , b, q2 ), (q2 , a, q0 ), (q2 , aba, q1 )}.
Calculaţi două evoluţii diferite din configuraţia (q0 , ababa). Este ababa un
cuvânt acceptat ?
Aceleaşi ı̂ntrebări pentru configuraţia (q0 , baba).
ii. Reprezentaţi graful orientat asociat automatului:
K = {q0 , q1 }, A = {a, b}, s = q0 , F = {q1 } şi
∆ = {(q0 , a, q1 ), (q0 , ab, q1 ), (q0 , b, q0 ), (q1 , e, q0 ), (q1 , bb, q1 ), (q1 , a, q0 )}.
Calculaţi trei evoluţii diferite din configuraţia (q0 , aabbbba); este aabbbba un
cuvânt acceptat ?
4.3. ECHIVALENŢA AUTOMATELOR 61
20. Exemplu
Următoarele patru automate au acelaşi limbaj acceptat, (ab ∪ aba)⋆ .
62 CAPITOLUL 4. AUTOMATE FINITE
21. Teoremă
Fie N un automat finit nedeterminist; atunci există cel puţin un automat
finit determinist M astfel ı̂ncât M ∼ N .
Nu vom da demonstraţia completă a teoremei (se poate consulta bibliografia).
În schimb, prezentăm ı̂n continuare algoritmul (care este ı̂n fapt schiţa demonstraţiei,
cititorul putând completa detaliile), care asociază oricărui automat nedeter-
minist N , un automat determinist M, echivalent cu N .
22. Algoritm
Fie N = {K, A, ∆, s, F ) un automat finit nedeterminist.
Prima etapă Mai ı̂ntâi eliminăm ”tranziţiile multiple”, i.e. tranziţiile (q, α, p) ∈
∆ cu α de lungime strict mai mare decât 1.
Pentru orice tranziţie (q, α, p) ∈ ∆ cu α = a1 a2 ...ak introducem stări noi
(care nu vor fi stări finale) p1 , p2 , ..., pk−1 şi ı̂nlocuim tranziţia multiplă
α a a a ak−1 a
q 7→ p prin q 7→1 p1 7→2 p2 7→3 .... 7→ pk−1 7→
k
p.
23. Exemplu
Fie N automatul finit (nedeterminist) definit de graful orientat:
24. Exemplu
Fie N definit de graful orientat:
pasul doi.
E(q0 ) = {q0 , q1 , q2 , q3 }, E(q1 ) = {q1 , q2 , q3 },
E(q2 ) = {q2 }, E(q3 ) = {q3 } and E(q4 ) = {q3 , q4 }.
Etapa a treia; determinăm stările şi funcţia de tranziţie:
s′′ = E(q0 ) = {q0 , q1 , q2 , q3 } = Q0 .
δ(Q0 , a) = E(q0 ) ∪ E(q4 ) = {q0 , q1 , q2 , q3 , q4 } = Q1 .
δ(Q0 , b) = E(q2 ) ∪ E(q4 ) = {q2 , q3 , q4 } = Q2 .
δ(Q1 , a) = Q1 , ; δ(Q1 , b) = Q2 .
δ(Q2 , a) = E(q4 ) = {q3 , q4 } = Q3 .
δ(Q2 , b) = E(q4 ) = Q3 .
δ(Q3 , a) = Q3 , δ(Q3 , b) = ∅.
Graful orientat al lui M este:
25. Exemplu
Proiectaţi un automat determinist cu limbajul acceptat (a)⋆ ba.
Soluţie Mai ı̂ntâi proiectăm un automat nedeterminist N cu limbajul (a)⋆ ba;
apoi, aplicând algoritmul anterior, obţinem automatul determinist M ∼ N .
Un automat nedeterminist N astfel ı̂ncât L(N ) = (a)⋆ ba este dat de graful
orientat:
Etapa a doua:
E(q0 ) = {q0 }, E(q1 ) = {q1 }, E(q2 ) = {q2 }.
Etapa a treia:
s′′ = E(q0 ) = {q0 } = Q0 .
68 CAPITOLUL 4. AUTOMATE FINITE
26. Exemplu
Să se proiecteze automate deterministe având următoarele limbaje acceptate:
(a)⋆ ba(b)⋆ , a(aba)⋆ b, (ab ∪ aba)⋆ , (ab)⋆ a, (a)⋆ ba(b)⋆ ,
(ab)⋆ a ∪ (ab)⋆ b, (a)⋆ b ∪ (a)⋆ a.
Soluţie
Se consideră automatele nedeterministe de mai jos, etc.
27. Exerciţii
Găsiţi automatele deterministe echivalente cu automatele nedeterministe def-
inite de:
4.3. ECHIVALENŢA AUTOMATELOR 69
70 CAPITOLUL 4. AUTOMATE FINITE
BIBLIOGRAFIE