Sunteți pe pagina 1din 70

Relaţii, grafuri şi automate finite

Mircea Olteanu, Gigel Paraschiv, Luminita Costache


2
Cuprins

1 Mulţimi 5
1.1 Operaţii cu mulţimi . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Cardinalul unei mulţimi . . . . . . . . . . . . . . . . . . . . . 7
1.3 Numere prime . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2 Relaţii şi funcţii 27


2.1 Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.2 Relaţii de echivalenţă . . . . . . . . . . . . . . . . . . . . . . . 30
2.3 Relaţii de ordine . . . . . . . . . . . . . . . . . . . . . . . . . 32

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

1.1 Operaţii cu mulţimi


1. Definiţii
Orice colecţie de obiecte se numeşte mulţime. Obiectele din mulţime se
numesc elementele mulţimii respective. De obicei, mulţimile se noteaza cu
majuscule: A, B, X, Y, ..., iar elementele cu litere mici: a, b, x, y, .... Faptul că
un element x aparţine mulţimii A se noteaza x ∈ A, iar dacă x nu aparţine
mulţimii A se noteaza x ̸∈ A. Două mulţimi se numesc egale (notaţie: A =
B) dacă au aceleaşi elemente. Mulţimea fără niciun element se numeşte
mulţimea vidă şi se notează ∅.
Fie A şi B două mulţimi; se spune că B este o submulţime a lui A
(notaţie: B ⊆ A sau A ⊇ B) dacă orice element al lui B este şi element al lui
A. Să observăm că A ⊆ A şi ∅ ⊆ A pentru orice mulţime A. Dacă B ⊆ A şi
A ̸= B, atunci B se numeşte submulţime strictă a lui A şi se notează B ⊂ A.
Următoarele două proprietăţi sunt evidente:
(i) A = B dacă şi numai dacă A ⊆ B and B ⊆ A;
(ii) dacă A ⊆ B şi B ⊆ C atunci A ⊆ C; această proprietate se numeşte
tranzitivitate.
Dacă A şi B sunt două mulţimi atunci, intersecţia lor, notată A ∩ B
este mulţimea elementelor care aparţin şi lui A şi lui B.
Mulţimile A şi B se numesc disjuncte dacă A ∩ B = ∅. Reuniunea
mulţimilor A şi B, notată A ∪ B, este mulţimea elementelor care aparţin cel
puţin uneia dintre mulţimile A sau B. Diferenţa mulţimilor B şi A, notată
B \ A este {x ; x ∈ B şi x ̸∈ A}.

5
6 CAPITOLUL 1. MULŢIMI

Dacă A ⊆ B, atunci diferenţa B\A se numeşte complementara mulţimii


A relativ la B şi se notează CB A.
Dacă X este o mulţime nevidă, se notează cu P(X) mulţimea părţilor
lui X definită ca mulţimea tuturor submulţimilor lui X, i.e.

P(X) = {A ; A ⊆ X}.

Câteva proprietăţi uzuale ale operaţiilor cu mulţimi sunt prezentate mai


jos.

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ă .

1.2 Cardinalul unei mulţimi


Mulţimi echipotente
Fie A şi B două mulţimi. Prin definiţie, A şi B se numesc echipotente
dacă există o funcţie bijectivă f : A 7→ B. Aceasta definiţie (a lui G. Cantor),
desi este destul de intuitivă are şi unele consecinţe neaşteptate; de exemplu,
există mulţimi care sunt echipotente cu submulţimi stricte ale lor.

Definiţie
8 CAPITOLUL 1. MULŢIMI

O mulţime A se numeşte infinită dacă există submulţimi stricte B ⊂ A


echipotente cu A. O mulţime se numeşte finită dacă nu este infinită.

4. Mulţimea numerelor naturale


Definiţia axiomatică a mulţimii numerelor naturale (notată N) este:
N1. Există un element 0 ∈ N.
N2. Există o funcţie s : N 7→ N astfel ı̂ncât s : N 7→ N \ {0} este bijectivă.
N3. Dacă S ⊆ N este o submulţime astfel ı̂ncât 0 ∈ S şi s(n) ∈ S pentru
orice n ∈ S, atunci S = N.

Dacă n ∈ N, atunci elementul s(n) se numeşte succesorul lui n; evident,


s(0) ̸= 0. Se notează s(0) = 1, s(1) = 2, etc. Mulţimea N \ {0} se notează
de obicei N⋆ .
Axioma N2 implică faptul că N este o mulţime infinită.

O consecinţă remarcabilă a axiomei N3 este


Principiul inducţiei:
Fie P o propoziţie astfel ı̂ncât:
(i) P (0) este adevărată.
(ii) Dacă P (n) este adevărată, atunci şi P (s(n)) este adevărată.
Atunci P (n) este adevărată pentru orice n ∈ N.
Pentru a de monstra principiul inducţiei, se consideră mulţimea
{n ∈ N ; P (n) este adevărată } şi se aplică axioma N3.

Avand ca punct de plecare axiomele de mai sus, se definesc operaţiile


uzuale pe N (adunarea şi ı̂nmulţirea) si se demonstrează proprietăţile lor
uzuale: comutativitate, asociativitate, distributivitate, etc. De exemplu,
n + 0 = n, n + 1 = s(n), etc. Vom presupune cunoscute toate acestea.

Ordinea canonică pe N este relaţia definită prin: n ≤ m dacă şi nu-


mai dacă există k ∈ N astfel ı̂ncât n + k = m. Se demonstrează uşor că
următoarele proprietăţi sunt adevărate pentru orice n, m, k ∈ N:
(i) n ≤ n (reflexivitate)
(ii) dacă n ≤ m şi m ≤ n atunci n = m (antisimetrie)
(iii) dacă n ≤ m şi m ≤ k atunci n ≤ k (tranzitivitate).
Relaţia ≤ este o relaţie de ordine totală, i.e. pentru orice n, m ∈ N,
atunci n ≤ m sau m ≤ n.
1.2. CARDINALUL UNEI MULŢIMI 9

Demonstrăm acum că N este bine ordonată:

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

T = {n ∈ N ; n ≤ x, pentru orice x ∈ S}.

Evident, 0 ∈ T şi T ̸= N, deci există n0 ∈ T astfel ı̂ncât n0 + 1 ̸∈ T (prin


inducţie). Se verifică uşor că n0 este cel mai mic element al lui S.

6. Cardinalul mulţimilor finite


Fie A o mulţime. Dacă A = ∅, atunci, prin definiţie, cardinalul ei (sau
numărul de elemente) este 0. Dacă A ̸= ∅ şi dacă există n ∈ N, n ̸= 0 astfel
ı̂ncât A este echipotentă cu {1, 2, ..., n}, atunci, prin definiţie, cardinalul lui
A (notat card(A)) este n.

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.

Următorul rezultat arată că, intr-un anumit sens, mulţimea numerelor


naturale este cea mai ”mică” mulţime infinită.
8. Teoremă
Orice mulţime infinită conţine o submulţime numărabilă.
Demonstraţie Fie A o mulţime infinită şi fie a0 ∈ A; atunci A \ {a0 } ̸= ∅,
deci există a1 ∈ A \ {a0 }, şi deci a1 ̸= a0 . La pasul n, există an ∈ A \
{a0 , a1 , ..., an−1 }, şi deci an este diferit de oricare dintre elementele a0 , a2 , ..., an−1 .
10 CAPITOLUL 1. MULŢIMI

Evident, mulţimea {a0 , a1 , ...} este numărabilă şi este inclusă ı̂n A.

O consecinţă a rezultatului anterior este:

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ă:

{an , an+1 , ...} ⊆ A \ F.

Mulţimile A şi A \ F sunt echipotente deoarece aplicaţia

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ă.

