Sunteți pe pagina 1din 72

I.

INTRODUCERE ÎN TEORIA GRAFURILOR


1.1. Grafuri neorientate

DefiniŃie. Fie X o mulŃime finită şi nevidă şi U ⊂ {{x, y} x, y ∈ X } .


Numim graf (sau graf neorientat) perechea G = ( X , U ) . Elemente din mulŃimea
X se numesc noduri sau vârfuri, iar elementele din mulŃimea U poartă numele
de muchii ale grafului.

Un graf se reprezintă grafic printr-o mulŃime de puncte corespunzătoare
vârfurilor grafului şi o mulŃime de segmente corespunzătoare muchiilor. Dacă
pentru un graf există o reprezentare în care să nu existe două segmente care să se
intersecteze, atunci spunem că graful reprezentat este un graf planar.
Exemplul 1. Fie G = ( X , U ) , unde X = {1, 2,3, 4,5, 6,7} şi
U = {{1, 2} , {1,3} , {2, 4} , {2,5} , {3, 4} , {4,5} , {4, 6} , {5, 6} , {6,7}}
Am definit un graf neorientat. Acest graf poate avea reprezentarea grafică:
1 2

3
5
4

7 6

şi cum în această reprezentare nu există muchii care să se intersecteze, rezultă că


avem un graf planar.

Pornind de la definiŃie observăm că dacă X are n elemente, atunci U are
cel mult Cn2 elemente.
Dacă A este o mulŃime, vom nota prin A numărul de elemente ale
mulŃimii.

9
DefiniŃie. Fie G = ( X , U ) un graf şi x ∈ X un nod fixat. Prin gradul
nodului x înŃelegem numărul muchiilor incidente lui x şi notăm acest număr cu
d ( x ) . Dacă d ( x ) = 1 spunem că x este nod terminal. Dacă d ( x ) = 0 spunem
că x este nod izolat.

Exemplul 2. Pentru graful specificat în exemplul 1 gradele vârfurilor sunt
cele indicate în următorul tabel.
x 1 2 3 4 5 6 7
d ( x) 2 3 2 4 3 3 1
După cum se poate vedea în acest tabel, graful nu are vârfuri izolate şi
nodul 7 este nod terminal

PropoziŃia 1. Fie G = ( X , U ) un graf în care U = m . Atunci

∑ d ( x ) = 2m .
x∈ X

DemonstraŃie. Dacă { x, y} ∈ U , atunci intervine o contribuŃie unitară atât


în d ( x ) , cât şi în d ( y ) . Astfel, dacă se elimină muchia, obŃinând graful

(
G ′ = X , U \ {{ x, y}} , ) atunci în G′ vom avea d ′( x) = d ( x) −1 ,
d ′ ( y ) = d ( y ) − 1 şi pentru orice z ∈ X \ { x, y} , d ′ ( z ) = d ( z ) .
Pentru graful G ′ vom avea
∑ d ′( z ) = d′( x) + d ′( y ) + ∑ d ′( z ) =
z∈ X z∈ X \{x , y}

= d ( x) −1 + d ( y ) −1 + ∑
z∈ X \{ x , y}
d (z) = ∑ d ( z) − 2 = .
z∈ X

= 2m − 2 = 2 ( m − 1) = 2 U \ {{ x, y}}
Deoarece într-un graf G 0 = ( X , ∅ ) , în care toate vârfurile sunt izolate
avem d ( z ) = 0 pentru orice z ∈ X , putem scrie 0 = ∑ d (z) = 2⋅0 = 2 ∅ ,
z∈ X
iterând relaŃia de mai sus, demonstrăm egalitatea dată în anunŃ.

Exemplul 3. Pentru graful dat în exemplul 1, folosind gradele vârfurilor
date în tabelul din exemplul 2 avem
7

∑ d ( x ) = ∑ d ( x ) = 2 + 3 + 2 + 4 + 3 + 3 + 1 = 18 .
x∈ X x =1

Pe de altă parte U = 9 şi astfel se verifică relaŃia din propoziŃia 1.



10
PropoziŃia 2. Pentru orice graf G = ( X , U ) , numărul vârfurilor de grad
impar este par.
DemonstraŃie. Prin absurd considerăm că numărul de vârfuri cu grad
impar este impar. Fie {
X = X 1 ∪ X 2 , unde X 1 = x ∈ X d ( x ) impar } şi

{ }
X 2 = x ∈ X d ( x ) par . În mod evident X 1 ∩ X 2 = ∅
d1 = ∑ d ( x)
x∈ X1
este număr impar ca sumă impară de numere impare.

d2 = ∑ d ( x ) este număr par ca sumă de numere pare.


x∈ X 2

Deoarece X 1 ∩ X 2 = ∅ , rezultă că ∑ d ( x) = d
x∈ X
1 + d 2 şi astfel ∑ d ( x)
x∈ X
este număr impar ca sumă între un număr par şi unul impar. Dar din propoziŃia 1
avem ∑d ( x ) = 2 U , deci este număr par. ContradicŃie.
x∈ X

Exemplul 4. Pentru graful neorientat din exemplul 1, nodurile cu gradul
impar sunt 2, 5, 6 şi 7 şi astfel numărul lor este 4, deci număr par. Astfel se verifică
practic afirmaŃia făcută în propoziŃia 2.

DefiniŃie. Fie G = ( X , U ) un graf. Numim graf parŃial al lui G, graful
G′ = ( X , V ) , unde V ⊂ U .

Exemplul 5. Fie graful G = ( X , U ) , unde X = {1, 2, 3, 4,5, 6, 7} este
mulŃimea de vârfuri, iar mulŃimea muchiilor este
U = {{1, 2} , {1,3} , {2,3} , {2, 4} , {3, 6} , {3, 7} , {4, 5} , {5, 6} , {5, 7}} .
Considerăm graful G ′ = ( X , V ) , unde
U = {{1, 2} , {1, 3} , {2, 4} , {3, 7} , {4, 5} , {5, 6} , {5, 7}}
Astfel, G ′ = ( X , V ) este graf parŃial pentru graful G = ( X , U ) . Din punct
de vedere al reprezentării, graful G = ( X , U ) şi graful parŃial G ′ = ( X , V ) au
următoarele imagini:

11
1 7 1 7

2 2
3 3

4 5 4 5

6 6

graful G = ( X , U ) graful parŃial G ′ = ( X , V )



DefiniŃie. Fie G = ( X , U ) un graf. Numim subgraf în G, graful
G′′ = (Y , V ) , în care Y ⊂ X , iar V = {{x, y} ∈U x, y ∈ Y } .

Exemplul 6. Fie graful G = ( X , U ) dat în exemplul 5. Considerăm
mulŃimea Y = {2,3, 4, 5, 7} ⊂ X , care se obŃine din X prin eliminarea vârfurilor
1 şi 6. Eliminând din U toate muchiile care au una din extremităŃi vârfurile
{ }
eliminate obŃinem V = {2, 3} , {2, 4} , {3, 7} , {4, 5} , {5, 7} . ObŃinem astfel graful
G′′ = (Y , V ) care este subgraf pentru graful G = ( X , U ) .
Din punct de vedere al reprezentării avem următoarea pereche de imagini:

1 7 7

2 2
3 3

4 5 4 5

graful G = ( X , U ) subgraful G ′′ = (Y , V )

DefiniŃie. Fie G = ( X , U ) un graf cu n vârfuri ( X = n ). Spunem că G
este un graf complet , dacă oricare ar fi x, y ∈ X , avem { x, y} ∈ U (orice două
vârfuri din G sunt conectate sau adiacente).

12
Exemplul 7. Pentru graful G = ( X , U ) din exemplul 5 nu este complet
deoarece, de exemplu, {1, 7} ∉ U şi {4, 6} ∉ U .

Graful complet cu n vârfuri se notează prin K n
PropoziŃia 3. Numărul muchiilor lui K n este Cn2 .
DemonstraŃie. Deoarece K n este un graf complet şi astfel oricare ar fi
x, y ∈ X , avem { x, y} ∈U , rezultă că U conŃine toate submulŃimile cu două
elemente care se pot forma cu elemente în mulŃimea X .
Folosind noŃiuni de combinatorică, avem astfel că dintr-o mulŃime cu n
elemente se pot forma Cn2 submulŃimi cu două elemente. Astfel, dacă
K n = ( X , U ) , cu n = X , atunci U = Cn2 .

Exemplul 8. Să construim K 5 , deci graful K 5 = ( X , U ) , unde
5i4
X = {1, 2, 3, 4,5} . Numărul de muchii este, conform propoziŃiei 3, C52 = = 10 .
1i2
MulŃimea de muchii este astfel:
U = {{1, 2} , {1,3} , {1, 4} , {1,5} , {2,3} , {2, 4} , {2, 5} , {3, 4} , {3, 5} , {4, 6}}
Graful K 5 astfel definit are reprezentarea:

1
4
3

5

DefiniŃie. Fie G = ( X , U ) un graf. Dacă există X 1 şi X 2 astfel încât
X 1 ∩ X 2 = ∅ şi X = X 1 ∪ X 2 ( X admite o partiŃie din două blocuri X 1 şi X 2 )
şi orice muchie din G uneşte un nod din X 1 cu unul din X 2 (oricare ar fi
e = { x, y} ∈ U , dacă x ∈ X 1 , atunci y ∈ X 2 ) spunem că G este graf bipartit.

13
Exemplul 9. Considerăm graful neorientat G = ( X , U ) , în care mulŃimea
de vârfuri este X = {1, 2, 3, 4,5, 6, 7} şi mulŃimea de muchii este
U = {{1, 2} , {1, 6} , {2, 3} , {2, 7} , {4, 5} , {4, 6} , {5, 7}} .
Se observă că putem realiza partiŃia X = X 1 ∪ X 2 , X 1 ∩ X 2 = ∅ , cu
X 1 = {1,3, 4, 7} şi X 2 = {2, 5, 6} , deoarece pentru orice muchie { x, y} ∈ U avem
x ∈ X 1 şi y ∈ X 2 .
Graful considerat are următoarea reprezentare:

1
2

5
4

6
7


DefiniŃie. Fie G = ( X , U ) un graf bipartit cu partiŃiile X 1 şi X 2 . Dacă
X 1 = p şi X 2 = q şi dacă fiecare vârf din X 1 este adiacent cu toate vârfurile
din X 2 (pentru orice x ∈ X 1 şi orice y ∈ X 2 avem { x, y} ∈U ) spunem că G
este un graf bipartit complet, notat K p ,q .

Exemplul 10. Pentru graful bipartit din exemplul 9 se observă că el nu este
un graf bipartit complet, deoarece, de exemplu, nu conŃine muchia {3,5} şi nici
muchia {2, 4}

PropoziŃia 4. Graful bipartit complet K p ,q are pq muchii.
DemonstraŃie. Considerăm K p ,q = ( X ,U ) , X = X1 ∪ X 2 ,
X 1 ∩ X 2 = ∅ , X 1 = p şi X 2 = q .

14
Conform definiŃiei pentru orice x ∈ X 1 şi orice y ∈ X 2 avem
{ x, y} ∈U . Dacă fixăm x ∈ X 1 , atunci pentru fiecare y ∈ X 2 avem { x, y} ∈ U ,
deci numărul de muchii pentru x ∈ X 1 fixat este egal cu X 2 = q .
Fiecare vârf x ∈ X 1 poate fi ales, fixat în X 1 = p . Astfel, numărul
total de muchii este pq .

Exemplul 11. Considerăm că mulŃimea de vârfuri X = {1, 2, 3, 4,5, 6, 7}
este partiŃionată prin mulŃimile X 1 = {1,3, 4, 7} şi X 2 = {2, 5, 6} (are loc
X = X 1 ∪ X 2 şi X 1 ∩ X 2 = ∅ ). Având p = X 1 = 4 şi q = X 2 = 3 , putem
construi un graf bipartit K 4,3 = ( X , U ) , unde mulŃimea de muchii este:
U = {{1, 2} , {1, 5} , {1, 6} , {2, 3} , {2, 4} , {2, 7} ,
{3,5} , {3, 6} , {4, 5} , {4, 6} , {5, 7} , {6, 7}}
şi avem U = 12 ceea ce corespunde enunŃului propoziŃiei 4.
Acest graf are următoarea reprezentare

1
2

5
4

6
7


DefiniŃie. Fie G = ( X , U ) un graf. Numim lanŃ în G o succesiune de
vârfuri L = ( x0 , x1 ,..., xr ) = x0 x1...xr , astfel încât pentru orice i = 0,1,..., r − 1 ,
xi xi +1 ∈ U (adică o succesiune în care oricare două vârfuri vecine din lanŃ sunt
adiacente).

15
Fie G = ( X , U ) este un graf şi L = x0 x1...xr un lanŃ în G . Vârfurile x0 şi
xr se numesc extremităŃile lanŃului L , iar r se numeşte lungimea lanŃului L ,
notată l ( L ) = r (lungimea unui lanŃ este dată de numărul muchiilor sale sau de
numărul vârfurilor mai puŃin unul).
Exemplul 12. Considerăm graful G = ( X , U ) care corespunde următoarei
reprezentări:

1 6

2 3

5
4

Fie succesiunea de vârfuri L1 = [1, 2, 4,1,3, 6] . Se formează un lanŃ în G


deoarece perechile {1, 2} , {2, 4} , {4,1} , {1,3} , {3, 6} sunt muchii în U . Acest
lanŃ este de extremităŃi 1 şi 6 iar deoarece numărul vârfurilor din lanŃ este egal cu 6
avem l ( L ) = 5 . Acest lanŃ poate fi dat şi prin muchiile sale sub forma
L1 = {1, 2} , {2, 4} , {1, 4} , {1,3} , {3, 6}
Fie succesiunea de vârfuri L2 = [1, 2, 4,3, 5] . Această succesiune nu
descrie un lanŃ deoarece graful considerat nu conŃine nicio muchie între vârfurile 3
şi 5.

DefiniŃie. Fie G = ( X , U ) un graf. LanŃul L din G se numeşte lanŃ
elementar dacă pentru orice 0 ≤ i, j ≤ r , i ≠ j , avem xi ≠ x j (lanŃul trece prin
noduri distincte).

Exemplul 13. LanŃul L1 = [1, 2, 4,1,3, 6] din exemplul 12 are în poziŃiile 1
şi 4 vârful 1 şi astfel nu este un lanŃ elementar (trece de două ori prin vârful 1)
În graful din exemplul 12, un lanŃ elementar este L3 = [1, 2, 4,3, 6 ]

16
DefiniŃie. Fie G = ( X , U ) un graf. LanŃul L din G se numeşte lanŃ
simplu dacă pentru orice 0 ≤ i, j ≤ r − 1 , i ≠ j , avem { xi , xi +1} ≠ x j , x j +1 (toate{ }
muchiile sale sunt distincte).

Exemplul 14. LanŃurile L1 = [1, 2, 4,1,3, 6] şi L2 = [1, 2, 4,3, 5] din
exemplul 12 şi L3 = [1, 2, 4,3, 6 ] din exemplul 13 sunt toate lanŃuri simple. Cel mai
bine se observă acest lucru la exprimarea lanŃurilor prin muchiile lor, aşa cum este
cazul pentru lanŃul L1 = [1, 2, 4,1,3, 6] , care în exemplul 12 este exprimat şi prin
muchii prin L1 = {1, 2} , {2, 4} , {1, 4} , {1,3} , {3, 6} .
În graful din exemplul 12 putem considera şi lanŃul
L4 = {2,1, 4, 3,1, 4, 5}
care nu este un lanŃ simplu deoarece conŃine de două ori muchia {1, 4} .

PropoziŃia 5. Fie G = ( X , U ) un graf şi L un lanŃ în G . Dacă L este
lanŃ elementar, atunci L este lanŃ simplu.
DemonstraŃie. Prin absurd, L nu este lanŃ simplu. Atunci există
0 ≤ i, j ≤ r − 1 , i ≠ j astfel încât { xi , xi +1} = { x j , x j +1} . Astfel avem fie xi = x j ,
fie xi = x j +1 , de unde rezultă că L nu este lanŃ elementar. ContradicŃie.

1.2. Grafuri orientate

DefiniŃie. Fie X o mulŃime finită şi nevidă. Numim graf orientat (digraf)


orice pereche G = ( X , U ) în care U ⊂ X × X este o mulŃime finită de perechi
ordonate cu componente din X ( U este o relaŃie binară pe X ).

Elementele mulŃimii X vor fi numite vârfuri sau noduri. Elementele
mulŃimii U se numesc arce.
Orice arc are forma ( a, b ) , în care a se numeşte extremitate iniŃială, iar
b se numeşte extremitate finală a arcului ( a, b ) .
Exemplul 15. Considerăm mulŃimea X = {1, 2,3, 4, 5, 6, 7,8,9} şi
mulŃimea U ⊂ X × X ,
U = {(1, 2 ) , (1,3) , (1, 6 ) , ( 2,3 ) , ( 2, 9 ) , ( 3, 4 ) ,
( 4,5 ) , ( 4,9 ) , ( 5, 6 ) , ( 6,8 ) , ( 7, 6 ) , ( 8, 7 ) , ( 9,8 )}
17
Dacă luăm arcul ( 4,9 ) , spunem că 4 este extremitatea iniŃială a arcului, iar
9 este extremitatea finală a arcului.
Graful descris are următoarea reprezentare