11. Mulţimea numerelor ı̂ntregi


Pentru orice număr natural n ∈ N⋆ , alegem un element, notat −n;
mulţimea numerelor ı̂ntregi , notată Z este reuniunea N ∪ {−n ; n ∈ N
i.e. Z = {..., −3, −2, −1, 0, 1, 2, 3, ...}.
Presupunem cunoscute proprietăţile uzuale ale operaţiilor cu numere ı̂ntregi;
ordinea naturală din N se extinde la Z prin −n ≤ −m dacă şi numai dacă
m ≤ n pentru orice m, n ∈ N⋆ , etc.
1.2. CARDINALUL UNEI MULŢIMI 11

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ă.

13. Mulţimea numerelor raţionale


Dacă m ∈ Z şi n ∈ N⋆ numim m n
număr raţional. Notaţia uzuală pentru
mulţimea numerelor raţionale este Q. Două numere raţionale m n
and kp sunt
egale dacă mp = nk; proprietăţile uzuale ale numerelor raţionale, operaţii,
ordinea naturală, etc, sunt presupuse cunoscute.

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).

15. Un exemplu de mulţime nenumărabilă


Fie X o mulţime cu două elemente, de exemplu X = {0, 1} şi fie

A = {a1 a2 a3 .... ; ai ∈ X}.

Atunci mulţimea A nu este numărabilă (A este evident infinită).


12 CAPITOLUL 1. MULŢIMI

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 .

16. Numerele reale


Definiţia mulţimii numerelor reale R nu constituie scopul acestei lucrări.
Reamintim totuşi că orice număr real x poate fi reprezentat ı̂n formă zec-
imală: x = k, a1 a2 a3 ...., unde k ∈ Z şi ai ∈ {0, 1, 2, ..., 9}.
Folosind un argument similar cu cel din exemplul 15, demonstraţi:

17. Propoziţie
Mulţimea numerelor reale nu este numărabilă; prin definiţie, cardinalul
ei este ℵ1 .

18. Teorema lui Cantor


Fie X ̸= ∅ şi fie P(X) mulţimea părţilor lui X. Atunci P(X) nu este echipo-
tentă cu X.
Demonstraţie
Presupunem prin absurd că există o funcţie bijectivă f : X 7→ P(X). Pentru
orice x ∈ X, există două posibilităţi:
x ∈ f (x) sau x ̸∈ f (x).
Fie F = {x ∈ X | x ̸∈ f (x)}; evident, F ∈ P(X), deci există a ∈ X astfel
ı̂ncât f (a) = F . Pentru elementul a există două cazuri: a ∈ F sau a ̸∈ F .
Se observă imediat că ambele cazuri conduc la o contradicţie, ceea ce ı̂ncheie
demonstraţia.

1.3 Numere prime


Această secţiune conţine proprietăţi uzuale ale numerelor ı̂ntregi. Teoria
numerelor este un domeniu foarte vechi al matematicii, având rădăcinile ı̂n
1.3. NUMERE PRIME 13

matematica elenă din antichitate.

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).

19. Teorema ı̂mpărţirii cu rest


Fie a ∈ N⋆ şi b ∈ Z; atunci există q, r ∈ Z astfel ı̂ncât:

b = aq + r şi 0 ≤ r < a

Numărul r se numeşte rest iar q se numeşte cât.


Demonstraţie
Demonstră mai ı̂ntâi existenţa câtului şi a restului. Fie

S = {b − as ≥ 0 ; s ∈ Z}

Evident, S ⊆ N şi S ̸= ∅. Din proprietatea de bine ordonare rezultă că S


are un cel mai mic element, notat r. Alegem q ∈ Z astfel ı̂cât b − aq = r.
Demonstrăm prin contradicţie relaţia r < a. Dacă r ≥ a, atunci:

b − a(q + 1) = (b − aq) − a = r − a ≥ 0,

atunci b − a(q + 1) ∈ S. Dar b − a(q + 1) < r, deci am obţinut o contradicţie


cu faptul că r este cel mai mic element din S. Demonstrăm acum unicitatea.
Dacă
b = aq1 + r1 = aq2 + r2
cu 0 ≤ r1 < a and 0 ≤ r2 < a, obţinem:

a| q1 − q2 | = | r1 − r2 | < a

Rezultă că | q1 − q2 | < 1 şi | q1 − q2 | ∈ N, deci | q1 − q2 | = 0. Rezultă q1 = q2


şi r1 = r2 .
14 CAPITOLUL 1. MULŢIMI

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}

Vom demonstra prin contradicţie că S = ∅; dacă S ̸= ∅, atunci, din propri-


etatea de bine ordonare, rezultă că S are un cel mai mic element, notat c.
Rezultă că p|ac şi p ̸ | c; din faptul că p ̸ |a, atunci ı̂n mod necesar c > 1. Se
poate demonstra că c < p (exerciţiu), deci 1 < c < p; aplicând teorema 1,
există q, r ∈ Z astfel ı̂ncât p = cq + r şi 0 ≤ r < c. Din faptul că p este prim,
resultă că r ≥ 1, deci 1 ≤ r < c. Avem:

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.

23. Teorema fundamentală a aritmeticii


Orice număr natural n ≥ 2 poate fi scris ca produs de numere prime;
această factorizare este unică (mai puţin ordinea factorilor).
Demonstraţie
1.3. NUMERE PRIME 15

Demonstrăm existenţa prin inducţie. Dacă n = 2 atunci rezultatul este


evident. Presupunem acum că n > 2 şi că orice m ∈ N, 2 ≤ m ≤ n − 1
poate fi scris ca produs de numere prime. Demonstraăm că n poate fi scris
ca produs de numere prime. Dacă n este prim, rezultatul este evident. Dacă
n nu este număr prim, atunci există n1 , n2 ∈ N astfel ı̂ncât:

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 ,

şi deci p1 = p′1 . Continuăm raţionamentul de mai sus pornind de la egalitatea:

p2 p3 ...pr = p′2 p′3 ...p′s

În final obţinem r = s şi pi = p′i , ∀i ∈ {1, 2, 3, ..., r}.

Din teorema anterioară se obţine:

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

În plus, factorizarea este unică.

25. Cel mai mare divizor comun


Fie a, b ∈ N. Atunci există şi este unic d ∈ N astfel ı̂ncât:
16 CAPITOLUL 1. MULŢIMI

(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

Se verifică uşor că d | a şi d | b; dacă x ∈ N şi x | a şi x | b, atunci

x = pv11 pv22 ...pvrr

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.

26. Cel mai mic multiplu comun


În mod analog, se poate arăta că pentru orice a, b ∈ N, există şi este unic
m ∈ N astfel ı̂ncât:
(a) a | m şi b | m
(b) dacă x ∈ N şi a | x and b | x atunci m | x
Numărul m se numeşte cel mai mic multiplu comun (c.m.m.m.c.) al
lui a şi b şi se notează [a, b]; ı̂n plus, [a, b] · (a, b) = a · 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

Ideea demonstraţiei este să considerăm mulţimea:

S = {ax + by > 0 ; x, y ∈ Z}

Din proprietatea de bine ordonare a mulţimii numerelor naturale rezultă că


S are un cel mai mic element, de exemplu, d; se poate arăta uşor că d = (a, b).

Construcţia c.m.m.d.c. din teorema de existenţă nu oferă o metodă


rapidă de calcul (cel puţin nu pentru numere ”mari”). Unul dintre cei mai
cunoscuţi algoritmi din matematică este Algoritmul lui Euclid pentru calcu-
lul c.m.m.d.c.

28. Algoritmul lui Euclid


Fie a, b ∈ N astfel ı̂ncât a > b. Fie

q1 , q2 , ..., qn+1 ∈ Z

câturile şi fie


0 < rn < rn−1 < ... < r1 < b
resturile ı̂mpărţirilor:
a = bq1 + r1 ,
b = r1 q2 + r2 ,
r1 = r2 q 3 + r3 ,
.................
rn−2 = rn−1 qn + rn ,
rn−1 = rn qn+1 .
Atunci (a, b) = rn .
Demonstraţie
Ideea este să demonstrăm că dacă q1 este câtul şi r1 este restul ı̂mpărţirii
lui a la b, atunci perechile de numere a, b şi respectiv b, r1 au acelaşi c.m.m.d.c.,
i.e. (a, b) = (b, r1 ). Evident,

(a, b) | (a − bq1 ) = r1 şi (a, b) | b,

deci (a, b) | (b, r1 ). Pe de altă parte:

(b, r1 ) | (bq1 + r1 ) = a şi (b, r1 ) | b,


18 CAPITOLUL 1. MULŢIMI

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:

(rn−1 , rn ) = (rn qn+1 , rn ) = rn

Pe baza rezultatului anterior, algoritmul lui Euclid pentru calculul c.m.m.d.c


a două numere ı̂ntregi este:

(i) Dacă a < b, atunci se schimbă ı̂ntre ele a şi b.


(ii) Dacă a > 0, atunci calculează restul r al ı̂mpărţirii lui a la b; se
ı̂nlocuieşte a cu b şi b cu r şi se merge la pasul (i).
(iii) Altfel (dacă a = 0), atunci c.m.m.d.c. este b. stop.

O problemă importantă (pentru orice algoritm) este durata de execuţie


(numărul de paşi, numărul de operaţii, etc). Evident, algoritmul lui Euclid
depinde de marimea numerelor a şi b, dar nu numai. Se poate verifica uşor
că numărul de paşi nu poate depăşi a+b. Dăm ı̂n continuare câteva exemple.

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ă:

(Fn+1 , Fn ) = (Fn , Fn−1 ) = ... = (F3 , F2 ) = 1

Numărul de paşi este n − 1.

30. Teoremă (lungimea algoritmului lui Euclid)


Numărul de iteraţii necesare pentru a calcula c.m.m.d.c. al numerelor a
şi b este cel mult log2 a + log2 b.
Demonstraţie
1.3. NUMERE PRIME 19

Ideea demonstraţiei este conţinută ı̂n lema următoare.

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:

k ≤ log2 (ab) = log2 a + log2 b

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

ceea ce ı̂ncheie demonstraţia.

Continuăm cu proprietăţi uzuale ale numerelor prime.

33. Mica teoremă a lui Fermat


Fie a ∈ Z şi fie p un număr prim; atunci:

p | ap − a

Teorema afirmă că numerele a şi ap dau acelaşi rest la ı̂mpărţirea cu p.


Demonstraţie
Fie a şi p ca ı̂n enunţ; demonstrăm mai ı̂ntâi observaţia:

p | Cpk , ∀k ∈ {1, 2, 3, ..., p − 1}

Conform definiţiei coeficienţilor binomiali, avem:


p(p − 1)....(p − k + 1)
Cpk =
k(k − 1)....1
Numărul prim p divide numărătorul dar nu şi numitorul fracţiei de mai
sus (toţi factorii de la numitor sunt mai mici decât p, iar p este prim), ceea
ce ı̂ncheie justificare observaţiei.
Demonstrăm acum teorema prin inducţie dupa a ∈ N. Dacă a = 0
afirmaţia este evidentă. Fie a > 0 şi fie b ∈ N astfel ı̂ncât a = b + 1; avem:

ap − a = (b + 1)p − (b + 1) =

= bp + Cp1 bp−1 + ... + Cpp−1 b + 1 − b − 1 =


= (bp − b) + Cp1 bp−1 + ... + Cpp−1 b
Numărul b este mai mic decât a şi deci conform ipotezei de inducţie
avem: (bp − b) | p ; toţi ceilalţi termeni ai sumei de mai sus sunt divizibili
cu p (conform observaţiei facute la ı̂nceput), deci demonstraţia este ı̂ncheiată.

Rezultatul precedent se numeşte ”mica” teoremă a lui Fermat deoarece


matematicianul francez Pierre de Fermat este cunoscut ı̂n special pentru:
Marea teoremă a lui Fermat
Fie n ∈ N, n ≥ 3. Atunci nu există numere ı̂ntregi a, b, c astfel ı̂ncât
a = bn + cn . Enunţul a fost formulat ı̂n secolul al XVII-lea de catre Fermat,
n
1.3. NUMERE PRIME 21

iar demonstraţia a fost dată de matematicianul englez Andrew Wiles ı̂n anul
1995.

O problemă naturală (dar dificilă) este cum sunt distribuite numerele


prime. Un rezultat simplu ı̂n acest sens este:

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

sunt compuse; primul este divizibil cu 2, al doilea cu 3, etc.

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

Rezultatul afirmă că π(n) se aproximează cu lnnn pentru n suficient de mare.


Demonstraţia este dificilă (enunţul a fost dat ı̂n ultimul deceniu al sec-
olului al XVIII-lea de către Gauss, Legendre, Dirichlet şi a fost demonstrat
ı̂n mod independent ı̂n 1896 de Hadamard si De la Vallee Poussin); iată o
aplicaţie imediată:
36. Exemplu
Aproximaţi numărul numerelor prime având 200 de cifre.
Conform teoremei anterioare, avem:
10200 10199
π(10200 ) − π(10199 ) ≈ − =
ln(10200 ) ln(10199 )
10200 10199
= − ≈ 1.95 · 10197 .
200 ln 10 199 ln 10
22 CAPITOLUL 1. MULŢIMI

O problemă dificilă de teoria numerelor (cu aplicaţii importante ı̂n crip-


tografia modernă) este aceea de a decide dacă un număr natural este prim
sau compus. Încheiem acest paragraf cu câteva rezultate simple ı̂n această
direcţie.

Conform definiţiei, dacă n ∈ N , atunci, pentru a verifica dacă n este


număr prim, trebuie verificat dacă el se divide cu numerele k, 2 ≤ k < n.
Pentru numere mari, procedura este total ineficientă. O observaţie elemen-
tară (care reduce numărul ı̂ncercărilor) este:
37. Observaţie
Dacă n ∈√ N este număr compus, atunci el are un divizor prim mai mic
sau egal cu n. Demonstraţia este lăsată ca exerciţiu.

Totuşi, este clar că observaţia anterioară nu rezolvă problema pentru n


”mare”. Rezultate mai bune se obţin aplicând mica teorema a lui Fermat:
dacă p este prim, atunci p | ap − a, ∀a ∈ N . De exemplu, (pentru n impar),
luând a = 2, dacă n ̸ | 2n−1 − 1, atunci n nu este număr prim; iată câteva
exemple:
(i) 9 ̸ | 28 − 1 = 255
(ii) 15 ̸ | 214 − 1 = 16383
(iii) 21 ̸ |220 − 1 = 1048575
(iv) 25 ̸ | 224 − 1 = 16777215

Principalele dificultăţi care apar n̂ aplicarea acestei metode sunt:


(i) Calculu puterilor 2n−1 (pentru n mare).
(ii) Verificarea n ̸ | 2n−1 − 1 este complicată pentru n mare.
(iii) Dacă n | 2n−1 −1, nu se poate spune nimic despre n deoarece reciproca
micii teoreme a lui Fermat este falsă (un contraexemplu este 341 = 11 · 31);
mai mult, există numere n ∈ N astfel ı̂ncât n | an − a, ∀a ∈ N dar n nu este
prim. Numerele de acest tip se numesc numere Carmichael; un exemplu este
561 = 3 · 11 · 17 şi 561 | a561 − a, ∀a ∈ Z.

Î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.

A doua problemă: verificarea n | 2n−1 −1; pentru n mare, numărul 2n−1 −1


este foarte mare, deci nu se poate verifica dacă se divide cu n. Totuşi, vom
vedea ı̂n continuare că se poate ı̂nlocui 2n−1 − 1 cu un număr mult mai mic
(mai mic decât n2 ). Ideea este să ı̂nlocuim puterea 2k > n cu restul ı̂mpărţirii
lui 2k la n. Rezultatul exact este:
40. Observaţie
n | 2n−1 − 1 dacă şi numai dacă n | 2r − 1, unde r este restul ı̂mpărţirii
lui 2n−2 la n.
24 CAPITOLUL 1. MULŢIMI

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.

Acum vom discuta cea de a treia problemă enunţată: dacă n | an −1, ∀a ∈


N ? Am dat mai sus un exemplu de număr Carmichael: 561. Un rezultat
care ı̂mbunătăţeşte testul bazat pe mica teoremă a lui Fermat este:

24. Testul Miller-Rabin


Fie n > 1 un număr natural; prezentăm ı̂n continuare un algoritm pentru
a decide dacă n este prim. Fie a ∈ N, 0 ≤ a ≤ n − 1. Dacă n | an − a,
atunci factorizăm an − a = a(an−1 − 1) = .... atât cât permit identităţile
uzuale de tipul x2 − 1 = (x − 1)(x + 1), x3 − 1 = (x − 1)(x2 + x + 1), etc.
Dacă n ar fi număr prim, atunci el ar trebui să dividă cel puţin unul dintre
factori (pentru orice a); dacă acest fapt nu este adevărat, atunci n nu este
prim. Desigur, tetul poate eşua dacă n divide unul dintre factori (ı̂n acest
caz nu se poate trage nicio concluzie despre n). Totuşi, se poate demonstra
că testul eşuează cu o probabilitate 0.5 (pentru a fixat). Deci dacă se repetă
testul de 10 ori (pentru 10 valori diferite ale lui a) şi de fiecare dată n divide
unul dintre factori (deci testul eşuează), atunci probabilitatea ca n sa nu fie
prim este de 2−10 .

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

Relaţii şi funcţii

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

Într-adevăr, orice relaţie (M, ρ) cu proprietatea că pentru orice x ∈ M există


şi este unic y ∈ M astfel ı̂ncât xρ y este ı̂n fapt o funcţie fρ : M 7→ M definită
prin:
fρ (x) = y ⇔ xρ y.
4.Definiţii
Fie (M, ρ) o relaţie.
i. ρ este reflexivă dacă, prin definiţie, xρ x, ∀x ∈ M .
ii. ρ este simetrică dacă, prin definiţie, xρ y ⇒ yρ x, ∀x, y ∈ M .
iii. ρ este antisimetrică dacă, prin definiţie, xρy şi yρx ⇒ x = y, ∀x, y ∈ M .
iv. ρ este tranzitivă dacă, prin definiţie, xρ y şi yρ z ⇒ xρ z.

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:

ρ ∪ ϕ = {(x, y) ; (x, y) ∈ ρ sau (x, y) ∈ ϕ},

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.

Inversa relaţiei ρ, notată prin ρ−1 este:

xρ−1 y ⇔ yρ x.

Produsul relaţiilor ρ şi ϕ, notat ρϕ este:

xρϕ y ⇔ ∃z ∈ M astfel ı̂ncât xρ z şi zϕ y.

În cazul particular ρ = ϕ, relaţia ρ ρ = ρ2 este:

xρ2 y ⇔ ∃z ∈ M astfel ı̂ncât xρ z şi zρ y.

Prin recurenţă, se pot defini puterile:

xρn y ⇔ ∃z0 = x, z1 , z2 , ..., zn = y elemente ı̂n M astfel ı̂ncât :


2.1. INTRODUCERE 29

z0 ρ z1 , z1 ρ z2 , ..., zn−1 ρzn .


Închiderea tranzitivă a relaţiei ρ se notează ρ şi este definită prin:

xρ y ⇔ ∃n ∈ N şi elementele z0 = x, z1 , z2 , ..., zn = y astfel ı̂ncât :

z0 ρ z1 , z1 ρ z2 , ..., zn−1 ρzn .


De fapt, folosind puterile lui ρ şi reuniunea, ı̂nchiderea tranzitivă este:

ρ = ρ ∪ ρ2 ∪ ρ3 ∪ ... ∪ ρn ∪ ....

7. Matricea asociată unei relaţii


Fie M o mulţime nevidă şi finită cu n elemente, M = {x1 , x2 , ..., xn }. Dacă
ξ este o relaţie pe M , atunci the matricea { asociată lui ξ este matricea
1 if xi ξ xj
n×n definită prin Aξ = (aij )ij , cu aij = . Matricele asociate
0 if xi ̸ ξ xj
relaţiilor conţin doar 0 şi 1. Definim pe mulţmea {0, 1} următoarele operaţii
(Booleene):
0 ∨ 0 = 0, 0 ∨ 1 = 1, 1 ∨ 0 = 1, 1 ∨ 1 = 1

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

2.2 Relaţii de echivalenţă


9. Definiţie.
O relaţie (M, ∼) se numeşte relaţie de echivalenţă pe M dacă, prin
definiţie, este reflexivă, simetrică şi tranzitivă.

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

z ∼n w ⇔ zw−1 ∈ Un , ∀z, w ∈ T . Să se demonstreze că ∼n este relaţie


de echivalenţă pe T , iar clasa de echivalenţă a unui element z ∈ T este
zb = {zw ; w ∈ Un }.

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ă.

2.3 Relaţii de ordine


18. Definiţie
O relaţie (M, ρ) se numeşte relaţie de ordine dacă, prin definiţie, este re-
flexivă, antisimetrică şi tranzitivă.
O relaţie de ordine se numeşte totală, (sau mulţimea M este total ordo-
nată de relaţia ρ), dacă ∀x, y ∈ M ⇒ xρ y sau yρ x.

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

ii. Fie A, B ∈ P(X). Să se demonstreze:


A = B ⇔ ∀G ∈ P(X) A ∩ G = B ∩ G şi A ∪ G = B ∪ G.
iii. Fie A, B ∈ P(X). Să se demonstreze:
A = B ⇔ ∃ G ∈ P(X) astfel ı̂ncât A ∩ G = B ∩ G şi A ∪ G = B ∪ G.

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.

i. Să se arate că ∼ρ este o echivalenţă pe M .


ii. Fie M c mulţimea factor asociată relaţiei ∼ρ . Pe M c definim relaţia
c, ≤) este
b ≤ yb ⇔ xρ y. Să se demonstreze că ≤ este bine definită şi că (M
x
mulţime ordonată.
iii. Aplicaţi construcţia de mai sus cazului: (M, ρ) = (Z, |).

Încheiem acest capitol cu prezentarea teoremei de punct fix a lui Tarski.

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ă:

x ≤ y ⇒ f (x) ≤ f (y), ∀x, y ∈ L;

f se numeşte descrescătoare dacă

x ≤ y ⇒ f (y) ≤ f (x), ∀x, y ∈ L;

f se numeşte monotonă dacă este fie crescătoare, fie descrescătoare.

26. Teorema lui Tarski


Fie (L, ≤) o latice completă şi fie f : L 7→ L o funcţie monotonă. Atunci f
are puncte fixe, i.e. există ξ ∈ L astfel ı̂ncâ f (ξ) = ξ.
Demonstraţie
Presupunem că f este crescătoare; fie A = {x ∈ L | x ≤ f (x)}. Atunci:
2.3. RELAŢII DE ORDINE 35

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:

∀x ∈ A, x ≤ a ⇒ ∀x ∈ A, f (x) ≤ f (a) ⇒ sup f (x) ≤ f (a).


x∈A

Demonstraţia se ı̂ncheie dacă demonstrăm că supx∈A f (x) = a; deoarece


x ∈ A ⇒ f (x) ∈ A, avem:

∀x ∈ A, x ≤ f (x) ≤ a ⇒ sup x ≤ sup f (x) ≤ a ⇒ a ≤ sup f (x) ≤ a.


x∈A x∈A x∈A

Pentru inegalitatea inversă, avem:

a ≤ f (a) ⇒ f (a) ≤ f (f (a)) ⇒ f (a) ∈ A ⇒ f (a) ≤ a.


36 CAPITOLUL 2. RELAŢII ŞI FUNCŢII
Capitolul 3

Grafuri

3.1 Grafuri orientate


1. Definiţii
Un graf orientat este G = (V, A, i, t), unde:
V şi A sunt mulţimi nevide; elementele lui V se numesc vârfuri, iar ele-
mentele lui A se numesc arce.
i şi t sunt două funcţii i, t : A 7→ V ; i(a) se numeşte originea lui a, iar t(a)
se numeşte vârf terminus al lui a.
a
Acest fapt se reprezintă grafic astfel: v −→ w.
Dacă un arc are originea şi vârful terimus egale, atunci el se numeşte buclă.
a
Două vârfuri se numesc adiacente dacă ∃a ∈ A astfel ı̂ncât v −→ w sau
a
w −→ v.
Fie v ∈ V . Se notează prin deg+ v (gradul exterior) numărul arcelor a căror
origine este v, iar cu deg− v (gradul interior) numărul arcelor al căror vârf
terminus este v. Gradul vârfului v este degv = deg+ v + deg− v.
Un graf orientat se numeşte cu simplu (sau cu legături simple) dacă pentru
a
orice vârfuri v, w ∈ V , există cel mult un arc a ∈ A astfel ı̂ncât v −→ w.
Un graf orientat se numeşte finit dacă mulţimile A şi V sunt finite.

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

i. Fie V = {v, w}, A = {a, b, c} şi aplicaţiile i şi t definite prin:


i(a) = v, i(b) = v, i(c) = v, t(a) = v, t(b) = w, t(c) = w.

ii. Trei grafuri uzuale:

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:

ii. Reprezentaţi graful orientat G = (V, A, i, t), unde

V = {x, y, z, u}, A = {a, b, c}

i(a) = x, i(b) = y, i(c) = z, t(a) = x, t(b) = x, t(c) = u.


3.1. GRAFURI ORIENTATE 39

iii. Aceeaşi ı̂ntrebare pentru: G = (V, A, i, t), unde :

V = N, A = {aj }j∈N , i(aj ) = j, t(aj ) = j + 2.

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

Fie G = (V, A, i, t) un graf orientat şi fie V ′ ⊆ V, A′ ⊆ A astfel ı̂ncât


i(A′ ) ⊆ V ′ şi t(A′ ) ⊆ V ′ . Fie i′ şi t′ restricţiile lui i şi t la A′ . Atunci graful
G′ = (V ′ , A′ , i′ , t′ ) se numeşte subgraf al lui G.

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

vârfuri, v, w ∈ V şi un număr finit de arce a1 , a2 , ...an ∈ A astfel ı̂ncât există


v1 , v2 , ..., vn−1 ∈ V cu proprietăţile:

i(a1 ) = v, t(a1 ) = v1 , i(a2 ) = v1 , t(a2 ) = v2 , ..., i(an ) = vn−1 , t(an ) = w :


a a a
v −→
1
v1 −→
2
v2 ........ −→ vn−1 −→
n
w
Numărul natural n se numeşte lungimea drumului. Vârfurile v şi w sunt
vârful initial (originea ş respectiv vârful terminus. Putem nota un drum
cu ajutorul vârfurilor sale: a path by its vertices: vv1 v2 ...vn−1 w. Un astfel
de drum uneşte vârful v cu w.
Dacă v = w, drumul se numeşteı̂nchis (circuit). Un drum ı̂nchis de lungime
1 se numeşte buclă. Evident, orice drum este un subgraf. DE fapt, pentru a
defini un drum este echivalent cu a defini un morfism de la Pn (sau Qn , dacă
drumul este ı̂nchis), la G (cf. Exemplului 3).
Drumul nul este definit de n = 0, i.e, uneşte orice vârf cu el ı̂ncsuşi şi are
lungimea 0.
10. Teoremă
Fie G = (V, A, i, t) un graf orientat finit simplu astfel ı̂ncât ∀v, w ∈ V. ∃a ∈ A
a a
cu proprietatea v −→ w sau w −→ v. Atunci există cel puţin un drum care
trece prin fiecare vârf al grafului o sinfgură dată. Un astfel de drum se
numeşte drum hamiltonian.
Demonstraţie
Fie n ∈ N şi fie V = {v1 , v2 , ..., vn }; vom demonstra afirmaţia prin inducţie
după numărul vârfurilor, n. If n ∈ {1, 2}, este evident. Presupunem că
proprietatea este adevărată pentru orice k ≤ n − 1 şi o demonstrăm pentru
n. Conform ipotezei, există un drum care trece prin n − 1 vârfuri:

Există două cazuri:


i. ∃vn −→ vi1 sau ∃vin−1 −→ vn . Drumul hamiltonian este:
vn −→ vi1 −→ vi2 −→ .... −→ vin−1 sau vi1 −→ vi2 −→ ... −→ vin−1 −→ vin ,
sau, reprezentat grafic:
3.1. GRAFURI ORIENTATE 41

ii. ∃vi1 −→ vn şi ∃vn −→ vin−1 .


Din nou, există două cazuri:
i’. ∃vn −→ vi2 sau ∃vin−2 −→ vn . Drumul hamiltonian este:

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:

vi1 −→ vi2 −→ ... −→ vik−1 −→ vn −→ vik −→ vik+1 −→ ... −→ vin−1 ,

sau, ı̂n reprezentare grafică:


42 CAPITOLUL 3. GRAFURI

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:

xij = 1 ⇔ vi −→ vj in G1 ⇔ hV (vi ) −→ hV (vj ) in G2 ⇔


3.1. GRAFURI ORIENTATE 43

⇔ wσ(i) −→ wσ(j) ⇔ yσ(i)σ(j) = 1.


Evident, aceeşi demonstraţie este corectă şi ı̂n cazul xij = 0.
b⇒ a Fie m = n şi fie σ o permutare a mulţimii {1, 2, ..., n} astfel ı̂ncât
xij = yσ(i)σ(j) , ∀ i, j ∈ {1, 2, ..., n}. Fie hV : V1 7→ V2 , hV (vi ) = wσ(i) ; fie
vi , vj ∈ V1 . Atunci:

vi −→ vj ⇔ xij = 1 ⇔ yσ(i)σ(j) = 1 ⇔ wσ(i) −→ wσ(j) .

Aceeşi demonstraţie este corectă şi ı̂n cazul xij = 0, ceea ce ı̂ncheie demonstraţia.

14. Un algoritm pentru a testa grafuri izomorfe


Un alt mod de a testa dacă două grafuri orientate sunt izomorfe este de
a folosi gradele vârfurilor. Dacă G1 şi G2 sunt două grafuri orientate cu
legături simple (cu notaţiile din teorema precedentă), definim un graf Γ (no-
tat de obicei (G1 −→ G2 )) astfel: mulţimea vârfurilor este V1 ∪ V2 şi dacă
v ∈ V1 şi w ∈ V2 , atunci v −→ w in Γ ⇔ v şi w au aceleaşi grade. Dacă ı̂n
acest fel se obţine o bijecţie ı̂ntre mulţimile V1 , V2 , atunci cele două grafuri
sunt izomorfe.
Ilustrăm ideea de mai sus ı̂n următorul exemplu:
Grafurile (G1 −→ G2 ) şi (G1 −→ G3 ) sunt:

Rezultă că G1 şi G2 sunt izomorfe, ı̂n timp ce G1 şi G3 nu sunt izomorfe.

Formalizăm acum ideile de mai sus.


Fie G1 şi G2 cu proprietăţile enunţate la ı̂nceput. Graful orientat Γ =
(G1 −→ G2 ) se defineşte astfel: fie U1 ⊆ V1 mulţimea maximală cu propri-
etatea ∀ u ∈ U1 , ̸ ∃ v ∈ V1 , v ̸= u astfel ı̂ncât deg− (u) = deg− (v), deg+ (u) =
44 CAPITOLUL 3. GRAFURI

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:

17. Algoritm: drumul minimal


Fie G = (V, A, i, t) un graf orientat finit. Dacă u şi w sunt două vârfuri
46 CAPITOLUL 3. GRAFURI

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

x ̸∈ Vk , ∀ k ≤ p şi ∃ y ∈ Vp astfel ı̂ncât y −→ x

.4) Notarea se ı̂ncheie atunci când vârful w a fost notat; fie w ∈ Vm .


5) Un drum minimal u −→ vim−1 −→ vim−2 −→ ... −→ vi1 −→ w se obţine
alegând (ı̂n această ordine) vi1 ∈ Vm−1 , vi2 ∈ Vm−2 , ..., vim−1 ∈ V1 .

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

3.2 Grafuri neorientate


19. Definiţii
Fie V şi E mulţimi nevide şi fie V (2) mulţimea perechilor neorientate ale
lui V , i.e. V (2) = {(v, w) ; v, w ∈ V cu convenţia (v, w) = (w, v)}. Un
graf neorientat este un triplet H = (V, E, φ)), unde φ : E 7→ V (2) este o
aplicaţie arbitrară. Simplificând, un graf neorientat este o submulţime a lui
V (2) . Elementele lui V se numesc vârfuri (noduri), iar elementele lui E se
numesc muchii. Reprezentarea grafică:
a
φ(a) = (u, w) ⇔ u −− w.

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