1
6

2 3
7
5
4

8
9

Un graf orientat se reprezintă grafic printr-o mulŃime de puncte
corespunzătoare vârfurilor şi printr-o mulŃime de segmente orientate (săgeŃi)
corespunzătoare arcelor. O săgeată este orientată de la extremitatea iniŃială spre
extremitatea finală a arcului pe care îl reprezintă.
Dacă u = ( x, y ) ∈ U spunem că x şi y sunt adiacente în G şi că
nodurile x şi y sunt incidente arcului u sau că arcul u este incident nodurilor x
şi y . Mai exact, spunem că u este incident exterior nodului x ( u pleacă sau iese
din x ) şi că u este incident interior nodului y ( u ajunge sau intră în y ). Arcul
( x, y ) ∈ U se mai notează şi prin xy .
DefiniŃie. Fie G = ( X , U ) un graf orientat şi x ∈ X un nod fixat.
a) Numim grad interior al lui x , numărul arcelor incidente interior lui x ,
adică mărimea d − ( x ) = {( y, x ) ∈U y∈ X . }
b) Numim grad exterior al lui x , numărul arcelor incidente exterior lui x ,
adică mărimea d + ( x ) = {( x, y ) ∈U y∈ X . }
c) Prin gradul nodului x înŃelegem numărul total al arcelor incidente lui x ,
adică mărimea d ( x ) = d − ( x ) + d + ( x ) .
d) Dacă d ( x ) = 0 spunem că x ∈ X este vârf izolat.
e) Dacă d − ( x ) = 1 şi d + ( x ) = 0 spunem că x ∈ X este vârf terminal; dacă
d − ( x ) = 0 şi d + ( x ) = 1 spunem că x ∈ X este vârf iniŃial.

18
Exemplul 16. Pentru graful din exemplul 15 putem rezuma valorile pentru
gradul interior, gradul exterior şi gradul fiecărui vârf în următorul tabel:
x 1 2 3 4 5 6 7 8 9
d− ( x ) 0 1 2 1 1 3 1 2 2
d+ ( x ) 3 2 1 2 1 1 1 1 1
d ( x) 3 3 3 3 2 4 2 3 3

DefiniŃie. Fie G = ( X , U ) un graf orientat şi A ⊂ X o mulŃime de
vârfuri.
a) Gradul interior lui A este numărul arcelor ce intră în A şi care au nodul
iniŃial în afara lui A, adică mărimea
d − ( A) = {( y, x ) ∈U y ∉ A, x ∈ A .}
b) Gradul exterior lui A este numărul arcelor ce ies din A şi au nodul
terminal în afara lui A, adică mărimea
d + ( A) = {( x, y ) ∈U x ∈ A, y ∉ A} .
c) Gradul total al lui A este d ( A ) = d − ( A ) + d + ( A ) .

Exemplu 17. Considerăm graful din exemplul 15 şi mulŃimea
A = {3, 4, 6, 7} . Avem d − ( A) = 5 , d + ( A) = 3 . Astfel d ( A ) = 8 .

ObservaŃii
1) Evident, pentru orive A ⊂ X avem d − ( A ) ≤ ∑ d ( x) ,
x∈ A
− deoarece s-ar

putea ca anumite arce care ies din A să aibă extremitatea finală tot în A ,
arce care nu se numără la determinarea valorii d + ( A ) .
2) Evident, pentru orice A ⊂ X avem d + ( A ) ≤ ∑ d ( x) ,
x∈ A
+ deoarece s-ar

putea ca anumite arce care intră în A să aibă extremitatea iniŃială tot în A ,


arce care nu se numără la determinarea valorii d − ( A ) .
Din 1) şi 2) rezultă că d ( A ) ≤ ∑ d ( x) .
x∈ A

DefiniŃie. Fie G = ( X , U ) un graf orientat. Numim graf orientat parŃial


al lui G graful orientat G = ( X , V ) în care V ⊂ U .

19
Exemplul 18. Fie graful orientat G = ( X , U ) , unde mulŃimea de vârfuri
este X = {1, 2,3, 4,5, 6} şi mulŃimea de arce este
U = {(1, 2 ) , (1,5 ) , (1, 6 ) , ( 2,3) , ( 2, 4 ) , ( 4,3) , ( 6, 4 ) , ( 6,5 )}
{ }
Dacă G ′ = ( X , V ) , unde V = (1, 2 ) , (1,5 ) , ( 2, 4 ) , ( 6, 4 ) , ( 6,5 ) , este un
graf orientat parŃial al grafului G .
Grafurile G şi G ′ au reprezentarea următoare:

1 1

6 6
2 2
5 5

3 3

4 4

Graful orientat G = ( X , U ) Graful orientat parŃial G ′ = ( X , V )


Facem observaŃia că în graful G ′ s-a obŃinut un vârf izolat, vârful 3 (nu
există niciun arc care să-l aibă ca extremitate).

Un graf orientat parŃial al lui G se obŃine prin suprimarea anumitor arce
ale lui G .
DefiniŃie. Fie G = ( X , U ) un graf orientat. Numim subgraf orientat al
lui G , graful orientat H = (Y , V ) în care Y ⊂ X , iar V = {( x, y ) ∈U x, y ∈ Y }
(mulŃimea tuturor arcelor lui G cu ambele extremităŃi în Y ).

Exemplul 19. Considerăm graful G = ( X , U ) din exemplul 18. Fie
Y = {2,3, 4,6} ⊂ X , care se obŃine prin eliminarea vârfurilor 1 şi 5 din X .
Eliminăm din U toate arcele care au ca extremitate pe 1 sau pe 5 şi obŃinem
U = {( 2,3 ) , ( 2, 4 ) , ( 4,3) , ( 6, 4 )} . Graful G′′ = (Y , V ) astfel obŃinut este subgraf
al lui G .
Grafurile G şi G ′′ au următoarea reprezentare:

20
1

6 6
2 2
5

3 3

4 4

Graful orientat G = ( X , U ) Graful orientat parŃial G ′′ = (Y , V )



Un subgraf orientat se obŃine suprimând anumite vârfuri din G şi
eliminând toate arcele incidente vârfurilor suprimate.
DefiniŃie. Fie G = ( X , U ) un graf orientat. Dacă pentru orice x, y ∈ X
avem ( x, y ) ∈ U sau ( y, x ) ∈ U spunem că G este graf orientat complet.

Un graf orientat complet cu n vârfuri se notează cu K n .
Exemplul 20. Să considerăm X = {1, 2,3, 4,5} şi să construim
K 5 = ( X ,U ) , un graf orientat complet cu 5 vârfuri. Să considerăm mulŃimea de
arce
U = {(1, 2 ) , (1, 4 ) , (1,5 ) , ( 2, 4 ) , ( 3,1) , ( 3, 2 ) , ( 4,3) , ( 4,5 ) , ( 5, 2 ) , ( 5,3)}
Graful obŃinut are reprezentarea

2 4

3 5
Fie mulŃimea
V = {(1, 2 ) , (1,5 ) , ( 2,3 ) , ( 2, 4 ) , ( 3,1) , ( 3, 4 ) , ( 4,1) , ( 4,5 ) , ( 5, 2 ) , ( 5,3)}
Se formează astfel K 5′ = ( X , V ) care este tot un graf orientat complet. El diferă de
K 5 descris mai sus prin orientarea arcelor şi are reprezentarea
21
1

2 4

3 5
De asemenea, putem considera drept mulŃime de arce, mulŃimea
W = {(1, 2 ) , (1, 4 ) , (1,5 ) , ( 2,1) , ( 2, 4 ) , ( 3,1) ,
( 3, 2 ) , ( 4, 2 ) , ( 4, 3) , ( 4, 5) , ( 5, 2 ) , ( 5, 3)}
şi se formează acum un graf K 5′′ = ( X , W ) care este graf orientat complet. Acesta
diferă de K 5 prin faptul că unele vârfuri sunt unite de perechi de arce în ambele
sensuri. Graful K 5′′ are ca reprezentare imaginea:

2 4

3 5

ObservaŃie. În cazul grafurilor neorientate, pentru un n ∈ ℕ , n ≥ 2 ,
există un singur graf complet cu n vârfuri, notat K n . În cazul grafurilor orientate
pentru un n ∈ ℕ , n ≥ 2 dat, există mai multe grafuri orientate complete cu n
vârfuri, ele diferind fie prin orientarea arcelor, fie prin numărul de arce ce unesc
două vârfuri, număr ce poate fi 1 sau 2.