Nodurile v1 şi vr+1 se numesc extremităţile lanţului. Dacă v1 = vr+1 , lanţul


se numşte ciclu. Graful se numeşte simplu (sau cu legături simple) dacă
pentru orice două noduri v, w ∈ V există cel mult o muchie a ∈ E astfel
a
ı̂ncât v − − −− w.

20. Exemplu

21. Definiţie
Fie H = (V, E, φ) un graf neorientat. Pentru orice v ∈ V, definim:

Cv = {v} ∪ {w ∈ V ; există un lanţ cu extremităţile v şi w}.


48 CAPITOLUL 3. GRAFURI

Mulţimea Cv se numeşte componenta conexă care conţine nodul v.


Graful se numeşte conex dacă pentru orice două noduri v şi w există un
lanţ cu extremităţile v şi w, sau, echivalent, graful are o singură componentă
conexă.
Pe mulţimea nodurilor se defineşte relaţia:

u ∼ w ⇔ există un lanţ cu extremităţile u şi w

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

µ(H) = µ(H1 ) + µ(H2 ) + ... + µ(Hp(H) )

c) H nu are cicluri dacă şi numai dacă µ(H) = 0.


Demonstraţie Fie H (1) graful obţinut din H prin eliminarea unei muchii.
Atunci:
n(H (1) ) = n(H), m(H (1) ) = m(H) − 1 şi
p(H (1) ) = p(H) sau p(H (1) ) = p(H) + 1.
Rezultă:
µ(H (1) ) = m(H (1) ) − n(H (1) ) + p(H (1) ) =
3.2. GRAFURI NEORIENTATE 49

= m(H) − 1 − n(H) + p(H (1) ) ≤ µ(H).


Continuăm să eliminăm succesiv toate muchiile grafului H. În final obţinem
grafurile H (1) , H (2) , H (3) , ..., K, iar K nu are nicio muchie. Evident:

µ(H) ≥ µ(H (1) ) ≥ µ(H (2) ) ≥ ... ≥ µ(K) = 0 − n(H) + p(H) = 0.

b) Numărul de cicluri al unei componente conexe este

µ(Hi ) = m(Hi ) − n(Hi ) + 1,

deci

p(H)

p(H)

p(H)
µ(Hi ) = m(Hi ) − n(Hi ) + p(H) =
i=1 i=1 i=1

= m(H) − n(H) + p(H) = µ(H).


c) Proprietatea este evidentă pentru fiecare componentă conexă, i.e. Hi nu
are cicluri dacă şi numai dacă µ(Hi ) = 0, deoarece m(Hi ) = n(Hi ) − 1. Ev-
ident, graful H nu are cicluri dacă şi numai dacă nicio componentă conexă
Hi nu are cicluri. Demonstraţia se ı̂ncheie aplicând (b).
50 CAPITOLUL 3. GRAFURI
Capitolul 4

Automate finite

4.1 Alfabet şi limbaj