22
DefiniŃie. Fie G = ( X , U ) un graf orientat. Numim drum în G o
succesiune de vârfuri d = ( x0 , x1 ,..., xr ) astfel încât pentru orice i = 0,1,..., r − 1 ,
xi xi +1 ∈ U (sau o succesiune de arce care au acelaşi sens, d = ( u1 , u1 ,..., u p ) , cu
proprietatea că pentru orice i = 1, 2,..., p − 1 , ui şi ui +1 au o extremitate comună,
mai exact extremitatea finală a lui ui coincide cu extremitatea iniŃială a lui ui +1 .

Fie d = ( x0 , x1 ,..., xr ) un drum în graful G = ( X , U ) . x0 se numeşte
extremitatea iniŃială, iar xr extremitatea finală a drumului d .
Exemplul 21. Fie X = {1, 2,3, 4,5, 6} şi graful G = ( X , U ) , unde
U = {(1, 2 ) , (1,5 ) , (1, 6 ) , ( 2,3) , ( 2, 4 ) , ( 3, 6 ) , ( 4,3) , ( 5,3) , ( 6, 4 ) , ( 6,5 )}
care are reprezentarea

6
2
5

Succesiunea de vârfuri d = (1, 2,3, 6,5 ) este un drum deoarece există


succesiunea de arce (1, 2 ) , ( 2,3) , ( 3, 6 ) şi ( 6,5 ) .
Extremitatea iniŃială a drumului este 1, extremitatea sa finală este 5

DefiniŃie. Drumul d = ( x0 , x1 ,..., xr ) din graful G = ( X , U ) se numeşte
elementar dacă pentru orice i, j = 0,1,..., r , i ≠ j , avem xi ≠ x j (drumul trece
prin noduri distincte).

Exemplul 22. Drumul d = (1, 2,3, 6,5 ) dat în exemplul 21 este un drum
elementar pentru că trece o singură dată prin fiecare din vârfurile 1, 2, 3, 5 şi 6.

23
DefiniŃie. Fie G = ( X , U ) un graf orientat. Numim lanŃ în G , o secvenŃă
de noduri L = [ x0 , x1 ,..., xr ] cu proprietatea că pentru orice i = 0,1,..., r − 1 avem
( xi , xi +1 ) ∈U sau ( xi +1 , xi ) ∈U (sau o succesiune de arce
L = u1 , u2 ,..., u p  astfel încât pentru orice i = 1, 2,..., p − 1 , arcele ui şi ui +1 au
o extremitate comună – nu se mai pune condiŃia ca arcele să aibă acelaşi sens, ca
la drumuri).

ObservaŃie. Din definiŃie rezultă imediat că orice drum care este într-un
graf orientat este, în acelaşi timp, şi lanŃ în graful orientat respectiv.
Exemplul 23. Conform observaŃiei de mai sus, cum d = (1, 2,3, 6,5 ) din
exemplul 21 este un drum, l = [1, 2,3, 6,5] este şi lanŃ.
Tot în graful din exemplul 21 avem drept lanŃ succesiunea de vârfuri
l ′ = [3, 6,1, 2, 4] deoarece în U avem arcele ( 3, 6 ) , (1, 6 ) , (1, 2 ) şi ( 2, 4 ) .

DefiniŃie. Fie G = ( X , U ) un graf orientat. Pentru orice x, y ∈ X
spunem că y este accesibil din x sau y este atins din x dacă şi numai dacă
există d = ( x0 , x1 ,..., xr ) un drum de capete x şi y .

Exemplul 24. Drumul d = (1, 2,3, 6,5 ) dat în exemplul 21 este un drum
care are extremitatea iniŃială 1 şi cea finală 5. Astfel vârful 5 este accesibil din
vârful 1.
Tot în graful din exemplul 21 avem că vârful 1 nu este accesibil din niciun
alt vârf deoarece nu poate exista niciun drum cu extremitatea finală 1. Acest lucru
este adevărat deoarece d − (1) = 0 (în 1 nu intra niciun arc).

24
II. TIPURI PARTICULARE DE GRAFURI

DefiniŃie. Se numeşte multigraf un graf neorientat în care cel puŃin două


vârfuri sunt unite prin muchii multiple.

Exemplul 1. Graful din imaginea de mai jos este un multigraf.

1 5
3

4
2
O problemă pentru multigrafuri este de specificare a muchiilor care, aşa
cum s-a văzut până acum, sunt mulŃimi de două elemente. Dacă va fi cazul, pentru
muchiile multiple din multigrafuri vom folosi o indiciere în exteriorul mulŃimii
care specifică muchia. Astfel, pentru multigraful de mai sus avem G = ( X , U ) ,
unde X = {1, 2,3, 4,5} şi
U = {{1, 2} , {2, 3}1 , {2, 3}2 , {3, 4}1 , {3, 4}2 , {3, 5}}

DefiniŃie. Graful orientat G = ( X , U ) se numeşte reflexiv (nereflexiv,
simetric, antisimetric, total, tranzitiv) dacă şi numai dacă relaŃia binară U este
relaŃie binară reflexivă (nereflexivă, simetrică, antisimetrică, totală, tranzitivă).

Exemplul 2. Să considerăm o mulŃime de 5 elemente X = {1, 2,3, 4,5} şi
cazul unei relaŃii simetrice definite pe X , şi anume următoarea submulŃime a
produsului cartezian X × X :
U = {(1, 2 ) , (1, 4 ) , ( 2,1) , ( 2,3) , ( 3, 2 ) , ( 4,1) , ( 4,5 ) , ( 5, 4 )}
Se poate observa că pentru orice x, y ∈ X avem că ( x, y ) ∈ U dacă şi
numai dacă ( y, x ) ∈ U de unde rezultă că U defineşte o relaŃie simetrică.

25
Pe de altă parte dacă considerăm graful G = ( X , U ) , cu X şi U definite
ca mai sus, atunci spunem că graful G este simetric. Graful are imaginea:

2
5

3
4

DefiniŃie. Fie G = ( X , U ) un graf orientat. Dacă pentru fiecare x ∈ X
se asociază o etichetă pentru identificare spunem că G este un graf orientat
etichetat.

Observăc că la toate grafurile de mai sus am folosit o numerotare a
vârfurilor. Numerele folosite pot fi considerate etichete pentru vârfuri şi astfel
grafurile pot fi considerate drept grafuri etichetate.
DefiniŃie. Fie G = ( X , U ) un graf orientat. G se numeşte graf orientat
marcat sau reŃea dacă fiecărui u ∈ U i se asociază o marcă mu . În acest caz,
U ⊂ X × M × X , M fiind mulŃimea mărcilor asociate arcelor. Dacă
( x, m, y ) ∈ X × M × X , atunci arcul x → y se marchează cu m şi se reprezintă
prin x 
m
→y.

Exemplul 3. Considerăm dată mulŃimea X = {1, 2,3, 4,5, 6} şi mulŃimea
U = {(1,3) , (1, 6 ) , ( 2, 4 ) , ( 2,5 ) , ( 3, 2 ) , ( 3, 6 ) , ( 4,1) , ( 4,5 ) , ( 5, 6 ) , ( 6, 2 )}
Am definit astfel graful orientat G = ( X , U ) a cărui imagine este

1 4

2 5

3 6

26
Considerăm acum că fiecărei muchii îi asociem o literă. Putem considera
că M = {a, b, c, d , e, f , g , h, i, j} şi că U ⊂ X × M × X este mulŃimea
U = {(1, a, 3) , (1, j , 6 ) , ( 2, b, 4 ) , ( 2, i,5 ) , ( 3, c, 2 ) , ( 3, h, 6 ) , ( 4, d ,1) ,
( 4, g , 5) , ( 5, e, 6 ) , ( 6, f , 2 )}
şi astfel se obŃine un graf orientat marcat pentru care avem reprezentarea

d
1 4
b g
e
i
2 5
a
j f
c h
3 6

DefiniŃie. Numim reŃea etichetată un graf orientat marcat şi etichetat.

De fapt, graful din exemplul anterior, având vârfurile numerotate şi
muchiile marcate, poate fi considerat şi un exemplu de reŃea etichetată.
2.1. Grafuri conexe

DefiniŃie. Graful neorientat G = ( X , U ) se numeşte conex dacă şi numai


dacă oricare ar fi două noduri x, y ∈ X , x ≠ y , există cel puŃin un lanŃ în G ,
L = ( x0 , x1 ,..., xr ) de extremităŃi x şi y .

DefiniŃie. Fie G = ( X , U ) un graf neorientat. Numim componenta
conexă a lui G , un subgraf conex C = ( Y , V ) al său, şi pentru orice x ∈ Y ,
subgraful obŃinut, luând mulŃimea de vârfuri Y \ { x} , nu este conex (subgraful C
este maximal în raport cu proprietatea de conexitate).

Exemplul 4. Considerăm graful neorientat G = ( X ,U ) , unde
X = {1, 2,3, 4,5, 6,7} şi
U = {{1, 2} .{1,3} , {2,3} , {4,5} , {5,1} , {6,7}}
Se poate observa că mulŃimea de vârfuri se poate partaja în două
submulŃimi între care nu există nicio muchie şi anume X 1 = {1, 2,3, 4,5} şi

27
X 2 = {6, 7} . În urma acestei partiŃii se produce şi o partiŃie a mulŃimii de muchii
în
U1 = {{1, 2} .{1,3} , {2,3} , {4,5} , {5,1}}
şi U 2 = {{6, 7}} .
Deoarece nu există muchii între elementele lui X 1 şi X 2 , înseamnă că nu
pot exista lanŃuri între x ∈ X 1 şi y ∈ X 2 şi de aici rezultă că G nu este un graf
conex. Subgrafurile G1 = ( X 1 , U1 ) şi G2 = ( X 2 , U 2 ) sunt grafuri conexe şi astfel
reprezintă componentele conexe ale grafului G .
Imaginea grafului G este:

5
1
G1
4
2
G2
6
3 7

Fie G = ( X , U ) un graf neorientat. Pentru x, y ∈ X spunem că x este
conectat cu y dacă există un lanŃ ce le uneşte, adică există un lanŃ
L = ( x0 , x1 ,..., xr ) de extremităŃi x şi y
Pe mulŃimea X definim relaŃia binară ~ ⊂ X × X , dată prin x ~ y dacă
şi numai dacă ( x = y sau x este conectat cu y ).
PropoziŃia 1. RelaŃia " ~ " definită mai sus este o relaŃie de echivaleŃă
DemonstraŃie.
• reflexivitate – pentru orice x ∈ X deoarece x = x , rezultă că x ~ x .
• antisimetrie – considerăm că x ~ y şi y ~ x . Din x ~ y avem x = y sau
x este conectat cu y , adică există un lanŃ L = ( x0 , x1 ,..., xr ) de
extremităŃi x şi y .
Putem presupune că lanŃul este elementar şi că x = x0 şi y = xr . Din
y ~ x avem x = y sau y este conectat cu x , adică există un lanŃ
L′ = ( y0 , y1 ,..., yq ) de extremităŃi y şi x .

28
Putem presupune că lanŃul este elementar şi că y = y0 şi x = yq .
Presupunem că avem x ≠ y . Atunci rezultă că relaŃiile au loc doar prin
conectare. Fie astfel lanŃul format din concatenarea lanŃurilor L şi L′ şi
astfel x este conectat cu x de unde x ≠ x . ContradicŃie.
• tranzitivitate – deoarece x ~ y avem x = y sau x este conectat cu y ,
adică există un lanŃ L = ( x0 , x1 ,..., xr ) de extremităŃi x şi y . Dacă
x = y , rezultă că în y ~ z putem înlocui y cu x şi rezultă x ~ z .
Deoarece y ~ z avem y = z sau y este conectat cu z , adică există un
( )
lanŃ L′ = y0 , y1 ,..., yq de extremităŃi y şi z .
Dacă y = z , atunci în afirmaŃia „există un lanŃ L = ( x0 , x1 ,..., xr ) de
extremităŃi x şi y ” putem înlocui y cu z şi rezultă „există un lanŃ
L = ( x0 , x1 ,..., xr ) de extremităŃi x şi z ” astfel că rezultă x ~ z .
Dacă nu are loc relaŃia y = z, fie lanŃul
L′′ = ( x0 , x1 ,..., xr = y0 , y1 ,..., yq ) obŃinut prin concatenarea lanŃurilor L
şi L′ . Atunci lanŃul L′′ este de extremităŃi x şi z şi astfel avem că x este
conectat cu z , deci x ~ z .

PropoziŃia 2. Fie G = ( X , U ) un graf în care X = n , U = m şi n ≥ 2 .
Dacă G este conex, atunci m ≥ n − 1 .
DemonstraŃie. Pentru n = 2 , deoarece G este conex rezultă că între cele
două vârfuri există o muchie între ele şi astfel m ≥ 1 .
Presupunem că relaŃia este adevărată pentru un graf cu X = n vârfuri. Fie
H = (Y ,V ) un graf pentru care Y = n + 1 şi fie V = m . Considerăm z ∈ Y şi
subgraful G = ( X ,U ) unde X = Y \ { z} , deci putem scrie că
X = Y − 1 = n + 1 − 1 = n . Putem alege z astfel încât G să fie conex.
Deoarece H este conex, rezultă că există x ∈ X astfel încât { z , x} ∈V ,
deci m = V ≥ U + 1 .
Pentru G conex, din ipoteza de inducŃie rezultă U ≥ X − 1 = n − 1 .
Înlocuind în relaŃia de mai sus obŃinem m = V ≥ U + 1 ≥ n − 1 + 1 = n .
Datorită principiului inducŃiei complete, din cele de mai sus rezultă că
relaŃia din enunŃ este adevărată pentru orice graf conex G .

29
Considerând graful din exemplul 4 în care X = 7 şi U = 6 , deci nu are
loc relaŃia m ≥ n − 1 , ceea ce, reprezentând o negare a propoziŃiei 2, implică faptul
că graful G nu este unul conex, ceea ce este adevărat conform exemplului
considerat.
NoŃiunea de graf conex este valabilă şi pentru grafurile orientate. DefiniŃia
este următoarea:
DefiniŃie. Graful orientat G = ( X , U ) se numeşte conex dacă şi numai
dacă oricare ar fi două noduri x, y ∈ X , x ≠ y , există cel puŃin un lanŃ în G ,
L = ( x0 , x1 ,..., xr ) de extremităŃi x şi y .

Dacă în definiŃia grafului conex pentru grafuri orientate înlocuim condiŃia
de existenŃă a unui lanŃ cu cea de existenŃă a unui drum se obnŃine următoarea
noŃiune.
DefiniŃie. Graful orientat G = ( X , U ) se numeşte tare conex dacă şi
numai dacă oricare ar fi două noduri x, y ∈ X , x ≠ y , există cel puŃin un drum în
G , d = ( x = x0 , x1 ,..., xr = y ) de extremităŃi x şi y .

Exemplul 5. Considerăm un graf orientat G = ( X ,U ) , unde
X = {1, 2,3, 4,5} şi
U = {(1, 2 ) , (1,3) , ( 2,3 ) , ( 2, 4 ) , ( 2,5 ) , ( 3, 4 ) , ( 4,1) , ( 5,1) , ( 5,3) , ( 5, 4 )}
Putem vedea că există un lanŃ:
L = (1, 2 ) , ( 2, 3) , ( 3, 4 ) , ( 5, 4 )  = [1, 2,3, 4,5]
care conŃine toate vârfurile şi astfel se poate ajunge între oricare două vârfuri prin
lanŃuri. Astfel, rezultă că graful orientat G este conex.
Să considerăm vârful 1. Putem forma următoarele drumuri cu extremitatea
iniŃială 1: D1,1 = (1, 2, 4,1) , D1,2 = (1, 2 ) , D1,3 = (1, 2,3) , D1,4 = (1, 2, 4 ) şi
D1,5 = (1, 2,5 ) .
Pentru vârful 2, considerat ca extremitate iniŃială se formează:
D2,1 = ( 2, 4,1) , D2,2 = ( 2, 4,1, 2 ) , D2,3 = ( 2,3) , D2,4 = ( 2, 4 ) , D2,5 = ( 2,5 ) .
Similar, pentru vârful 3 avem: D3,1 = ( 3, 4,1) , D3,2 = ( 3, 4,1, 2 ) ,
D3,3 = ( 3, 4,1, 2,3) , D3,4 = ( 3, 4 ) , D3,5 = ( 3, 4,1, 2,5 ) .
Pentru vârful 4 putem construi: D4,1 = ( 4,1) , D4,2 = ( 4,1, 2 ) ,
D4,3 = ( 4,1,3) , D4,4 = ( 4,1, 2, 4 ) , D4,5 = ( 4,1, 2,5 ) .

30
În fine, folosind ca extremitate iniŃială vârful 5 construim drumurile:
D5,1 = ( 5,1) , D5,2 = ( 5,1, 2 ) , D5,3 = ( 5,3) , D5,4 = ( 5, 4 ) , D5,5 = ( 5,1, 2,5 ) .
Am arătat astfel că din orice x ∈ X se poate ajunge printr-un drum la orice
y ∈ X şi astfel, graful G este tare conex.
Imaginea grafului este

2 3
5

4

O posibilitate de a determina dacă un graf neorientat este conex, sau
determinarea efectivă a componentelor conexe (sau problemele similare pentru
grafurile orientate) constă în aplicarea unui algoritm de tip greede.
Să considerăm întâi problema determinării conexităŃii unui graf neorientat
G = ( X ,U ) .
Algoritm 1.
1. Se consideră Y = X , V = U şi se alege orice x ∈ X pentru care
considerăm B = { x} .
2. Dacă B = ∅ , atunci algoritmul se termină generând un răspuns astfel:
a. Dacă V = ∅ , atunci graful este conex
b. Dacă V ≠ ∅ , atunci graful nu este conex (în plus se poate spune
că mulŃimea X \ Y reprezintă componenta conexă din care face
parte şi nodul x considerat la 1).
Altfel se continuă.
3. Se alege orice y ∈ B .
4. Pentru fiecare z ∈ Y \ B astfel încât { y, z} ∈V considerăm B = B ∪ { z}
şi V = V \ {{ y, z}}
5. Considerăm B = B \ { y} şi reluăm de la 2.

31
Exemplul 6. Se consideră graful din următoarea figură.

5
1

4
2

6
3 7
Folosind algoritmul 1 să determinăm dacă graful considerat este sau nu
conex
Din pasul 1 al algoritmului se fac iniŃializările Y = X = {1, 2,3, 4,5, 6, 7}
şi
V = U = {{1, 2} , {1,3} , {1,5} , {1,6} , {2,3} , {4,5} , {6, 7}} .
Alegem vârful 6 şi considerăm B = {6} .
Deoarece B ≠ ∅ se realizează o primă aplicare a paşilor 3, 4 şi 5 cu
{ }
alegerea 6 ∈ B , rezultând B = {1, 7} şi V = {1, 2} , {1,3} , {1,5} , {2,3} , {4,5} .
În continuare B ≠ ∅ , la a doua aplicare, cu alegerea 7 ∈ B nu există
muchii cu extremitatea 7 şi astfel nu se modifică decât B care devine B = {1}
Pentru a treia aplicare nu putem face decât alegerea 1 ∈ B pentru care va
{
rezulta B = {2,3,5} şi V = {2,3} , {4,5} . }
Putem continua cu alegerea 3 ∈ B pentru care nu avem în V muchii între
3 şi vârfurile din mulŃimea {1, 4, 6, 7} şi astfel se ajunge la B = {2,5} cu V
nemodificat.
A cincea aplicare se poate face cu alegerea 5 ∈ B pentru care efectul este
{
B = {2, 4} şi V = {2,3} . }
În continuare, selectând 2 ∈ B vom obŃine B = {3, 4} şi V = ∅ .
Următoarele aplicaŃii, două la număr sunt în aceeaşi situaŃie ca la a doua
aplicare a algoritmului şi se produc eliminările celor două elemente din B care
ajunge mulŃime vidă.
Cum avem şi V = ∅ , suntem în cazul (a) al răspunsului, deci graful
considerat este unul conex.

Aşa cum se vede din pasul 2, algoritmul prezentat dă răspunsul la
întrebarea „Este G un graf conex?”.

32
De asemenea, se poate determina componenta conexă a grafului G din
care face parte un anumit nod specificat. Acest lucru crează premizele realizării
algoritmului de determinare a componentelor conexe, plecând de la algoritmul 1.
Algoritm 2.
1. Se consideră Y = X , V = U k = 0 .
2. Dacă V = ∅ , atunci algoritmul se termină şi componentele conexe ale
k
grafului G sunt A1 , A2 , ..., Ak . Vârfurile care nu sunt în ∪A k sunt
i =1
vârfuri izolate şi formează fiecare în parte câte o componentă conexă a
grafului G (în plus valoarea pentru k arată dacă graful G este sau nu
conex. Astfel pentru k = 1 şi A1 = X graful este conex, altfel G nu este
conex).
3. Alegem orice x ∈ Y . Fie k = k + 1 , Ak = ∅ , B = { x} .
4. Dacă B = ∅ se trece le 8, altfel se continuă.
5. Se alege orice y ∈ B .
6. Pentru fiecare z ∈ Y \ B astfel încât { y, z} ∈V considerăm B = B ∪ { z}
şi V = V \ {{ y, z}} .
7. Considerăm B = B \ { y} , Ak = Ak ∪ { y} . Se trece la 4.
8. Se elimină din V orice muchie {a, b} pentru care a, b ∈ Ak . Se trece la
2.

Exemplul 7. Considerăm graful de la exemplul 4, deci cu imaginea

5
1

4
2

6
3 7
Să aplicăm algoritmul 2 pentru a determina componentele conexe ale
acestui graf G = ( X , U ) .
Pasul 1 realizează iniŃializările Y = X = {1, 2,3, 4,5, 6, 7} , k = 0 şi
V = U = {{1, 2} , {1,3} , {1,5} , {2,3} , {4,5} , {6,7}}
şi cum V ≠ ∅ rezultă că se continuă cu pasul 3.

33
Să alegem 5 ∈ Y . Avem k = 1 , B = {5} şi A1 = ∅ şi deoarece B ≠ ∅ se
continuă cu paşii 5, 6 şi 7, în urma cărora se ajunge la B = {1, 4} , A1 = {5} şi
V = {{1, 2} , {1,3} , {2,3} , {6, 7}}
Se continuă cu aceeaşi paşi deoarece din nou B ≠ ∅ , şi alegând în prima
iteraŃie vârful 4 şi apoi vârful 1 obŃinem B = {2,3} , A1 = {1, 4,5} şi
V = {{2,3} , {6, 7}} .
Din nou B ≠ ∅ şi după realizarea a încă trei iteraŃii cu ordinea de alegere
2, 3 şi 2 pentru vârfuri se ajunge la situaŃia B = ∅ , A1 = {1, 2,3, 4,5} şi
V = {{6, 7}} . Deoarece nu sunt muchii între nodurile lui A1 din pasul 8 se trece la
pasul 2 care impune reluarea paşilor 3, 4, 5, 6, 7 deoarece V ≠ ∅ . Se consideră
astfel k = 2 şi A2 = ∅
Prin următoarele două iteraŃii se ajunge în starea B = ∅ , V = ∅ ,
A2 = {6, 7} şi la revenirea la pasul 2 cu V = ∅ algoritmul se opreşte.
Deoarece X = A1 ∪ A2 , rezultă că s-a format o partiŃie reprezentând
componentele conexe ale grafului G şi acestea sunt subgrafurile G1 = ( A1 , U1 ) şi
G2 = ( A2 ,U 2 ) , unde U 2 = {{6, 7}} şi
U 2 = {{1, 2} , {1,3} , {1,5} , {2,3} , {4,5}} .

2.2. Grafuri complementare şi izomorfe

DefiniŃie. Fie G = ( X , U ) un graf neorientat, numim complementarul lui


G (graf complementar lui G ), graful CG = ( X , CU ) , în care { x, y} ∈ CU
dacă şi numai dacă { x, y} ∉ U .

DefiniŃie. Fie G = ( X , U ) şi G ′ = ( X ′, U ′ ) două grafuri neorientate.
Spunem că G şi G ′ sunt izomorfe, notăm G ≅ G ′ , dacă există o funcŃie bijectivă
{ }
f : X → X ′ astfel încât { x, y} ∈ U dacă şi numai dacă f ( x ) , f ( y ) ∈ U ′ .

Din definiŃie rezultă că două grafuri sunt izomorfe dacă au acelaşi număr
de vârfuri şi se poate obŃine unul din celălalt printr-o renumerotare a vârfurilor.
DefiniŃii similare celor de mai sus sunt valabile pentru grafurile orientate.
Ele se obŃin înlocuind muchiile cu arce.

34
Exemplul 8. Fie un graf neorientat G = ( X , U ) cu
X = {1, 2,3, 4,5}
şi
U = {{1, 2} , {1,3} , {1, 4} , {2,5} , {4,5}} .
Cum U = 5 şi numărul maxim de muchii este 10 rezultă că graful
complementar are 5 muchii şi astfel avem
V = CU = {{1,5} , {2,3} , {2, 4} , {3, 4} , {3,5}} ,
obŃinându-se graful
CG = ( X , CU ) .
Grafurile din acest exemplu au următoarele imagini:

1 1

3 3
2 2
5 5

4 4

G = ( X ,U ) CG = ( X , CU )

Exemplul 9. Fie un graf orientat G = ( X , U ) cu
X = {1, 2,3, 4,5}
şi
U = {(1, 2 ) , (1,3) , (1, 4 ) , ( 2, 4 ) , ( 2,5 ) , ( 3, 2 ) , ( 3,5 ) , ( 4, 2 ) , ( 4,5 ) , ( 5,1) , ( 5,3)} .
Deoarece numărul total de muchii posibile într-un graf orientat este egal cu
aranjamente de numărul de vârfuri luate câte două, deci 20, şi U = 11 , rezultă că
în graful complementar avem 9 arce şi astfel
CU = {(1,5 ) , ( 2,1) , ( 2,3) , ( 3,1) , ( 3, 4 ) , ( 4,1) , ( 4,3) , ( 5, 2 ) , ( 5, 4 )} .
În acest mod se obŃine graful
CG = ( X , CU ) .
Grafurile orientate din acest exemplu au următoarele reprezentări:

35
1 1

3 3
2 2
5 5

4 4

G = ( X ,U ) CG = ( X , CU )

PropoziŃia 3. Fie G = ( X , U ) şi G′ = ( X ′,U ′ ) două grafuri orientate.
Atunci G ≅ G ′ dacă şi numai dacă CG ≅ CG ′ .
DemonstraŃie. Verificarea concluziei propoziŃiei este imediată folosind
definiŃiile date pentru izomorfismul de grafuri şi pentru graful complementar. De
exemplu, să considerăm implicaŃia ⇒ .
Avem că G ≅ G ′ şi fie f : X → X ′ izomorfismul de la G la G ′ . Astfel
f este o funcŃie bijectivă pentru care are loc enunŃul { x, y} ∈ U dacă şi numai
dacă { f ( x ) , f ( y )} ∈U ′ .
Fie { x, y} ∈ CU . Rezultă, conform definiŃiei grafurilor complementare, că
{ x, y} ∉U . Din G ≅ G′ , se ajunge la { f ( x ) , f ( y )} ∉ G′ de unde obŃinem
{ f ( x ) , f ( y )} ∈ CG′ . De aici obŃinem că f este şi izomorfism de la CG la
CG′ , deci CG ≅ CG′ .

Exemplul 10. Se consideră grafurile G din exemplul 8 şi graful
H = (Y ,V ) , unde
V = {{1, 2} , {1,3} , {2, 4} , {2,5} , {3, 4}}
Considerăm funcŃie f : X → Y , dată prin tabelul
x 1 2 3 4 5
f ( x) 2 4 5 1 3
Ca funcŃie definită pe mulŃimi finite cu acelaşi număr de elemente şi pentru
care observăm că este injectivă, rezultă că f este o funcŃie bijectivă Se poate
observa, de asemenea, că ( x, y ) ∈ U dacă şi numai dacă ( f ( x ) , f ( y ) ) ∈V şi
astfel f este un izomorfism de la G la H . Astfel avem G ≅ H .
Grafurile au următoarea reprezentare:
36
1 2

3 5
2 4
5 3

4 1

G = ( X ,U ) H = (Y , V )

2.3. Grafuri ciclice

DefiniŃie. Fie G = ( X , U ) un graf neorientat. Numim ciclu în G un lanŃ


L = [ x0 , x1 ,..., xr ] în care x0 = xr (în care extremităŃile coincid).

DefiniŃie. Fie G = ( X , U ) un graf neorientat şi L = [ x0 , x1 ,..., xr ] un
ciclu. Spunem că L este ciclu elementar dacă pentru orice 0 ≤ i, j ≤ r − 1 , i ≠ j ,
avem xi ≠ x j (toate vârfurile sale, exceptând extremităŃile, sunt distincte două
câte două) .

DefiniŃie. Fie G = ( X , U ) un graf neorientat şi L = [ x0 , x1 ,..., xr ] un
ciclu. Spunem că L este ciclu simplu daca pentru orice 0 ≤ i, j ≤ r − 1 , i ≠ j ,
{ }
avem { xi , xi +1} ≠ x j , x j +1 (toate muchiile sale sunt distincte două câte două).

Exemplul 11. Fie un graf neorientat G = ( X ,U ) , unde
X = {1, 2,3, 4,5, 6} şi
U = {{1, 2} , {1,3} , {1,5} , {1, 6} , {2,3} , {3, 4} , {4,5} , {4, 6}} .
Pentru acest graf putem da ca exemplu de ciclu lanŃul închis
L1 = [1, 2,3,1,5, 4, 6,1]
Acest ciclu poate fi scris şi ca o succesiune de muchii prin
L1 = {1, 2} , {2,3} , {3,1} , {1,5} , {5, 4} , {4, 6} , {6,1}
Din scrierea ciclului prin vârfuri se poate vedea că ciclul trece de două ori
prin vârful 1 şi astfel nu este un ciclu elementar.

37
Din scrierea ciclului prin muchiile prin care trece se vede că fiecare muchie
apare o singură dată şi astfel ciclul este un ciclu simplu.
Un exemplu de ciclu elementar este L2 = [1, 2,3, 4, 6,1] , în care, cu
excepŃia extremităŃilor, se trece o singură dată prin fiecare vârf
Acest graf are reprezentarea

1
6

2
5

4
În reprezentarea de mai sus am îngroşat muchiile care formează ciclul
elementar L2 .

DefiniŃiile de mai sus continuă să fie valabile şi pentru grafurile orientate.
Suplimentar intervin definiŃiile care urmează.
DefiniŃie. Fie G = ( X , U ) un graf orientat. Numim circuit în G un drum
C = ( x0 , x1 ,..., xr ) în care x0 = xr (în care extremităŃile coincid).

DefiniŃie. Fie G = ( X , U ) un graf orientat şi C = ( x0 , x1 ,..., xr ) un
circuit. Spunem că C este circuit elementar dacă pentru orice 0 ≤ i, j ≤ r − 1 ,
i ≠ j , avem xi ≠ x j (toate vârfurile sale, exceptând extremităŃile, sunt distincte
două câte două) .

DefiniŃie. Fie G = ( X , U ) un graf orientat şi C = ( x0 , x1 ,..., xr ) un ciclu.
Spunem că C este circuit simplu daca pentru orice 0 ≤ i, j ≤ r − 1 , i ≠ j , avem
( xi , xi +1 ) ≠ ( x j , x j +1 ) (toate arcele sale sunt distincte două câte două).

38
Exemplul 12. Considerăm graful orientat G = ( X ,U ) , unde
X = {1, 2,3, 4,5, 6} şi
U = {(1, 2 ) , (1,5 ) , ( 2,3) , ( 3,1) , ( 4,3) , ( 4, 6 ) , ( 5, 4 ) , ( 6,1)} .
Graful considerat, anulând orientarea arcelor, conduce la graful neorientat
din exemplul 11 şi astfel, în graful considerat, L1 = [1, 2,3,1,5, 4, 6,1] este un ciclu
simplu, în timp ce L2 = [1, 2,3, 4, 6,1] este un ciclu elementar. Scrierea ciclului L1
prin arce este
L1 = (1, 2 ) , ( 2,3) , ( 3,1) , (1,5 ) , ( 5, 4 ) , ( 4, 6 ) , ( 6,1)  .
Din această scriere se observă că în ciclul L1 toate arcele sunt în sensul de
la extremitatea stângă la cea dreaptă şi astfel L1 este şi un circuit în G . Deoarece
în L1 fiecare arc intervine o singură dată, rezultă că L1 este un circuit simplu.
Putem astfel scrie
L1 = (1, 2,3,1,5, 4, 6,1)
sau
L1 = ( (1, 2 ) , ( 2,3) , ( 3,1) , (1,5 ) , ( 5, 4 ) , ( 4,6 ) , ( 6,1) ) .
Considerăm în G lanŃul L3 = (1,5, 4,3,1) care este un ciclu elementar
deoarece trece o singură dată prin fiecare vârf şi, în plus, având arcele în sensul
scrierii lanŃului, este şi drum. Astfel, L3 este un circuit elementar în G .
Graful considerat are reprezentarea:

1
6

2
5

şi în aceasta am îngroşat arcele ce formează circuitul L3 .


39
DefiniŃie. Graful neorientat G = ( X , U ) se numeşte ciclic dacă G
conŃine cel puŃin un ciclu şi se numeşte aciclic în caz contrar.

`Exemplul 13. Graful neorientat din exemplul 11 este un graf neorientat
ciclic deoarece conŃine cel puŃin un ciclu (de fapt, am dat exemplu de două cicluri
în graful considerat).

DefiniŃie. Fie G = ( X , U ) un graf orientat. Spunem că G este aciclic
dacă G nu conŃine niciun circuit şi ciclic în caz contrar.

Exemplul 14. Considerăm graful dat în exemplul 12. Deoarece în acest
graf orientat am detectat circuitul L3 , astfel graful este un graf orientat ciclic.

PropoziŃia 4. Fie G = ( X , U ) un graf neorientat. Dacă U ≥ X , atunci
G este ciclic.
DemonstraŃie. Fie X = n , U = m , deci m ≥ n .
Dacă G nu este conex, fie G1 , G2 , ..., Gk . Dacă există un ciclu L în G ,
atunci există 1 ≤ k ≤ r astfel încât L este ciclu în Gx , deoarece în caz contrar ar
exista o muchie între două componente conexe şi astfel cele două componente
conexe coincid. Putem presupune că L este ciclu în G1 şi că pentru orice
2 ≤ i ≤ r , Gi nu conŃine cicluri şi astfel numărul de muchii din componenta
conexă Gi este mai mic decât numărul de vârfuri din Gi .
Prin sumare şi deoarece m ≥ n rezultă că numărul de muchii din
componenta conexă G1 trebuie să fie mai mare decât numărul de vârfuri din
componentă. Astfel, putem presupune că G este conex.
Conform propoziŃiei 2, G conex implică m ≥ n − 1 . Dacă m ≥ n
presupunem că G nu este ciclic. G fiind conex rezultă că pentru orice x, y ∈ X
există doar un drum elementar de la capete x şi y . Atunci, prin eliminarea unei
muchii, graful obŃinut nu mai este conex şi astfel obŃinem un graf neconex pentru
m = n − 1 . ContradicŃie.
Considerăm acum că m = n − 1 şi graful este ciclic. Fie C = [ x0 , x1 ,..., xr ]
un ciclu în G . Atunci putem elimina una din muchiile adiacente cu x0 pentru a
obŃine drumul C = [ x1 ,..., xr ] sau C = [ x0 , x1 ,..., xr −1 ] şi astfel să se păstreze
conexitatea. Rezultă astfel un graf conex pentru care m ≥ n − 2 . ContradicŃie.

40
DefiniŃie. Fie G = ( X , U ) un graf neorientat având k ≥ 1 componente
conexe. Se numeşte punte în G o muchie m ∈ U pentru care graful parŃial
( )
G′ = X ,U \ {m} are numărul de componente conexe mai mare decât k .

Exemplul 15. Considerăm graful neorientat G = ( X ,U ) , unde
X = {1, 2,3, 4,5, 6,7} şi
U = {{1, 2} , {1,3} .{2,3} , {2, 4} , {3, 4} , {3,5} , {5, 6} , {5,7} , {6, 7}}
G are reprezentarea:

1
7
2

3
4

6
5

Şi din reprezentarea grafului se observă că prin eliminarea muchiei {3,5}


conduce la apariŃia componentelor conexe C1 = {1, 2,3, 4} şi C2 = {5, 6, 7} , deci
două componente conexe.
Deoarece graful G este unul conex, numărul componentelor conexe
iniŃiale este 1.
Deoarece eliminarea muchiei {3,5} produce creşterea numărului de
componente conexe, rezultă că muchia {3,5} este o punte.

PropoziŃia 5. Fie G = ( X , U ) un graful neorientat şi m ∈ U . m este
punte, dacă şi numai dacă oricare ar fi ciclul C = [ m1 , m2 ,..., mr ] în G dat prin
muchiile sale, m ≠ mi pentru orice 1 ≤ i ≤ r .

41
DemonstraŃie

Considerăm că m este punte şi că numărul de componente conexe este
egal cu 1. Acest lucru nu reduce generalitatea, deoarece raŃionamentul care
urmează este valabil doar în componenta conexă care conŃine muchia m .
Presupunem că există un ciclu C = [ m1 , m2 ,..., mr ] în G dat prin muchiile
sale astfel încât există i , 1 ≤ i ≤ r , pentru care m = mi .
Fie x, y ∈ G . G fiind conex rezultă că există un lanŃ L = e1 , e2 ,..., e p 
în G , dat prin muchiile sale, de extremităŃi x şi y.
Dacă pentru orice j = 1, 2,..., p , m ≠ e j , atunci L este lanŃ şi în graful
G′ = ( X ,U \ {m} ) ., deci eliminarea muchiei nu întrerupe conectarea dintre x şi y.
Dacă există j, 1≤ j ≤ p , considerăm
lanŃul L′ = e1 ,..., e j −1 , mi +1 ,..., mr , m1 ,..., mi −1 , e j +1 , e p  care are extremităŃile x şi y
şi nu conŃine muchia m şi astfel este lanŃ în graful G ′ = X , U \ {m} . ( )
Din cele de mai sus rezultă că graful G ′ = X , U \ {m} ( ) este conex şi
astfel m nu este punte. ContradicŃie.

Putem presupune, fără a reduce generalitatea, că G este un graf conex.
Altfel, eliminarea unei muchii afectează eventual doar componenta conexă în care
muchia se găseşte, celelalte componente conexe rămânând neschimbate, deci şi
numărul lor. Astfel, dacă G nu este conex, putem reduce raŃionamentul la
subgraful lui G corespunzător componentei conexe în care există muchia m .
Presupunem că oricare ar fi un ciclu C =  m1 , m2 ,..., m p  , avem m ≠ mi
pentru orice 1 ≤ i ≤ p . Atunci, prin eliminarea muchiei m , toate aceste cicluri
rămân valabile.
Dacă presupunem că m uneşte două cicluri, atunci prin eliminare cele
două cicluri devin separate, deci pot intra în două componente conexe diferte.
Dacă m uneşte un vârf de un ciclu, prin eliminare vârful şi ciclul devin
separate, deci pot intra în două componente conexe diferite.
Dacă m se găseşte pe un lanŃ care nu face parte dintr-un ciclu, prin
eliminare se obŃin două componente separate şi deci posibil din două componente
conexe.
Astfel, eliminarea lui m produce apariŃia a două componente conexe în
G , de unde, conform definiŃiei, m este punte.

42
PropoziŃia 6. Fie G = ( X , U ) un graf orientat. G este tare conex dacă şi
numai dacă există un circuit C care conŃine toate vârfurile grafului.
DemonstraŃie

Conform definiŃiei, dacă G este conex, atunci pentru orice x1 , x2 ∈ X
există un drum d1,2 care să aibă extremitatea iniŃială x1 şi extremitatea finală x2 .
Din acelaşi motiv există un drum d 2,1 care să aibă extremitatea iniŃială x2 şi
extremitatea finală x1 . Putem forma astfel un circuit C1 = d1,2 , d 2,1 . ( )
Dacă C1 conŃine toate vârfurile din G , atunci C = C1 este circuitul căutat.
Presupunând că C1 nu conŃine toate vârfurile grafului G , fără a reduce
generalitatea, considerăm că celelalte vârfuri sunt cuprinse în circuitul C2 .
Fie x3 un vârf care se găseşte pe circiutul C2 . Deoarece G este tare
conex, rezultă că există un drum d3 de la x1 la x3 şi există un drum d 4 de la x3
la x1 .
Considerând C2 scris ca drum de la x3 la x3 , formăm astfel un circuit nou
C = ( d1,2 , d 2,1 , d 3 , C2 , d 4 ) care este un circuit ce conŃine toate vârfurile lui G .

Presupunând că în G există un circuit C care conŃine toate vârfurile,
atunci pentru orice x, y ∈ X există un drum d ⊂ C care să fie de extremităŃi x şi
y , deci G este tare conex.

DefiniŃie. Fie G = ( X ,U ) un graf orientat. Definim
V = {( x, y ) ∈ U ∃C circuit in G cu ( x, y ) ∈ C} . Graful parŃial H = ( X ,V ) se
numeşte graful orientat ciclu al lui G .

Exemplul 16. Se consideră un graf orientat G = ( X , U ) cu
X = {1, 2,3, 4,5, 6,7}
şi
U = {(1, 2 ) , ( 2, 4 ) , ( 3,1) , ( 3, 2 ) , ( 3,5 ) , ( 5, 6 ) , ( 6, 7 ) , ( 7,5 )}

43
Graful considerat are reprezentarea

1
7
2

3
4

6
5

În graful G putem identifica circuitele C1 = ( 2, 4,3, 2 ) , C2 = (1, 2, 4,3,1)


şi C3 = ( 5,6, 7,5 ) . Considerând arcele din aceste circuite şi mulŃimea U se vede
că există muchia ( 3,5) care nu face parte din niciun circuit din G . Putem
considera astfel graful parŃial G ′ = ( X , V ) în care
V = {(1, 2 ) , ( 2, 4 ) , ( 3,1) , ( 3, 2 ) , ( 5, 6 ) , ( 6, 7 ) , ( 7,5 )}
Graful G ′ este graful orientat ciclu al grafului G şi are reprezentarea

1
7
2

3
4

6
5

PropoziŃia 7. Fie G = ( X , U ) un graf orientat şi H = ( X , V ) graful
ciclu al lui G . Fie Y ⊂ X şi G ′ = ( Y , W ) subgraf. Atunci G ′ componentă tare
conexă în G dacă şi numai dacă G ′ componentă tare conexă în H .

44
DemonstraŃie

Folosind propoziŃia 6, dacă G ′ este componentă tare conexă a lui G
atunci există un circuit C care conŃine toate vârfurile din Y şi orice x ∈ X \ Y nu
se formează circuite cu x şi vârfuri din Y . Astfel, W ⊂ V şi deci G ′ este subgraf
în H .
C conŃine toate vârfurile din Y şi este circuit maximal în H , de unde
rezultă că G ′ este componentă tare conexă a lui H .

Se repetă în sens invers raŃionamentul de mai sus.

DefiniŃie. Fie G = ( X , U ) un graf orientat şi C1 , C2 , ..., Ct
componentele tari conexe ale lui G . Fie
Y = {C1 , C2 ,..., Ct }
şi
{ }
V = ( Ci , C j ) ∃x ∈ Ci , ∃y ∈ C j cu ( x, y ) ∈ U ⊂ Y × Y .
Graful H = (Y , V ) se numeşte graful condensat al lui G .

ObservaŃie. Graful condensat al oricărui graf orientat este aciclic.
Exemplul 17. Să considerăm din nou graful orientat din exemplul 16. Am
văzut în exemplul 16 că există două circuite, C2 = (1, 2, 4,3,1) şi C3 = ( 5,6, 7,5 ) ,
care sunt circuite care cuprind toate vârfurile din graful orientat ciclic. Astfel am
obŃinut: graful G are două componente tare conexe, corespunzătoare celor două
circuite.
Deoarece în graful G există arcul ( 3,5 ) între vârful 3 care este în
componenta tare conexă C1 şi vârful 5 din componenta tare conexă C2 . Putem
constitui astfel mulŃimea Y = {C1 , C2 } şi V = {( C , C )}
1 2 pentru a forma graful
orientat Gc = (Y , V ) care este astfel graful orientat condensat a grafului G .
Reprezentarea grafului condensat este

C1 C2

45
III. REPREZENTAREA GRAFURILOR
3.1. Reprezentare grafuri neorientate

Forma uzuală de reprezentare a grafurilor neorientate este prin asocierea


unei valori logice pentru existenŃa sau nu a unei muchii între două noduri.
Astfel, dacă G = ( X , U ) este un graf neorientat, atunci pentru orice
x, y ∈ X , considerăm
1 pentru { x, y} ∈ U
m ( x, y ) =  .
 0 pentru { x , y} ∉ U
DefiniŃie. Fie G = ( X , U ) un graf neorientat cu X = n şi presupunem
că X = { x1 , x2 ,..., xn } . Definim matricea AG = ai , j( ) 1≤ i , j ≤ n
∈ M n ({0,1} ) , definită

( )
prin aij = m xi , x j . Matricea AG se numeşte matricea de adiacenŃă asociată
grafului G .

ObservaŃie. Dacă G = ( X , U ) este un graf neorientat şi AG este matricea
sa de adiacenŃă, atunci AG este simetrică, deoarece muchia xi , x j { } este tot una cu
{
muchia x j , xi . }
ObservaŃie. Deoarece am presupus că pentru grafurile studiate nu avem
bucle (muchii de forma { x, x} ), matricea de adiacenŃa AG pentru orice graf
neorientat G = ( X , U ) are diagonala principală formată doar cu valoarea zero.
Atunci când nu există posibilitatea de confuzie, vom nota AG prin A .
Exemplul 1. Fie G = ( X , U ) un graf neorientat cu X = {1, 2,3, 4,5} şi
U = {{1, 2} , {1, 4} , {2,3} , {2, 4} , {3,5} , {4,5}}
Să determinăm matricea de adiacenŃă a grafului.
Graful are imaginea:

46
1

2 3 4

Construim tabelul definiŃie elementelor m ( x, y ) şi obŃinem:


y
1 2 3 4 5
x
1 0 1 0 1 0
2 1 0 1 1 0
3 0 1 0 0 1
4 1 1 0 0 1
5 0 0 1 1 0
Matricea de adiacenŃa este astfel:
0 1 0 1 0
 
1 0 1 1 0
AG =  0 1 0 0 1
 
1 1 0 0 1
0 0 1 1 0 


Dacă G = ( X , U ) este un graf neorientat, atunci pentru orice x, y ∈ X ,
considerăm
1 ∃ L = [ x = x0 , x1 ,..., xr = y ] ˆin G
l ( x, y ) = 
0 altfel
DefiniŃie. Fie G = ( X , U ) un graf neorientat cu X = n şi presupunem

( )
că X = { x 1 , x2 ,..., xn } . Definim matricea LG = lij
1≤i , j ≤ n
∈ M n ({0,1} ) , definită

( )
prin lij = l xi , x j . Matricea LG se numeşte matricea lanŃurilor grafului G .

47
ObservaŃie. Matricea lanŃurilor LG este o matrice simetrică deoarece dacă
există un lanŃ L = [ x = x0 , x1 ,..., xr = y ] de la x la y , atunci există şi un lanŃ de la
y la x şi anume lanŃul L′ = [ y = xr ,..., x1 , x0 = x ] care este chiar lanŃul
L = [ x = x0 , x1 ,..., xr = y ] dar sub o altă scriere (cu nodurile scrise în ordine
inversă).
Exemplul 2. Se consideră graful din exemplul 1 şi dorim să-i scriem
matricea lanŃurilor. Pentru aceasta se observă că avem lanŃurile {1, 2} , {1, 2,3} ,
{1, 4} , {1, 4,5} , {2,3} , {2, 4} , {2,3,5} , {3,5, 4} , {3,5} şi {4,5} care
demonstrează că există lanŃuri între oricare două vârfuri ale grafului (graful este
conex). Astfel, matricea lanŃurilor va fi
1 1 1 1 1
 
1 1 1 1 1
LG = 1 1 1 1 1
 
1 1 1 1 1
1 1 1 1 1


Definim următoarele operaŃii:
• Adunarea logică, + : {0,1} × {0,1} → {0,1} , definită prin a + b = a ∨ b ,
pentru orice a, b ∈ {0,1} , unde ∨ este operaŃia uzuală de disjuncŃie logică
(sau logic);
• ÎnmulŃirea logică i : {0,1} × {0,1} → {0,1} , definită prin
ab = a ib = a ∧ b , pentru orice a, b ∈ {0,1} , unde ∧ este operaŃia uzuală
de conjuncŃie logică (şi logic).
Folosind aceste operaŃii drept operaŃii uzuale, A fiind o matrice cu valori
booleene, are loc următorul rezultat.
PropoziŃia 1. Fie G = ( X , U ) un graf neorientat, A matricea sa de
adiacenŃă şi L matricea lanŃurilor lui G . Atunci are loc relaŃia:
n −1
L = ∑ Ak
k =1

calculele fiind realizate folosind operaŃiile + şi i .

48
DemonstraŃie. Să considerăm întâi că în G avem muchiile {x , x }
i j şi

{x , x } . Atunci în matricea
j k A avem aij = a ji = 1 şi a jk = akj = 1 . În matricea
A = B = (b )
2
avem
ij 1≤i , j ≤ n

n n n
bik = ∑ ais i ask = aij i a jk + ∑ ais i ask = 1 + ∑ ais i ask = 1
s =1 s =1 s =1
s≠ j s≠ j

şi, de asemenea, avem un lanŃ de la xi la xk şi anume lanŃul  xi , x j , xk  .

( )
Similar se poate arăta că dacă în A p = B′ = bij′
avem un lanŃ de la
1≤i , j ≤ n

x la x (deci b′ = 1 ) şi în G avem muchia { x , x } (deci a = 1 ) (ceea ce nu


i j ij j k jk

produce un lanŃ de la x la x ), atunci în A = B′′ = ( b′′ )


i k
p +1
avem b′′ = 1 . ij 1≤i , j ≤ n ik

Folosind acum teorema inducŃiei complete rezultă că în


A n −1
= C = ( cij ) avem cij = 1 dacă şi numai dacă în G există un lanŃ de la
1≤i , j ≤ j

xi la x j şi astfel cij = lij . Acest lucru implică L = An −1 .



Exemplul 3. Pentru graful G = ( X , U ) din figura de mai jos, să calculăm
matricea lanŃurilor folosind formula din propoziŃia 1. Avem n = X = 5

1 5 4

3 2
Matricea de adiacenŃă a grafului este
0 1 0 1 0

0 0 1 0 0
0 0 0 1 A = 1

1 0 0 0 0
0 1 0 0  1

Trebuie să calculăm L = A4 . Pentru A2 = A i A avem:

49
0 0 1 0 1 0 0 1 0 1 1 0 1 0 1
     
0 0 0 1 0 0 0 0 1 0 0 1 0 0 0
A = 1 0 0 0
2
1 i 1 0 0 0 1 = 1 0 1 0 1 ,
     
0 1 0 0 0 0 1 0 0 0 0 0 0 1 0
1 0 1 0 0  1 0 1 0 0   1 0 1 0 1 
 
Pentru A = A2 i A avem
3

1 0 1 0 1 0 0 1 0 1 1 0 1 0 1
     
0 1 0 0 0 0 0 0 1 0  0 0 0 1 0
A = 1 0 1 0
3
1 i 1 0 0 0 1 = 1 0 1 0 1
     
0 0 0 1 0 0 1 0 0 0  0 1 0 0 0
1 0 1 0 1  1 0 1 0 0   1 0 1 0 1 
 
4 3
şi A = A i A conduce la
1 0 1 0 1 0 0 1 0 1 1 0 1 0 1
     
0 0 0 1 0 0 0 0 1 0 0 1 0 0 0
A = 1 0 1 0
4
1 i 1 0 0 0 1 = 1 0 1 0 1
     
0 1 0 0 0 0 1 0 0 0 0 0 0 1 0
1 0 1 0 1  1 0 1 0 0   1 0 1 0 1 
 
Adunând cele 4 matrici avem
1 0 1 0 1
 
0 1 0 1 0
L = 1 0 1 0 1
 
0 1 0 1 0
1 0 1 0 1 


PropoziŃia 2. Fie G = ( X , U ) un graf neorientat şi L matricea lanŃurilor
sale. Graful G este conex dacă şi numai dacă lij = 1 , pentru orice 1 ≤ i, j ≤ n .
DemonstraŃie. G este conex dacă şi numai dacă pentru orice xi , x j ∈ X
există un lanŃ de la xi la x j , dacă şi numai dacă lij = 1 , pentru orice 1 ≤ i, j ≤ n .

ObservaŃie. Dacă G = ( X , U ) este un graf neorientat neconex, având k
componente conexe, atunci putem face o partiŃie a lui X bazată pe componentele
conexe, X = X 1 ∪ X 2 ∪ ... ∪ X k , X i ∩ X j = ∅ pentru orice 1 ≤ i, j ≤ k , i ≠ j ,
50
cu proprietatea că fiecare X i reprezintă nodurile unei componente conexe a lui G .
În plus, există o permutare a nodurilor din X astfel încât indicii nodurilor dintr-o
componentă conexă să fie consecutivi.
DefiniŃie. Fie A o matrice pătrată de ordin n . Dacă
 Bi1 0 ⋯ 0 
 
 0 Bi2 ⋯ 0 
A= 
 ⋮ ⋮ ⋱ ⋮ 
 0 0 ⋯ Bik 
 
unde 0 reprezintă matrici cu toate elementele egale cu zero, B j este o matrice
pătrată de ordin j cu o proprietate dată şi i1 + i2 + ... + ik = n , spunem că A este
matrice bloc diagonală.

PropoziŃia 3. Există o permutare a numerotării nodurilor unui graf
neorientat G = ( X , U ) astfel încât matricea lanŃurilor să fie de formă bloc
diagonală cu blocurile formate doar cu valoarea 1. Blocurile diagonale corespund
componentelor conexe ale grafului.
DemonstraŃie. Este suficient să arătăm că propoziŃia are loc pentru un graf
neconex cu două componente conexe, deoarece pentru un graf conex se foloseşte
propoziŃia 2 pentru a scrie L = Bn , cu X = n şi Bn are toate elementele egale
cu 1.
Datorită observaŃiei făcute mai sus, există o permutare a numerotării
{ } {
indicilor astfel încât X 1 = x1 ,..., xi , X 2 = xi +1 ,..., xi
1 1 2
} cu i1 + i2 = n şi

X = X 1 ∪ X 2 , X 1 ∩ X 2 = ∅ şi subgrafurile de noduri X 1 = x1 ,..., xi1 { } şi

{ }
X 2 = xi1 +1 ,..., xi2 corespund componentelor conexe ale lui G .
Deoarece subgraful G1 = ( X 1 , V1 ) corespunzător lui X 1 este conex, avem
LG1 = Bi1 . Similar, pentru subgraful G2 = ( X 2 ,V2 ) avem LG2 = Bi2 . Cum nu
există muchii între nodurile din X 1 şi nodurile din X 2 , rezultă că lij = 0 pentru
orice 1 ≤ i ≤ i1 şi orice i1 + 1 ≤ j ≤ i2 .
Astfel obŃinem
 Bi1 0 
LG =  .
 0 Bi2 

51
Exemplul 4. Considerăm graful G = ( X , U ) din exemplul 3 pentru care
am calculat matricea lanŃurilor:
1 0 1 0 1
 
0 1 0 1 0
LG =  1 0 1 0 1
 
0 1 0 1 0
1 0 1 0 1 

Cel mai simplu mod de a determina permutarea σ care aplicată lui X să
conducă la un graf pentru care matricea lanŃurilor să fie în format matrice bloc
diagonală este de a realiza o renumerotare a vârfurilor astfel încât vârfurile dintr-o
componentă conexă să fie numerotate cu valori consecutice.
Plecând de la graful G , prin renumerotarea vârfurilor putem obŃine graful
H = ( X ,V ) :

4 5 1

3 2

1 2 3 4 5
pentru care permutarea aplicată este σ =  . (Deoarece
 4 2 3 1 5
σ : X → X este o permutare, deci o funcŃie bijectivă şi se păstrează muchiile,
rezultă că G ≅ H , adică cele două grafuri sunt izomorfe)..
Prin aplicarea permutării la liniile şi coloanele matricii LG se obŃine
matricea
1 1 0 0 0
 
1 1 0 0 0
LH =  0 0 1 1 1
 
0 0 1 1 1
0 0 1 1 1 

care este o matrice bloc diagonală, în care
 1 1
B1 =  
 1 1
şi

52
 1 1 1
 
B2 = 1 1 1 .
1 1 1
 

ObservaŃie. Permutarea care transformă un graf într-un graf izomorf cu
matricea lanŃurilor bloc diagonală nu este unică. Acest lucru reiese din exemplul
următor.
Exemplul 5. Considerăm tot graful din exemplul 3. De această dată
transformăm graful în graful J = ( X , W ) din imaginea:

1 2 4

3 5

1 2 3 4 5 
pentru care permutarea aplicată vârfurilor este π =  .
1 5 3 4 2 
Matrica lanŃurilor pentru acest graf este

1 1 1 0 0
 
1 1 1 0 0
LJ =  1 1 1 0 0 .
 
0 0 0 1 1
0 0 0 1 1 

Care are ca blocuri diagonate pe
 1 1 1
 
B1 =  1 1 1
 1 1 1
 
şi
1 1
B2 =  .
1 1
Se poate observa că matricile LH şi LJ sunt formate din aceleaşi blocuri
diagonale, dar scrise în altă ordine.

53
Prin generalizare putem considera că matricea de adiacenŃă este şi matricea
lanŃurilor de lungime 1. PropoziŃia 2 ne dă modul de determinare a matricii tuturor
lanŃurilor. Din demonstraŃia propoziŃiei 2 putem trage concluzia că Ak dă matricea
lanŃurilor elementare de lungime exact k , pe care o putem nota prin L(G ) şi relaŃia
k

L(Gk ) = Ak este valabilă pentru orice k ∈ ℕ dacă notăm A0 = 0 , matricea cu toate


elementele egale cu zero.
3.2. Matrici asociate grafurilor orientate

DefiniŃie. Fie G = ( X ,U ) un graf orientat cu X =n şi


X = { x1 , x2 ,..., xn } . Matricea AG = ( aij )1≤i , j ≤ n ∈ M n ({0,1}) dată prin
1
 pentru ( xi , x j ) ∈ U
aij =  , orice 1 ≤ i, j ≤ n
0 pentru ( xi , x j ) ∉ U
se numeşte matricea de adiacenŃă a grafului G .

După cum se poate observa, noŃiunea este similară celei de la grafurile


neorientate. De această dată, însă, matricea de adiacenŃă asociată unui graf nu mai
este o matrice simetrică. De asemenea, matricea de adiacenŃă poate conŃine valori 1
pe diagonala principală, dacă graful orientat conŃine arce de forma ( x, x ) ∈ U
(bucle).
DefiniŃie. Fie G = ( X ,U ) un graf orientat cu X =n şi
X = { x1 , x2 ,..., xn } . Matricea C = ( cij )1≤i , j ≤ n ∈ M 2 ({−1, 0,1} ) dată prin
1 pentru ( xi , x j ) ∈ U


{ }
cij = 0 pentru ( xi , x j ) , ( x j , xi ) ∩ U = ∅ , orice 1 ≤ i, j ≤ n

−1 pentru ( xi , x j ) ∉ U si ( x j , xi ) ∈ U
se numeşte matricea de conectare a grafului G .

Exemplul 6. Fie graful G = ( X , U ) pentru care X = {1, 2, 3, 4,5} şi
U = {(1, 2 ) , ( 2, 4 ) , ( 3,1) , ( 3, 2 ) , ( 3, 4 ) , ( 5, 2 ) , ( 5, 5)} .
Graful considerat are următoarea reprezentare:

54
1
2

3 4
Matricea de adiacenŃă a grafului este
0 0 1 0 0
 
0 0 1 0 1
AG =  1 0 0 0 0 ,
 
0 1 1 0 0
0 0 0 0 1 

în timp ce matricea de comutare este
0 0 1 0 0
 
0 0 1 −1 1 
CG =  1 −1 0 −1 0  .
 
0 1 1 0 0
 0 −1 0 0 1 


DefiniŃie. Fie G = ( X , U ) un graf orientat cu X = n şi presupunem că
X = { x 1 , x2 ,..., xn } . Matricea LG = ( lij )1≤i , j ≤ n ∈ M n ({0,1} ) , definită prin
1 ∃  x i = y0 , y1 ,..., yr = x j  lant in G
lij =  , orice 1 ≤ i, j ≤ n
0 altfel
se numeşte matrica lanŃurilor grafului G .

Matricea lanŃurilor se defineşte, în mod similar, cu cea dată pentru grafurile
neorientate şi este o matrice simetrică..
Pentru orice matrice reală A = aij ( ) 1≤i ≤ n putem defini matricea valorilor
1≤ j ≤ m

absolute ale lui A , ca fiind matricea A• = aij ( ) 1≤ i ≤ n


1≤ j ≤ m
. Cu această notaŃie putem

scrie imediat următorul rezultat.

55
PropoziŃia 4. Fie G = ( X , U ) un graf orientat, C matricea sa de
conectare şi L matricea lanŃurilor lui G . Atunci are loc relaŃia:
n −1
L = ∑ C •k
k =1

calculele fiind realizate prin operaŃiile + şi i .


DemonstraŃie. Considerăm graful neorientat G ′ = ( X , V ) în care

{ x, y} ∈V dacă şi numai dacă {( x , x ) , ( x , x )} ∩ U ≠ ∅ (graful neorientat care


i j j i

se obŃine din G prin eliminarea orientării arcelor).


Dacă AG este matricea de adiacenŃă a grafului neorientat G ′ , atunci se
observă uşor că
A• = G′ .
n −1

∑( A )
k
Din propoziŃia 1 avem L = G′ •
şi folosind relaŃia anterioară avem
k =1
n −1
L = ∑ C •k
k =1

PropoziŃia 4 ne indică faptul că propoziŃiile 2 şi 3 enunŃate pentru grafuri
neorientate îşi păstrează enunŃul şi în condiŃiile grafurilor orientate, folosind
noŃiunile de graf conex şi componentă conexă date pentru grafurile orientate.
Exemplul 7. Să considerăm graful din exemplul 6. Pentru determinarea
matricii lanŃurilor avem de scris matricea C • care se obŃine din matricea CG ,
considerând toate elementele în modul. Se obŃine astfe matricea
00 1 0 0
 
00 1 1 1
C• =  1
1 0 1 0 .
 
01 1 0 0
01 0 0 1 

Ultima matrice corespunde grafului neorientat G ′ = ( X , V ) , unde ( x, y ) ∈ V dacă
şi numai dacă {( x, y ) , ( y, x )} ∩ U ≠ ∅ . Imaginea lui G′ este

56
1
2

3 4
Graful G ′ , ca şi graful G , este conex şi astfel matricea lanŃurilor în cele
două grafuri va avea toate elementele egale cu 1, deci
1 1 1 1 1
 
1 1 1 1 1
LG = LG ′ =  1 1 1 1 1 .
 
1 1 1 1 1
1 1 1 1 1


DefiniŃie. Fie G = ( X , U ) un graf orientat cu X = n şi presupunem că
X = { x 1 , x2 ,..., xn } . Matricea DG = ( dij )1≤i , j ≤ n ∈ M n ({0,1}) , definită prin

1 ∃ ( x i = y0 , y1 ,..., yr = x j ) drum in G


d ij =  , orice 1 ≤ i, j ≤ n
0 altfel
se numeşte matricea lanŃurilor grafului G .

DefiniŃie. Fie G = ( X , U ) un graf orientat cu X = n şi presupunem că
X = { x 1 , x2 ,..., xn } . Matricea NDG = ( nd ij )1≤i , j ≤ n ∈ M n ( ℕ ) , definită prin nd ij
este numărul drumurilor în G de la xi la x j , orice 1 ≤ i, j ≤ n , se numeşte
matricea numărului de drumuri din graf G .

PropoziŃia 5. Fie G = ( X , U ) un graf orientat, A matricea sa de
adiacenŃă. Atunci are loc relaŃia DG = A + A2 + ... + + An (pentru calcule se
utilizează operaŃiile + şi i )..
DemonstraŃie. Presupunem că ( x , x ) , ( x , x ) ∈U
i j j k şi astfel avem

aij = 1 şi a jk = 1 . Atunci aij i a jk = 1 şi astfel

57
n
bik = aij i a jk + ∑ ail i alk = 1 ,
l =1
l≠ j

unde A2 = ( bij ) . De aici rezultă că d ik = 1 Pe de altă parte din


1≤i , j ≤ n

( x , x ) , ( x , x ) ∈U , înseamnă că putem forma drumul ( x , x , x )


i j j k i j k în G deci
există drum de la xi la xk .
Asemănător, dacă există un drum (x i = y0 , y1 ,..., yk = x j ) în G de
lungime 1, deci în Ak = bij′ ( ) 1≤ i , j ≤ n
avem bij′ = 1 , şi ( x , x ) ∈ U , deci
j k a jk = 1 ,
atunci, pe de o parte, se formează în G drumul xi = y0 , y1 ,..., yk = x j , xk , iar, ( )
pe de altă parte, prin calcul similar celui din cazul A2 , pentru Ak +1 = ( b′′ )
ij 1≤ i , j ≤ n

obŃinem bik′′ = 1 .

Corolar. În condiŃiile propoziŃiei 5 avem
DG( k ) = Ak .
Calculele în această relaŃie se fac prin operaŃiile + şi i . Am notat
( 5)
cu DG = d ij ( ) (k )
1≤ i , j ≤ n
matricea drumurilor din G de lungime k , definită prin

1 ∃ ( x i = y0 , y1 ,..., yk = x j ) drum in G


d ij( ) =  , orice 1 ≤ i, j ≤ n .
k

0 altfel
DemonstraŃie. RelaŃia rezultă direct din demonstraŃia propoziŃiei 5.

Exemplul 8. Considerăm din nou graful din exemplul 7 pentru care am
scris matricea de adiacenŃă:
0 0 1 0 0
 
0 0 1 0 1
AG =  1 0 0 0 0
 
0 1 1 0 0
0 0 0 0 1 

Pentru A2 = A i A obŃinem

58
0 0 1 0 0  0 0 1 0 0 1 0 0 0 0
    
0 0 1 0 1  0 0 1 0 1 1 0 0 0 1
A = 1
2
0 0 0 0  1 0 0 0 0 = 0 0 1 0 0
    
0 1 1 0 0  0 1 1 0 0 1 0 1 0 1
0 0 0 0 1   0 0 0 0 1   0 0 0 0 1 

Din calculul pentru A3 = A2 i A avem
1 0 0 0 00 0 1 0 0 0 0 1 0 0
    
1 0 0 0 10 0 1 0 1 0 0 1 0 1
A3 =  0 0 1 0 0   1 0 0 0 0 = 1 0 0 0 0
    
1 0 1 0 10 1 1 0 0 1 0 1 0 1
0 0 0 0 10 0 0 0 1   0 0 0 0 1 
 
4 3
Pentru A = A i A rezultă matricea
 0 0 1 0 0  0 0 1 0 0 1 0 0 0 0
    
 0 0 1 0 1  0 0 1 0 1 1 0 0 0 1
A4 =  1 0 0 0 0  1 0 0 0 0 = 0 0 1 0 0
    
 1 0 1 0 1  0 1 1 0 0 1 0 1 0 1
 0 0 0 0 1  0 0 0 0 1   0 0 0 0 1 
 
Prin sumare rezultă matricea
1 0 1 0 0
 
1 0 1 0 1
DG =  1 0 1 0 0
 
1 1 1 0 1
0 0 0 0 1 


PropoziŃia 6. Fie G = ( X , U ) un graf orientat, A matricea sa de
adiacenŃă. Atunci are loc relaŃia
NDG = A + A2 + ... + An
(unde operaŃiile sunt cele uzuale, definite pe ℕ ).
DemonstraŃie. Se procedează în acelaşi mod ca în demonstraŃia
propoziŃiei 5, plecându-se de la presupunerea iniŃială că A conŃine de fapt numărul
de drumuri de lungime 1 din G .

59
Corolar. În condiŃiile din propoziŃia 6 avem
NDG( k ) = Ak .
Calculele se fac prin operaŃiile uzuale definite pe mulŃimea numerelor naturale
5
(
ℕ . Am notat NDG( ) = nd ij(
k)
)
1≤ i , j ≤ n
matricea numărului de drumuri de lungime k
(k )
din G , unde nd ij este numărul de drumuri de lungime exact k având
extremitatea iniŃială xi şi extremitatea finală x j .
DemonstraŃie. Proprietatea rezultă imediat din detalierea demonstraŃiei
propoziŃiei 6.

Exemplul 8. Considerăm din nou graful din exemplul 7 pentru care am
scris matricea de adiacenŃă:
0 0 1 0 0
 
0 0 1 0 1
AG =  1 0 0 0 0
 
0 1 1 0 0
0 0 0 0 1 

Pentru A2 = AA obŃinem
0 0 1 0 0  0 0 1 0 0 1 0 0 0 0
    
0 0 1 0 1  0 0 1 0 1 1 0 0 0 1
A = 1
2
0 0 0 0  1 0 0 0 0 = 0 0 1 0 0
    
0 1 1 0 0  0 1 1 0 0 1 0 1 0 1
0 0 0 0 1   0 0 0 0 1   0 0 0 0 1 

Din calculul pentru A3 = A2 A avem
1 0 0 0 00 0 1 0 0 0 0 1 0 0
    
1 0 0 0 10 0 1 0 1 0 0 1 0 1
A3 =  0 0 1 0 0   1 0 0 0 0 = 1 0 0 0 0
    
1 0 1 0 10 1 1 0 0 1 0 1 0 1
0 0 0 0 10 0 0 0 1   0 0 0 0 1 
 
4 3
Pentru A = A A rezultă matricea

60
0 0 1 0 0  0 0 1 0 0 1 0 0 0 0
    
0 0 1 0 1  0 0 1 0 1 1 0 0 0 1
A = 1
4
0 0 0 0  1 0 0 0 0 = 0 0 1 0 0
    
1 0 1 0 1  0 1 1 0 0 1 0 1 0 1
0  0
0 0 0 1  0 0 0 1   0 0 0 0 1 

Prin sumare rezultă matricea
2 0 2 0 0
 
2 0 2 0 4
NDG =  2 0 2 0 0
 
3 1 4 0 3
0 0 0 0 4 


PropoziŃia 7. Fie G = ( X , U ) un graf orientat cu DG = dij ( ) 1≤i , j ≤ n

matricea drumurilor şi NDG = ndij ( )1≤i , j ≤ n


matricea numărului de drumuri.
Atunci pentru orice 1 ≤ i, j ≤ n , d ij = 1 dacă şi numai dacă nd ij ≠ 0 .
DemonstraŃie. Rezultatul este imediat, deoarece este clar că d ij = 1 dacă şi
numai dacă există cel puŃin un drum de la xi la x j şi astfel nd ij ≠ 0 .

Trebuie să observăm faptul că discuŃia relativă la conexitate pentru grafuri
neorientate şi legătura acestei proprietăŃi cu matricea lanŃurilor are corespondent şi
pentru grafurile orientate când paralela se face între proprietatea de tare conexitate
şi matricea drumurilor. Din această cauză următoarele rezultate sunt date fără
demonstraŃii.
PropoziŃia 8. Fie G = ( X , U ) un graf orientat cu DG matricea
drumurilor. G este tare conex dacă şi numai dacă DG are toate elementele egale
cu 1.

PropoziŃia 9. Există o permutare a numerotării nodurilor unui graf
orientat G = ( X , U ) astfel încât matricea drumurilor să fie de formă bloc
diagonală cu blocurile formate doar cu valoarea 1. Blocurile diagonale corespund
componentelor tari conexe ale grafului.

61
IV. ARBORI
4.1. Definire şi proprietăŃi

DefiniŃie. Numim arbore orice graf neorientat conex şi fără cicluri.



Teorema 1. Fie G = ( X , U ) un graf neorientat. Următoarele afirmaŃii
sunt echivalente:
1. G este arbore.
2. G este aciclic maximal.
3. G este convex minimal.
DemonstraŃie
1⇒ 2
Din definiŃie rezultă că G este aciclic. În plus, deoarece G este şi conex,
conform propoziŃie 2 din capitolul 2, rezultă că U ≥ X − 1 .
Presupunem că adăugăm o muchie nouă. Astfel, dacă { x, y} ∉U ,
(
considerăm graful H = X , U ∪ {{ x, y}}) . Acest graf are acelaşi număr de vârfuri
şi cu 1 mai multe muchii, astfel încât are loc relaŃia U ∪ {{ x, y}} = X . Folosind
propoziŃia 4 din capitolul 2 rezultă că H este un graf ciclic.
Deoarece prin adăugarea oricărei muchii noi la graful G aciclic se obŃine
un graf ciclic, rezultă că G este maximal faŃă de proprietatea de a fi aciclic.
1⇒ 3
Din definiŃie rezultă că G este conex.
Considerăm o muchie oarecare { x, y} ∈U şi graful

( )
H = X , U \ {{ x, y}} pe care îl presupunem conex. Atunci există un lanŃ de
extremităŃi x şi y , L =  x = x0 ,..., x y = y  în H .
Deoarece { x, y} ∈U , considerând L′ =  L, { y, x} în G , avem de fapt
L′ = [ x = x0 ,..., xr = y, x ] , care, având acelaşi vârf la extremităŃi, este un ciclu
în G . ContradicŃie ( G este aciclic).

62
2 ⇒1
Avem ipoteza că G este un graf aciclic maximal. Considerăm că G nu
este conex şi astfel U < X − 1 .
Atunci există x, y ∈ X fără a putea fi conectate printr-un lanŃ. Astfel
pentru a conecta x şi y trebuie să adăugăm muchia { x, y} ∉ U şi astfel să putem
obŃine eventual un graf conex.
G fiind aciclic maximal, rezultă că adăugând o muchie graful devine ciclic
şi astfel obŃinem U + 1 ≥ X , sau altfel scris U ≥ X − 1 . ContradicŃie.
G fiind conex şi aciclic, rezultă că G este arbore.
3⇒1
Avem ipoteza că G este un graf conex minimal. Considerăm că G nu este
aciclic. Atunci există L = [ x = x0 ,..., xr = y, x ] un ciclu în G . Considerăm graful

(
G ′ = X , U \ {{ x, y}} . )
Fie a, b ∈ X . Deoarece G este conex rezultă că a şi b sunt conectate
printr-un lanŃ L′ =  y0 ,..., y p  în G .
Dacă muchia { x, y} nu apare în L′ , atunci L′ este lanŃ şi în G ′ , deci a
şi b sunt conectate în G ′ . Dacă { x, y} apare în L′ atunci pentru L′ avem
explicit
L′ =  y0 ,..., yi = x, y = yi +1 , y p  .
Considerăm lanŃul
L′ =  y0 ,..., yi = x = x0 ,..., xr = y = yi +1 , y p 
care este de extremităŃi a şi b şi este un lanŃ în G ′ , deci a şi b sunt conectate
în G ′ .
De mai sus rezultă că G ′ care se obŃine prin eliminarea unei muchii din G
este conex, şi astfel G nu este minimal la proprietatea de conexitate. ContradicŃie.
Am obŃinut astfel că G este aciclic şi fiind conex, rezultă că G este
arbore.

Corolar. Dacă G = ( X , U ) este arbore, atunci U = X − 1 .
DemonstraŃie. G fiind arbore este aciclic maximal. Cum un graf ciclic are
U ≥ X , rezultă că pentru un graf aciclic avem U < X . Din maximalitatea lui
G la proprietatea de a nu conŃine cicluri, rezultă că numărul de muchii este cel mai
mare care îndeplineşte relaŃia U < X şi astfel U = X − 1 .

63
Exemplul 1. Considerăm graful G = ( X , U ) , unde X = {1, 2,...,15}
(deci X = 15 ) şi care are reprezentarea

2 3 4

5 6 7 8 9

10 11 12 13 14 15
Din reprezentarea grafică se poate vedea că acest graf este conex şi că nu
conŃine cicluri şi astfel graful este un arbore. Avem de asemenea U = 14 şi astfel
este verificată relaŃia U = X − 1 .
Dacă la acest graf adăugăm o muchie, de exemplu {3,8} se obŃine
reprezentarea

2 3 4

5 6 7 8 9

10 11 12 13 14 15

64
se observă că se formează ciclul C = {1,3,8, 4,1} , astfel că noul graf este ciclic,
deci nu mai este un arbore.
Dacă se elimină o muchie, de exemplu {1, 4} , atunci se obŃine
reprezentarea

2 3 4

5 6 7 8 9

10 11 12 13 14 15
Se vede că am obŃinut astfel un graf neconex (de componente conexe
C1 = {1, 2,3,5, 6,10} şi C2 = {4, 7,8,9,11,12,13,14,15} şi deci graful nou nu este
arbore.

PropoziŃie 1. Dacă G = ( X , U ) este un arbore, atunci G are cel puŃin
două vârfuri terminale.
DemonstraŃie. Din propoziŃia 2, capitolul 1 avem că numărul nodurilor cu
gradul impar este par şi astfel trebuie să arătăm că dacă G este arbore atunci
conŃine cel puŃin un nod terminal.
Presupunem că G nu conŃine niciun nod terminal. Astfel, oricare ar fi
x ∈ X , d ( x) ≥ 2 .
Dacă x0 ∈ X , cum d ( x0 ) ≥ 2 , există x1 , x1′ ∈ X , astfel încât
{ x1 , x0 } , { x0 , x1′} ∈U , în plus, x0 , x1 şi x1′ sunt distincte două câte două, pentru
că altfel ar apare un ciclu. Putem forma astfel lanŃul elementar L1 = [ x1′, x0 , x1 ] .

65
Deoarece d ( x1 ) ≥ 2 şi { x0 , x1} ∈U , rezultă că există { x1 , x2 } ∈U . În
plus, trebuie să avem x2 ∉ { x1′, x0 , x1} , deoarece, în caz contrar, se formează un
ciclu. Astfel, putem forma lanŃul L2 = [ x1′, x0 , x1 , x2 ] şi procesul poate continua la
infinit, deci X este infinită. ContradicŃie.

4.2. Arbori parŃiali

DefiniŃie. Fie G = ( X , U ) un graf neorientat şi H = ( X , V ) un graf


parŃial al lui G . Dacă H este arbore spunem că H este un arbore parŃial (de
acoperire sau de traversare) al lui G .

ObservaŃie. Dacă un graf neorientat G = ( X , U ) are arbore parŃial, acesta
nu este unic.
Exemplul 2. Fie graful G = ( X , U ) cu X = 10 care are reprezentarea

1
6

2 3
7

4 5

10 8 9

şi astfel avem
U = {{1, 2} , {1, 4} , {2,3} , {2, 4} , {2,10} , {3,5} , {4, 6} ,
{4,8} , {4,9} , {5, 6} , {5, 7} , {5,10} ,{6, 7} ,{7, 9} , {9,10}}
Putem alege graful parŃial H1 = ( X , V1 ) , unde
V1 = {{1, 2} , {1, 4} , {2,3} , {3,5} , {4, 6} , {4,8} , {4,9} , {6, 7} , {9,10}}
Se poate arăta că graful H1 este un graf conex şi fără cicluri deci este un
arbore. Atunci este un alt arbore parŃial al grafului G .

66
Graful H1 are reprezentarea

1
6

2 3
7

4 5

10 8 9

Ca graf parŃial al grafului G se poate face şi alegerea H 2 = ( X , V2 ) , unde


V2 = {{1, 2} , {2,3} , {2, 4} , {2,10} , {4, 6} , {4,8} , {4,9} , {5, 6} , {6, 7}}
Şi pentru acest graf se poate demonstra că este conex şi aciclic şi astfel şi
H 2 este graf arbore parŃial pentru graful G .
Graful H 2 are reprezentarea

1
6

2 3
7

4 5

10 8 9

Se poate vedea că grafurile H1 şi H 2 sunt diferite şi acest lucru justifică


observaŃia făcută anterior. Se poate arăta că cei doi arbori parŃiali nu sunt nici
izomorfi.

67
DefiniŃie. Fie G = ( X , U ) un graf neorientat şi A = ( X , V ) un arbore
parŃial al lui G . Numim coarde ale lui H elementele mulŃimii U \ V , iar numărul
U \ V se numeşte numărul ciclomatic al lui G .

Exemplu 3. Pentru exemplul 2 se poate constata că U = 15 şi
V1 = V2 = 9 . Cum V1 ⊂ U , rezultă că U \ V1 = U − V1 = 15 − 9 = 6 şi deci,
numărul ciclomatic al grafului G este egal cu 6

Teorema 2. Fie G = ( X , U ) un graf neorientat. G este conex dacă şi
numai dacă G are arbore parŃial.
DemonstraŃie

Considerăm că G este conex. Dacă G este conex minimal, atunci G este
arbore şi astfel H = G este arbore parŃial al lui G .
Dacă G nu este minimal la proprietatea de conexitate, atunci putem
elimina succesiv muchii astfel încât să rămână valabilă proprietatea de conexitate.
Presupunem că obŃinem graful parŃial H = ( X , V ) conex şi astfel încât
dacă eliminăm o muchie din V , atunci graful obŃinut nu mai este conex. Rezultă
astfel că H este maximal la proprietatea de conexitate şi astfel H este un arbore.
Cum H se obŃine din G prin eliminarea de muchii, rezultă că H este graf parŃial
al lui G şi astfel H este arbore parŃial al lui G .

Fie H un arbore parŃial al lui G . H fiind arbore este graf conex.
Fie x, y ∈ X arbitrare. H fiind conex, rezultă că există
L =  m1 , m2 ,..., m p  un lanŃ în H de extremităŃi x şi y , unde pentru orice
i = 1, 2,..., p , mi ∈ V .
Cum V ⊂ U , rezultă că pentru orice i = 1, 2,..., p , mi ∈ U şi astfel
L =  m1 , m2 ,..., m p  este un lanŃ în G de extremităŃi x şi y . Astfel rezultă că G
este un graf conex.

DemonstraŃia de mai sus permite considerarea unui algoritm care să
conducă la determinarea unui arbore parŃial pentru un graf conex.

68
Algoritm 1
1. Fie V = U .
2. Dacă graful H = ( X , V ) nu conŃine cicluri, atunci algoritmul se termină şi
H este un arborele parŃial al lui G , altfel se continuă.
3. Se consideră un ciclu C =  e1 , e2 ,..., e p  în H

{ }
4. Se alege e ∈ e1 , e2 ,..., e p . Considerăm V = V \ {e} şi mergem la 2.

Exemplul 4. Considerăm din nou graful G = ( X , U ) din exemplul 2 şi
facem iniŃializarea
V = U = {{1, 2} , {1, 4} , {2,3} , {2, 4} , {2,10} , {3,5} , {4, 6} ,
{4,8} , {4,9} , {5, 6} , {5, 7} , {5,10} , {6, 7} ,{7, 9} , {9,10}}
Un ciclu din graful ( X , V ) este {1, 2, 4,1} . Pentru a elimina acest ciclu
putem presupune că eliminăm din V muchia {1, 2} şi se obŃine
V = {{1, 4} , {2,3} , {2, 4} , {2,10} , {3, 5} , {4, 6} , {4,8} ,
{4, 9} , {5, 6} , {5, 7} , {5,10} , {6, 7} , {7,9} , {9,10}}
În graful obŃinut se formează ciclul {2,3,5,10, 2} şi pentru a-l elimina
putem considera muchia {2,10} . Rezultatul eliminării ei este
V = {{1, 4} , {2,3} , {2, 4} , {3, 5} , {4, 6} , {4,8} , {4, 9} , {5, 6} , {5, 7} ,
{5,10} , {6, 7} , {7, 9} , {9,10}}
Tot pornind din vârful 2 se formează ciclul {2, 4, 6,5,3, 2} şi pentru
eliminarea lui folosim muchia {2, 4} , obŃinând
V = {{1, 4} , {2,3} , {3,5} , {4, 6} , {4,8} , {4, 9} , {5, 6} , {5, 7} ,
{5,10} , {6, 7} , {7, 9} , {9,10}}
În ultimul graf ( X , V ) se formează ciclul {4, 6, 7,9, 4} şi eliminăm
muchia {7,9} pentru a ajunge la
V = {{1, 4} , {2,3} , {3,5} , {4, 6} , {4,8} , {4,9} , {5, 6} , {5, 7} , {5,10} , {6, 7} , {9,10}}
Detectăm în continuare ciclul {4,9,10,5, 6, 4} şi îl eliminăm prin
excluderea muchiei {9,10} având ca rezultat
V = {{1, 4} , {2,3} , {3,5} , {4, 6} , {4,8} , {4,9} , {5, 6} , {5, 7} , {5,10} , {6, 7}}

69
Ultimul graf ( X ,V ) obŃinut conŃine ciclul {5, 6, 7,5} . Pentru a elimina
acest ciclu putem şterge muchia {6, 7} şi ajungem la
V = {{1, 4} , {2,3} , {3,5} , {4, 6} , {4,8} , {4,9} , {5, 6} , {5, 7} , {5,10}}
Graful obŃinut nu mai conŃine cicluri şi astfel algoritmul 1 pe care l-am
aplicat mai sus se opreşte, graful ( X , V ) fiind un arbore parŃial al grafului G .
Acest lucru este adevărat deoarece pe de o parte ( X , V ) este graf parŃial al lui G
şi, pe de altă parte, deoarece V = 9 = X − 1 , rezultă că ( X , V ) este un arbore.
Arborele parŃial ( X , V ) are reprezentarea

1
6

2 3
7

4 5

10 8 9


PropoziŃia 2. Fie G = ( X , U ) un graf neorientat conex. Atunci numărul
ciclomatic al lui G este U − X + 1 .
DemonstraŃie. Fie H = ( X , V ) arborele parŃial al lui G . Deoarece H
este arbore, rezultă că avem relaŃia V = X − 1 . Numărul ciclomatic al lui G este
prin definiŃie valoarea U \ V .
Din teoria mulŃimilor ştim că dacă V ⊂ U , atunci U \ V = U − V .
Înlocuind valoarea pentru V , pentru numărul ciclomatic al lui G obŃinem
U \ V = U − V = U − ( X − 1) = U − V + 1 .

70
PropoziŃia 3. Fie G = ( X , U ) un graf neorientat conex, A = ( X , V ) un
arbore parŃial al lui G şi e = { x, y} o coardă a lui A . Atunci graful
H = ( X , V ∪ {e}) conŃine exact un ciclu.
DemonstraŃie. Deoarece A este un arbore, deci este aciclic maximal şi H
se obŃine din A prin adăugarea de muchii, rezultă că H este un graf ciclic (deci
conŃine cel puŃin un ciclu)
Presupunem că H conŃine două cicluri diferite care trec prin muchia e
(dacă doar unul ar trece prin muchia e prin eliminarea acestei muchii se elimină un
singur ciclu şi astfel ar rezulta că A este ciclic, deci nu poate fi arbore).
Fie astfel C1 =  x = x0 , x1 ,..., x p = y , x  şi C2 = [ x = y0 , y1 ,..., yr = y, x ]
cele două cicluri. Putem forma ciclul
C =  x = x0 , x1 ,..., x p = y = yr ,..., y1 , y0 = x 
Care nu conŃine muchia e şi astfel este ciclu şi în A , care astfel nu este arbore.
ContradicŃie.

4.3. Algoritmul lui Kruskal

Problema arborelui parŃial de cost minim. Fie G = ( X , U ) un graf


neorientat conex, c : U → ( 0, ∞ ) o funcŃie, numită funcŃie cost a muchiilor lui G
şi H = ( X , V ) un graf parŃial al lui G . Numim costul lui H suma costurilor
tuturor muchiilor din V , adică valoarea c ( H ) = ∑ c ( u ) . Se pune problema
u∈U
determinării în G a unui graf parŃial conex de cost minim.
DefiniŃie. Fie G = ( X , U ) un graf neorientat conex, c : U → ( 0, ∞ )
funcŃia cost a muchiilor lui G şi Tcm = ( X , Vcm ) un arbore parŃial cu proprietatea
că pentru orice arbore parŃial T = ( X , V ) avem c (Tcm ) ≤ c (T ) . Atunci spunem
că Tcm este arbore parŃial de cost minim al lui G .

Teorema 3. Fie G = ( X , U ) un graf neorientat conex, c : U → ( 0, ∞ )
funcŃia cost a muchiilor lui G şi H = ( X , V ) un graf parŃial al lui G . Dacă H
este graf parŃial conex de cost minim, atunci H este arbore parŃial de cost minim.
DemonstraŃie. Presupunem că H nu este arbore parŃial, deci H nu este
arbore. Deoarece H este conex, ca H să nu fie arbore trebuie ca H să nu fie
aciclic. Astfel, există un ciclu C în H şi fie e o muchie a ciclului C .

71
( )
Considerăm graful H ′ = X , V \ {e} . Acest graf este conex, pentru că se
obŃine din H prin eliminarea unei muchii ce aparŃine unui ciclu. Din calculul
costurilor avem:
c ( H ) = ∑ c (u ) = c ( e) + ∑ c ( u ) > ∑ c ( u ) = c ( H ′)
u∈V u∈V \{e} u∈V \{e}

de unde rezultă că H nu este de cost minim. ContradicŃie.



Algoritmul 2. (Kruskal).
1. Considerăm că L ( i ) = i pentru fiecare i = 1, 2,..., X , construim M ( j ) ,
. j = 1, 2,..., U reprezentând muchiile lui G în ordinea crescătoare a
costurilor, considerăm k = 0 (pentru numărarea muchiilor selectate) şi
j = 1 (pentru parcurgerea lui M ). Fie V = ∅ .
2. Dacă k ≥ n − 1 , atunci algoritmul se opreşte, muchiile din V determină
arborele parŃial de cost minim, altfel se continuă.
3. Considerăm { p, q} = M ( j ) .
4. Dacă L ( p ) = L ( q ) , atunci punem j = j + 1 şi mergem la 3, altfel se
continuă.
5. Punem k = k + 1 şi V = V ∪ {{ p, q}} .
6. Dacă L ( p ) < L ( q ) , atunci înlocuim în L toate valorile L ( q ) prin
L ( p ) , altfel înlocuim în L toate valorile L ( p ) prin L ( q ) .
7. Punem j = j + 1 şi mergem la 2.

Exemplul 5. Fie un graf neorientat G = ( X , U ) cu X = {1, 2,3, 4,5, 6} şi
cu reprezentarea
5
1 2
1 3 4
2
3
5 4 6
3
2 4
1
3
în care valorile trecute pe muchii sunt valorile funcŃiei cost c : U → ℝ .

72
Dorim să determinăm un graf parŃial de cost minim al lui G . Pentru
aceasta vom folosi algoritmul lui Kruskal prezentat mai sus.
Conform primului pas generăm vectorul L = (1, 2,3, 4,5, 6 ) . Ordonăm
muchiile în ordine crescătoare şi ne rezultă vectorul
M = ({1,5} , {3, 6} , {2, 4} , {3,5} , {1, 6} , {2,3} , {4,5} , {3, 4} , {2, 6} , {1, 2} ) .
Punem k = 0 , j = 1 şi V = ∅
Cum k = 0 şi n − 1 = 5 nu se îndeplineşte condiŃia din pasul 2 şi intervine
prima iteraŃie a algoritmului.
Prima iteraŃie
Considerăm muchia {1,5} . Deoarece L (1) = 1 ≠ 5 = L ( 5 ) se continuă cu
pasul 4 şi trecem la k = 1 şi adăugăm muchia considerată la V care devine astfel
{
V = {1,5} ..}
Deoarece L (1) = 1 < 5 = L ( 5 ) , conform pasului 5 înlocuim toate valorile
5 prin valoarea 1 şi astfel L ajunge la forma L = (1, 2,3, 4,1, 6 ) .
Se consideră j = 2 şi terminăm prima iteraŃie şi cum k = 1 şi n − 1 = 5
reluăm cu o nouă iteraŃie.
A doua iteraŃie
Muchia a doua din M este {3, 6} şi avem L ( 3) = 3 ≠ 6 = L ( 6 ) . Astfel
ajungem la k = 2 şi adăugând muchia la V , se obŃine V = {{1,5} , {3, 6}} .
Cum L ( 3) = 3 < 6 = L ( 6 ) , prin schimbarea valorilor 6 cu 3 ajungem la
L = (1, 2,3, 4,1,3) şi iteraŃia se termină considerând j = 3 . În plus avem k = 2 şi
n − 1 = 5 astfel că vom continua.
A treia iteraŃie
Următoarea muchie considerată este {2, 4} pentru care avem
L ( 2) = 2 ≠ 4 = L ( 4) şi ajungem la configuraŃia k =3 şi
V = {{1,5} , {3, 6} , {2, 4}} .
Deoarece L ( 2 ) = 2 < 4 = L ( 4 ) prin schimbarea valorilor se obŃine
L = (1, 2,3, 2,1,3) şi după ce facem j = 4 vom continua cu o nouă iteraŃie
deoarece k = 3 şi n − 1 = 5 .
A patra iteraŃie
Luăm muchia {3,5} şi avem L ( 3) = 3 ≠ 1 = L ( 5 ) ceea ce generează nouă
structură k = 4 şi V = {{1,5} ,{3, 6} , {2, 4} , {3,5}} .

73
Acum avem L ( 3) = 3 > 1 = L ( 5 ) astfel că se înlocuiesc toate apariŃiile lui
3 prin valoarea 1 şi obŃinem L = (1, 2,1, 2,1,1) şi după ce ajungem la j = 5 vom
trece la următoarea iteraŃie deoarece k = 4 şi n − 1 = 5 .
A cincea iteraŃie
Noua muchie considerată este {1, 6} pentru care L (1) = 1 = L ( 6 ) astfel că
face j = 6 şi luăm o nouă muchie, {2,3} . Pentru aceasta L ( 2 ) = 2 ≠ 1 = L ( 3) şi
ca urmare vom ajunge la situaŃia k =5 şi
V = {{1,5} , {3, 6} , {2, 4} , {3,5} , {2,3}} .
RelaŃia exactă relativă la valorile din L este L ( 2 ) = 2 > 1 = L ( 3) şi astfel
se ajunge la L = (1,1,1,1,1,1) . Facem j = 7 . La revenirea la pasul 2 cu k = 5 şi
n − 1 = 5 condiŃia este îndeplinită pe egalitate şi astfel algoritmul se opreşte. Am
obŃinut graful parŃial H = ( X , V ) care este arbore parŃial de cost minim, costul
arborelui fiind CH = 1 + 1 + 2 + 2 + 3 = 9 . Arborele parŃial de cost minim are
reprezentarea

1 2
1
2

5 4 6
3
2
1
3

4.4. ArborescenŃe

DefiniŃie. Fie G = ( X , U ) un graf orientat conex şi aciclic. Dacă există


un unic vârf x0 ∈ X cu d − ( x0 ) = 0 şi pentru orice x ∈ X , x ≠ x0 avem
d − ( x ) ≠ 0 , spunem că G este o arborescenŃă (sau arbore orientat). x0 poartă
numele de rădăcină a arborescenŃei G . Vârfurile y pentru care d + ( y ) = 0 se
numesc vârfuri terminale sau frunze.

74
DefiniŃie. Fie A = ( X , U ) o arborescenŃă cu rădăcina x0 . Pentru un vârf
x ∈ X definim nivelul nodului prin l ( x0 ,..., x ) , unde ( x0 ,..., x ) este drumul
(unic) de extremitate iniŃială x0 şi extremitate finală x .

Exemplul 6. Considerăm graful orientat conex şi aciclic G = ( X , U ) cu
10 vârfuri şi care are reprezentarea

2 3

4 5 6 7 8

9 10
Graful G este conex deoarece există lanŃuri între oricare două vârfuri. El
este aciclic. De asemenea există un unic vârf (notat 1) pentru care gradul de intrare
este zero, iar celelalte vârfuri au gradul de intrare mai mare sau egal cu 1. Astfel,
graful orientat G este o arborescenŃă.
Deoarece d − (1) = 0 , rezultă că vârful 1 este rădăcina arborescenŃei.
Observând că d + ( 6 ) = 0 rezultă că 6 este o frunză a arborescenŃei.
MulŃimea frunzelor arborescenŃei G este mulŃimea {4, 6, 7,8,9,10} .
Se poate vedea că l (1, 2 ) = l (1,3) = 1 şi astfel vârfurile 2 şi 3 se găsesc pe
acelaşi nivel, şi anume pe nivelul 1. Avem şi l (1, 2,5,9 ) = l (1, 2,5,10 ) = 3 , deci
putem spune că vârfurile 9 şi 10 se găsesc pe acelaşi nivel 3.

DefiniŃia de mai sus clasifică vârfurile arborescenŃelor în funcŃie de
distanŃa lor faŃă de rădăcină. Această clasificare are ca efect o reprezentare în care
nodurile sunt poziŃionate pe fiecare nivel, cu rădăcina arborescenŃei în partea
superioară a imaginii.

75
Pentru o arborescenŃă A = ( X , U ) , dacă ( x, y ) ∈U , spunem că
x este
părintele (tatăl) lui y şi y este fiul (descendentul direct) lui x . Dacă x, y ∈ X
şi există drumul (unic) ( x, z1 ,..., zk , y ) , spunem că y este descendentul lui x .
DefiniŃie. Fie A = ( X , U ) o arborescenŃă. Dacă pentru orice x ∈ X
avem d + ( x ) ∈ {0,1, 2} . Spunem că A este o arborescenŃă binară (arbore binar).
Dacă d + ( x ) ∈ {0, 2} , spunem că A este o arborescenŃă binară completă (arbore
binar complet).

Exemplul 7. Considerăm arborescenŃa din imaginea de mai jos

2 3

4 5 6

7 8
care are ca răvădină vârful 1. Avem
d + ( 4 ) = d + ( 5 ) = d + ( 7 ) = d + ( 8) = 0 ,
d + ( 3) = 1
şi
d + (1) = d + ( 2 ) = d + ( 6 ) = 2 ,
deci orice vârf are gradul de ieşire în mulŃimea {0,1, 2} . Rezultă că arborescenŃa
considerată este un arbore binar.
Deoarece d + ( 3) = 1 rezultă că arborele binar nu este complet.. Dacă am
adăuga vârful 9 şi arcul ( 3,9 ) se obŃine d + ( 3) = 2 şi d + ( 9 ) = 0 şi vom obŃine un
arbore binar complet. Acesta are reprezentarea

76
1

2 3

4 5 6 9

7 8

Teorema 4. Pentru orice n ∈ ℕ *
există A = ( X , U ) o arborescenŃă
binară astfel încât
{x ∈ X d + ( x ) = 0} = n
(numărul vârfurilor terminale să fie egal cu n ).
DemonstraŃie. Dacă n = 1 , atunci X = { x0 } şi U = ∅ . Astfel

{
A1 = ( X , U ) este arborescenŃă binară şi x ∈ X d + ( x ) = 0 = { x0 } = 1 . }
Dacă n = 2 , atunci fie X 1 = { x1 , x2 } . Considerăm X 2 = { x1,2 } şi
mulŃimea de arce U1 = {( x
1,2 }
, x2 ) , ( x1,2 , x2 ) . Deoarece X 2 are un element, există
o arborescenŃă binară A1 = ( X 2 , U 2 ) cu un nod terminal. Fie arborescenŃa
A2 = ( X 1 ∪ X 2 , U1 ∪ U 2 ) care este o arborescenŃă binară şi are numărul de noduri
terminale X 1 = { x1 , x2 } = 2 = n .
Presupunem că pentru orice i = 1, 2,..., k există Ai = (Yi , Vi ) arborescenŃă
binară cu numărul de vârfuri terminale egal cu i .
Considerăm n = k + 1 .
Dacă k + 1 este număr par, deci k +1 = 2 p , considerăm
X 1 = { x1 , x2 ,..., x2 p −1 , x2 p } . Fie X 2 = { x1,2 , x3,4 ,..., x2 p −1,2 p } pentru care avem
X 2 = p ≤ k . Considerăm mulŃimea de muchii

77
U1 = {( x 1,2 }
, x1 ) , ( x1,2 , x2 ) ,..., ( x2 p −1,2 p , x2 p −1 ) , ( x2 p −1,2 p , x2 p ) .
Deoarece X 2 = p ≤ k , rezultă că există Ap = (Yp , V p ) o arborescenŃă
binară care are p noduri terminale. Fie atunci Ak +1 = X 1 ∪ Yp , U1 ∪ V p care este ( )
o arborescenŃă binară care are numărul de noduri terminale egal cu
X 1 = { x1 , x2 ,..., x2 p −1 , x2 p } = 2 p = k + 1 .
Dacă k +1 este număr impar, deci k + 1 = 2q + 1 , considerăm
X 1 = { x1 , x2 ,..., x2 q −1 , x2 q , x2 q +1} . Fie X 2 = { x1,2 , x3,4 ,..., x2 q −1,2 q } pentru care
avem X 2 = q < k . Considerăm mulŃimea de muchii
U1 = {( x 1,2 }
, x1 ) , ( x1,2 , x2 ) ,..., ( x2 q −1,2 q , x2 q −1 ) , ( x2 q −1,2 q , x2 q ) .
Deoarece X 2 = q < k , pentru X 2 ∪ { xq +1} cu număr de elemente
q + 1 ≤ k există Aq +1 = (Yq +1 , Vq +1 ) o arborescenŃă binară care are q + 1 noduri
( )
terminale. Fie atunci Ak +1 = X 1 ∪ Yq +1 , U1 ∪ Vq +1 care este o arborescenŃă binară
care are numărul de noduri terminale egal cu
X 1 = { x1 , x2 ,..., x2 q −1 , x2 q , x2 q +1} = 2q + 1 = k + 1 .
Folosind teorema inducŃiei complete, obŃinem că afirmaŃia din enunŃ este
adevărată pentru orice n ∈ ℕ* .

PropoziŃia 4. Fie A = ( X , U ) o arborescenŃă binară completă în care

{x ∈ X d + ( x ) = 0} = n . Atunci U = 2 ( n − 1) .
DemonstraŃie. Pentru n = 1 , conform construcŃiei din demonstraŃia
teoremei 4, V1 = ∅ şi astfel V1 = 0 = 2 (1 − 1) . De semenea, pentru n = 2 avem
V2 = {( x1,2 }
, x2 ) , ( x1,2 , x2 ) şi astfel V2 = 2 = 2 ( 2 − 1) .
Presupunem că pentru orice i = 1, 2,..., k enunŃul propoziŃiei este adevărat
şi fie n = k + 1 .
Dacă k + 1 este număr par, deci k + 1 = 2 p , conform construcŃiei din
(
demonstraŃia teoremei 4, avem Ak +1 = X 1 ∪ Yp , U1 ∪ V p şi Ap = Yp , V p ) ( ) este o
arborescenŃă binară completă cu p vârfuri terminale şi astfel V p = 2 ( p − 1) . Din
construcŃie avem U1 = 2 p . Cum U1 ∩ V p = ∅ , rezultă că
Vk +1 = U1 ∪ V p = U1 + V p = 2 p + 2 ( p − 1) = 2 ( 2 p − 1) = 2 ( k + 1 − 1) = 2k .
78
Dacă k + 1 este număr impar, deci k + 1 = 2q + 1 , conform construcŃiei
din demonstraŃia teoremei 4, avem Ak +1 = ( X 1 ∪ Yq +1 , U1 ∪ Vq +1 ) şi
Aq +1 = (Yq +1 , Vq +1 ) este o arborescenŃă binară care are q + 1 noduri terminale şi
astfel Vq +1 = 2 ( q + 1 − 1) = 2q . Din construcŃie avem U1 = 2q . Cum
U1 ∩ Vq +1 = ∅ , rezultă că
Vk +1 = U1 ∪ Vq +1 = U1 + Vq +1 = 2q + 2q = 2 ( 2q + 1 − 1) = 2 ( k + 1 − 1) = 2k .
Din teorema inducŃiei complete rezultă că enunŃul din propoziŃie este
adevărat pentru orice n ∈ ℕ* .

DefiniŃie. Fie A = ( X , U ) o arborescenŃă binară şi

{
DT = s ∈ ℕ ∃x ∈ X cu d + ( x ) = 0 si l ( x0 ,..., x ) = s }
(mulŃimea distanŃelor de la rădăcină la fiecare vârf terminal). Dacă
max DT − min DT ≤ 1 , spunem că A este o arborescenŃă binară echilibrată.

Exemplul 8. Pentru ambele grafuri orientate din exemplul 7 avem
DT = {2,3} de unde
max DT − min DT = 3 − 2 = 1 ≤ 1
şi astfel ambele grafuri sunt arborescenŃe binare echilibrate.

Teorema 5. Fie A = ( X ,U ) o arborescenŃă binară. Următoarele
afirmaŃii sunt echivalente:
1. A este o arborescenŃă binară echilibrată;
2. pentru orice x ∈ X cu d + ( x ) = 0 , dacă X = 2m , atunci
m = l ( x0 ,..., x ) şi dacă 2 < X < 2 m m +1
, atunci l ( x0 ,..., x ) ∈ {m, m + 1} .
DemonstraŃie

Presupunem că 2m ≤ X < 2m +1 şi există x ∈ X , d + ( x ) = 0 şi
l ( x0 ,..., x ) < m . Presupunând că nivelul l ( x0 ,..., x ) este complet, atunci şi
nivelurile anterioare sunt complete şi astfel numărul total de vârfuri din nivelurile
1, 2, ..., l ( x0 ,..., x ) este
(
l x0 ,..., x )
0 1 ( )
l x0 ,..., x −1 2 −1 (
l x0 ,..., x )
2 + 2 + ... + 2 = =2 − 1 < 2m − 1 .
2 −1
ContradicŃie.

79
În mod asemănător se arată că se obŃine o contradicŃie dacă presupunem că
2 ≤ X < 2m +1 şi există x ∈ X , d + ( x ) = 0 şi l ( x0 ,..., x ) > m + 1 .
m

Am arătat astfel că dacă presupunem 2m ≤ X < 2m +1 , atunci pentru orice


x ∈ X cu d + ( x ) = 0 avem m ≤ l ( x0 ,..., x ) ≤ m + 1 şi cum l ( x0 ,..., x ) ∈ ℕ
rezultă l ( x0 ,..., x ) ∈ {m, m + 1} .
Putem astfel spune că, în particular, dacă 2m < X < 2m +1 , atunci
l ( x0 ,..., x ) ∈ {m, m + 1} , ceea ce demonstrează partea a doua a afirmaŃiei făcute în
enunŃ.
Să presupunem că X = 2 m . Nivelul k este complet dacă şi numai dacă
toate nivelurile anterioare sunt complete şi astfel numărul de vârfuri din primele k
niveluri este 2k . Deoarece X = 2 m , rezultă că şi nivelul m este complet şi nu
există vârfuri pe nivelul m + 1 . Astfel, toate vârfurile terminale se găsesc pe nivelul
m şi astfel max DT = min DT = m , ceea ce implică faptul că pentru orice x ∈ X
cu d + ( x ) = 0 avem l ( x0 ,..., x ) = m .

Dacă orice x ∈ X cu d + ( x ) = 0 şi X = 2 m avem l ( x0 ,..., x ) = m ,
rezultă că
{ }
DT = s ∈ ℕ ∃x ∈ X cu d + ( x ) = 0 si l ( x0 ,..., x ) = s = {m} .
Astfel max DT = min DT = m şi deci max DT − min DT = 0 ≤ 1 de unde
obŃinem că G este o arborescenŃă binară echilibrată.
Dacă orice x ∈ X cu d + ( x ) = 0 şi 2m < X < 2m +1 avem
l ( x0 ,..., x ) ∈ {m, m + 1} , rezultă că
{ }
DT = s ∈ ℕ ∃x ∈ X cu d + ( x ) = 0 si l ( x0 ,..., x ) = s = {m, m + 1} .
Astfel min DT = m şi max DT = m + 1 , deci max DT − min DT = 1 ≤ 1 de unde
obŃinem că G este o arborescenŃă binară echilibrată.

80

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