1. Definiţii
Un alfabet este o mulţime finită. Elementele sale se numesc simboluri
(sau litere). De exemplu, alfabetul binar, {0, 1}, conţine două simboluri,
alfabetul roman, {a, b, c, ..., z} are 27 de litere. Prin definiţie, mulţimea vidă
este alfabetul fără niciun simbol.
Un cuvânt (”string”, ı̂n limba engleză) peste un alfabet fixat este un şir
finit de simboluri. De exemplu, aa, , t, dgez, matematica sunt cuvinte peste
alfabetul roman, 00, 101, 0, 0101 sunt cuvinte peste alfabetul binar.
Cuvântul vid este, prin definiţie, cuvântul care nu conţine niciun simbol şi
se notează de obicei e. În general, vom nota cuvintele cu litere din alfabetul
grecesc: α, β, ... etc.
Dacă A este un alfabet arbitrar fixat, notăm cu A⋆ mulţimea cuvintelor peste
A. Evident, A⋆ conţine şi cuvântul vid şi simbolurile din A. Lungimea
unui cuvânt este egală cu numărul simbolurilor (nu neapărat distincte) pe
care le conţine. De exemplu, cuvântul aabzw are lungimea 5. Se notează
|α| lungimea cuvântului α. În general, un cuvânt (dar nu cuvântul vid),
α ∈ A⋆ \ {e}, poate fi definit ca o funcţie
α : {1, 2, ...., |α|} 7→ A, α(j) = litera de pe poziţia j
De exemplu, dacă α = start, atunci α(1) = s, α(2) = t, α(3) = a, α(4) =
r, α(5) = t. Rezultă deci că dacă alfabetul A are n simboluri, atunci există
nk cuvinte de lungime k (numărul funcţiilor de la {1, 2, ..., k} ı̂n A).

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 }.

De exemplu, dacă L1 = {α ; α are un număr impar de 0} şi


L1 = {β ; β ı̂ncepe cu un a 0 urmat de un număr arbitrar de 1, atunci
L1 L2 = {γ ; γ are un număr par de 0}.
Reuniunea şi intersecţia a două limbaje (peste acelaşi alfabet) se definesc ca
reuniunea (respectiv intersecţia) mulţimilor.
4.1. ALFABET ŞI LIMBAJ 53

5. Definiţie
Închiderea (sau Kleene star) unui limbaj L (peste alfabetul A) este, prin
definiţie:

L = {α ∈ A⋆ ; ∃ k ∈ N şi α1 , α2 , ..., αk ∈ L astfel ı̂ncât α = α1 α2 ...αk }.

Prin definiţie, ı̂nchiderea alfabetului vid conţine cuvântul vid: ∅⋆ = {e}.


Evident, cuvântul vid şi cuvintele din L sunt ı̂n L⋆ .
Următoarele proprietăţi sunt evidente:
A⋆ este ı̂nchiderea lui A.
Dacă L1 ⊆ L2 , atunci L⋆1 ⊆ L⋆2 .
Dacă A ⊆ L, atunci L⋆ = A⋆ .
LL⋆ = {α ; ∃k ∈ N \ {0} şi α1 , α2 , ..., αk ∈ L astfel ı̂ncât α = α1 α2 ...αk }.

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

L = {α ∈ {0, 1}⋆ ; α are cel mult doi de 1, care nu sunt consecutivi}.

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 ∪ b)⋆ )L(a) = L((a ∪ b)⋆ ){a} =

= L((a ∪ b))⋆ {a} = (L(a) ∪ L(b))⋆ {a} = ({a} ∪ {b})⋆ {a} = {a, b}⋆ {a}.

4.2 Automate finite deterministe şi nedeter-


ministe
Un automat finit este un dispozitiv de recunoaştere a unui limbaj dat. In-
trarea (comanda) este un cuvânt, iar ieşirea (răspunsul) este o informaţie
(obţinută după un număr finit de paşi) din care rezultă dacă intrarea aparţine
4.2. AUTOMATE FINITE DETERMINISTE ŞI NEDETERMINISTE 55

(sau nu) limbajului dat.

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:

O configuraţie a unui automat finit determinist este orice element din


(q, α) ∈ K×A⋆ . În figura de mai sus, configuraţia curentă este (q2 , abbabbbba).
Automatul se opreşte n̂tr-o configuraţie de tipul (q, e).
Pe mulţimea configuraţiilor se defineşte relaţia ”trece ı̂ntr-un pas” astfel:

(q, α) 7→ (p, β) ⇔ ∃ a ∈ A astfel ı̂ncât α = aβ şi δ(q, a) = p.

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

(q, α) 7→ (q1 , α1 ) 7→ (q2 , α2 ) 7→ ........... 7→ (qk , αk ) 7→ (p, β).



Evident, relaţia 7→ este reflexivă şi and tranzitivă.
Un cuvânt α ∈ A⋆ se numeşte acceptat dacă, prin definiţie, există o stare
56 CAPITOLUL 4. AUTOMATE FINITE


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).

Deoarece q0 este stare finală, cuvântul aabba este acceptat de M.


Determinăm acum evoluţia:

(q0 , abbba) 7→ (q0 , bbba) 7→ (q1 , bba) 7→ (q0 , ba) 7→ (q1 , a) 7→ (q1 , e).

Rezultă că abbba nu este cuvânt acceptat M.


Nu este dificil de demonstrat că limbajul acceptat este:
L(M) = {α ∈ A⋆ ; α are un număr par de b}.

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

ii. Găsiţi automatul definit de graful orientat:

iii. Graful orientat asociat automatului M: K = {q0 , q1 , q2 , q3 }, A =


{a, b}, s = q0 , F = {q0 , q1 , q2 }, şi
δ(q0 , a) = q0 , δ(q0 , b) = q1 ,
δ(q1 , a) = q0 , δ(q1 , b) = q2 ,
δ(q2 , a) = q0 , δ(q2 , b) = q3 ,
δ(q3 , a) = q3 , δ(q3 , b) = q3
este

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.

Cuvintele ab, a2 b, a3 b, ... sunt acceptate; niciun cuvânt de forma an bα, n ≥


1, α ̸= e nu este acceptat. Cuvântul b este acceptat, dar niciun cuvânt de
forma bα, α ̸= e nu este acceptat. Limbajul acceptat este (a)⋆ 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.

Formal, definiţia este următoarea:


Un automat finit nedeterminist este N = (K, A, ∆, s, F ), unde:
K este o mulţime nevidă şi finită de stări;
A este un alfabet;
s ∈ K este starea iniţială;
F ⊆ K este mulţimea stărilor finale;
∆ este relaţia de tranziţie, i.e. ∆ ⊆ K × A⋆ × K.
4.2. AUTOMATE FINITE DETERMINISTE ŞI NEDETERMINISTE 59

O configuraţie a lui N este orice element (p, α) ∈ K × A⋆ . Relaţia trece


ı̂ntr-un pas este definită pe mulţimea configuraţiilor prin: (q, α) 7→ (p, β) ⇔
∃ γ ∈ A⋆ astfel ı̂ncât α = γβ şi (q, γ, p) ∈ ∆.
Relaţia trece ı̂ntr-un număr oarecare de paşi este:

(q, α) 7→ (p, β) ⇔ ∃α1 , α2 , ..., αk ∈ A⋆ şi q1 , q2 , ..., qk ∈ K astfel ı̂ncât
(q, α) 7→ (q1 , α1 ) 7→ (q2 , α2 ) 7→ ........... 7→ (qk , αk ) 7→ (p, β).
Un cuvânt α ∈ A⋆ este acceptat de către N dacă există o stare q ∈ F astfel

ı̂ncât există o evoluţie (s, α) 7→ (q, e). Mulţimea tuturor cuvintelor acceptate
formează limbajul acceptat de către automatul N .

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:

∆ = {(q0 , a, q0 ), (q0 , b, q0 ), (q0 , ba, q1 ), (q1 , b, q2 ),


(q1 , a, q3 ), (q2 , e, q4 ), (q3 , b, q4 ), (q4 , a, q4 ), (q4 , b, q4 )}.
Graful orientat asociat acestui automat este reprezentat ı̂n figura următoare.

Caracterul nedeterminist al evoluţiei unui automat nedeterminist este


ilustrat mai jos, calculând două evoluţii posibile din aceeaşi configuraţie,
(q0 , baababaab):
(q0 , baababaab) 7→ (q0 , aababaab) 7→ (q0 , ababaab) 7→ (q0 , babaab) 7→
60 CAPITOLUL 4. AUTOMATE FINITE

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

4.3 Echivalenţa dintre automatele finite de-


terministe şi cele nedeterministe
19. Definiţie
Două automate finite, M1 şi M2 se numesc echivalente dacă au acelaşi
limbaj acceptat. Notăm acest fapt M1 ∼ M2 . Evident, ” ∼ ” este relaţie
de echivalenţă pe mulţimea automatelor finite.
De exemplu, automatele definite de grafurile de mai jos au acelaşi limbaj
acceptat, (ab)⋆ :

Primele două sunt nedeterministe, iar al treilea este determinist.

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.

Fie N ′ = (K ′ , A, ∆′ , s, F ) automatul finit nedeterminist obţinut prin adăugarea


la K a noilor stări şi la ∆ a noilor tranziţii (şi eliminarea celor multiple). Se
observă uşor că N ′ ∼ N .

În exemplul din figura următoare, se consideră un automat nedeterminist


N şi se construieşte N ′ (se introduc stările noi p1 , p2 , p3 ):
4.3. ECHIVALENŢA AUTOMATELOR 63

Etapa a doua Pentru orice stare q ∈ K ′ calculăm mulţimea:

E(q) = {q} ∪ {p ∈ K ′ ; (q, e) 7→ (p, e)}.


De exemplu, pentru automatul N ′ obţinut mai sus, rezultă:

E(q0 ) = {q0 }, E(q1 ) = {q0 , q1 }, E(q2 ) = {q2 },

E(p1 ) = {p1 }, E(p2 ) = {p2 }, E(p3 ) = {p3 }.


Etapa a treia Construim acum un automat determinist M echivalent cu N ′ ,
deci şi cu N . Ideea de bază este să considerăm stările din M ca submulţimi
ale lui K ′ . Dacă, de exemplu automatul N ′ este ı̂ntr-o stare q ∈ K ′ şi prin
citirea unui anumit simbol poate trece ı̂n oricare din stările p1 sau p2 , atunci
ı̂n automatul M submulţimea {p1 , p2 } va fi o stare. În acest fel se elimină
comportamentul nedeterminist al lui N .
Formal, definiţia lui M este:
M = (K ′′ , A, δ, s′′ , F ′′ ), unde:
K ′′ ⊆ P(K ′ );
s′′ = E(s);
F ′′ = {Q ⊆ K ′ ; Q ∩ F ̸= ∅}.
Funcţia de tranziţie δ este:

δ(Q, a) = {E(q) ; ∃ p ∈ Q astfel ı̂ncât (p, a, q) ∈ ∆′ }.
q∈K ′

Dacă ∆′ nu conţine elemente de forma (p, a, q) cu p ∈ Q şi q, arbitrar,


atunci, prin definiţie, δ(Q, a) = ∅ ∈ P(K ′ ); În acest caz, ∅ este o stare a lui
64 CAPITOLUL 4. AUTOMATE FINITE

M. Tranziţiile din starea vidă merg ı̂n starea vidă.

De exemplu, pentru automatul N ′ obţinu mai sus, rezultă:


′′
s = E(q0 ) = Q0 .
Calculăm tranziţiile din Q0 :
δ(Q0 , a) = ∅,
δ(Q0 , b) = E(q1 ) ∪ E(p1 ) = {q0 , q1 , p1 } = Q1 .
Am obţinut două stări noi: ∅ şi Q1 . Calculăm tranziţiile din aceste stări.
δ(∅, a) = ∅,
δ(∅, b) = ∅.
δ(Q1 , a) = E(p2 ) = {p2 } = Q2 ,
δ(Q1 , b) = E(q1 ) ∪ E(p1 ) ∪ E(p3 ) = {q0 , q1 , p1 , p3 } = Q3 .
Am obţinut douăstări noi: Q2 and Q3 ; tranziţiile corespunzătoare sunt:
δ(Q2 , a) = ∅,
δ(Q2 , b) = E(q0 ) = Q0 .
δ(Q3 , a) = E(p2 ) ∪ E(q2 ) = {p2 , q2 } = Q4 ,
δ(Q3 , b) = E(q1 ) ∪ E(p1 ) ∪ E(p3 ) = {q0 , q1 , p1 , p3 } = Q3 .
A rezultat o stare nouă, Q4 .
δ(Q4 , a) = E(q2 ) = {q2 } = Q5 .
δ(Q4 , b) = E(q0 ) ∪ E(q2 ) = {q0 , q2 } = Q6 .
Au rezultat două stări noi: Q5 şi Q6 ; tranziţiile corespunzătoare sunt:
δ(Q5 , a) = E(q2 ) = {q2 } = Q5 .
δ(Q5 , b) = E(q2 ) = Q5 .
δ(Q6 , a) = Q5 ,
δ(Q6 , b) = E(q1 ) ∪ E(p1 ) ∪ E(q2 ) = {q0 , q1 , p1 , q2 } = Q7 .
A rezultat starea nouă Q7 ; tranziţiile sunt:
δ(Q7 , a) = E(p2 , q2 ) = {p2 , q2 } = Q4 .
δ(Q7 , b) = E(q1 ) ∪ E(p1 ) ∪ E(p3 ) ∪ E(q2 ) = {q0 , q1 , p1 , p3 , q2 } = Q8 .
A rezultat starea nouă Q8 ; tranziţiile sunt:
δ(Q8 , a) = E(p2 ) ∪ E(q2 ) = {p2 , q2 } = Q4 .
δ(Q8 , b) = E(q1 ) ∪ E(p1 ) ∪ E(p3 ) ∪ E(q2 ) = {q0 , q1 , p1 , p3 , q2 } = Q8 .
Rezultă că automatul finit determinist M echivalent cu N este M = (K ′′ , A, δ, s′′ , F ′′ ),
unde:
K ′′ = {Q0 , ∅, Q1 , Q2 , Q3 , Q4 , Q5 , Q6 , Q7 , Q8 },
A = {a, b}, s′′ = Q0 ,
F ′′ = {Q4 , Q5 , Q6 , Q7 , Q8 }
şi cu funcţia de tranziţie δ definită mai sus. Graful orientat al lui M este:
4.3. ECHIVALENŢA AUTOMATELOR 65

23. Exemplu
Fie N automatul finit (nedeterminist) definit de graful orientat:

Se observă uşor că L(N ) = ((a)⋆ ab(a)⋆ )⋆ .


Se cere să găsească un automat determinist echivalent cu N . Aplicăm algo-
ritmul precedent.
Prima etapă; introducem o stare nouă q2 şi două tranziţii noi şi obţinem
automatul N ′ :
66 CAPITOLUL 4. AUTOMATE FINITE

Etapa a doua; calculăm:


E(q0 ) = {q0 }, E(q1 ) = {q0 , q1 }, E(q2 ) = {q2 }.
Etapa a treia; definim automatul M ∼ N ′ ∼ N .
s′′ = E(q0 ) = {q0 } = Q0 .
δ(Q0 , a) = E(q0 ) ∪ E(q2 ) = {q0 , q2 } = Q1 ; δ(Q0 , b) = ∅.
δ(Q1 , a) = E(q0 ) ∪ E(q2 = Q1 ; δ(Q1 , b) = E(q1 ) = {q0 , q1 } = Q2 .
δ(Q2 , a) = E(q0 ) ∪ E(q2 ) ∪ E(q1 ) = {q0 , q1 , q2 } = Q3 ; δ(Q2 , b) = ∅.
δ(Q3 , a) = E(q0 ) ∪ E(q2 ) ∪ E(q1 ) = {q0 , q1 , q2 } = Q3 ; δ(Q3 , b) = E(q1 ) = Q2 .
Automatul determinist M are 5 stări: Q0 , Q1 , Q2 , Q3 , ∅, stare iniţială s′′ = Q0
şi stările finale F ′′ = {Q2 , Q3 }. Graful orientat al lui M este :

24. Exemplu
Fie N definit de graful orientat:

Să se determine un automat determinist M echivalent cu N .


Soluţie Automatul N nu conţine tranziţii multiple, deci trecem direct la
4.3. ECHIVALENŢA AUTOMATELOR 67

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:

Aplicăm acum algoritmul; introducem o stare nouă q2 şi obţinem au-


tomatul N ′ :

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

δ(Q0 , a) = E(q0 ) = Q0 ; E(Q0 , b) = E(q2 ) = {q2 } = Q1 .


δ(Q1 , a) = E(q1 ) = {q1 } = Q2 ; δ(Q1 , b) = ∅.
δ(Q2 , a) = ∅ ; δ(Q2 , b) = ∅.
Starea iniţială a lui M este Q0 iar stările finale sunt Q0 , Q2 . Graful orientat
al lui M este:

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

1. W.W. Chen Discrete Mathematics, Imperial College University of


London, 2003.

2. M.B. Finan Lecture Notes in Discrete Mathematics, Arkansas Tech


University, 2008.

3. John Hopcroft and Jeffrey Ullman Introduction to Automata


Theory, Languages and Computation , Addison-Wesley, 1979.

4. S. Lang Undergraduate Algebra, Springer Verlag, 1987.

5. Lewis Harry R., C.Papadimitriou Elements of the theory of com-


putation, Prentice Hall, Englewood Cliffs,N.J. 1981.

6. I. Lovasz, K. Vesztergombi, Discrete Mathematics, Lecture Notes,


Yale University, Spring 1999.

7. Ju.A.Schreider Equality, Resemblance and Order,


Mir Publishers, 1974.

8. O.Stanasila Notiuni si tehnici de matematica discreta


Editura Stiintifica si Enciclopedica, Bucuresti, 1985.

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