Sunteți pe pagina 1din 148

SILVIU BRZ

LUCIANA MARIA MOROGAN



ALGORITMICA GRAFURILOR


Editura Fundaiei Romnia de Mine, 2008
Editur acreditat de Ministerul Educaiei i Cercetrii prin
Consiliul Naional al Cercetrii tiinifice din nvmntul Superior.



Descrierea CIP a Bibliotecii Naionale a Romniei
BRZ, SILVIU
Algoritmica grafurilor / Silviu Brz, `Luciana
Maria Morogan Bucureti: Editura Fundaiei
Romnia de Mine, 2008
148p.;23,5 cm
Bibliogr.
ISBN 978-973-163-147-9

I. Morogan, Luciana Maria

004.421.2.519.17(075.35)


Reproducerea integral sau fragmentar, prin orice form i prin mijloace
tehnice, este strict interzis i se pedepsete conform legii.

Rspunderea pentru coninutul i originalitatea textului revine exclusiv
autorului/autorilor
UNIVERSITATEA SPIRU HARET
FACULTATEA DE MATEMATIC INFORMATIC



SILVIU BRZ
LUCIANA MARIA MOROGAN












ALGORITMICA GRAFURILOR
















EDITURA FUNDAIEI ROMNIA DE MINE
Bucureti, 2008
-
5



CUPRINS



Introducere .. 7
Capitolul I. INTRODUCERE N TEORIA GRAFURILOR .. 9
1.1. Grafuri neorientate .......... 9
1.2. Grafuri orientate . 17
Capitolul II. TIPURI PARTICULARE DE GRAFURI .. 25
2.1. Grafuri conexe 27
2.2. Grafuri complementare i izomorfe 34
2.3. Grafuri ciclice 37
Capitolul III. REPREZENTAREA GRAFURILOR 46
3.1. Reprezentare grafuri neorientate . 46
3.2. Matrici asociate grafurilor orientate .... 54
Capitolul IV. ARBORI ... 62
4.1. Definire i proprieti .......... 62
4.2. Arbori pariali .................. 66
4.3. Algoritmul lui Kruskal ............ 71
4.4. Arborescene ............... 74
Capitolul V. GRAFURI HAMILTONIENE I EULERIENE 81
5.1. Grafuri Hamiltoniene .. 81
5.2. Grafuri Euleriene . 83
Capitolul VI. ALGORITMI PENTRU DRUMURI N
GRAFURI ORIENTATE 88
6.1. Algoritmi de calcul direct ... 88
6.2. Algoritmul Wharshal pentru drumuri minime n grafuri orientate . 94
6.3. Algoritmul lui Dantzig pentru drumuri minime de extremitate
iniial dat . 98
6.4. Algoritmul Bellman-Kalaba pentru drumuri minime de extremitate
final dat ............................... 100
6.5. Algoritmii lui Ford i Dijkstra pentru drumuri minime de extremiti
date .................................... 105
Capitolul VII. ALGORITMI PENTRU GRAFURI
HAMILTONIENE I EULERIENE ...... 112
7.1. Algoritmul lui Foulkes pentru drumuri hamiltoniene ............ 112
7.2. Teorema lui Chen 115
7.3. Algoritmul nmulirii latine ............. 119
7.4. Algoritmul lui Fleury pentru drumuri euleriene . 121
7.5. Algoritmul lui Hierholzer pentru drumuri euleriene ... 124
6
Capitolul VIII. FLUX MAXIM N REELE DE TRANSPORT 126
8.1. Consideraii generale .. 126
8.2. Algoritmul Ford-Fulkerson ............ 129
8.3. Exemple .. 130
Capitolul IX. REELE DE PROGRAMARE A
ACTIVITILOR ... 136
9.1. Graful arc/activitate, metoda drumului critic . 137
9.2. Graful vrf/activitate, metoda potenialului 144
Bibliografie. 148

7



INTRODUCERE


Prezentul material acoper programa cursului de Algoritmica
grafurilor i a fost redactat pornind de la dorinele autorilor de a prezenta
i a exemplifica ct mai multe elemente ce in de algoritmi de determinare
pornind de la teoria grafurlor.

Sunt prezentate rezultate de baz din teoria grafurilor, att n
domeniul orientat ct i neorientat i cei mai importani algoritmi pentru
rezolvarea problemelor de grafuri. Gruparea materialelor s-a realizat pe
baza noiunilor manipulate.

Cartea cuprinde o larg exemplificare a noiunilor prezentate din
punct de vedere teoretic i asupra modului de aplicare a algoritmilor
descrii.


Autorii

8


9





I. INTRODUCERE N TEORIA GRAFURILOR

1.1. Grafuri neorientate

Definiie. Fie X o mulime finit i nevid i { } { }
, , U x y x y X .
Numim graf (sau graf neorientat) perechea ( ) , G X U = . Elemente din mulimea
X se numesc noduri sau vrfuri, iar elementele din mulimea U poart numele
de muchii ale grafului.

Un graf se reprezint grafic printr-o mulime de puncte corespunztoare
vrfurilor grafului i o mulime de segmente corespunztoare 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 { } 1, 2, 3, 4, 5, 6, 7 X = i
{ } { } { } { } { } { } { } { } { } { }
1, 2 , 1, 3 , 2, 4 , 2, 5 , 3, 4 , 4, 5 , 4, 6 , 5, 6 , 6, 7 U =
Am definit un graf neorientat. Acest graf poate avea reprezentarea grafic:
1
3
2
4
5
6
7

i cum n aceast reprezentare nu exist muchii care s se intersecteze, rezult c
avem un graf planar.

Pornind de la definiie observm c dac X are n elemente, atunci U are
cel mult
2
n
C elemente.
Dac A este o mulime, vom nota prin A numrul de elemente ale
mulimii.



10
Definiie. Fie ( ) , G X U = un graf i x X un nod fixat. Prin gradul
nodului x nelegem numrul muchiilor incidente lui x i notm acest numr cu
( ) d x . Dac ( ) 1 d x = spunem c x este nod terminal. Dac ( ) 0 d x = spunem
c x este nod izolat.

Exemplul 2. Pentru graful specificat n exemplul 1 gradele vrfurilor sunt
cele indicate n urmtorul 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 vrfuri izolate i
nodul 7 este nod terminal

Propoziia 1. Fie ( ) , G X U = un graf n care U m = . Atunci
( ) 2
x X
d x m

.
Demonstraie. Dac { } , x y U , atunci intervine o contribuie unitar att
n ( ) d x , ct i n ( ) d y . Astfel, dac se elimin muchia, obinnd graful
{ } { } ( )
, \ , G X U x y = , atunci n G vom avea ( ) ( ) 1 d x d x = ,
( ) ( ) 1 d y d y = i pentru orice { } \ , z X x y , ( ) ( ) d z d z = .
Pentru graful G vom avea
( ) ( ) ( ) ( )
{ }
( ) ( ) ( )
{ }
( )
( ) { } { }
\ ,
\ ,
1 1 2
2 2 2 1 2 \ ,
z X z X x y
z X x y z X
d z d x d y d z
d x d y d z d z
m m U x y


= + + =
= + + = =
= = =


.
Deoarece ntr-un graf ( )
0
, G X = , n care toate vrfurile sunt izolate
avem ( ) 0 d z = pentru orice z X , putem scrie ( ) 0 2 0 2
z X
d z

= = =

,
iternd relaia de mai sus, demonstrm egalitatea dat n anun.

Exemplul 3. Pentru graful dat n exemplul 1, folosind gradele vrfurilor
date n tabelul din exemplul 2 avem
( ) ( )
7
1
2 3 2 4 3 3 1 18
x X x
d x d x
=
= = + + + + + + =

.
Pe de alt parte 9 U = i astfel se verific relaia din propoziia 1.


11
Propoziia 2. Pentru orice graf ( ) , G X U = , numrul vrfurilor de grad
impar este par.
Demonstraie. Prin absurd considerm c numrul de vrfuri cu grad
impar este impar. Fie
1 2
X X X = , unde ( ) { }
1
X x X d x impar = i
( ) { }
2
X x X d x par = . n mod evident
1 2
X X =
( )
1
1
x X
d d x

=

este numr impar ca sum impar de numere impare.
( )
2
2
x X
d d x

=

este numr par ca sum de numere pare.
Deoarece
1 2
X X = , rezult c ( )
1 2
x X
d x d d

= +

i astfel ( )
x X
d x


este numr impar ca sum ntre un numr par i unul impar. Dar din propoziia 1
avem ( ) 2
x X
d x U

, deci este numr par. Contradicie.



Exemplul 4. Pentru graful neorientat din exemplul 1, nodurile cu gradul
impar sunt 2, 5, 6 i 7 i astfel numrul lor este 4, deci numr par. Astfel se verific
practic afirmaia fcut n propoziia 2.

Definiie. Fie ( ) , G X U = un graf. Numim graf parial al lui G, graful
( ) , G X V = , unde V U .

Exemplul 5. Fie graful ( ) , G X U = , unde { } 1, 2, 3, 4, 5, 6, 7 X = este
mulimea de vrfuri, iar mulimea muchiilor este
{ } { } { } { } { } { } { } { } { } { }
1, 2 , 1, 3 , 2, 3 , 2, 4 , 3, 6 , 3, 7 , 4, 5 , 5, 6 , 5, 7 U = .
Considerm graful ( ) , G X V = , unde
{ } { } { } { } { } { } { } { }
1, 2 , 1, 3 , 2, 4 , 3, 7 , 4, 5 , 5, 6 , 5, 7 U =
Astfel, ( ) , G X V = este graf parial pentru graful ( ) , G X U = . Din punct
de vedere al reprezentrii, graful ( ) , G X U = i graful parial ( ) , G X V = au
urmtoarele imagini:

12
1
2
3
4 5
6
7

1
2
3
4 5
6
7

graful ( ) , G X U = graful parial ( ) , G X V =

Definiie. 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. Considerm
mulimea { } 2, 3, 4, 5, 7 Y X = , care se obine din X prin eliminarea vrfurilor
1 i 6. Eliminnd din U toate muchiile care au una din extremiti vrfurile
eliminate obinem { } { } { } { } { } { }
2, 3 , 2, 4 , 3, 7 , 4, 5 , 5, 7 V = . Obinem astfel graful
( ) , G Y V = care este subgraf pentru graful ( ) , G X U = .
Din punct de vedere al reprezentrii avem urmtoarea pereche de imagini:
1
2
3
4 5
6
7

2
3
4 5
7

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

Definiie. Fie ( ) , G X U = un graf cu n vrfuri ( X n = ). Spunem c G
este un graf complet , dac oricare ar fi , x y X , avem { } , x y U (orice dou
vrfuri din G sunt conectate sau adiacente).



13
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 vrfuri se noteaz prin
n
K
Propoziia 3. Numrul muchiilor lui
n
K este
2
n
C .
Demonstraie. Deoarece
n
K este un graf complet i astfel oricare ar fi
, x y X , avem { } , x y U , rezult c U conine toate submulimile cu dou
elemente care se pot forma cu elemente n mulimea X .
Folosind noiuni de combinatoric, avem astfel c dintr-o mulime cu n
elemente se pot forma
2
n
C submulimi cu dou elemente. Astfel, dac
( ) ,
n
K X U = , cu n X = , atunci
2
n
U C = .

Exemplul 8. S construim
5
K , deci graful ( )
5
, K X U = , unde
{ } 1, 2, 3, 4, 5 X = . Numrul de muchii este, conform propoziiei 3,
2
5
5 4
10
1 2
C = =
i
i
.
Mulimea de muchii este astfel:
{ } { } { } { } { } { } { } { } { } { } { }
1, 2 , 1, 3 , 1, 4 , 1, 5 , 2, 3 , 2, 4 , 2, 5 , 3, 4 , 3, 5 , 4, 6 U =
Graful
5
K astfel definit are reprezentarea:

2
1
3
4
5


Definiie. Fie ( ) , G X U = un graf. Dac exist
1
X i
2
X astfel nct
1 2
X X = i
1 2
X X X = ( X admite o partiie din dou blocuri
1
X i
2
X )
i orice muchie din G unete un nod din
1
X cu unul din
2
X (oricare ar fi
{ } , e x y U = , dac
1
x X , atunci
2
y X ) spunem c G este graf bipartit.


14
Exemplul 9. Considerm graful neorientat ( ) , G X U = , n care mulimea
de vrfuri este { } 1, 2, 3, 4, 5, 6, 7 X = i mulimea de muchii este
{ } { } { } { } { } { } { } { }
1, 2 , 1, 6 , 2, 3 , 2, 7 , 4, 5 , 4, 6 , 5, 7 U = .
Se observ c putem realiza partiia
1 2
X X X = ,
1 2
X X = , cu
{ }
1
1, 3, 4, 7 X = i { }
2
2, 5, 6 X = , deoarece pentru orice muchie { } , x y U avem
1
x X i
2
y X .
Graful considerat are urmtoarea reprezentare:
1
3
4
2
5
6
7


Definiie. Fie ( ) , G X U = un graf bipartit cu partiiile
1
X i
2
X . Dac
1
X p = i
2
X q = i dac fiecare vrf din
1
X este adiacent cu toate vrfurile
din
2
X (pentru orice
1
x X i orice
2
y X avem { } , x y U ) spunem c G
este un graf bipartit complet, notat
, p q
K .

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

Propoziia 4. Graful bipartit complet
, p q
K are pq muchii.
Demonstraie. Considerm ( )
,
,
p q
K X U = ,
1 2
X X X = ,
1 2
X X = ,
1
X p = i
2
X q = .

15
Conform definiiei pentru orice
1
x X i orice
2
y X avem
{ } , x y U . Dac fixm
1
x X , atunci pentru fiecare
2
y X avem { } , x y U ,
deci numrul de muchii pentru
1
x X fixat este egal cu
2
X q = .
Fiecare vrf
1
x X poate fi ales, fixat n
1
X p = . Astfel, numrul
total de muchii este pq .

Exemplul 11. Considerm c mulimea de vrfuri { } 1, 2, 3, 4, 5, 6, 7 X =
este partiionat prin mulimile { }
1
1, 3, 4, 7 X = i { }
2
2, 5, 6 X = (are loc
1 2
X X X = i
1 2
X X = ). Avnd
1
4 p X = = i
2
3 q X = = , putem
construi un graf bipartit ( )
4,3
, K X U = , unde mulimea de muchii este:
{ } { } { } { } { } { } {
{ } { } { } { } { } { }}
1, 2 , 1, 5 , 1, 6 , 2, 3 , 2, 4 , 2, 7 ,
3, 5 , 3, 6 , 4, 5 , 4, 6 , 5, 7 , 6, 7
U =

i avem 12 U = ceea ce corespunde enunului propoziiei 4.
Acest graf are urmtoarea reprezentare
1
3
4
2
5
6
7


Definiie. Fie ( ) , G X U = un graf. Numim lan n G o succesiune de
vrfuri ( )
0 1 0 1
, ,..., ...
r r
L x x x x x x = = , astfel nct pentru orice 0,1,..., 1 i r = ,
1 i i
x x U
+
(adic o succesiune n care oricare dou vrfuri vecine din lan sunt
adiacente).


16
Fie ( ) , G X U = este un graf i
0 1
...
r
L x x x = un lan n G . Vrfurile
0
x i
r
x se numesc extremitile lanului L , iar r se numete lungimea lanului L ,
notat ( ) l L r = (lungimea unui lan este dat de numrul muchiilor sale sau de
numrul vrfurilor mai puin unul).
Exemplul 12. Considerm graful ( ) , G X U = care corespunde urmtoarei
reprezentri:
1
2
4
3
6
5

Fie succesiunea de vrfuri [ ]
1
1, 2, 4,1, 3, 6 L = . 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 extremiti 1 i 6 iar deoarece numrul vrfurilor din lan este egal cu 6
avem ( ) 5 l L = . Acest lan poate fi dat i prin muchiile sale sub forma
{ } { } { } { } { }
1
1, 2 , 2, 4 , 1, 4 , 1, 3 , 3, 6 L =


Fie succesiunea de vrfuri [ ]
2
1, 2, 4, 3, 5 L = . Aceast succesiune nu
descrie un lan deoarece graful considerat nu conine nicio muchie ntre vrfurile 3
i 5.

Definiie. Fie ( ) , G X U = un graf. Lanul L din G se numete lan
elementar dac pentru orice 0 , i j r , i j , avem
i j
x x (lanul trece prin
noduri distincte).

Exemplul 13. Lanul [ ]
1
1, 2, 4,1, 3, 6 L = din exemplul 12 are n poziiile 1
i 4 vrful 1 i astfel nu este un lan elementar (trece de dou ori prin vrful 1)
n graful din exemplul 12, un lan elementar este [ ]
3
1, 2, 4, 3, 6 L =



17
Definiie. Fie ( ) , G X U = un graf. Lanul L din G se numete lan
simplu dac pentru orice 0 , 1 i j r , i j , avem { } { }
1 1
, ,
i i j j
x x x x
+ +
(toate
muchiile sale sunt distincte).

Exemplul 14. Lanurile [ ]
1
1, 2, 4,1, 3, 6 L = i [ ]
2
1, 2, 4, 3, 5 L = din
exemplul 12 i [ ]
3
1, 2, 4, 3, 6 L = din exemplul 13 sunt toate lanuri simple. Cel mai
bine se observ acest lucru la exprimarea lanurilor prin muchiile lor, aa cum este
cazul pentru lanul [ ]
1
1, 2, 4,1, 3, 6 L = , care n exemplul 12 este exprimat i prin
muchii prin { } { } { } { } { }
1
1, 2 , 2, 4 , 1, 4 , 1, 3 , 3, 6 L =

.
n graful din exemplul 12 putem considera i lanul
{ }
4
2,1, 4, 3,1, 4, 5 L =
care nu este un lan simplu deoarece conine de dou ori muchia { } 1, 4 .

Propoziia 5. Fie ( ) , G X U = un graf i L un lan n G . Dac L este
lan elementar, atunci L este lan simplu.
Demonstraie. Prin absurd, L nu este lan simplu. Atunci exist
0 , 1 i j r , i j astfel nct { } { }
1 1
, ,
i i j j
x x x x
+ +
= . Astfel avem fie
i j
x x = ,
fie
1 i j
x x
+
= , de unde rezult c L nu este lan elementar. Contradicie.


1.2. Grafuri orientate

Definiie. Fie X o mulime finit i nevid. Numim graf orientat (digraf)
orice pereche ( ) , G X U = n care U X X este o mulime finit de perechi
ordonate cu componente din X (U este o relaie binar pe X ).

Elementele mulimii X vor fi numite vrfuri sau noduri. Elementele
mulimii U se numesc arce.
Orice arc are forma ( ) , a b , n care a se numete extremitate iniial, iar
b se numete extremitate final a arcului ( ) , a b .
Exemplul 15. Considerm mulimea { } 1, 2, 3, 4, 5, 6, 7, 8, 9 X = i
mulimea U X X ,
( ) ( ) ( ) ( ) ( ) ( ) {
( ) ( ) ( ) ( ) ( ) ( ) ( )}
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
U =


18
Dac lum arcul ( ) 4, 9 , spunem c 4 este extremitatea iniial a arcului, iar
9 este extremitatea final a arcului.
Graful descris are urmtoarea reprezentare
1
2 3
4
5
6
7
8
9


Un graf orientat se reprezint grafic printr-o mulime de puncte
corespunztoare vrfurilor i printr-o mulime de segmente orientate (sgei)
corespunztoare arcelor. O sgeat este orientat de la extremitatea iniial 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 .
Definiie. Fie ( ) , G X U = un graf orientat i x X un nod fixat.
a) Numim grad interior al lui x , numrul arcelor incidente interior lui x ,
adic mrimea ( ) ( ) { }
, d x y x U y X

= .
b) Numim grad exterior al lui x , numrul arcelor incidente exterior lui x ,
adic mrimea ( ) ( ) { }
, d x x y U y X
+
= .
c) Prin gradul nodului x nelegem numrul total al arcelor incidente lui x ,
adic mrimea ( ) ( ) ( ) d x d x d x
+
= + .
d) Dac ( ) 0 d x = spunem c x X este vrf izolat.
e) Dac ( ) 1 d x

= i ( ) 0 d x
+
= spunem c x X este vrf terminal; dac
( ) 0 d x

= i ( ) 1 d x
+
= spunem c x X este vrf iniial.



19
Exemplul 16. Pentru graful din exemplul 15 putem rezuma valorile pentru
gradul interior, gradul exterior i gradul fiecrui vrf n urmtorul 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

Definiie. Fie ( ) , G X U = un graf orientat i A X o mulime de
vrfuri.
a) Gradul interior lui A este numrul arcelor ce intr n A i care au nodul
iniial n afara lui A, adic mrimea
( ) ( ) { }
, , d A y x U y A x A

= .
b) Gradul exterior lui A este numrul arcelor ce ies din A i au nodul
terminal n afara lui A, adic mrimea
( ) ( ) { }
, , d A x y U x A y A
+
= .
c) Gradul total al lui A este ( ) ( ) ( ) d A d A d A
+
= + .

Exemplu 17. Considerm graful din exemplul 15 i mulimea
{ } 3, 4, 6, 7 A = . Avem ( ) 5 d A

= , ( ) 3 d A
+
= . Astfel ( ) 8 d A = .

Observaii
1) Evident, pentru orive A X avem ( ) ( )
x A
d A d x

, deoarece s-ar
putea ca anumite arce care ies din A s aib extremitatea final tot n A,
arce care nu se numr la determinarea valorii ( ) d A
+
.
2) Evident, pentru orice A X avem ( ) ( )
x A
d A d x
+ +

, deoarece s-ar
putea ca anumite arce care intr n A s aib extremitatea iniial tot n A,
arce care nu se numr la determinarea valorii ( ) d A

.
Din 1) i 2) rezult c ( ) ( )
x A
d A d x

.
Definiie. Fie ( ) , G X U = un graf orientat. Numim graf orientat parial
al lui G graful orientat ( ) , G X V = n care V U .


20
Exemplul 18. Fie graful orientat ( ) , G X U = , unde mulimea de vrfuri
este { } 1, 2, 3, 4, 5, 6 X = i mulimea de arce este
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) { }
1, 2 , 1, 5 , 1, 6 , 2, 3 , 2, 4 , 4, 3 , 6, 4 , 6, 5 U =
Dac ( ) , G X V = , unde ( ) ( ) ( ) ( ) ( ) { }
1, 2 , 1, 5 , 2, 4 , 6, 4 , 6, 5 V = , este un
graf orientat parial al grafului G .
Grafurile G i G au reprezentarea urmtoare:
1
2
5
3
6
4

1
2
5
3
6
4

Graful orientat ( ) , G X U = Graful orientat parial ( ) , G X V =
Facem observaia c n graful G s-a obinut un vrf izolat, vrful 3 (nu
exist niciun arc care s-l aib ca extremitate).

Un graf orientat parial al lui G se obine prin suprimarea anumitor arce
ale lui G .
Definiie. 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 =
(mulimea tuturor arcelor lui G cu ambele extremiti n Y ).

Exemplul 19. Considerm graful ( ) , G X U = din exemplul 18. Fie
{ } 2, 3, 4, 6 Y X = , care se obine prin eliminarea vrfurilor 1 i 5 din X .
Eliminm din U toate arcele care au ca extremitate pe 1 sau pe 5 i obinem
( ) ( ) ( ) ( ) { }
2, 3 , 2, 4 , 4, 3 , 6, 4 U = . Graful ( ) , G Y V = astfel obinut este subgraf
al lui G .
Grafurile G i G au urmtoarea reprezentare:


21
1
2
5
3
6
4

2
3
6
4

Graful orientat ( ) , G X U = Graful orientat parial ( ) , G Y V =

Un subgraf orientat se obine suprimnd anumite vrfuri din G i
eliminnd toate arcele incidente vrfurilor suprimate.
Definiie. 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 vrfuri se noteaz cu
n
K .
Exemplul 20. S considerm { } 1, 2, 3, 4, 5 X = i s construim
( )
5
, K X U = , un graf orientat complet cu 5 vrfuri. S considerm mulimea de
arce
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) { }
1, 2 , 1, 4 , 1, 5 , 2, 4 , 3,1 , 3, 2 , 4, 3 , 4, 5 , 5, 2 , 5, 3 U =
Graful obinut are reprezentarea
1
2 4
3 5

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

22
1
2 4
3 5

De asemenea, putem considera drept mulime de arce, mulimea
( ) ( ) ( ) ( ) ( ) ( ) {
( ) ( ) ( ) ( ) ( ) ( )}
1, 2 , 1, 4 , 1, 5 , 2,1 , 2, 4 , 3,1 ,
3, 2 , 4, 2 , 4, 3 , 4, 5 , 5, 2 , 5, 3
W =

i se formeaz acum un graf ( )
5
, K X W = care este graf orientat complet. Acesta
difer de
5
K prin faptul c unele vrfuri sunt unite de perechi de arce n ambele
sensuri. Graful
5
K are ca reprezentare imaginea:
1
2 4
3 5


Observaie. n cazul grafurilor neorientate, pentru un n, 2 n ,
exist un singur graf complet cu n vrfuri, notat
n
K . n cazul grafurilor orientate
pentru un n, 2 n dat, exist mai multe grafuri orientate complete cu n
vrfuri, ele diferind fie prin orientarea arcelor, fie prin numrul de arce ce unesc
dou vrfuri, numr ce poate fi 1 sau 2.





23
Definiie. Fie ( ) , G X U = un graf orientat. Numim drum n G o
succesiune de vrfuri ( )
0 1
, ,...,
r
d x x x = astfel nct pentru orice 0,1,..., 1 i r = ,
1 i i
x x U
+
(sau o succesiune de arce care au acelai sens,
( )
1 1
, ,...,
p
d u u u = , cu
proprietatea c pentru orice 1, 2,..., 1 i p = ,
i
u i
1 i
u
+
au o extremitate comun,
mai exact extremitatea final a lui
i
u coincide cu extremitatea iniial a lui
1 i
u
+
.

Fie ( )
0 1
, ,...,
r
d x x x = un drum n graful ( ) , G X U = .
0
x se numete
extremitatea iniial, iar
r
x extremitatea final a drumului d .
Exemplul 21. Fie { } 1, 2, 3, 4, 5, 6 X = i graful ( ) , G X U = , unde
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) { }
1, 2 , 1, 5 , 1, 6 , 2, 3 , 2, 4 , 3, 6 , 4, 3 , 5, 3 , 6, 4 , 6, 5 U =
care are reprezentarea
1
2
5
3
6
4

Succesiunea de vrfuri ( ) 1, 2, 3, 6, 5 d = este un drum deoarece exist
succesiunea de arce ( ) 1, 2 , ( ) 2, 3 , ( ) 3, 6 i ( ) 6, 5 .
Extremitatea iniial a drumului este 1, extremitatea sa final este 5

Definiie. Drumul ( )
0 1
, ,...,
r
d x x x = din graful ( ) , G X U = se numete
elementar dac pentru orice , 0,1,..., i j r = , i j , avem
i j
x x (drumul trece
prin noduri distincte).

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




24
Definiie. Fie ( ) , G X U = un graf orientat. Numim lan n G , o secven
de noduri [ ]
0 1
, ,...,
r
L x x x = cu proprietatea c pentru orice 0,1,..., 1 i r = avem
( )
1
,
i i
x x U
+
sau ( )
1
,
i i
x x U
+
(sau o succesiune de arce
1 2
, ,...,
p
L u u u =

astfel nct pentru orice 1, 2,..., 1 i p = , arcele
i
u i
1 i
u
+
au
o extremitate comun nu se mai pune condiia ca arcele s aib acelai sens, ca
la drumuri).

Observaie. Din definiie rezult imediat c orice drum care este ntr-un
graf orientat este, n acelai timp, i lan n graful orientat respectiv.
Exemplul 23. Conform observaiei de mai sus, cum ( ) 1, 2, 3, 6, 5 d = din
exemplul 21 este un drum, [ ] 1, 2, 3, 6, 5 l = este i lan.
Tot n graful din exemplul 21 avem drept lan succesiunea de vrfuri
[ ] 3, 6,1, 2, 4 l = deoarece n U avem arcele ( ) 3, 6 , ( ) 1, 6 , ( ) 1, 2 i ( ) 2, 4 .

Definiie. 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 ( )
0 1
, ,...,
r
d x x x = un drum de capete x i y .

Exemplul 24. Drumul ( ) 1, 2, 3, 6, 5 d = dat n exemplul 21 este un drum
care are extremitatea iniial 1 i cea final 5. Astfel vrful 5 este accesibil din
vrful 1.
Tot n graful din exemplul 21 avem c vrful 1 nu este accesibil din niciun
alt vrf deoarece nu poate exista niciun drum cu extremitatea final 1. Acest lucru
este adevrat deoarece ( ) 1 0 d

= (n 1 nu intra niciun arc).





25





II. TIPURI PARTICULARE DE GRAFURI

Definiie. Se numete multigraf un graf neorientat n care cel puin dou
vrfuri sunt unite prin muchii multiple.

Exemplul 1. Graful din imaginea de mai jos este un multigraf.
1
2
3
4
5

O problem pentru multigrafuri este de specificare a muchiilor care, aa
cum s-a vzut pn acum, sunt mulimi de dou elemente. Dac va fi cazul, pentru
muchiile multiple din multigrafuri vom folosi o indiciere n exteriorul mulimii
care specific muchia. Astfel, pentru multigraful de mai sus avem ( ) , G X U = ,
unde { } 1, 2, 3, 4, 5 X = i
{ } { } { } { } { } { } { }
1 2 1 2
1, 2 , 2, 3 , 2, 3 , 3, 4 , 3, 4 , 3, 5 U =

Definiie. Graful orientat ( ) , G X U = se numete reflexiv (nereflexiv,
simetric, antisimetric, total, tranzitiv) dac i numai dac relaia binar U este
relaie binar reflexiv (nereflexiv, simetric, antisimetric, total, tranzitiv).

Exemplul 2. S considerm o mulime de 5 elemente { } 1, 2, 3, 4, 5 X = i
cazul unei relaii simetrice definite pe X , i anume urmtoarea submulime a
produsului cartezian X X :
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) { }
1, 2 , 1, 4 , 2,1 , 2, 3 , 3, 2 , 4,1 , 4, 5 , 5, 4 U =
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 definete o relaie simetric.

26
Pe de alt parte dac considerm graful ( ) , G X U = , cu X i U definite
ca mai sus, atunci spunem c graful G este simetric. Graful are imaginea:
1
2
3
4
5


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

Observc c la toate grafurile de mai sus am folosit o numerotare a
vrfurilor. Numerele folosite pot fi considerate etichete pentru vrfuri i astfel
grafurile pot fi considerate drept grafuri etichetate.
Definiie. Fie ( ) , G X U = un graf orientat. G se numete graf orientat
marcat sau reea dac fiecrui u U i se asociaz o marc
u
m . n acest caz,
U X M X , M fiind mulimea mrcilor asociate arcelor. Dac
( ) , , x m y X M X , atunci arcul x y se marcheaz cu m i se reprezint
prin
m
x y .

Exemplul 3. Considerm dat mulimea { } 1, 2, 3, 4, 5, 6 X = i mulimea
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) { }
1, 3 , 1, 6 , 2, 4 , 2, 5 , 3, 2 , 3, 6 , 4,1 , 4, 5 , 5, 6 , 6, 2 U =
Am definit astfel graful orientat ( ) , G X U = a crui imagine este
1
2
3
4
5
6


27
Considerm acum c fiecrei 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 mulimea
( ) ( ) ( ) ( ) ( ) ( ) ( ) {
( ) ( ) ( )}
1, , 3 , 1, , 6 , 2, , 4 , 2, , 5 , 3, , 2 , 3, , 6 , 4, ,1 ,
4, , 5 , 5, , 6 , 6, , 2
U a j b i c h d
g e f
=

i astfel se obine un graf orientat marcat pentru care avem reprezentarea
1
2
3
4
5
6
j
a
b
i
c
h
d
g
f
e


Definiie. Numim reea etichetat un graf orientat marcat i etichetat.

De fapt, graful din exemplul anterior, avnd vrfurile numerotate i
muchiile marcate, poate fi considerat i un exemplu de reea etichetat.

2.1. Grafuri conexe

Definiie. Graful neorientat ( ) , G X U = se numete conex dac i numai
dac oricare ar fi dou noduri , x y X , x y , exist cel puin un lan n G ,
( )
0 1
, ,...,
r
L x x x = de extremiti x i y .

Definiie. Fie ( ) , G X U = un graf neorientat. Numim componenta
conex a lui G , un subgraf conex ( ) , C Y V = al su, i pentru orice x Y ,
subgraful obinut, lund mulimea de vrfuri { } \ Y x , nu este conex (subgraful C
este maximal n raport cu proprietatea de conexitate).

Exemplul 4. Considerm graful neorientat ( ) , G X U = , unde
{ } 1, 2, 3, 4, 5, 6, 7 X = i
{ } { } { } { } { } { } { }
1, 2 . 1, 3 , 2, 3 , 4, 5 , 5,1 , 6, 7 U =
Se poate observa c mulimea de vrfuri se poate partaja n dou
submulimi ntre care nu exist nicio muchie i anume { }
1
1, 2, 3, 4, 5 X = i

28
{ }
2
6, 7 X = . n urma acestei partiii se produce i o partiie a mulimii de muchii
n
{ } { } { } { } { } { }
1
1, 2 . 1, 3 , 2, 3 , 4, 5 , 5,1 U =
i { } { }
2
6, 7 U = .
Deoarece nu exist muchii ntre elementele lui
1
X i
2
X , nseamn c nu
pot exista lanuri ntre
1
x X i
2
y X i de aici rezult c G nu este un graf
conex. Subgrafurile ( )
1 1 1
, G X U = i ( )
2 2 2
, G X U = sunt grafuri conexe i astfel
reprezint componentele conexe ale grafului G .
Imaginea grafului G este:
1
2
3
4
5
6
7
G
1
G
2


Fie ( ) , G X U = un graf neorientat. Pentru , x y X spunem c x este
conectat cu y dac exist un lan ce le unete, adic exist un lan
( )
0 1
, ,...,
r
L x x x = de extremiti x i y
Pe mulimea X definim relaia binar ~ X X , dat prin ~ x y dac
i numai dac ( x y = sau x este conectat cu y ).
Propoziia 1. Relaia " ~ " definit mai sus este o relaie de echivale
Demonstraie.
reflexivitate pentru orice x X deoarece x x = , rezult c ~ x x .
antisimetrie considerm c ~ x y i ~ y x . Din ~ x y avem x y = sau
x este conectat cu y , adic exist un lan ( )
0 1
, ,...,
r
L x x x = de
extremiti x i y .
Putem presupune c lanul este elementar i c
0
x x = i
r
y x = . Din
~ y x avem x y = sau y este conectat cu x , adic exist un lan
( )
0 1
, ,...,
q
L y y y = de extremiti y i x .


29
Putem presupune c lanul este elementar i c
0
y y = i
q
x y = .
Presupunem c avem x y . Atunci rezult c relaiile au loc doar prin
conectare. Fie astfel lanul format din concatenarea lanurilor L i L i
astfel x este conectat cu x de unde x x . Contradicie.
tranzitivitate deoarece ~ x y avem x y = sau x este conectat cu y ,
adic exist un lan ( )
0 1
, ,...,
r
L x x x = de extremiti 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
( )
0 1
, ,...,
q
L y y y = de extremiti y i z .
Dac y z = , atunci n afirmaia exist un lan ( )
0 1
, ,...,
r
L x x x = de
extremiti x i y putem nlocui y cu z i rezult exist un lan
( )
0 1
, ,...,
r
L x x x = de extremiti x i z astfel c rezult ~ x z .
Dac nu are loc relaia y z = , fie lanul
( )
0 1 0 1
, ,..., , ,...,
r q
L x x x y y y = = obinut prin concatenarea lanurilor L
i L . Atunci lanul L este de extremiti x i z i astfel avem c x este
conectat cu z , deci ~ x z .

Propoziia 2. Fie ( ) , G X U = un graf n care X n = , U m = i 2 n .
Dac G este conex, atunci 1 m n .
Demonstraie. Pentru 2 n = , deoarece G este conex rezult c ntre cele
dou vrfuri exist o muchie ntre ele i astfel 1 m .
Presupunem c relaia este adevrat pentru un graf cu X n = vrfuri. Fie
( ) , H Y V = un graf pentru care 1 Y n = + i fie V m = . Considerm z Y i
subgraful ( ) , G X U = unde { } \ X Y z = , deci putem scrie c
1 1 1 X Y n n = = + = . Putem alege z astfel nct G s fie conex.
Deoarece H este conex, rezult c exist x X astfel nct { } , z x V ,
deci 1 m V U = + .
Pentru G conex, din ipoteza de inducie rezult 1 1 U X n = .
nlocuind n relaia de mai sus obinem 1 1 1 m V U n n = + + = .
Datorit principiului induciei complete, din cele de mai sus rezult c
relaia din enun este adevrat pentru orice graf conex G .


30
Considernd graful din exemplul 4 n care 7 X = i 6 U = , deci nu are
loc relaia 1 m n , ceea ce, reprezentnd o negare a propoziiei 2, implic faptul
c graful G nu este unul conex, ceea ce este adevrat conform exemplului
considerat.
Noiunea de graf conex este valabil i pentru grafurile orientate. Definiia
este urmtoarea:
Definiie. Graful orientat ( ) , G X U = se numete conex dac i numai
dac oricare ar fi dou noduri , x y X , x y , exist cel puin un lan n G ,
( )
0 1
, ,...,
r
L x x x = de extremiti x i y .

Dac n definiia grafului conex pentru grafuri orientate nlocuim condiia
de existen a unui lan cu cea de existen a unui drum se obnine urmtoarea
noiune.
Definiie. Graful orientat ( ) , G X U = se numete tare conex dac i
numai dac oricare ar fi dou noduri , x y X , x y , exist cel puin un drum n
G , ( )
0 1
, ,...,
r
d x x x x y = = = de extremiti x i y .

Exemplul 5. Considerm un graf orientat ( ) , G X U = , unde
{ } 1, 2, 3, 4, 5 X = i
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) { }
1, 2 , 1, 3 , 2, 3 , 2, 4 , 2, 5 , 3, 4 , 4,1 , 5,1 , 5, 3 , 5, 4 U =
Putem vedea c exist un lan:
( ) ( ) ( ) ( ) [ ]
1, 2 , 2, 3 , 3, 4 , 5, 4 1, 2, 3, 4, 5 L = =


care conine toate vrfurile i astfel se poate ajunge ntre oricare dou vrfuri prin
lanuri. Astfel, rezult c graful orientat G este conex.
S considerm vrful 1. Putem forma urmtoarele drumuri cu extremitatea
iniial 1: ( )
1,1
1, 2, 4,1 D = , ( )
1,2
1, 2 D = , ( )
1,3
1, 2, 3 D = , ( )
1,4
1, 2, 4 D = i
( )
1,5
1, 2, 5 D = .
Pentru vrful 2, considerat ca extremitate iniial se formeaz:
( )
2,1
2, 4,1 D = , ( )
2,2
2, 4,1, 2 D = , ( )
2,3
2, 3 D = , ( )
2,4
2, 4 D = , ( )
2,5
2, 5 D = .
Similar, pentru vrful 3 avem: ( )
3,1
3, 4,1 D = , ( )
3,2
3, 4,1, 2 D = ,
( )
3,3
3, 4,1, 2, 3 D = , ( )
3,4
3, 4 D = , ( )
3,5
3, 4,1, 2, 5 D = .
Pentru vrful 4 putem construi: ( )
4,1
4,1 D = , ( )
4,2
4,1, 2 D = ,
( )
4,3
4,1, 3 D = , ( )
4,4
4,1, 2, 4 D = , ( )
4,5
4,1, 2, 5 D = .

31
n fine, folosind ca extremitate iniial vrful 5 construim drumurile:
( )
5,1
5,1 D = , ( )
5,2
5,1, 2 D = , ( )
5,3
5, 3 D = , ( )
5,4
5, 4 D = , ( )
5,5
5,1, 2, 5 D = .
Am artat 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
1
4
3 2
5


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 considerm nti problema determinrii conexitii unui graf neorientat
( ) , G X U = .
Algoritm 1.
1. Se consider Y X = , V U = i se alege orice x X pentru care
considerm { } B x = .
2. Dac B = , atunci algoritmul se termin genernd un rspuns astfel:
a. Dac V = , atunci graful este conex
b. Dac V , atunci graful nu este conex (n plus se poate spune
c mulimea \ 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 nct { } , y z V considerm { } B B z =
i { } { }
\ , V V y z =
5. Considerm { } \ B B y = i relum de la 2.








32
Exemplul 6. Se consider graful din urmtoarea figur.
1
2
3
4
5
6
7

Folosind algoritmul 1 s determinm dac graful considerat este sau nu
conex
Din pasul 1 al algoritmului se fac iniializrile { } 1, 2, 3, 4, 5, 6, 7 Y X = =
i
{ } { } { } { } { } { } { } { }
1, 2 , 1, 3 , 1, 5 , 1, 6 , 2, 3 , 4, 5 , 6, 7 V U = = .
Alegem vrful 6 i considerm { } 6 B = .
Deoarece B se realizeaz o prim aplicare a pailor 3, 4 i 5 cu
alegerea 6 B , rezultnd { } 1, 7 B = i { } { } { } { } { } { }
1, 2 , 1, 3 , 1, 5 , 2, 3 , 4, 5 V = .
n continuare B , la a doua aplicare, cu alegerea 7 B nu exist
muchii cu extremitatea 7 i astfel nu se modific dect B care devine { } 1 B =
Pentru a treia aplicare nu putem face dect alegerea 1 B pentru care va
rezulta { } 2, 3, 5 B = i { } { } { }
2, 3 , 4, 5 V = .
Putem continua cu alegerea 3 B pentru care nu avem n V muchii ntre
3 i vrfurile din mulimea { } 1, 4, 6, 7 i astfel se ajunge la { } 2, 5 B = cu V
nemodificat.
A cincea aplicare se poate face cu alegerea 5 B pentru care efectul este
{ } 2, 4 B = i { } { }
2, 3 V = .
n continuare, selectnd 2 B vom obine { } 3, 4 B = i V = .
Urmtoarele aplicaii, dou la numr sunt n aceeai situaie ca la a doua
aplicare a algoritmului i se produc eliminrile celor dou elemente din B care
ajunge mulime vid.
Cum avem i V = , suntem n cazul (a) al rspunsului, deci graful
considerat este unul conex.

Aa cum se vede din pasul 2, algoritmul prezentat d rspunsul la
ntrebarea Este G un graf conex?.

33
De asemenea, se poate determina componenta conex a grafului G din
care face parte un anumit nod specificat. Acest lucru creaz premizele realizrii
algoritmului de determinare a componentelor conexe, plecnd de la algoritmul 1.
Algoritm 2.
1. Se consider Y X = , V U = 0 k = .
2. Dac V = , atunci algoritmul se termin i componentele conexe ale
grafului G sunt
1
A ,
2
A , ...,
k
A . Vrfurile care nu sunt n
1
k
k
i
A
=

sunt
vrfuri izolate i formeaz fiecare n parte cte o component conex a
grafului G (n plus valoarea pentru k arat dac graful G este sau nu
conex. Astfel pentru 1 k = i
1
A X = graful este conex, altfel G nu este
conex).
3. Alegem orice x Y . Fie 1 k k = + ,
k
A = , { } 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 nct { } , y z V considerm { } B B z =
i { } { }
\ , V V y z = .
7. Considerm { } \ B B y = , { }
k k
A A y = . Se trece la 4.
8. Se elimin din V orice muchie { } , a b pentru care ,
k
a b A . Se trece la
2.

Exemplul 7. Considerm graful de la exemplul 4, deci cu imaginea
1
2
3
4
5
6
7

S aplicm algoritmul 2 pentru a determina componentele conexe ale
acestui graf ( ) , G X U = .
Pasul 1 realizeaz iniializrile { } 1, 2, 3, 4, 5, 6, 7 Y X = = , 0 k = i
{ } { } { } { } { } { } { }
1, 2 , 1, 3 , 1, 5 , 2, 3 , 4, 5 , 6, 7 V U = =
i cum V rezult c se continu cu pasul 3.

34
S alegem 5 Y . Avem 1 k = , { } 5 B = i
1
A = i deoarece B se
continu cu paii 5, 6 i 7, n urma crora se ajunge la { } 1, 4 B = , { }
1
5 A = i
{ } { } { } { } { }
1, 2 , 1, 3 , 2, 3 , 6, 7 V =
Se continu cu aceeai pai deoarece din nou B , i alegnd n prima
iteraie vrful 4 i apoi vrful 1 obinem { } 2, 3 B = , { }
1
1, 4, 5 A = i
{ } { } { }
2, 3 , 6, 7 V = .
Din nou B i dup realizarea a nc trei iteraii cu ordinea de alegere
2, 3 i 2 pentru vrfuri se ajunge la situaia B = , { }
1
1, 2, 3, 4, 5 A = i
{ } { }
6, 7 V = . Deoarece nu sunt muchii ntre nodurile lui
1
A din pasul 8 se trece la
pasul 2 care impune reluarea pailor 3, 4, 5, 6, 7 deoarece V . Se consider
astfel 2 k = i
2
A =
Prin urmtoarele dou iteraii se ajunge n starea B = , V = ,
{ }
2
6, 7 A = i la revenirea la pasul 2 cu V = algoritmul se oprete.
Deoarece
1 2
X A A = , rezult c s-a format o partiie reprezentnd
componentele conexe ale grafului G i acestea sunt subgrafurile ( )
1 1 1
, G A U = i
( )
2 2 2
, G A U = , unde { } { }
2
6, 7 U = i
{ } { } { } { } { } { }
2
1, 2 , 1, 3 , 1, 5 , 2, 3 , 4, 5 U = .


2.2. Grafuri complementare i izomorfe

Definiie. Fie ( ) , G X U = un graf neorientat, numim complementarul lui
G (graf complementar lui G ), graful ( ) , G X U C C = , n care { } , x y U C
dac i numai dac { } , x y U .

Definiie. Fie ( ) , G X U = i ( ) , G X U = dou grafuri neorientate.
Spunem c G i G sunt izomorfe, notm G G , dac exist o funcie bijectiv
: f X X astfel nct { } , x y U dac i numai dac ( ) ( ) { }
, f x f y U .

Din definiie rezult c dou grafuri sunt izomorfe dac au acelai numr
de vrfuri i se poate obine unul din cellalt printr-o renumerotare a vrfurilor.
Definiii similare celor de mai sus sunt valabile pentru grafurile orientate.
Ele se obin nlocuind muchiile cu arce.

35
Exemplul 8. Fie un graf neorientat ( ) , G X U = cu
{ } 1, 2, 3, 4, 5 X =
i
{ } { } { } { } { } { }
1, 2 , 1, 3 , 1, 4 , 2, 5 , 4, 5 U = .
Cum 5 U = i numrul maxim de muchii este 10 rezult c graful
complementar are 5 muchii i astfel avem
{ } { } { } { } { } { }
1, 5 , 2, 3 , 2, 4 , 3, 4 , 3, 5 V U C = = ,
obinndu-se graful
( ) , G X U C C = .
Grafurile din acest exemplu au urmtoarele imagini:
1
2
3
4
5

1
2
3
4
5

( ) , G X U = ( ) , G X U C C =

Exemplul 9. Fie un graf orientat ( ) , G X U = cu
{ } 1, 2, 3, 4, 5 X =
i
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) { }
1, 2 , 1, 3 , 1, 4 , 2, 4 , 2, 5 , 3, 2 , 3, 5 , 4, 2 , 4, 5 , 5,1 , 5, 3 U = .
Deoarece numrul total de muchii posibile ntr-un graf orientat este egal cu
aranjamente de numrul de vrfuri luate cte dou, deci 20, i 11 U = , rezult c
n graful complementar avem 9 arce i astfel
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) { }
1, 5 , 2,1 , 2, 3 , 3,1 , 3, 4 , 4,1 , 4, 3 , 5, 2 , 5, 4 U C = .
n acest mod se obine graful
( ) , G X U C C = .
Grafurile orientate din acest exemplu au urmtoarele reprezentri:

36
1
2
3
4
5

1
2
3
4
5

( ) , G X U = ( ) , G X U C C =

Propoziia 3. Fie ( ) , G X U = i ( ) , G X U = dou grafuri orientate.
Atunci G G dac i numai dac G G C C .
Demonstraie. Verificarea concluziei propoziiei este imediat folosind
definiiile date pentru izomorfismul de grafuri i pentru graful complementar. De
exemplu, s considerm implicaia .
Avem c G G i fie : f X X izomorfismul de la G la G . Astfel
f este o funcie bijectiv pentru care are loc enunul { } , x y U dac i numai
dac ( ) ( ) { }
, f x f y U .
Fie { } , x y U C . Rezult, conform definiiei grafurilor complementare, c
{ } , x y U . Din G G , se ajunge la ( ) ( ) { }
, f x f y G de unde obinem
( ) ( ) { }
, f x f y G C . De aici obinem c f este i izomorfism de la G C la
G C , deci G G C C .

Exemplul 10. Se consider grafurile G din exemplul 8 i graful
( ) , H Y V = , unde
{ } { } { } { } { } { }
1, 2 , 1, 3 , 2, 4 , 2, 5 , 3, 4 V =
Considerm funcie : f X Y , dat prin tabelul
x 1 2 3 4 5
( ) f x
2 4 5 1 3
Ca funcie definit pe mulimi finite cu acelai numr de elemente i pentru
care observm c este injectiv, rezult c f este o funcie 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 urmtoarea reprezentare:

37
1
2
3
4
5

2
4
5
1
3

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


2.3. Grafuri ciclice

Definiie. Fie ( ) , G X U = un graf neorientat. Numim ciclu n G un lan
[ ]
0 1
, ,...,
r
L x x x = n care
0 r
x x = (n care extremitile coincid).

Definiie. Fie ( ) , G X U = un graf neorientat i [ ]
0 1
, ,...,
r
L x x x = un
ciclu. Spunem c L este ciclu elementar dac pentru orice 0 , 1 i j r , i j ,
avem
i j
x x (toate vrfurile sale, exceptnd extremitile, sunt distincte dou
cte dou) .

Definiie. Fie ( ) , G X U = un graf neorientat i [ ]
0 1
, ,...,
r
L x x x = un
ciclu. Spunem c L este ciclu simplu daca pentru orice 0 , 1 i j r , i j ,
avem { } { }
1 1
, ,
i i j j
x x x x
+ +
(toate muchiile sale sunt distincte dou cte dou).

Exemplul 11. Fie un graf neorientat ( ) , G X U = , unde
{ } 1, 2, 3, 4, 5, 6 X = i
{ } { } { } { } { } { } { } { } { }
1, 2 , 1, 3 , 1, 5 , 1, 6 , 2, 3 , 3, 4 , 4, 5 , 4, 6 U = .
Pentru acest graf putem da ca exemplu de ciclu lanul nchis
[ ]
1
1, 2, 3,1, 5, 4, 6,1 L =
Acest ciclu poate fi scris i ca o succesiune de muchii prin
{ } { } { } { } { } { } { }
1
1, 2 , 2, 3 , 3,1 , 1, 5 , 5, 4 , 4, 6 , 6,1 L =


Din scrierea ciclului prin vrfuri se poate vedea c ciclul trece de dou ori
prin vrful 1 i astfel nu este un ciclu elementar.

38
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 [ ]
2
1, 2, 3, 4, 6,1 L = , n care, cu
excepia extremitilor, se trece o singur dat prin fiecare vrf
Acest graf are reprezentarea
1
2
3
4
5
6

n reprezentarea de mai sus am ngroat muchiile care formeaz ciclul
elementar
2
L .

Definiiile de mai sus continu s fie valabile i pentru grafurile orientate.
Suplimentar intervin definiiile care urmeaz.
Definiie. Fie ( ) , G X U = un graf orientat. Numim circuit n G un drum
( )
0 1
, ,...,
r
C x x x = n care
0 r
x x = (n care extremitile coincid).

Definiie. Fie ( ) , G X U = un graf orientat i ( )
0 1
, ,...,
r
C x x x = un
circuit. Spunem c C este circuit elementar dac pentru orice 0 , 1 i j r ,
i j , avem
i j
x x (toate vrfurile sale, exceptnd extremitile, sunt distincte
dou cte dou) .

Definiie. Fie ( ) , G X U = un graf orientat i ( )
0 1
, ,...,
r
C x x x = un ciclu.
Spunem c C este circuit simplu daca pentru orice 0 , 1 i j r , i j , avem
( ) ( )
1 1
, ,
i i j j
x x x x
+ +
(toate arcele sale sunt distincte dou cte dou).




39
Exemplul 12. Considerm graful orientat ( ) , G X U = , unde
{ } 1, 2, 3, 4, 5, 6 X = i
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) { }
1, 2 , 1, 5 , 2, 3 , 3,1 , 4, 3 , 4, 6 , 5, 4 , 6,1 U = .
Graful considerat, anulnd orientarea arcelor, conduce la graful neorientat
din exemplul 11 i astfel, n graful considerat, [ ]
1
1, 2, 3,1, 5, 4, 6,1 L = este un ciclu
simplu, n timp ce [ ]
2
1, 2, 3, 4, 6,1 L = este un ciclu elementar. Scrierea ciclului
1
L
prin arce este
( ) ( ) ( ) ( ) ( ) ( ) ( )
1
1, 2 , 2, 3 , 3,1 , 1, 5 , 5, 4 , 4, 6 , 6,1 L =

.
Din aceast scriere se observ c n ciclul
1
L toate arcele sunt n sensul de
la extremitatea stng la cea dreapt i astfel
1
L este i un circuit n G . Deoarece
n
1
L fiecare arc intervine o singur dat, rezult c
1
L este un circuit simplu.
Putem astfel scrie
( )
1
1, 2, 3,1, 5, 4, 6,1 L =
sau
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
1
1, 2 , 2, 3 , 3,1 , 1, 5 , 5, 4 , 4, 6 , 6,1 L = .
Considerm n G lanul ( )
3
1, 5, 4, 3,1 L = care este un ciclu elementar
deoarece trece o singur dat prin fiecare vrf i, n plus, avnd arcele n sensul
scrierii lanului, este i drum. Astfel,
3
L este un circuit elementar n G .
Graful considerat are reprezentarea:
1
2
3
4
5
6

i n aceasta am ngroat arcele ce formeaz circuitul
3
L .



40
Definiie. Graful neorientat ( ) , G X U = se numete ciclic dac G
conine cel puin un ciclu i se numete aciclic n caz contrar.

`Exemplul 13. Graful neorientat din exemplul 11 este un graf neorientat
ciclic deoarece conine cel puin un ciclu (de fapt, am dat exemplu de dou cicluri
n graful considerat).

Definiie. Fie ( ) , G X U = un graf orientat. Spunem c G este aciclic
dac G nu conine niciun circuit i ciclic n caz contrar.

Exemplul 14. Considerm graful dat n exemplul 12. Deoarece n acest
graf orientat am detectat circuitul
3
L , astfel graful este un graf orientat ciclic.

Propoziia 4. Fie ( ) , G X U = un graf neorientat. Dac U X , atunci
G este ciclic.
Demonstraie. Fie X n = , U m = , deci m n .
Dac G nu este conex, fie
1
G ,
2
G , ...,
k
G . Dac exist un ciclu L n G ,
atunci exist 1 k r astfel nct L este ciclu n
x
G , 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
1
G i c pentru orice
2 i r ,
i
G nu conine cicluri i astfel numrul de muchii din componenta
conex
i
G este mai mic dect numrul de vrfuri din
i
G .
Prin sumare i deoarece m n rezult c numrul de muchii din
componenta conex
1
G trebuie s fie mai mare dect numrul de vrfuri din
component. Astfel, putem presupune c G este conex.
Conform propoziiei 2, G conex implic 1 m n . 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 obinut nu mai este conex i astfel obinem un graf neconex pentru
1 m n = . Contradicie.
Considerm acum c 1 m n = i graful este ciclic. Fie [ ]
0 1
, ,...,
r
C x x x =
un ciclu n G . Atunci putem elimina una din muchiile adiacente cu
0
x pentru a
obine drumul [ ]
1
,...,
r
C x x = sau [ ]
0 1 1
, ,...,
r
C x x x

= i astfel s se pstreze
conexitatea. Rezult astfel un graf conex pentru care 2 m n . Contradicie.


41
Definiie. Fie ( ) , G X U = un graf neorientat avnd 1 k componente
conexe. Se numete punte n G o muchie m U pentru care graful parial
{ } ( )
, \ G X U m = are numrul de componente conexe mai mare dect k .

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

i din reprezentarea grafului se observ c prin eliminarea muchiei { } 3, 5
conduce la apariia componentelor conexe { }
1
1, 2, 3, 4 C = i { }
2
5, 6, 7 C = , deci
dou componente conexe.
Deoarece graful G este unul conex, numrul componentelor conexe
iniiale este 1.
Deoarece eliminarea muchiei { } 3, 5 produce creterea numrului de
componente conexe, rezult c muchia { } 3, 5 este o punte.

Propoziia 5. Fie ( ) , G X U = un graful neorientat i m U . m este
punte, dac i numai dac oricare ar fi ciclul [ ]
1 2
, ,...,
r
C m m m = n G dat prin
muchiile sale,
i
m m pentru orice 1 i r .





42
Demonstraie

Considerm c m este punte i c numrul de componente conexe este
egal cu 1. Acest lucru nu reduce generalitatea, deoarece raionamentul care
urmeaz este valabil doar n componenta conex care conine muchia m.
Presupunem c exist un ciclu [ ]
1 2
, ,...,
r
C m m m = n G dat prin muchiile
sale astfel nct exist i , 1 i r , pentru care
i
m m = .
Fie , x y G . G fiind conex rezult c exist un lan
1 2
, ,...,
p
L e e e =


n G , dat prin muchiile sale, de extremiti x i y.
Dac pentru orice 1, 2,..., j p = ,
j
m e , 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 , considerm
lanul
1 1 1 1 1 1
,..., , ,..., , ,..., , ,
j i r i j p
L e e m m m m e e
+ +
=

care are extremitile x i y
i nu conine 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. Contradicie.

Putem presupune, fr a reduce generalitatea, c G este un graf conex.
Altfel, eliminarea unei muchii afecteaz eventual doar componenta conex n care
muchia se gsete, celelalte componente conexe rmnnd neschimbate, deci i
numrul lor. Astfel, dac G nu este conex, putem reduce raionamentul la
subgraful lui G corespunztor componentei conexe n care exist muchia m.
Presupunem c oricare ar fi un ciclu
1 2
, ,...,
p
C m m m =

, avem
i
m m
pentru orice 1 i p . Atunci, prin eliminarea muchiei m, toate aceste cicluri
rmn valabile.
Dac presupunem c m unete dou cicluri, atunci prin eliminare cele
dou cicluri devin separate, deci pot intra n dou componente conexe diferte.
Dac m unete un vrf de un ciclu, prin eliminare vrful i ciclul devin
separate, deci pot intra n dou componente conexe diferite.
Dac m se gsete pe un lan care nu face parte dintr-un ciclu, prin
eliminare se obin dou componente separate i deci posibil din dou componente
conexe.
Astfel, eliminarea lui m produce apariia a dou componente conexe n
G , de unde, conform definiiei, m este punte.


43
Propoziia 6. Fie ( ) , G X U = un graf orientat. G este tare conex dac i
numai dac exist un circuit C care conine toate vrfurile grafului.
Demonstraie

Conform definiiei, dac G este conex, atunci pentru orice
1 2
, x x X
exist un drum
1,2
d care s aib extremitatea iniial
1
x i extremitatea final
2
x .
Din acelai motiv exist un drum
2,1
d care s aib extremitatea iniial
2
x i
extremitatea final
1
x . Putem forma astfel un circuit
( )
1 1,2 2,1
, C d d = .
Dac
1
C conine toate vrfurile din G , atunci
1
C C = este circuitul cutat.
Presupunnd c
1
C nu conine toate vrfurile grafului G , fr a reduce
generalitatea, considerm c celelalte vrfuri sunt cuprinse n circuitul
2
C .
Fie
3
x un vrf care se gsete pe circiutul
2
C . Deoarece G este tare
conex, rezult c exist un drum
3
d de la
1
x la
3
x i exist un drum
4
d de la
3
x
la
1
x .
Considernd
2
C scris ca drum de la
3
x la
3
x , formm astfel un circuit nou
( )
1,2 2,1 3 2 4
, , , , C d d d C d = care este un circuit ce conine toate vrfurile lui G .

Presupunnd c n G exist un circuit C care conine toate vrfurile,
atunci pentru orice , x y X exist un drum d C care s fie de extremiti x i
y , deci G este tare conex.

Definiie. Fie ( ) , G X U = un graf orientat. Definim
( ) ( ) { }
, circuit in cu , V x y U C G x y C = . Graful parial ( ) , H X V = se
numete graful orientat ciclu al lui G .

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





44
Graful considerat are reprezentarea
1
2
3
4
5
6
7

n graful G putem identifica circuitele ( )
1
2, 4, 3, 2 C = , ( )
2
1, 2, 4, 3,1 C =
i ( )
3
5, 6, 7, 5 C = . Considernd arcele din aceste circuite i mulimea U se vede
c exist muchia ( ) 3, 5 care nu face parte din niciun circuit din G . Putem
considera astfel graful parial ( ) , G X V = n care
( ) ( ) ( ) ( ) ( ) ( ) ( ) { }
1, 2 , 2, 4 , 3,1 , 3, 2 , 5, 6 , 6, 7 , 7, 5 V =
Graful G este graful orientat ciclu al grafului G i are reprezentarea
1
2
3
4
5
6
7


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


45
Demonstraie

Folosind propoziia 6, dac G este component tare conex a lui G
atunci exist un circuit C care conine toate vrfurile din Y i orice \ x X Y nu
se formeaz circuite cu x i vrfuri din Y . Astfel, W V i deci G este subgraf
n H .
C conine toate vrfurile 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 raionamentul de mai sus.

Definiie. Fie ( ) , G X U = un graf orientat i
1
C ,
2
C , ...,
t
C
componentele tari conexe ale lui G . Fie
{ }
1 2
, ,...,
t
Y C C C =
i
( ) ( )
{ }
, , cu ,
i j i j
V C C x C y C x y U Y Y = .
Graful ( ) , H Y V = se numete graful condensat al lui G .

Observaie. Graful condensat al oricrui graf orientat este aciclic.
Exemplul 17. S considerm din nou graful orientat din exemplul 16. Am
vzut n exemplul 16 c exist dou circuite, ( )
2
1, 2, 4, 3,1 C = i ( )
3
5, 6, 7, 5 C = ,
care sunt circuite care cuprind toate vrfurile din graful orientat ciclic. Astfel am
obinut: graful G are dou componente tare conexe, corespunztoare celor dou
circuite.
Deoarece n graful G exist arcul ( ) 3, 5 ntre vrful 3 care este n
componenta tare conex
1
C i vrful 5 din componenta tare conex
2
C . Putem
constitui astfel mulimea { }
1 2
, Y C C = i ( ) { }
1 2
, V C C = pentru a forma graful
orientat ( ) ,
c
G Y V = care este astfel graful orientat condensat a grafului G .
Reprezentarea grafului condensat este
C
1
C
2



46





III. REPREZENTAREA GRAFURILOR

3.1. Reprezentare grafuri neorientate

Forma uzual de reprezentare a grafurilor neorientate este prin asocierea
unei valori logice pentru existena sau nu a unei muchii ntre dou noduri.
Astfel, dac ( ) , G X U = este un graf neorientat, atunci pentru orice
, x y X , considerm
( )
{ }
{ }
pentru ,
1
,
0 pentru ,
x y U
m x y
x y U

.
Definiie. Fie ( ) , G X U = un graf neorientat cu X n = i presupunem
c { }
1 2
, ,...,
n
X x x x = . Definim matricea
( ) { } ( )
,
1 ,
0,1
G i j n
i j n
A a

= M , definit
prin
( )
,
ij i j
a m x x = . Matricea
G
A se numete matricea de adiacen asociat
grafului G .

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

47
1
2 3 4
5

Construim tabelul definiie elementelor ( ) , m x y i obinem:

y
x
1 2 3 4 5
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 adiacena este astfel:
0 1 0 1 0
1 0 1 1 0
0 1 0 0 1
1 1 0 0 1
0 0 1 1 0
G
A
| |
|
|
| =
|
|
|
\


Dac ( ) , G X U = este un graf neorientat, atunci pentru orice , x y X ,
considerm
( )
| |
0 1

1 , ,..., in
,
0
altfel
r
L x x x x y G
l x y

= = =


Definiie. Fie ( ) , G X U = un graf neorientat cu X n = i presupunem
c { }
1 2
, ,...,
n
X x x x = . Definim matricea
( ) { } ( )
1 ,
0,1
G ij n
i j n
L l

= M , definit
prin
( )
,
ij i j
l l x x = . Matricea
G
L se numete matricea lanurilor grafului G .


48
Observaie. Matricea lanurilor
G
L este o matrice simetric deoarece dac
exist un lan | |
0 1
, ,...,
r
L x x x x y = = = de la x la y , atunci exist i un lan de la
y la x i anume lanul | |
1 0
,..., ,
r
L y x x x x = = = care este chiar lanul
| |
0 1
, ,...,
r
L x x x x 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 lanurilor. Pentru aceasta se observ c avem lanurile { } 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 lanuri ntre oricare dou vrfuri ale grafului (graful este
conex). Astfel, matricea lanurilor va fi
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
G
L
| |
|
|
| =
|
|
|
\


Definim urmtoarele operaii:
Adunarea logic, { } { } { } : 0,1 0,1 0,1 + , definit prin a b a b + = ,
pentru orice { } , 0,1 a b , unde este operaia uzual de disjuncie logic
(sau logic);
nmulirea logic { } { } { } : 0,1 0,1 0,1 i , definit prin
ab a b a b = = i , pentru orice { } , 0,1 a b , unde este operaia uzual
de conjuncie logic (i logic).
Folosind aceste operaii drept operaii uzuale, A fiind o matrice cu valori
booleene, are loc urmtorul rezultat.
Propoziia 1. Fie ( ) , G X U = un graf neorientat, A matricea sa de
adiacen i L matricea lanurilor lui G . Atunci are loc relaia:
1
1
n
k
k
L A

=
=


calculele fiind realizate folosind operaiile + i i .

49
Demonstraie. S considerm nti c n G avem muchiile
{ }
,
i j
x x i
{ }
,
j k
x x . Atunci n matricea A avem 1
ij ji
a a = = i 1
jk kj
a a = = . n matricea
( )
2
1 ,
ij
i j n
A B b

= = avem
1 1 1
1 1
n n n
ik is sk ij jk is sk is sk
s s s
s j s j
b a a a a a a a a
= = =

= = + = + =

i i i i
i, de asemenea, avem un lan de la
i
x la
k
x i anume lanul , ,
i j k
x x x (

.
Similar se poate arta c dac n
( )
1 ,
p
ij
i j n
A B b

= = avem un lan de la
i
x la
j
x (deci 1
ij
b = ) i n G avem muchia
{ }
,
j k
x x (deci 1
jk
a = ) (ceea ce nu
produce un lan de la
i
x la
k
x ), atunci n
( )
1
1 ,
p
ij
i j n
A B b
+

= = avem 1
ik
b = .
Folosind acum teorema induciei complete rezult c n
( )
1
1 ,
n
ij
i j j
A C c


= = avem 1
ij
c = dac i numai dac n G exist un lan de la
i
x la
j
x i astfel
ij ij
c l = . Acest lucru implic
1 n
L A

= .

Exemplul 3. Pentru graful ( ) , G X U = din figura de mai jos, s calculm
matricea lanurilor folosind formula din propoziia 1. Avem 5 n X = =
1
2 3
4 5

Matricea de adiacen a grafului este
0 0 1 0 1
0 0 0 1 0
1 0 0 0 1
0 1 0 0 0
1 0 1 0 0
A
| |
|
|
| =
|
|
|
\

Trebuie s calculm
4
L A = . Pentru
2
A A A = i avem:

50
2
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
1 0 0 0 1 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
A
| | | | | |
| | |
| | |
| | | = =
| | |
| | |
| | |
\ \ \
i ,
Pentru
3 2
A A A = i 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
1 0 1 0 1 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
A
| | | | | |
| | |
| | |
| | | = =
| | |
| | |
| | |
\ \ \
i
i
4 3
A A A = i conduce la
4
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
1 0 1 0 1 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
A
| | | | | |
| | |
| | |
| | | = =
| | |
| | |
| | |
\ \ \
i
Adunnd cele 4 matrici avem
1 0 1 0 1
0 1 0 1 0
1 0 1 0 1
0 1 0 1 0
1 0 1 0 1
L
| |
|
|
| =
|
|
|
\


Propoziia 2. Fie ( ) , G X U = un graf neorientat i L matricea lanurilor
sale. Graful G este conex dac i numai dac 1
ij
l = , pentru orice 1 , i j n .
Demonstraie. G este conex dac i numai dac pentru orice ,
i j
x x X
exist un lan de la
i
x la
j
x , dac i numai dac 1
ij
l = , pentru orice 1 , i j n .

Observaie. Dac ( ) , G X U = este un graf neorientat neconex, avnd k
componente conexe, atunci putem face o partiie a lui X bazat pe componentele
conexe,
1 2
...
k
X X X X = ,
i j
X X = pentru orice 1 , i j k , i j ,

51
cu proprietatea c fiecare
i
X reprezint nodurile unei componente conexe a lui G .
n plus, exist o permutare a nodurilor din X astfel nct indicii nodurilor dintr-o
component conex s fie consecutivi.
Definiie. Fie A o matrice ptrat de ordin n . Dac
1
2
0 0
0 0
0 0
i
i
i
k
B
B
A
B
| |
|
|
=
|
|
|
\


unde 0 reprezint matrici cu toate elementele egale cu zero,
j
B este o matrice
ptrat de ordin j cu o proprietate dat i
1 2
...
k
i i i n + + + = , spunem c A este
matrice bloc diagonal.

Propoziia 3. Exist o permutare a numerotrii nodurilor unui graf
neorientat ( ) , G X U = astfel nct matricea lanurilor s fie de form bloc
diagonal cu blocurile formate doar cu valoarea 1. Blocurile diagonale corespund
componentelor conexe ale grafului.
Demonstraie. Este suficient s artm c propoziia are loc pentru un graf
neconex cu dou componente conexe, deoarece pentru un graf conex se folosete
propoziia 2 pentru a scrie
n
L B = , cu X n = i
n
B are toate elementele egale
cu 1.
Datorit observaiei fcute mai sus, exist o permutare a numerotrii
indicilor astfel nct
{ } 1 1
1
,...,
i
X x x = ,
{ } 2 1
1 2
,...,
i i
X x x
+
= cu
1 2
i i n + = i
1 2
X X X = ,
1 2
X X = i subgrafurile de noduri
{ } 1 1
1
,...,
i
X x x = i
{ } 2 1
1 2
,...,
i i
X x x
+
= corespund componentelor conexe ale lui G .
Deoarece subgraful ( )
1 1 1
, G X V = corespunztor lui
1
X este conex, avem
1 1
G i
L B = . Similar, pentru subgraful ( )
2 2 2
, G X V = avem
2 2
G i
L B = . Cum nu
exist muchii ntre nodurile din
1
X i nodurile din
2
X , rezult c 0
ij
l = pentru
orice
1
1 i i i orice
1 2
1 i j i + .
Astfel obinem
1
2
0
0
i
G
i
B
L
B
| |
= |
|
\
.


52
Exemplul 4. Considerm graful ( ) , G X U = din exemplul 3 pentru care
am calculat matricea lanurilor:
1 0 1 0 1
0 1 0 1 0
1 0 1 0 1
0 1 0 1 0
1 0 1 0 1
G
L
| |
|
|
| =
|
|
|
\

Cel mai simplu mod de a determina permutarea care aplicat lui X s
conduc la un graf pentru care matricea lanurilor s fie n format matrice bloc
diagonal este de a realiza o renumerotare a vrfurilor astfel nct vrfurile dintr-o
component conex s fie numerotate cu valori consecutice.
Plecnd de la graful G , prin renumerotarea vrfurilor putem obine graful
( ) , H X V = :
4
2 3
1 5

pentru care permutarea aplicat este
1 2 3 4 5
4 2 3 1 5

| |
=
|
\
. (Deoarece
: X X este o permutare, deci o funcie bijectiv i se pstreaz muchiile,
rezult c G H , adic cele dou grafuri sunt izomorfe)..
Prin aplicarea permutrii la liniile i coloanele matricii
G
L se obine
matricea
1 1 0 0 0
1 1 0 0 0
0 0 1 1 1
0 0 1 1 1
0 0 1 1 1
H
L
| |
|
|
| =
|
|
|
\

care este o matrice bloc diagonal, n care
1
1 1
1 1
B
| |
=
|
\

i

53
2
1 1 1
1 1 1
1 1 1
B
| |
|
=
|
|
\
.

Observaie. Permutarea care transform un graf ntr-un graf izomorf cu
matricea lanurilor bloc diagonal nu este unic. Acest lucru reiese din exemplul
urmtor.
Exemplul 5. Considerm tot graful din exemplul 3. De aceast dat
transformm graful n graful ( ) , J X W = din imaginea:
1
5 3
4 2

pentru care permutarea aplicat vrfurilor este
1 2 3 4 5
1 5 3 4 2

| |
=
|
\
.
Matrica lanurilor pentru acest graf este

1 1 1 0 0
1 1 1 0 0
1 1 1 0 0
0 0 0 1 1
0 0 0 1 1
J
L
| |
|
|
| =
|
|
|
\
.
Care are ca blocuri diagonate pe
1
1 1 1
1 1 1
1 1 1
B
| |
|
=
|
|
\

i
2
1 1
1 1
B
| |
=
|
\
.
Se poate observa c matricile
H
L i
J
L sunt formate din aceleai blocuri
diagonale, dar scrise n alt ordine.


54
Prin generalizare putem considera c matricea de adiacen este i matricea
lanurilor de lungime 1. Propoziia 2 ne d modul de determinare a matricii tuturor
lanurilor. Din demonstraia propoziiei 2 putem trage concluzia c
k
A d matricea
lanurilor elementare de lungime exact k , pe care o putem nota prin
( ) k
G
L i relaia
( ) k k
G
L A = este valabil pentru orice k dac notm
0
0 A = , matricea cu toate
elementele egale cu zero.

3.2. Matrici asociate grafurilor orientate

Definiie. Fie ( ) , G X U = un graf orientat cu X n = i
{ }
1 2
, ,...,
n
X x x x = . Matricea
( ) { } ( )
1 ,
0,1
G ij n
i j n
A a

= M dat prin
( )
( )
pentru ,
1
0 pentru ,
i j
ij
i j
x x U
a
x x U

, orice 1 , i j n
se numete matricea de adiacen a grafului G .


Dup cum se poate observa, noiunea 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 conine valori 1
pe diagonala principal, dac graful orientat conine arce de forma ( ) , x x U
(bucle).
Definiie. Fie ( ) , G X U = un graf orientat cu X n = i
{ }
1 2
, ,...,
n
X x x x = . Matricea
( ) { } ( )
2
1 ,
1, 0,1
ij
i j n
C c

= M dat prin
( )
( ) ( ) { }
( ) ( )
pentru ,
1
0 pentru , , ,
pentru , si , 1
i j
ij i j j i
i j j i
x x U
c x x x x U
x x U x x U

= =

, orice 1 , i j n
se numete matricea de conectare a grafului G .

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

55
1
3
2
4
5

Matricea de adiacen a grafului este
0 0 1 0 0
0 0 1 0 1
1 0 0 0 0
0 1 1 0 0
0 0 0 0 1
G
A
| |
|
|
| =
|
|
|
\
,
n timp ce matricea de comutare este
0 0 1 0 0
0 0 1 1 1
1 1 0 1 0
0 1 1 0 0
0 1 0 0 1
G
C
| |
|

|
| =
|
|
|

\
.

Definiie. Fie ( ) , G X U = un graf orientat cu X n = i presupunem c
{ }
1 2
, ,...,
n
X x x x = . Matricea
( ) { } ( )
1 ,
0,1
G ij n
i j n
L l

= M , definit prin
i 0 1
1 x , ,..., lant in
0
altfel
r j
ij
y y y x G
l
( = =

, orice 1 , i j n
se numete matrica lanurilor grafului G .

Matricea lanurilor se definete, n mod similar, cu cea dat pentru grafurile
neorientate i este o matrice simetric..
Pentru orice matrice real
( )1
1
i n
ij
j m
A a

= putem defini matricea valorilor
absolute ale lui A, ca fiind matricea
( )1
1
i n
ij
j m
A a


= . Cu aceast notaie putem
scrie imediat urmtorul rezultat.


56
Propoziia 4. Fie ( ) , G X U = un graf orientat, C matricea sa de
conectare i L matricea lanurilor lui G . Atunci are loc relaia:
1
1
n
k
k
L C

=
=


calculele fiind realizate prin operaiile + i i .
Demonstraie. Considerm graful neorientat ( ) , G X V = n care
{ } , x y V dac i numai dac
( ) ( ) { }
, , ,
i j j i
x x x x U (graful neorientat care
se obine din G prin eliminarea orientrii arcelor).
Dac
G
A este matricea de adiacen a grafului neorientat G , atunci se
observ uor c
A G

= .
Din propoziia 1 avem ( )
1
1
n
k
G
k
L A


=
=

i folosind relaia anterioar avem


1
1
n
k
k
L C

=
=



Propoziia 4 ne indic faptul c propoziiile 2 i 3 enunate pentru grafuri
neorientate i pstreaz enunul i n condiiile grafurilor orientate, folosind
noiunile de graf conex i component conex date pentru grafurile orientate.
Exemplul 7. S considerm graful din exemplul 6. Pentru determinarea
matricii lanurilor avem de scris matricea C

care se obine din matricea


G
C ,
considernd toate elementele n modul. Se obine astfe matricea
0 0 1 0 0
0 0 1 1 1
1 1 0 1 0
0 1 1 0 0
0 1 0 0 1
C

| |
|
|
| =
|
|
|
\
.
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

57
1
3
2
4
5

Graful G , ca i graful G , este conex i astfel matricea lanurilor n cele
dou grafuri va avea toate elementele egale cu 1, deci
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
G G
L L

| |
|
|
| = =
|
|
|
\
.

Definiie. Fie ( ) , G X U = un graf orientat cu X n = i presupunem c
{ }
1 2
, ,...,
n
X x x x = . Matricea
( ) { } ( )
1 ,
0,1
G ij n
i j n
D d

= M , definit prin
( )
i 0 1
1 x , ,..., drum in
0
altfel
r j
ij
y y y x G
d

= =

, orice 1 , i j n
se numete matricea lanurilor grafului G .

Definiie. Fie ( ) , G X U = un graf orientat cu X n = i presupunem c
{ }
1 2
, ,...,
n
X x x x = . Matricea
( ) ( )
1 ,
G ij n
i j n
ND nd

= M , definit prin
ij
nd
este numrul drumurilor n G de la
i
x la
j
x , orice 1 , i j n , se numete
matricea numrului de drumuri din graf G .

Propoziia 5. Fie ( ) , G X U = un graf orientat, A matricea sa de
adiacen. Atunci are loc relaia
2
...
n
G
D A A A = + + + + (pentru calcule se
utilizeaz operaiile + i i )..
Demonstraie. Presupunem c
( ) ( )
, , ,
i j j k
x x x x U i astfel avem
1
ij
a = i 1
jk
a = . Atunci 1
ij jk
a a = i i astfel

58
1
1
n
ik ij jk il lk
l
l j
b a a a a
=

= + =

i i ,
unde
( )
2
1 ,
ij
i j n
A b

= . De aici rezult c 1
ik
d = Pe de alt parte din
( ) ( )
, , ,
i j j k
x x x x U , nseamn c putem forma drumul
( )
, ,
i j k
x x x n G deci
exist drum de la
i
x la
k
x .
Asemntor, dac exist un drum
( )
0 1
, ,...,
i k j
x y y y x = = n G de
lungime 1, deci n
( )
1 ,
k
ij
i j n
A b

= avem 1
ij
b = , i
( )
,
j k
x x U , deci 1
jk
a = ,
atunci, pe de o parte, se formeaz n G drumul
( )
0 1
, ,..., ,
i k j k
x y y y x x = = , iar,
pe de alt parte, prin calcul similar celui din cazul
2
A , pentru
( )
1
1 ,
k
ij
i j n
A b
+

=
obinem 1
ik
b = .

Corolar. n condiiile propoziiei 5 avem
( ) k k
G
D A = .
Calculele n aceast relaie se fac prin operaiile + i i . Am notat
cu
( ) ( )
( )
5
1 ,
k
G ij
i j n
D d

= matricea drumurilor din G de lungime k , definit prin
( )
( )
i 0 1
1 x , ,..., drum in
0
altfel
k k j
ij
y y y x G
d

= =

, orice 1 , i j n .
Demonstraie. Relaia rezult direct din demonstraia propoziiei 5.

Exemplul 8. Considerm din nou graful din exemplul 7 pentru care am
scris matricea de adiacen:
0 0 1 0 0
0 0 1 0 1
1 0 0 0 0
0 1 1 0 0
0 0 0 0 1
G
A
| |
|
|
| =
|
|
|
\

Pentru
2
A A A = i obinem

59
2
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
1 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
A
| || | | |
| | |
| | |
| | | = =
| | |
| | |
| | |
\ \ \

Din calculul pentru
3 2
A A A = i avem
3
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
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
A
| || | | |
| | |
| | |
| | | = =
| | |
| | |
| | |
\ \ \

Pentru
4 3
A A A = i rezult matricea
4
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
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
A
| || | | |
| | |
| | |
| | | = =
| | |
| | |
| | |
\ \ \

Prin sumare rezult matricea
1 0 1 0 0
1 0 1 0 1
1 0 1 0 0
1 1 1 0 1
0 0 0 0 1
G
D
| |
|
|
| =
|
|
|
\


Propoziia 6. Fie ( ) , G X U = un graf orientat, A matricea sa de
adiacen. Atunci are loc relaia
2
...
n
G
ND A A A = + + +
(unde operaiile sunt cele uzuale, definite pe ).
Demonstraie. Se procedeaz n acelai mod ca n demonstraia
propoziiei 5, plecndu-se de la presupunerea iniial c A conine de fapt numrul
de drumuri de lungime 1 din G .




60
Corolar. n condiiile din propoziia 6 avem
( ) k k
G
ND A = .
Calculele se fac prin operaiile uzuale definite pe mulimea numerelor naturale
. Am notat
( ) ( )
( )
5
1 ,
k
G ij
i j n
ND nd

= matricea numrului de drumuri de lungime k
din G , unde
( ) k
ij
nd este numrul de drumuri de lungime exact k avnd
extremitatea iniial
i
x i extremitatea final
j
x .
Demonstraie. Proprietatea rezult imediat din detalierea demonstraiei
propoziiei 6.

Exemplul 8. Considerm din nou graful din exemplul 7 pentru care am
scris matricea de adiacen:
0 0 1 0 0
0 0 1 0 1
1 0 0 0 0
0 1 1 0 0
0 0 0 0 1
G
A
| |
|
|
| =
|
|
|
\

Pentru
2
A AA = obinem
2
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
1 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
A
| || | | |
| | |
| | |
| | | = =
| | |
| | |
| | |
\ \ \

Din calculul pentru
3 2
A A A = avem
3
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
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
A
| || | | |
| | |
| | |
| | | = =
| | |
| | |
| | |
\ \ \

Pentru
4 3
A A A = rezult matricea

61
4
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
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
A
| || | | |
| | |
| | |
| | | = =
| | |
| | |
| | |
\ \ \

Prin sumare rezult matricea
2 0 2 0 0
2 0 2 0 4
2 0 2 0 0
3 1 4 0 3
0 0 0 0 4
G
ND
| |
|
|
| =
|
|
|
\


Propoziia 7. Fie ( ) , G X U = un graf orientat cu
( )
1 ,
G ij
i j n
D d

=
matricea drumurilor i
( )
1 ,
G ij
i j n
ND nd

= matricea numrului de drumuri.
Atunci pentru orice 1 , i j n , 1
ij
d = dac i numai dac 0
ij
nd .
Demonstraie. Rezultatul este imediat, deoarece este clar c 1
ij
d = dac i
numai dac exist cel puin un drum de la
i
x la
j
x i astfel 0
ij
nd .

Trebuie s observm faptul c discuia relativ la conexitate pentru grafuri
neorientate i legtura acestei proprieti cu matricea lanurilor are corespondent i
pentru grafurile orientate cnd paralela se face ntre proprietatea de tare conexitate
i matricea drumurilor. Din aceast cauz urmtoarele rezultate sunt date fr
demonstraii.
Propoziia 8. Fie ( ) , G X U = un graf orientat cu
G
D matricea
drumurilor. G este tare conex dac i numai dac
G
D are toate elementele egale
cu 1.

Propoziia 9. Exist o permutare a numerotrii nodurilor unui graf
orientat ( ) , G X U = astfel nct matricea drumurilor s fie de form bloc
diagonal cu blocurile formate doar cu valoarea 1. Blocurile diagonale corespund
componentelor tari conexe ale grafului.



62





IV. ARBORI

4.1. Definire i proprieti

Definiie. Numim arbore orice graf neorientat conex i fr cicluri.

Teorema 1. Fie ( ) , G X U = un graf neorientat. Urmtoarele afirmaii
sunt echivalente:
1. G este arbore.
2. G este aciclic maximal.
3. G este convex minimal.
Demonstraie
1 2
Din definiie rezult c G este aciclic. n plus, deoarece G este i conex,
conform propoziie 2 din capitolul 2, rezult c 1 U X .
Presupunem c adugm o muchie nou. Astfel, dac { } , x y U ,
considerm graful { } { } ( )
, , H X U x y = . Acest graf are acelai numr de vrfuri
i cu 1 mai multe muchii, astfel nct are loc relaia { } { }
, U x y X = . Folosind
propoziia 4 din capitolul 2 rezult c H este un graf ciclic.
Deoarece prin adugarea oricrei muchii noi la graful G aciclic se obine
un graf ciclic, rezult c G este maximal fa de proprietatea de a fi aciclic.
1 3
Din definiie rezult c G este conex.
Considerm o muchie oarecare { } , x y U i graful
{ } { } ( )
, \ , H X U x y = pe care l presupunem conex. Atunci exist un lan de
extremiti x i y ,
0
,...,
y
L x x x y = = =

n H .
Deoarece { } , x y U , considernd { } , , L L y x =

n G , avem de fapt
[ ]
0
,..., ,
r
L x x x y x = = = , care, avnd acelai vrf la extremiti, este un ciclu
n G . Contradicie ( G este aciclic).


63
2 1
Avem ipoteza c G este un graf aciclic maximal. Considerm c G nu
este conex i astfel 1 U X < .
Atunci exist , x y X fr a putea fi conectate printr-un lan. Astfel
pentru a conecta x i y trebuie s adugm muchia { } , x y U i astfel s putem
obine eventual un graf conex.
G fiind aciclic maximal, rezult c adugnd o muchie graful devine ciclic
i astfel obinem 1 U X + , sau altfel scris 1 U X . Contradicie.
G fiind conex i aciclic, rezult c G este arbore.
3 1
Avem ipoteza c G este un graf conex minimal. Considerm c G nu este
aciclic. Atunci exist [ ]
0
,..., ,
r
L x x x y x = = = un ciclu n G . Considerm graful
{ } { } ( )
, \ , G X U x y = .
Fie , a b X . Deoarece G este conex rezult c a i b sunt conectate
printr-un lan
0
,...,
p
L y y =

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
0 1
,..., , ,
i i p
L y y x y y y
+
= = =

.
Considerm lanul
0 0 1
,..., ,..., ,
i r i p
L y y x x x y y y
+
= = = = =


care este de extremiti 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 obine prin eliminarea unei muchii din G
este conex, i astfel G nu este minimal la proprietatea de conexitate. Contradicie.
Am obinut astfel c G este aciclic i fiind conex, rezult c G este
arbore.

Corolar. Dac ( ) , G X U = este arbore, atunci 1 U X = .
Demonstraie. 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 conine cicluri, rezult c numrul de muchii este cel mai
mare care ndeplinete relaia U X < i astfel 1 U X = .


64
Exemplul 1. Considerm graful ( ) , G X U = , unde { } 1, 2,...,15 X =
(deci 15 X = ) i care are reprezentarea
1
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
conine cicluri i astfel graful este un arbore. Avem de asemenea 14 U = i astfel
este verificat relaia 1 U X = .
Dac la acest graf adugm o muchie, de exemplu { } 3, 8 se obine
reprezentarea
1
2 3 4
5 6 7 8 9
10 11 12 13 14 15


65
se observ c se formeaz ciclul { } 1, 3,8, 4,1 C = , astfel c noul graf este ciclic,
deci nu mai este un arbore.
Dac se elimin o muchie, de exemplu { } 1, 4 , atunci se obine
reprezentarea
1
2 3 4
5 6 7 8 9
10 11 12 13 14 15

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

Propoziie 1. Dac ( ) , G X U = este un arbore, atunci G are cel puin
dou vrfuri terminale.
Demonstraie. Din propoziia 2, capitolul 1 avem c numrul nodurilor cu
gradul impar este par i astfel trebuie s artm c dac G este arbore atunci
conine cel puin un nod terminal.
Presupunem c G nu conine niciun nod terminal. Astfel, oricare ar fi
x X , ( ) 2 d x .
Dac
0
x X , cum ( )
0
2 d x , exist
1 1
, x x X , astfel nct
{ } { }
1 0 0 1
, , , x x x x U , n plus,
0
x ,
1
x i
1
x sunt distincte dou cte dou, pentru
c altfel ar apare un ciclu. Putem forma astfel lanul elementar [ ]
1 1 0 1
, , L x x x = .



66
Deoarece ( )
1
2 d x i { }
0 1
, x x U , rezult c exist { }
1 2
, x x U . n
plus, trebuie s avem { }
2 1 0 1
, , x x x x , deoarece, n caz contrar, se formeaz un
ciclu. Astfel, putem forma lanul [ ]
2 1 0 1 2
, , , L x x x x = i procesul poate continua la
infinit, deci X este infinit. Contradicie.


4.2. Arbori pariali

Definiie. Fie ( ) , G X U = un graf neorientat i ( ) , H X V = un graf
parial al lui G . Dac H este arbore spunem c H este un arbore parial (de
acoperire sau de traversare) al lui G .

Observaie. Dac un graf neorientat ( ) , G X U = are arbore parial, acesta
nu este unic.
Exemplul 2. Fie graful ( ) , G X U = cu 10 X = care are reprezentarea
1
2 3
10
4 5
8
6
7
9

i astfel avem
{ } { } { } { } { } { } { } {
{ } { } { } { } { } { } { } { }}
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
U =

Putem alege graful parial ( )
1 1
, H X V = , unde
{ } { } { } { } { } { } { } { } { } { }
1
1, 2 , 1, 4 , 2, 3 , 3, 5 , 4, 6 , 4, 8 , 4, 9 , 6, 7 , 9,10 V =
Se poate arta c graful
1
H este un graf conex i fr cicluri deci este un
arbore. Atunci este un alt arbore parial al grafului G .


67
Graful
1
H are reprezentarea
1
2 3
10
4 5
8
6
7
9

Ca graf parial al grafului G se poate face i alegerea ( )
2 2
, H X V = , unde
{ } { } { } { } { } { } { } { } { } { }
2
1, 2 , 2, 3 , 2, 4 , 2,10 , 4, 6 , 4, 8 , 4, 9 , 5, 6 , 6, 7 V =
i pentru acest graf se poate demonstra c este conex i aciclic i astfel i
2
H este graf arbore parial pentru graful G .
Graful
2
H are reprezentarea
1
2 3
10
4 5
8
6
7
9

Se poate vedea c grafurile
1
H i
2
H sunt diferite i acest lucru justific
observaia fcut anterior. Se poate arta c cei doi arbori pariali nu sunt nici
izomorfi.


68
Definiie. Fie ( ) , G X U = un graf neorientat i ( ) , A X V = un arbore
parial al lui G . Numim coarde ale lui H elementele mulimii \ U V , iar numrul
\ U V se numete numrul ciclomatic al lui G .

Exemplu 3. Pentru exemplul 2 se poate constata c 15 U = i
1 2
9 V V = = . Cum
1
V U , rezult c
1 1
\ 15 9 6 U V U V = = = i deci,
numrul 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 parial.
Demonstraie

Considerm c G este conex. Dac G este conex minimal, atunci G este
arbore i astfel H G = este arbore parial al lui G .
Dac G nu este minimal la proprietatea de conexitate, atunci putem
elimina succesiv muchii astfel nct s rmn valabil proprietatea de conexitate.
Presupunem c obinem graful parial ( ) , H X V = conex i astfel nct
dac eliminm o muchie din V , atunci graful obinut nu mai este conex. Rezult
astfel c H este maximal la proprietatea de conexitate i astfel H este un arbore.
Cum H se obine din G prin eliminarea de muchii, rezult c H este graf parial
al lui G i astfel H este arbore parial al lui G .

Fie H un arbore parial al lui G . H fiind arbore este graf conex.
Fie , x y X arbitrare. H fiind conex, rezult c exist
1 2
, ,...,
p
L m m m =

un lan n H de extremiti x i y , unde pentru orice
1, 2,..., i p = ,
i
m V .
Cum V U , rezult c pentru orice 1, 2,..., i p = ,
i
m U i astfel
1 2
, ,...,
p
L m m m =

este un lan n G de extremiti x i y . Astfel rezult c G
este un graf conex.

Demonstraia de mai sus permite considerarea unui algoritm care s
conduc la determinarea unui arbore parial pentru un graf conex.





69
Algoritm 1
1. Fie V U = .
2. Dac graful ( ) , H X V = nu conine cicluri, atunci algoritmul se termin i
H este un arborele parial al lui G , altfel se continu.
3. Se consider un ciclu
1 2
, ,...,
p
C e e e =

n H
4. Se alege
{ }
1 2
, ,...,
p
e e e e . Considerm { } \ V V e = i mergem la 2.

Exemplul 4. Considerm din nou graful ( ) , G X U = din exemplul 2 i
facem iniializarea
{ } { } { } { } { } { } { } {
{ } { } { } { } { } { } { } { }}
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
V U = =

Un ciclu din graful ( ) , X V este { } 1, 2, 4,1 . Pentru a elimina acest ciclu
putem presupune c eliminm din V muchia { } 1, 2 i se obine
{ } { } { } { } { } { } { } {
{ } { } { } { } { } { } { }}
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
V =

n graful obinut se formeaz ciclul { } 2, 3, 5,10, 2 i pentru a-l elimina
putem considera muchia { } 2,10 . Rezultatul eliminrii ei este
{ } { } { } { } { } { } { } { } { } {
{ } { } { } { }}
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
V =

Tot pornind din vrful 2 se formeaz ciclul { } 2, 4, 6, 5, 3, 2 i pentru
eliminarea lui folosim muchia { } 2, 4 , obinnd
{ } { } { } { } { } { } { } { } {
{ } { } { } { }}
1, 4 , 2, 3 , 3, 5 , 4, 6 , 4, 8 , 4, 9 , 5, 6 , 5, 7 ,
5,10 , 6, 7 , 7, 9 , 9,10
V =

n ultimul graf ( ) , X V se formeaz ciclul { } 4, 6, 7, 9, 4 i eliminm
muchia { } 7, 9 pentru a ajunge la
{ } { } { } { } { } { } { } { } { } { } { } { }
1, 4 , 2, 3 , 3, 5 , 4, 6 , 4,8 , 4, 9 , 5, 6 , 5, 7 , 5,10 , 6, 7 , 9,10 V =
Detectm n continuare ciclul { } 4, 9,10, 5, 6, 4 i l eliminm prin
excluderea muchiei { } 9,10 avnd ca rezultat
{ } { } { } { } { } { } { } { } { } { } { }
1, 4 , 2, 3 , 3, 5 , 4, 6 , 4, 8 , 4, 9 , 5, 6 , 5, 7 , 5,10 , 6, 7 V =

70
Ultimul graf ( ) , X V obinut conine ciclul { } 5, 6, 7, 5 . Pentru a elimina
acest ciclu putem terge muchia { } 6, 7 i ajungem la
{ } { } { } { } { } { } { } { } { } { }
1, 4 , 2, 3 , 3, 5 , 4, 6 , 4, 8 , 4, 9 , 5, 6 , 5, 7 , 5,10 V =
Graful obinut nu mai conine cicluri i astfel algoritmul 1 pe care l-am
aplicat mai sus se oprete, graful ( ) , X V fiind un arbore parial al grafului G .
Acest lucru este adevrat deoarece pe de o parte ( ) , X V este graf parial al lui G
i, pe de alt parte, deoarece 9 1 V X = = , rezult c ( ) , X V este un arbore.
Arborele parial ( ) , X V are reprezentarea
1
2 3
10
4 5
8
6
7
9


Propoziia 2. Fie ( ) , G X U = un graf neorientat conex. Atunci numrul
ciclomatic al lui G este 1 U X + .
Demonstraie. Fie ( ) , H X V = arborele parial al lui G . Deoarece H
este arbore, rezult c avem relaia 1 V X = . Numrul ciclomatic al lui G este
prin definiie valoarea \ U V .
Din teoria mulimilor tim c dac V U , atunci \ U V U V = .
nlocuind valoarea pentru V , pentru numrul ciclomatic al lui G obinem
( )
\ 1 1 U V U V U X U V = = = + .


71
Propoziia 3. Fie ( ) , G X U = un graf neorientat conex, ( ) , A X V = un
arbore parial al lui G i { } , e x y = o coard a lui A. Atunci graful
{ } ( )
, H X V e = conine exact un ciclu.
Demonstraie. Deoarece A este un arbore, deci este aciclic maximal i H
se obine din A prin adugarea de muchii, rezult c H este un graf ciclic (deci
conine cel puin un ciclu)
Presupunem c H conine 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
1 0 1
, ,..., ,
p
C x x x x y x = = =

i [ ]
2 0 1
, ,..., ,
r
C x y y y y x = = =
cele dou cicluri. Putem forma ciclul
0 1 1 0
, ,..., ,..., ,
p r
C x x x x y y y y x = = = = =


Care nu conine muchia e i astfel este ciclu i n A, care astfel nu este arbore.
Contradicie.


4.3. Algoritmul lui Kruskal

Problema arborelui parial de cost minim. Fie ( ) , G X U = un graf
neorientat conex, ( ) : 0, c U o funcie, numit funcie cost a muchiilor lui G
i ( ) , H X V = un graf parial al lui G . Numim costul lui H suma costurilor
tuturor muchiilor din V , adic valoarea ( ) ( )
u U
c H c u

. Se pune problema
determinrii n G a unui graf parial conex de cost minim.
Definiie. Fie ( ) , G X U = un graf neorientat conex, ( ) : 0, c U
funcia cost a muchiilor lui G i ( ) ,
cm cm
T X V = un arbore parial cu proprietatea
c pentru orice arbore parial ( ) , T X V = avem ( ) ( )
cm
c T c T . Atunci spunem
c
cm
T este arbore parial de cost minim al lui G .

Teorema 3. Fie ( ) , G X U = un graf neorientat conex, ( ) : 0, c U
funcia cost a muchiilor lui G i ( ) , H X V = un graf parial al lui G . Dac H
este graf parial conex de cost minim, atunci H este arbore parial de cost minim.
Demonstraie. Presupunem c H nu este arbore parial, 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 .

72
Considerm graful { } ( )
, \ H X V e = . Acest graf este conex, pentru c se
obine din H prin eliminarea unei muchii ce aparine unui ciclu. Din calculul
costurilor avem:
( ) ( ) ( ) ( )
{ }
( )
{ }
( )
\ \ u V u V e u V e
c H c u c e c u c u c H

= = + > =


de unde rezult c H nu este de cost minim. Contradicie.

Algoritmul 2. (Kruskal).
1. Considerm c ( ) L i i = pentru fiecare 1, 2,..., i X = , construim ( ) M j ,
. 1, 2,..., j U = reprezentnd muchiile lui G n ordinea cresctoare a
costurilor, considerm 0 k = (pentru numrarea muchiilor selectate) i
1 j = (pentru parcurgerea lui M ). Fie V = .
2. Dac 1 k n , atunci algoritmul se oprete, muchiile din V determin
arborele parial de cost minim, altfel se continu.
3. Considerm { } ( ) , p q M j = .
4. Dac ( ) ( ) L p L q = , atunci punem 1 j j = + i mergem la 3, altfel se
continu.
5. Punem 1 k k = + 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 1 j j = + i mergem la 2.

Exemplul 5. Fie un graf neorientat ( ) , G X U = cu { } 1, 2, 3, 4, 5, 6 X = i
cu reprezentarea
1 2
3
4 5 6
1
3
2
5
3
4
2
4
3
1

n care valorile trecute pe muchii sunt valorile funciei cost : c U .

73
Dorim s determinm un graf parial de cost minim al lui G . Pentru
aceasta vom folosi algoritmul lui Kruskal prezentat mai sus.
Conform primului pas generm vectorul ( ) 1, 2, 3, 4, 5, 6 L = . Ordonm
muchiile n ordine cresctoare i ne rezult vectorul
{ } { } { } { } { } { } { } { } { } { } ( )
1, 5 , 3, 6 , 2, 4 , 3, 5 , 1, 6 , 2, 3 , 4, 5 , 3, 4 , 2, 6 , 1, 2 M = .
Punem 0 k = , 1 j = i V =
Cum 0 k = i 1 5 n = nu se ndeplinete condiia din pasul 2 i intervine
prima iteraie a algoritmului.
Prima iteraie
Considerm muchia { } 1, 5 . Deoarece ( ) ( ) 1 1 5 5 L L = = se continu cu
pasul 4 i trecem la 1 k = i adugm muchia considerat la V care devine astfel
{ } { }
1, 5 V = ..
Deoarece ( ) ( ) 1 1 5 5 L L = < = , conform pasului 5 nlocuim toate valorile
5 prin valoarea 1 i astfel L ajunge la forma ( ) 1, 2, 3, 4,1, 6 L = .
Se consider 2 j = i terminm prima iteraie i cum 1 k = i 1 5 n =
relum cu o nou iteraie.
A doua iteraie
Muchia a doua din M este { } 3, 6 i avem ( ) ( ) 3 3 6 6 L L = = . Astfel
ajungem la 2 k = i adugnd muchia la V , se obine { } { } { }
1, 5 , 3, 6 V = .
Cum ( ) ( ) 3 3 6 6 L L = < = , prin schimbarea valorilor 6 cu 3 ajungem la
( ) 1, 2, 3, 4,1, 3 L = i iteraia se termin considernd 3 j = . n plus avem 2 k = i
1 5 n = astfel c vom continua.
A treia iteraie
Urmtoarea muchie considerat este { } 2, 4 pentru care avem
( ) ( ) 2 2 4 4 L L = = i ajungem la configuraia 3 k = i
{ } { } { } { }
1, 5 , 3, 6 , 2, 4 V = .
Deoarece ( ) ( ) 2 2 4 4 L L = < = prin schimbarea valorilor se obine
( ) 1, 2, 3, 2,1, 3 L = i dup ce facem 4 j = vom continua cu o nou iteraie
deoarece 3 k = i 1 5 n = .
A patra iteraie
Lum muchia { } 3, 5 i avem ( ) ( ) 3 3 1 5 L L = = ceea ce genereaz nou
structur 4 k = i { } { } { } { } { }
1, 5 , 3, 6 , 2, 4 , 3, 5 V = .

74
Acum avem ( ) ( ) 3 3 1 5 L L = > = astfel c se nlocuiesc toate apariiile lui
3 prin valoarea 1 i obinem ( ) 1, 2,1, 2,1,1 L = i dup ce ajungem la 5 j = vom
trece la urmtoarea iteraie deoarece 4 k = i 1 5 n = .
A cincea iteraie
Noua muchie considerat este { } 1, 6 pentru care ( ) ( ) 1 1 6 L L = = astfel c
face 6 j = i lum o nou muchie, { } 2, 3 . Pentru aceasta ( ) ( ) 2 2 1 3 L L = = i
ca urmare vom ajunge la situaia 5 k = i
{ } { } { } { } { } { }
1, 5 , 3, 6 , 2, 4 , 3, 5 , 2, 3 V = .
Relaia exact relativ la valorile din L este ( ) ( ) 2 2 1 3 L L = > = i astfel
se ajunge la ( ) 1,1,1,1,1,1 L = . Facem 7 j = . La revenirea la pasul 2 cu 5 k = i
1 5 n = condiia este ndeplinit pe egalitate i astfel algoritmul se oprete. Am
obinut graful parial ( ) , H X V = care este arbore parial de cost minim, costul
arborelui fiind 1 1 2 2 3 9
H
C = + + + + = . Arborele parial de cost minim are
reprezentarea
1 2
3
4 5 6
1
2
2
3
1



4.4. Arborescene

Definiie. Fie ( ) , G X U = un graf orientat conex i aciclic. Dac exist
un unic vrf
0
x X cu ( )
0
0 d x

= i pentru orice x X ,
0
x x avem
( ) 0 d x

, spunem c G este o arborescen (sau arbore orientat).


0
x poart
numele de rdcin a arborescenei G . Vrfurile y pentru care ( ) 0 d y
+
= se
numesc vrfuri terminale sau frunze.


75
Definiie. Fie ( ) , A X U = o arborescen cu rdcina
0
x . Pentru un vrf
x X definim nivelul nodului prin ( )
0
,..., l x x , unde ( )
0
,..., x x este drumul
(unic) de extremitate iniial
0
x i extremitate final x .

Exemplul 6. Considerm graful orientat conex i aciclic ( ) , G X U = cu
10 vrfuri i care are reprezentarea
1
2 3
4 5 6 7 8
9 10

Graful G este conex deoarece exist lanuri ntre oricare dou vrfuri. El
este aciclic. De asemenea exist un unic vrf (notat 1) pentru care gradul de intrare
este zero, iar celelalte vrfuri au gradul de intrare mai mare sau egal cu 1. Astfel,
graful orientat G este o arborescen.
Deoarece ( ) 1 0 d

= , rezult c vrful 1 este rdcina arborescenei.


Observnd c ( ) 6 0 d
+
= rezult c 6 este o frunz a arborescenei.
Mulimea frunzelor arborescenei G este mulimea { } 4, 6, 7, 8, 9,10 .
Se poate vedea c ( ) ( ) 1, 2 1, 3 1 l l = = i astfel vrfurile 2 i 3 se gsesc pe
acelai nivel, i anume pe nivelul 1. Avem i ( ) ( ) 1, 2, 5, 9 1, 2, 5,10 3 l l = = , deci
putem spune c vrfurile 9 i 10 se gsesc pe acelai nivel 3.

Definiia de mai sus clasific vrfurile arborescenelor n funcie de
distana lor fa de rdcin. Aceast clasificare are ca efect o reprezentare n care
nodurile sunt poziionate pe fiecare nivel, cu rdcina arborescenei n partea
superioar a imaginii.

76
Pentru o arborescen ( ) , A X U = , dac ( ) , x y U , spunem c x este
printele (tatl) lui y i y este fiul (descendentul direct) lui x . Dac , x y X
i exist drumul (unic) ( )
1
, ,..., ,
k
x z z y , spunem c y este descendentul lui x .
Definiie. Fie ( ) , A X U = o arborescen. Dac pentru orice x X
avem ( ) { } 0,1, 2 d x
+
. Spunem c A este o arborescen binar (arbore binar).
Dac ( ) { } 0, 2 d x
+
, spunem c A este o arborescen binar complet (arbore
binar complet).

Exemplul 7. Considerm arborescena din imaginea de mai jos
1
2 3
4 5 6
7 8

care are ca rvdin vrful 1. Avem
( ) ( ) ( ) ( ) 4 5 7 8 0 d d d d
+ + + +
= = = = ,
( ) 3 1 d
+
=
i
( ) ( ) ( ) 1 2 6 2 d d d
+ + +
= = = ,
deci orice vrf are gradul de ieire n mulimea { } 0,1, 2 . Rezult c arborescena
considerat este un arbore binar.
Deoarece ( ) 3 1 d
+
= rezult c arborele binar nu este complet.. Dac am
aduga vrful 9 i arcul ( ) 3, 9 se obine ( ) 3 2 d
+
= i ( ) 9 0 d
+
= i vom obine un
arbore binar complet. Acesta are reprezentarea

77
1
2 3
4 5 6
7 8
9


Teorema 4. Pentru orice
*
n exist ( ) , A X U = o arborescen
binar astfel nct
( ) { }
0 x X d x n
+
= =
(numrul vrfurilor terminale s fie egal cu n ).
Demonstraie. Dac 1 n = , atunci { }
0
X x = i U = . Astfel
( )
1
, A X U = este arborescen binar i ( ) { } { }
0
0 1 x X d x x
+
= = = .
Dac 2 n = , atunci fie { }
1 1 2
, X x x = . Considerm
{ }
2 1,2
X x = i
mulimea de arce
( ) ( ) { }
1 1,2 2 1,2 2
, , , U x x x x = . Deoarece
2
X are un element, exist
o arborescen binar ( )
1 2 2
, A X U = cu un nod terminal. Fie arborescena
( )
2 1 2 1 2
, A X X U U = care este o arborescen binar i are numrul de noduri
terminale { }
1 1 2
, 2 X x x n = = = .
Presupunem c pentru orice 1, 2,..., i k = exist ( ) ,
i i i
A Y V = arborescen
binar cu numrul de vrfuri terminale egal cu i .
Considerm 1 n k = + .
Dac 1 k + este numr par, deci 1 2 k p + = , considerm
{ }
1 1 2 2 1 2
, ,..., ,
p p
X x x x x

= . Fie
{ }
2 1,2 3,4 2 1,2
, ,...,
p p
X x x x

= pentru care avem
2
X p k = . Considerm mulimea de muchii

78
( ) ( ) ( ) ( ) { }
1 1,2 1 1,2 2 2 1,2 2 1 2 1,2 2
, , , ,..., , , ,
p p p p p p
U x x x x x x x x

= .
Deoarece
2
X p k = , rezult c exist
( )
,
p p p
A Y V = o arborescen
binar care are p noduri terminale. Fie atunci
( )
1 1 1
,
k p p
A X Y U V
+
= care este
o arborescen binar care are numrul de noduri terminale egal cu
{ }
1 1 2 2 1 2
, ,..., , 2 1
p p
X x x x x p k

= = = + .
Dac 1 k + este numr impar, deci 1 2 1 k q + = + , considerm
{ }
1 1 2 2 1 2 2 1
, ,..., , ,
q q q
X x x x x x
+
= . Fie
{ }
2 1,2 3,4 2 1,2
, ,...,
q q
X x x x

= pentru care
avem
2
X q k = < . Considerm mulimea de muchii
( ) ( ) ( ) ( ) { }
1 1,2 1 1,2 2 2 1,2 2 1 2 1,2 2
, , , ,..., , , ,
q q q q q q
U x x x x x x x x

= .
Deoarece
2
X q k = < , pentru
{ }
2 1 q
X x
+
cu numr de elemente
1 q k + exist
( )
1 1 1
,
q q q
A Y V
+ + +
= o arborescen binar care are 1 q + noduri
terminale. Fie atunci
( )
1 1 1 1 1
,
k q q
A X Y U V
+ + +
= care este o arborescen binar
care are numrul de noduri terminale egal cu
{ }
1 1 2 2 1 2 2 1
, ,..., , , 2 1 1
q q q
X x x x x x q k
+
= = + = + .
Folosind teorema induciei complete, obinem c afirmaia din enun este
adevrat pentru orice
*
n .

Propoziia 4. Fie ( ) , A X U = o arborescen binar complet n care
( ) { }
0 x X d x n
+
= = . Atunci ( ) 2 1 U n = .
Demonstraie. Pentru 1 n = , conform construciei din demonstraia
teoremei 4,
1
V = i astfel ( )
1
0 2 1 1 V = = . De semenea, pentru 2 n = avem
( ) ( ) { }
2 1,2 2 1,2 2
, , , V x x x x = i astfel ( )
2
2 2 2 1 V = = .
Presupunem c pentru orice 1, 2,..., i k = enunul propoziiei este adevrat
i fie 1 n k = + .
Dac 1 k + este numr par, deci 1 2 k p + = , conform construciei din
demonstraia teoremei 4, avem
( )
1 1 1
,
k p p
A X Y U V
+
= i
( )
,
p p p
A Y V = este o
arborescen binar complet cu p vrfuri terminale i astfel ( ) 2 1
p
V p = . Din
construcie avem
1
2 U p = . Cum
1 p
U V = , rezult c
( ) ( ) ( )
1 1 1
2 2 1 2 2 1 2 1 1 2
k p p
V U V U V p p p k k
+
= = + = + = = + = .

79
Dac 1 k + este numr impar, deci 1 2 1 k q + = + , conform construciei
din demonstraia teoremei 4, avem
( )
1 1 1 1 1
,
k q q
A X Y U V
+ + +
= i
( )
1 1 1
,
q q q
A Y V
+ + +
= este o arborescen binar care are 1 q + noduri terminale i
astfel ( )
1
2 1 1 2
q
V q q
+
= + = . Din construcie avem
1
2 U q = . Cum
1 1 q
U V
+
= , rezult c
( ) ( )
1 1 1 1 1
2 2 2 2 1 1 2 1 1 2
k q q
V U V U V q q q k k
+ + +
= = + = + = + = + = .
Din teorema induciei complete rezult c enunul din propoziie este
adevrat pentru orice
*
n .

Definiie. Fie ( ) , A X U = o arborescen binar i
( ) ( ) { }
0
cu 0 si ,..., DT s x X d x l x x s
+
= = =
(mulimea distanelor de la rdcin la fiecare vrf terminal). Dac
max min 1 DT DT , spunem c A este o arborescen binar echilibrat.

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

Teorema 5. Fie ( ) , A X U = o arborescen binar. Urmtoarele
afirmaii sunt echivalente:
1. A este o arborescen binar echilibrat;
2. pentru orice x X cu ( ) 0 d x
+
= , dac 2
m
X = , atunci
( )
0
,..., m l x x = i dac
1
2 2
m m
X
+
< < , atunci ( ) { }
0
,..., , 1 l x x m m + .
Demonstraie

Presupunem c
1
2 2
m m
X
+
< i exist x X , ( ) 0 d x
+
= i
( )
0
,..., l x x m < . Presupunnd c nivelul ( )
0
,..., l x x este complet, atunci i
nivelurile anterioare sunt complete i astfel numrul total de vrfuri din nivelurile
1, 2, ..., ( )
0
,..., l x x este
( )
( )
( )
,...,
0
,..., 1 ,...,
0 1
0 0
2 1
2 2 ... 2 2 1 2 1
2 1
l x x
l x x l x x
m

+ + + = = <

.
Contradicie.

80
n mod asemntor se arat c se obine o contradicie dac presupunem c
1
2 2
m m
X
+
< i exist x X , ( ) 0 d x
+
= i ( )
0
,..., 1 l x x m > + .
Am artat astfel c dac presupunem
1
2 2
m m
X
+
< , atunci pentru orice
x X cu ( ) 0 d x
+
= avem ( )
0
,..., 1 m l x x m + i cum ( )
0
,..., l x x
rezult ( ) { }
0
,..., , 1 l x x m m + .
Putem astfel spune c, n particular, dac
1
2 2
m m
X
+
< < , atunci
( ) { }
0
,..., , 1 l x x m m + , ceea ce demonstreaz partea a doua a afirmaiei fcute n
enun.
S presupunem c 2
m
X = . Nivelul k este complet dac i numai dac
toate nivelurile anterioare sunt complete i astfel numrul de vrfuri din primele k
niveluri este 2
k
. Deoarece 2
m
X = , rezult c i nivelul m este complet i nu
exist vrfuri pe nivelul 1 m+ . Astfel, toate vrfurile terminale se gsesc pe nivelul
m i astfel max min DT DT m = = , ceea ce implic faptul c pentru orice x X
cu ( ) 0 d x
+
= avem ( )
0
,..., l x x m = .

Dac orice x X cu ( ) 0 d x
+
= i 2
m
X = avem ( )
0
,..., l x x m = ,
rezult c
( ) ( ) { } { }
0
cu 0 si ,..., DT s x X d x l x x s m
+
= = = = .
Astfel max min DT DT m = = i deci max min 0 1 DT DT = de unde
obinem c G este o arborescen binar echilibrat.
Dac orice x X cu ( ) 0 d x
+
= i
1
2 2
m m
X
+
< < avem
( ) { }
0
,..., , 1 l x x m m + , rezult c
( ) ( ) { } { }
0
cu 0 si ,..., , 1 DT s x X d x l x x s m m
+
= = = = + .
Astfel min DT m = i max 1 DT m = + , deci max min 1 1 DT DT = de unde
obinem c G este o arborescen binar echilibrat.



81





V. GRAFURI HAMILTONIENE I EULERIENE

5.1. Grafuri Hamiltoniene

Definiie. Fie ( ) , G X U = un graf neorentat. Un lan (ciclu) elementar
din G care conine toate vrfurile grafului se numete lan (ciclu) hamiltonian .

Definiie. Un graf ( ) , G X U = care conine cel puin un ciclu
hamiltonian se numete graf hamiltonian

Exemplul 1. Se consider graful ( ) , G X U = care are reprezentarea
1
2 3
4
5
6
7 8

Acest graf conine ciclul { } 1, 2, 4, 7,8, 5, 6, 3,1 C = care trece prin toate
vrfurile grafului i prin urmare este un ciclu hamiltonian.
Deoarece graful G conine ciclul hamiltonian C , rezult c graful este un
graf hamiltonian.

Aceste noiuni se regsesc i pentru grafurile orientate sub urmtoarele
forme.





82
Definiie. Fie ( ) , G X U = un graf orentat. Un lan (drum, ciclu, circuit)
elementar din G care conine toate vrfurile grafului se numete lan (drum,
ciclu, circuit) hamiltonian .

Definiie. Un graf ( ) , G X U = care conine cel puin un circuit
hamiltonian se numete graf hamiltonian orientat

Facem observaia c problematica grafurilor hamiltoniene este una de
complexitate nepolinomial din punctul de vedere al algoritmicii.
Teorema 1. Fie ( ) , G X U = un graf neorientat n care 3 X n = i
pentru orice vrf x X avem ( )
2
n
d x . Atunci G este graf hamiltonian.
Demonstraie. Fie 3 n = , atunci pentru orice vrf x X avem
( )
3
1, 5
2
d x = , deci ( ) 2 d x . Deoarece { } \ 3 1 2 X x = = , rezult c pentru
orice x , ( ) 2 1 d x X = = . Cum fiecare x X este conectat cu toate celelalte
vrfuri din X , rezult c graful este complet, deci
3
K , deci putem forma ciclul
[ ]
1 2 3 1
, , , C x x x x = care este un ciclu elementar care conine toate vrfurile, deci
este hamiltonian. Drept consecin, graful este hamiltonian.
Presupunem c avem un graf cu 1 X k = + vrfuri i orice graf cu k
vrfuri care ndeplinete condiiile teoremei este hamiltonian.
Fie [ ]
1 2 1
, ,..., ,
k
C x x x x = un ciclu elementar care trece prin toate vrfurile
lui ( ) , G X U = , mai puin vrful
1 k
x
+
(eventual scrierea lui C se obine printr-o
renumerotare a vrfurilor). Acest ciclu exist deoarece subgraful
{ } ( )
1
\ ,
k
G X x V
+
= ndeplinete condiiile propoziiei i astfel conine un ciclu
hamiltonian.
Presupunem c nu exst i , 1 1 i k , astfel nct n U s avem
muchiile { }
1
,
i k
x x
+
i { }
1 1
,
i k
x x
+ +
i n U nu exist nici muchiile { }
1 1
,
k
x x
+
i
{ }
1 1
,
k k
x x
+ +
(altfel putem introduce vrful n C n poziia dintre
i
x i
1 i
x
+
sau ntre
k
x i
1
x , formndu-se un ciclu hamiltonian).
Rezult atunci c eventualele conectri ntre
1 i
x
+
i celelalte vrfuri se face
cel puin din 3 n 3 vrfuri ale ciclului C i astfel ( ) 3 d x . Contradicie.


83
Exemplul 2. Considerm graful orientat ( ) , G X U = din figura de mai
jos. Acest graf conine ciclul [ ] 1, 2, 4, 5, 6, 3,1 C = care trece prin toate cele 6
vrfuri i astfel este un ciclu hamiltonian. Ca urmare i graful considerat este unul
hamiltonian.
Facem observaia c graful G nu conine i circuite hamiltoniene.
1
2 3
4
5
6



5.2. Grafuri euleriene

Definiie. Fie ( ) , G X U = un graf neorientat. Un ciclu simplu din G se
numete ciclu eulerian dac conine toate muchiile lui G .

Definiie. Graful neorientat ( ) , G X U = se numete graf eulerian dac
G conine cel puin un ciclu eulerian.

Exemplul 3. Considerm graful neorientat G cu urmtoarea reprezentare
1
2
3
4
5
6 7 8
9

n acest graf putem considera ciclul

84
{ } 1, 3, 2, 4, 6, 3, 4, 7, 8, 2, 9,8, 5, 9,1 C =
n care nu se repet nicio muchie i astfel ciclul este unul simplu. Ciclul C conine
toate muchiile din graful G i astfel ciclul C este un ciclu eulerian i astfel graful
este un graf eulerian.

Dac trecem n cadrul grafurilor orientate avem definiia ce urmeaz
Definiie. Fie ( ) , G X U = cu U s = un graf orientat Fie
[ ]
1 2
, ,...,
s
L m m m = un lan ( ( )
1 2
, ,...,
s
D m m m = un drum) simplu, atunci
spunem c lanul L (drumul D) este lan (drum) eulerian.

Lema 1. Fie ( ) , G X U = un graf neorientat, nu neaprat conex. Dac
pentru orice x X avem ( ) d x numr par i pentru
0
x X avem ( )
0
0 d x ,
atunci exist un ciclu simplu n G care trece prin
0
x .
Demonstraie. Putem considera, fr a reduce generalitatea c G este
conex. n caz contrar demonstraia se reduce la existena ciclului ntr-o component
conex a lui G
Cum G este conex i orice x X avem ( ) d x este par, rezult c pentru
orice x X , ( ) 2 d x . Prin sumare rezult c ( ) 2 2
x X
U d x X

. Astfel,
folosind propoziia 4 din capitolul 2 avem c G este ciclic. Atunci exist un ciclu
n G care trece printr-un punct
0
x . Din acest ciclu se poate extrage un ciclu care
s fie simplu i care s treac prin
0
x

Teorema 2. Fie ( ) , G X U = un graf neorientat fr vrfuri izolate.
Atunci G este eulerian dac i numai dac G este conex i pentru orice x X ,
( ) d x este numr par.
Demonstraie.

Dac G este eulerian exist n G un ciclu eulerian deci un ciclu simplu
1 2
, ,...,
p
C m m m =

. Astfel, toate vrfurile sunt conectate, deci G este conex.
Atunci exist cel puin o muchie
x
m cu o extremitate x pentru orice x X .
Cum
x
m este n ciclul C , rezult c exist i , 1 i p astfel nct
x i
m m = . x este extremitate pentru
i
m , atunci este extremitate i pentru unul din
arcele
1 i
m

sau
1 i
m
+
i astfel ( ) d x este numr par.

85

Deoarece pentru orice x X , ( ) d x este par, conform lemei 1 rezult c
exist c pentru
0
x X exist un ciclu simplu care trece prin
0
x i
0
x este
arbitrar. Astfel, G conine un ciclu eulerian, deci G este graf eulerian.

Teorema 3. Fie ( ) , G X U = un graf conex. Urmtoarele afirmaii sunt
echivalente:
1. G conine un ciclu eulerian.
2. Orice x X , ( ) d x este numr par.
3. Exist
1 2
, ,...,
i i i
i i
p
C m m m

=

cicluri,
i
j
m U , 1, 2,...,
i
j p = ,
1, 2,..., i k = , astfel nct notnd
{ } 1 2
, ,...,
i i i
i i
p
U m m m = avem
i j
U U = pentru orice 1 , i j k , i j i
1
k
i
i
U U
=
=

(mulimea
muchiilor poate fi partiionat n cicluri).
Demonstraie
1 2
Aceast echivalen este asigurat prin teorema 2.
1 3
Fie
1 2
, ,...,
p
C m m m =

ciclul euclidian care exist deoarece G este graf
eulerian.
Dac C este ciclu elementar, el trece o singur dat prin fiecare vrf, iar
eliminarea oricrei muchii ntrerupe ciclul. Astfel avem 1 k = i
1
U U = .
Presupunem c C nu este elementar. Atunci exist x X astfel nct x
apare de dou ori n scrierea lui C n funcie de vrfuri. Considerm primul astfel
de vrf n sensul c dac x i y sunt dou astfel de vrfuri l aleg pe cel pentru
care distana ntre cele dou apariii este cea mai mic.
Atunci n scrierea lui C prin muchii, exist
1
i i
2
i astfel nct x este
extremitate pentru
1
i
m i
1
1
i
m
+
. De asemenea, x este extremitate pentru
2
i
m i
1
2
i
m
+
. Putem forma astfel ciclurile
1 1
1 2
,...,
i i
C m m
+

=

i
1 1
1 2
,..., , ,...,
i i p
C m m m m
+
=

.

86
Din alegerea lui x rezult c
1
C este un ciclu elementar. Cum C este
simplu, rezult c dac
{ } 1 1
1 2
,...,
i i
U m m
+
= i
{ } 1 1
1 2
,..., , ,...,
i i p
U m m m m
+
= ,
atunci
1
U U U = i
1
U U = , deci are loc o partiionare a lui U .
Putem repeta raionamentul anterior cu C n loc de C pn cnd toate
ciclurile sunt elementare i astfel se obine partiia cutat.

Corolar 1. Fie ( ) , G X U = un graf conex. G conine un lan eulerian
dac i numai dac cel mult dou vrfuri ale lui G au gradul impar.
Demonstraie

Presupunem c G conine un lan euclidian deci un lan simplu care
conine toate muchiile din G . Fie
1
x i
2
x extremitile acestui lan. Considerm
graful { } { } ( )
1 2
, , G X U x x = . Prin adugarea muchiei { }
1 2
, x x la lanul
euclidian se obine un ciclu euclidian i astfel G este un graf euclidian.
Coform teoremei 3, orice vrf din G are gradul par, deci n G avem n
particular c ( )
1
d x i ( )
2
d x sunt numere pare. Prin eliminarea muchiei { }
1 2
, x x ,
rezult c n G avem c ( )
1
d x i ( )
2
d x sunt numere impare, gradele celorlalte
vrfuri rmnnd pare, deci cel mult dou vrfuri din G au gradele impare.

Din propoziia 2 capitolul 1, avem c G are cel mult dou vrfuri cu grad
impar, implic faptul c numrul vrfurilor cu grad impar este 0 sau 2.
Dac numrul vrfurilor cu grad impar este 0, rezult c toate vrfurile au
gradul par i atunci conform teoremei 3, rezult c G conine un ciclu eulerian,
deci un lan eulerian.
Dac numrul vrfurilor cu gradul impar este 2, fie
1
x i
2
x aceste vrfuri.
Construim graful { } { } ( )
1 2
, , G X U x x = . Pentru G avem c este conex i are
toate gradele pare i atunci, conform lemei 1, rezult c G conine un ciclu
eulerian deci care conine toate muchiile din G .
Eliminm din acest ciclu muchia { }
1 2
, x x , se obine un lan simplu care
conine toate muchiile din G , deci un lan euclidian.




87
Corolar 2. Fie ( ) , G X U = un graf conex cu 2k vrfuri de grad impar,
0 k > . Atunci exist
1 2
, ,...,
i i i
i i
p
L m m m

=

lan deschis,
i
j
m U , 1, 2,...,
i
j p = ,
1, 2,..., i k = , astfel nct notnd
{ } 1 2
, ,...,
i i i
i i
p
U m m m = avem
i j
U U =
pentru orice 1 , i j k , i j i
1
k
i
i
U U
=
=

(mulimea muchiilor poate fi


partiionat n exact k lanuri deschise).
Demonstraie. Acest rezultat este o generalizare a corolarului 1 n termenii
punctului 3 din teorema 3.


88





VI. ALGORITMI PENTRU DRUMURI N GRAFURI ORIENTATE

6.1. Algoritmi de calcul direct

Pentru calculul direct a matricii drumurilor putem folosi, n primul rnd,
operaiile + i i definite n capitolul 3.
Algoritmul are la baz propoziia 5 din capitolul 3 i are forma urmtoare.
Algoritmul 1.
1. Considerm 1 i = , D A = i T A = .
2. Dac i n > algoritmul se oprete, D conine matricea drumurilor din G ,
altfel se continu.
3. Considerm 1 i i = + i calculm T T A = i folosind operaiile + i i .
4. Calculm D D T = + folosind operaia + .
5. Relum cu pasul 2.

innd cont c operaiile sunt de factur logic deci cu aceeai
complexitate, n pasul 3 se realizeaz o nmulire de matrici logice i astfel pentru
fiecare element al matricii rezultate se fac 2n operaii logice. Cum matricile cu
care lucrm sunt matrici ptrate de ordin n , fiecare aplicare a pasului 3 implic
2 3
2 2 n n n = operaii logice.
La pasul 4 se realizeaz o adunare de matrici logice, deci pentru aplicarea
sa se folosesc
2
n operaii logice. Ca urmare, la o iterare a pailor 2, 3, 4 i 5 se
folosesc n total
3 2
2n n + operaii logice.
Pentru terminarea algoritmului se aplic 1 n iteraii i astfel numrul total
de operaii logice necesare terminrii algoritmului este
( )( )
3 2
2 1 n n n + , ceea ce
conduce la un polinom de grad 4 avnd coeficientul principal egal cu 2. Putem
astfel s tragem urmtoarea concluzie:
Teorema 1. Fie ( ) , G X U = un grad orientat cu matricea de adiacen
A i cu X n = . Algoritmul 1 produce matricea drumurilor din G i are
complexitatea
( )
4
2 O n .

Exemplul 1. Considerm graful orientat ( ) , G X U = , unde { } 1, 2, 3 X =
i ( ) ( ) ( ) ( ) { }
1, 2 , 1, 3 , 2,1 , 3, 3 U = . Graful are reprezentarea

89
1 2
3

Matricea de adiacen a grafului este
0 1 1
1 0 0
0 0 1
A
| |
|
=
|
|
\

La inceputul aplicrii algoritmului se fac iniializrile 1 i = i
0 1 1
1 0 0
0 0 1
D T A
| |
|
= = =
|
|
\

Deoarece 3 i < se continu cu aplicarea algoritmului i fcnd 2 i = se
calculeaz
0 1 1 0 1 1 1 0 1
1 0 0 1 0 0 0 1 1
0 0 1 0 0 1 0 0 1
T T A
| | | | | |
| | |
= = =
| | |
| | |
\ \ \
i i
i
0 1 1 1 0 1 1 1 1
1 0 0 0 1 1 1 1 1
0 0 1 0 0 1 0 0 1
D D T
| | | | | |
| | |
= + = + =
| | |
| | |
\ \ \

Relund pasul 2 relaia 2 3 > este fals i vom relua calculele cu noile
valori pentru matricile T i D. Obinem 3 i = i
1 0 1 0 1 1 0 1 1
0 1 1 1 0 0 1 0 1
0 0 1 0 0 1 0 0 1
T T A
| | | | | |
| | |
= = =
| | |
| | |
\ \ \
i i ,
1 1 1 0 1 1 1 1 1
1 1 1 1 0 1 1 1 1
0 0 1 0 0 1 0 0 1
D D T
| | | | | |
| | |
= + = + =
| | |
| | |
\ \ \
.

90
Putem face observaia c matricea D nu se modific la aplicarea acestei
iteraii. Continund aplicarea algoritmului pn ce ajungem la 4 i = , aceast
matrice continu s nu se modifice, astfel c
1 1 1
1 1 1
0 0 1
D
| |
|
=
|
|
\

este matricea drumurilor din graful G

Acest algoritm poate fi considerat i sub urmtoarea form.
Algoritmul 1.
1. Considerm D A = .
2. Pentru 1, 2,..., i n = i pentru 1, 2,..., j n = se execut pasul 4.
3. Algoritmul se oprete; D conine matricea drumurilor lui G .
4. Dac 0
ij
d = , atunci pentru 1, 2,..., k n = se execut pasul 5 altfel se
continu.
5. Se calculeaz
ik ik jk
d d d = + .

Exemplul 2. Pentru graful urmtor
1
2
3
4
5

matricea de adiacen asociat este
0 1 0 0 1
0 0 1 1 0
0 0 0 1 0
1 0 0 0 1
0 0 1 0 0
A
| |
|
|
| =
|
|
|
\
.
S determinm matricea drumurilor D.
1. Construim linia 1 a matricii D pornind de la linia 1 a matricii A. Observm c
12
1 a = i
15
1 a = , restul elementelor fiind egale cu zero.
Atunci adunm boolean linia 1 din A cu liniile 2 i 5 ale matricii A

91
( )
1 1 1 1 0 :
0 0 1 0 0
0 1 1 0 0
1 0 0 1 0
:
:
:
2
1
______ __________ __________
5
2
1
l
l
l
l

Observm c linia
(2)
1
l difer de l
1
prin elementul generat pe poziiile
( ) 2
13
1 d =
i
( ) 2
14
1 d = . Adunm boolean linia
( ) 2
1
l cu liniile 3 i 4 din A.
( )
( )
1 1 1 1 1 :
1 0 0 0 1
0 1 0 0 0
1 0 0 1 0
:
:
:
3
1
______ __________ __________
4
3
2
1
l
l
l
l

Observm c s-a obinut o linie cu toate elementele egale cu 1, deci, linia 1 a
matricii D va fi
( )
1 1 1 1 1 :
1
D
l
2. Pentru linia 2 a matricii D observm c
23
1 a = ,
24
1 a = , restul elementelor
fiind egale cu zero. Adunm boolean linia 2 din A cu liniile 3 i 4 .
( )
1 1 1 0 1 :
1 0 0 0 1
0 1 0 0 0
0 1 1 0 0
:
:
:
2
2
______ __________ __________
4
3
2
l
l
l
l

Observm c linia
( ) 2
2
l difer de linia 2

prin elementele generate de poziiile

(2)
21
1 d = i
(2)
25
1 d = . Adunm boolean
(2)
2
l cu liniile 1 i 5.
( )
( )
1 1 1 1 1 :
0 0 1 0 0
1 0 0 1 0
1 1 1 0 1
:
:
:
3
2
______ __________ __________
5
1
2
2
l
l
l
l

Am obinut toate elementele egale cu 1, deci
( )
1 1 1 1 1 :
2
D
l
Similar pentru liniile 3, 4, 5 i obinem matricea D

92
|
|
|
|
|
|

\
|
=
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
D

O alt modalitate de calcul direct folosete operaiile uzuale definite pe
mulimea numerelor naturale.
Algoritmul se bazeaz pe propoziia 6 din capitalul 3 i pe legtura care
exist ntre matricile
G
D i
G
ND . Algoritmul are forma urmtoare.
Algoritmul 2.
1. Considerm 1 i = , D A = i T A = .
2. Dac i n > se trece la pasul 6, altfel se continu.
3. Considerm 1 i i = + i calculm T T A = i folosind operaiile uzuale de
adunare i nmulire a numerelor ntregi.
4. Calculm D D T = + folosind operaia de adunare a numerelor ntregi.
5. Relum cu pasul 2.
6. Pentru fiecare 1, 2,..., i n = i fiecare 1, 2,..., j n = se execut pasul 8.
7. Algoritmul se oprete, D conine matricea drumurilor din G
8. Dac 0
ij
d , atunci face 1
ij
d = , altfel se continu.

Algoritmul 1 este cunoscut sub numele de Algoritmul lui Wharshal pentru
determinarea matricii drumurilor.
Exemplul 3. Considerm graful ( ) , G X U = dat prin { } 1, 2, 3, 4 X = ,
( ) ( ) ( ) ( ) ( ) { }
1, 2 , 1, 3 , 2, 3 , 3, 4 , 4,1 U = i care are reprezentarea
1 2
3 4

Acest graf are matricea de inciden

93
0 1 1 0
0 0 1 0
0 0 0 1
1 0 0 0
A
| |
|
|
=
|
|
\

La debutul aplicrii algoritmului 2 se fac iniializrile 1 i = i
0 1 1 0
0 0 1 0
0 0 0 1
1 0 0 0
D T A
| |
|
|
= = =
|
|
\

Deoarece relaia 1 4 > nu este indeplinit se aplic prima iteraie a algoritmului,
pentru 2 i = i se obin matricile
0 1 1 0 0 1 1 0 0 0 1 1
0 0 1 0 0 0 1 0 0 0 0 1
0 0 0 1 0 0 0 1 1 0 0 0
1 0 0 0 1 0 0 0 0 1 1 0
T TA
| || | | |
| | |
| | |
= = =
| | |
| | |
\ \ \

i
0 1 1 0 0 0 1 1 0 1 2 1
0 0 1 0 0 0 0 1 0 0 2 1
0 0 0 1 1 0 0 0 1 0 0 1
1 0 0 0 0 1 1 0 1 1 1 0
D D T
| | | | | |
| | |
| | |
= + = + =
| | |
| | |
\ \ \

La reluarea algoritmului de la pasul 2, relaia 2 4 > este fals i se
continu cu iteraia a doua, pentru 3 i = i n care se obin matricile
0 0 1 1 0 1 1 0 1 0 0 1
0 0 0 1 0 0 1 0 1 0 0 0
1 0 0 0 0 0 0 1 0 1 1 0
0 1 1 0 1 0 0 0 0 0 1 1
T TA
| || | | |
| | |
| | |
= = =
| | |
| | |
\ \ \
,
0 1 2 1 1 0 0 1 1 1 2 2
0 0 2 1 1 0 0 0 1 0 2 1
1 0 0 1 0 1 1 0 1 1 1 1
1 1 1 0 0 0 1 1 1 1 2 1
D D T
| | | | | |
| | |
| | |
= + = + =
| | |
| | |
\ \ \
.
Relaia de la pasul 2 este acum 3 4 > i continu s fie fals genernd a
treia iteraie a algoritmului 2, pentru valoarea 4 i = . n acest caz se obin
urmtoarele matrici

94
1 0 0 1 0 1 1 0 1 1 1 0
1 0 0 0 0 0 1 0 0 1 1 0
0 1 1 0 0 0 0 1 0 0 1 1
0 0 1 1 1 0 0 0 1 0 0 1
T TA
| || | | |
| | |
| | |
= = =
| | |
| | |
\ \ \
,
1 1 2 2 1 1 1 0 2 2 3 2
1 0 2 1 0 1 1 0 2 1 3 2
1 1 1 1 0 0 1 1 1 1 2 2
1 1 2 1 1 0 0 1 2 1 2 2
D D T
| | | | | |
| | |
| | |
= + = + =
| | |
| | |
\ \ \
.
Algoritmul revine la pasul 2 pentru a realiza o nou iteraie de calcul.
Putem observa ns c ultima matrice D obinut are toate elementele nenule,
astfel c dac trecem acum direct la pasul 8 se obine deja o matrice cu toate
elementele egale cu unu, deci exist drumuri ntre oricare dou vrfuri. Avem deci
matricea drumurilor
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
D
| |
|
|
=
|
|
\

Din forma matricii drumurilor putem trage i concluzia c graful dat este
tare conex.


6.2. Algoritmul Wharshal pentru drumuri minime n grafuri orientate

De o mare aplicabilitate practic este o problem de drumuri relativ la
grafurile ponderate. Fie ( ) , G X U = un graf ponderat, deci un graf orientat n care
U X M X , M fiind mulimea ponderilor.
Pentru reprezentarea acestui graf se utilizeaz o matrice specific
( )
1 ,
ij
i j n
P p

= de elemente
( )
pentru , ,
altfel
ij i ij j
ij
m x m x U
p

=

+

.
Matricea poart numele de matricea ponderilor grafului G .
n graful G se poate defini astfel noiunea de lungime a unui drum
( ) ( ) ( ) ( )
2 3 1 1 1 2 2 2 3 1
, , , , , ,..., , ,
k
i i i i i i i i i i i i
k k k
d x m x x m x x m x
+
+
= ,
notat prin ( ) L d =, i dat prin relaia

95
( )
1
1
k
i i
j j
j
L d m
+
=
=

.
Pentru orice , x y X , putem defini mulimea drumurilor de la x la y ca
fiind mulimea ( ) ( ) { }
0 1
, , ,..., drum in
k
D x y d x x x x y d G = = = = .
O problem important este de a determina n G drumurile minime ntre
vrfuri. Pentru acest lucru vom defini matricea drumurilor minime, notat
( )
min
1 ,
G ij
i j n
D d

= , unde
( )
( )
,
min
ij
d D x x
i j
d L d

=
. Folosind aceste notaii, pentru determinarea matricii
min
G
D a drumurilor
minime se poate face folosind Algoritmul Wharshal pentru drumuri minime,
adic:
Algoritmul 3.
1. Considerm 1 i = (prelucrm linia i ), D P = .
2. Dac i n > , atunci algoritmul se termin i
min
G
D D = , altfel se continu.
3. Pentru fiecare 1, 2,..., j n = se aplic pasul 5.
4. Facem 1 i i = + (trecem la urmtoarea linie) i trecem la pasul 2.
5. Dac
ij
d = +, atunci se continu, altfel se nlocuiete linia i cu minimul
dintre liniia i i linia obinut din linia j prin adugarea valorii
ij
d la
fiecare element.

Operaiile realizate n acest algoritm sunt de adunare i de comparare n
vedea obinerii minimului. Operaia cea mai costisitoare este cea de comparare
astfel c, pentru exprimarea complexitii, ne vom referi n special la numrul de
comparaii realizate.
La pasul 5 al algoritmului se determin un vector al minimelor pe
componente dintre doi vectori de dimensiune n i astfel numrul de comparaii
este n .
Conform pasului 3, pasul 5 se realizeaz pentru fiecare din valorile
1, 2,..., j n = , deci de n ori i astfel pasul 3 conduce la realizarea unui numr total
de
2
n comparaii.
Paii 2, 3 i 4 sunt realizai pentru fiecare valoare a lui i , ncepnd cu
valoarea 1 pn la ndeplinirea condiiei i n > , deci de n . Cum n pasul 4 nu se
realizeaz comparaii, n pasul 2 se face o singur comparaie, iar n pasul 3 se fac
2
n , rezult c numrul total de comparaii este
3
n n + .
Raionamentul de mai sus conduce la urmtorul rezultat.

96
Teorema 2. Dac ( ) , G X U = este un graf orientat ponderat cu P
matricea ponderilor dat pe mulimea de ponderi M i X n = . Algoritmul 3
producea matricea drumurilor minime din graful G i are complexitatea
( )
3
O n
exprimat ca numr de comparaii.

Exemplul 4. Considerm graful orientat ponderat ( ) , G X U = pentru care
{ } 1, 2, 3, 4, 5 X = i
( ) ( ) ( ) ( ) ( ) ( ) ( ) { }
1, 4, 3 , 2, 3,1 , 2, 7, 5 , 3, 7, 4 , 4, 6, 2 , 5, 9, 4 , 5, 6,1 U = .
Graful are reprezentarea
1 2
3 4
5
3
4
7
6
7
9
6

Matricea ponderilor grafului este
4
3 7
7
6
6 9
P
+ + + + | |
|
+ + +
|
| = + + + +
|
+ + + +
|
|
+ + +
\

Conform algoritmului considerm 1 i = (prelucrm prima linie) i
4
3 7
7
6
6 9
D P
+ + + + | |
|
+ + +
|
| = = + + + +
|
+ + + +
|
|
+ + +
\

Linia 1 este ( )
1
4 L = + + + + . Pentru 1 j = i 2 j = avem
1 j
d = i ajungem la 3 j = cnd
13
7 d = iar linia 3 este
( )
3
7 L = + + + + . Astfel prin adugarea valorii 4 la fiecare

97
element din linia 3 se obine ( )
3
11 L = + + + + . Considernd acum
{ }
1 3
min , L L obinem noua linie 1 dat prin ( )
1
4 11 L = + + + .
Pentru 4 j = avem acum
14
11 d = iar linia 4 este
( )
4
6 L = + + + + . Adunnd valoarea 11 se obine
( )
4
17 L = + + + + i prin { }
1 4
min , L L noua linie 1 este
( )
1
17 4 11 L = + + .
n linia 1 s-a format valoarea 17 corespunztoare lui 2 j = pentru care
linia 2 este ( )
2
3 7 L = + + + . Prin adugarea valorii 17 la elementele
din linia 2 se obine ( )
2
20 24 L = + + + . Aplicnd { }
1 2
min , L L
obinem ( )
1
20 17 4 11 24 L = . Deoarece linia 1 a fost completat, putem
scrie acum c matricea D a ajuns la forma
20 17 4 11 24
3 7
7
6
6 9
D
| |
|
+ + +
|
| = + + + +
|
+ + + +
|
|
+ + +
\

Facem 2 i = i deoarece 2 5 > este fals se trece la prelucrarea liniei 2
care are forma ( )
2
3 7 L = + + + . Pentru 1 j = avem
21
3 d = i
considerd linia 1 la care se adaug valoarea 3 se obine
( )
1
23 20 7 14 27 L = . Aplicnd relaia { }
2 1
min , L L se obine
( )
2
3 20 7 14 7 L = .
Pentru 3 j = ,
23
7 d = i adugnd 7 la linia 3 obinem
( )
3
14 L = + + + + . Din { }
2 3
min , L L linia 2 existent nu se
modific.
Cnd lum 4 j = ,
24
14 d = i prin adunarea valorii 14 la linia 4 avem
( )
4
20 L = + + + + . Acum folosind minimul, linia 2 existent nu se
modific.
Pentru 5 j = , cu
25
7 d = obinem ( )
5
13 16 L = + + +
iar aplicarea minimului nu modifica linia 2 obinut.
Am ajuns astfel la o matrice

98
20 17 4 11 24
3 20 7 14 7
7
6
6 9
D
| |
|
|
| = + + + +
|
+ + + +
|
|
+ + +
\

Algoritmul va continua n modul prezentat mai sus, terminarea exemplului
fiind lsat ca exerciiu pentru cititor.


6.3. Algoritmul lui Dantzig pentru drumuri minime
de extremitate iniial dat

Acest algoritm determin toate drumurile de lungime minim care pornesc
de la un vrf dat i ajung la toate celelalte vrfuri.
Se consider un graf orientat ( ) , G X U = avnd X n = . Fie
i
x X un
vrf considerat iniial pentru toate drumurile pe dare dorim s le determinm. Fie
( )
1 ,
ij
i j n
P p

= matricea ponderilor definit ca mai sus.
Se consider urmtorul proces de calcul:
Algoritmul 4.
1. Considerm 1 m = , { }
m i
X x = i ( ) 0
i
c x = .
2. Dac ( ) 0
m
d X
+
= , atunci ne oprim; altfel se continu.
3. Pentru orice arc
( )
,
j k
x x U pentru care
j m
x X i
k m
x X se
calculeaz valoarea
( )
jk jk j
d p c x = +
4. Calculm min
jk
x X
m j
x X
m k
d d

= .
5. Pentru fiecare k astfel nct
jk
d d = considerm ( )
k
c x d = i
{ }
1 m m k
X X x
+
= . Facem 1 m m = + i trecem la pasul 2.

n urma execuiei acestui proces, m este numrul de vrfuri atinse din
vrful
i
x ,
m
X este mulimea acestor noduri i pentru fiecare
m
x X valoarea
( ) c x indic lungimea unui drum minim de extremitate iniial
i
x i extremitate
final x . Procesul se termin n cel mult 1 n repetri ale pailor 2, 3, 4 i 5
deoarece la pasul 5 se adaug cel puin cte un vrf la mulimea
m
X .

99
Exemplul 5. Considerm un graf orientat ponderat ( ) , G X U = pentru
care { } 1, 2, 3, 4 X = i ( ) ( ) ( ) ( ) ( ) { }
1, 3, 2 , 1, 4, 3 , 2, 5, 3 , 3, 5, 4 , 4, 3,1 U = . Graful
are reprezentarea
1 2
3 4
3
4
5
5
3

Matricea ponderilor care se obine din specificaiile grafului este
3 4
5
5
3
P
+ + | |
|
+ + +
|
=
|
+ + +
|
+ + +
\

Considerm c dorim s determinm drumurile care au extremitatea iniial
1 i facem iniializrile 1 m = , { }
1
1 X = i ( ) 1 0 c = . Avem ( )
1
2 d X
+
= i astfel
facem prima prima iteraie din algoritm.
Arcele care au extremitatea iniial n
1
X sunt ( ) 1, 2 i ( ) 1, 3 . Atunci
calculm
12
3 0 3 d = + = i
13
4 0 4 d = + = . Minimul valorilor calculate este
{ } min 3, 4 3 d = = i se atinge pentru
12
d . Astfel, considerm ( ) 2 3 c = i
{ }
2
1, 2 X = . Dup ce facem 2 m = determinm ( )
2
2 d X
+
= i deoarece aceast
valoare nu este egal cu zero, aplicm a doua iteraie a algoritmului.
Arcele care au extremitatea iniial n
2
X sunt ( ) 1, 3 i ( ) 2, 3 . Atunci
calculm
13
4 0 4 d = + = i
23
5 3 8 d = + = . Prin aplicarea minimului se obine
{ } min 4, 8 4 d = = care este atins pentru
13
d . Din aceast cauz considerm
( ) 3 4 c = i { }
3
1, 2, 3 X = . Facem 3 m = i avem ( )
3
1 d X
+
= ceea ce face s
aplicm a treia iteraie a algoritmului.
Arcul cu extremitatea iniial n
3
X este ( ) 3, 4 astfel c
34
5 4 9 d d = = + = , de unde ( ) 4 9 c = i { }
4
1, 2, 3, 4 X = . Deoarece
( )
4
0 d X
+
= algoritmul se termin.


100
6.4. Algoritmul lui Bellman-Kalaba pentru drumuri minime
de extremitate final dat

Acest algoritm rezolv problema similar celei prezentate la algoritmul
Dantzig, adic determin drumurile de lungime minim care au extremitatea final
fixat.
Fie ( ) , G X U = un graf orientat ponderat cu { }
1 2
, ,...,
n
X x x x = . Putem
presupune c dorim s determinm drumurile de extremitate final
n
x . Acest lucru
nu restrnge generalitatea deoarece putem gsi un izomorfism f de grafuri
orientate astfel nct dac dorim s determinm drumurile cu extremitatea final
i
x s avem ( )
i n
f x x = .
Considerm c
( )
1 ,
ij
i j n
P p

= este matricea ponderilor pentru graful G .
Pentru realizarea algoritmului Bellman-Kalaba, construim o versiune modificat a
matricii ponderilor, matricea
( )
1 ,
ij
i j n
W w

= , definit dup cum urmeaz
( )
( )
pentru si , ,
pentru
0 pentru
pentru 0
pentru si , ,
ij i ij j
ij
ij
i ij j
m i j x m x U
p i j
w i j
i j
i j x m x U



= = =

=

.
Algoritmul 5.
Etapa 1
Se construiete matricea extins a valorilor arcelor
( )
, 1,
ij
i j n
W w
=
= .
Construim un tabel n care liniile sunt liniile matricii , notat ( )
1
i
i n
L L

= , unde
i
L
este linia i a tabelului. La tabelul format se adaug linia
1 n
L
+
care este transpusa
coloanei n din matricea W .
Etapa 2
Se adaug tabelului L , liniile suplimentare
i
L , 2, 3,... i n n = + + , astfel:
a) presupunnd completat linia
k
L se completeaz linia
1 k
L
+
conform relaiei:
{ }
( ) 1, , 1, ,
1,...,
min , min
k j k j k t k t
t n
L L w L
+ +
=
= + .
b) se continu aplicarea punctului (a) pn la obinerea a dou linii
k
L i
1 k
L
+

identice.






101
Etapa 3
Se determin regresiv drumul minim de la
i
x la
n
x astfel:
- se adun linia i din L cu linia
1 k
L
+
urmrindu-se rezultatul minim ce se
poate obine. S presupunem c
1, 1, k i ij k i
L w L
+ +
= + , atunci primul arc din
drumul minim de la
i
x la
n
x este arcul ( )
j i
x x , ;
- se adaug linia j din L cu
1 k
L
+
reinnd valoare minim, aflat de
exemplu pe coloana k , atunci al doilea arc va fi ( )
k j
x x , .a.m.d. Ultimul
succesor determinat va fi
n
x .

Propoziia 1. Pentru orice
*
k avem
{ }
1, ,
1,
min
k i ij k j
j n
L v L
+
=
= +
Demonstraie.
Este evident c un drum de cel mult 1 + k arce cu destinaia
n
x se poate
obine dintr-un drum de cel mult k arce cu destinaia
n
x , prin adugarea unui arc
la nceputul su. Deci:
( )
{ }
{ }
1, ,
1, 1,
min min min
k i ij k ij k j
d j n j n
k
L v w d v L
+
= =
= + = + .

Propoziia 2. Dac exist
*
k pentru care
, 1, k i k i
L L
+
= , pentru orice
1 i n , atunci
, , k i s i
L L = , pentru orice 1 i n i orice 1 s k + .
Demonstraie. Demonstrm prin inducie dup s . Pentru 1 + = k s
proprietatea este adevrat conform enunului.
Presupunnd proprietatea adevrat pentru o valoare h s avem:
{ } { }
1, , , 1,
1, 1,
min min
h i ij h i ij k i k i
j n j n
L v L v L L
+ +
= =
= + = + = .

Numrul maxim de aplicri ale celei de-a doua etape este cel mult egal cu
numrul de vrfuri minus 1, deci 1 1 n X = de unde rezult i c numrul de
pai ale procesului descris mai sus este finit, deci el este ntr-adevr un algoritm.
La fiecare aplicare a pasului (a) din etapa a doua se calculeaz
{ }
1, ,
1,...,
min
k t k t
t n
w L
+
=
+ pentru acest lucru fiind necesare un numr de n comparaii.
Astfel pentru a calcula
{ }
( ) 1, , 1, ,
1,...,
min , min
k j k j k t k t
t n
L L w L
+ +
=
= + sunt necesare 1 n +
comparaii.

102
Din cele de mai sus rezult c numrul maxim de comparaii necesare
trecerii la etapa a treia este ( )( )
2
1 1 1 n n n + = .
n etapa a treia, pentru a determina drumul de lungime minim de la
i
x la
n
x , se produc maxim 1 n comparaii. Astfel, pentru a determina drumurile
minime ntre orice nod
i
x i
n
x , cu 1 1 i n sunt necesare
( )
2
2
1 2 1 n n n = + .
Deoarece etapele 2 i 3 din algoritm sunt independente, rezult c numrul
maxim de comparaii prin care algoritmul se termin este
2
2 2 n n .
Pe baza analizei fcute i innd cont de propoziiile 1 i 2 de mai sus
putem da urmtorul enun.
Teorema 3. Fie ( ) , G X U = un graf orientat ponderat cu X n = . Atunci
algoritmul 5 are ca rezultat determinarea tuturor drumurilor minime de
extremitate final
n
x i complexitatea algoritmului este
( )
2
2 O n exprimat ca
numr maxim de comparaii.

Exemplul 6. Fie un graf ( ) , G X U = cu { } 1, 2, 3, 4, 5, 6, 7 X = , iar pe
arce este marcat ponderea fiecrui arc. Dorim s determinm drumul minim dintre
vrfurile 1 i 7.
Graful considerat este prezentat n imaginea de mai jos

1
2
3
4
5
6
7
2
6
4
1
4
11
9
11
6
4
9
14
19
13


Etapa 1
Construim matricea W a valorilor arcelor i continum tabelul adugnd
liniile conform calculelor prezentate mai jos. Totul se poate rezuma sub forma
tabelului prezentat n continuare




103
1 2 3 4 5 6 7
1

0 2 6 11
2
0 4 3 9
3 0 1 11
4
0 9
5
6 0 14 19
6
4 0 13
7
0

( )
( )
1
i
m 9 19 13 0
( )
( )
2
i
m 20 12 10 9 15 13 0
( )
( )
3
i
m 14 12 10 9 15 13 0
( )
( )
4
i
m 14 12 10 9 15 13 0

Etapa 2
a) adugm
( ) 1
i
L la matricea W , care este transpus coloanei
( )
7
1,
j
j n
w
=
;
b) completm matricea W cu liniile
( ) 2
i
L ,
( ) 3
i
L ,
( ) 4
i
L tiind c
( ) ( )
{ }
1
1,7
min
k k
i ij j
j
L w L
+
=
= +
Aadar pentru linia
( ) 2
i
L , primul element
( ) 2
1
L se determin adunnd
elementele liniei 1 a matricii W cu cele ale liniei
( ) 1
i
L , cea mai mic fiind
elementul cutat.
( )
( )
{ }
{ }
2
1
1 1,7
min
min 0 , 2, 6,11 9,19 ,13 , 0 20
k
j j
j
w L
L
=
= + =
+ + + + + + + =

( )
( )
{ }
{ }
2
2
2 1,7
min
min , 0, 4, 9 3, 9 19,13 , 0 12
k
j j
j
w L
L
=
= + =
+ + + + + + + =

( )
( )
{ }
{ }
2
3
3 1,7
min
min , , 0, 9 1,19 ,13 11, 0 10
k
j j
j
w L
L
=
= + =
+ + + + + + + =

( )
( )
{ }
{ }
2
4
4 1,7
min
min , , , 9 0,19 ,11 13, 0 9
k
j j
j
w L
L
=
= + =
+ + + + + + + =


104
( )
( )
{ }
{ }
2
5
5 1,7
min
min , , , 9 6,19 0,14 13,19 0 15
k
j j
j
w L
L
=
= + =
+ + + + + + + =

( )
( )
{ }
{ }
2
6
6 1,7
min
min , , , 9 4,19 ,13 0,13 0 13
k
j j
j
w L
L
=
= + =
+ + + + + + + =

( )
( )
{ }
{ }
2
7
7 1,7
min
min , , , 9 , 19, 13, 0 0 0
k
j j
j
w L
L
=
= + =
+ + + + + + + =

Pentru linia
( ) 3
i
L vom avea
( ) ( )
{ }
3 2
1,7
min
i ij j
j
L w L
=
= + :
( )
{ }
3
1
min 20 0,12 2,10 6, 9 11,15 ,13 , 0 14 L = + + + + + + + =
( )
{ }
3
2
min 20 ,12 0,10 4, 9 3, 9 15,13 , 0 12 L = + + + + + + + =
( )
{ }
3
3
min 20 ,12 ,10 0, 9 1,15 ,13 11, 0 10 L = + + + + + + + =
( )
{ }
3
4
min 20 ,12 ,10 , 9 0,15 , 13, 0 9 9 L = + + + + + + + =
( )
{ }
3
5
min 20 ,12 ,10 , 9 6,15 0,13 14, 0 19 15 L = + + + + + + + =
( )
{ }
3
6
min 20 ,12 ,10 , 9 4,15 ,13 0, 0 13 13 L = + + + + + + + =
( )
{ }
3
7
min 20 ,12 ,10 , 9 ,15 ,13 , 0 0 0 L = + + + + + + + =
Pentru linia
( ) 4
i
L vom avea
( ) ( )
{ }
4 3
1,7
min
i ij j
j
L w L
=
= + :
( )
{ }
4
1
min 14 0,12 2,10 6, 9 11,15 ,13 , 0 14 L = + + + + + + + =
( )
{ }
4
2
min 14 ,12 2,10 4, 9 3,15 9,13 , 0 12 L = + + + + + + + =
( )
{ }
4
3
min 14 ,12 ,10 0, 9 1,15 ,13 11, 0 10 L = + + + + + + + =
( )
{ }
4
4
min 14 ,12 ,10 , 9 0,15 ,13 , 0 9 9 L = + + + + + + + =
( )
{ }
4
5
min 14 ,12 ,10 , 9 6,15 0,13 14, 0 19 15 L = + + + + + + + =
( )
{ }
4
6
min 14 ,12 ,10 , 9 4,15 ,13 0, 0 13 13 L = + + + + + + + =
( )
{ }
4
7
min 14 ,12 ,10 , 9 ,15 ,13 , 0 0 0 L = + + + + + + + =
Observm c liniile
( ) 3
i
L i
( ) 4
i
L coincid, iteraiile se opresc.
Elementele lui
( ) 4
i
L reprezint valoarea minim a fiecrei drum care ajunge
n vrful 7.



105
Etapa 3
Se adun linia 1 din W cu
( ) 4
i
L urmrindu-se rezultatul minim, care este 14,
primul arc va fi ( ) 1, 2 .
Se adun linia 2 din W cu
( ) 4
i
L , rezultatul fiind 12, al doilea arc va fi
( ) 2, 4 .
Se adun linia 4 din W cu
( ) 4
i
L , rezultatul minim fiind 9, arcul
corespunztor va fi ( ) 4, 7 .
Deci drumul minim de la
1
x la
7
x va fi ( ) 1, 2, 4, 7 d = cu valoarea 17.


6.4. Algoritmii lui Ford i Dijkstra pentru drumuri minime
de extremiti date

Comparativ cu algoritmii prezentai mai sus urmtorul algoritm se
folosete pentru cazul n care ambele extremiti ale drumului cutat sunt fixate.
Fie ( ) , G X U = un graf orientat i
i
x ,
j
x dou vrfuri. Dorim s
determinm un drum optim de la
i
x la
j
x . Datorit izomorfismelor de grafuri,
putem considera c determinm un drum de la
1
x la
n
x , fr a restrnge
generalitatea procesului de determinare.
Calculul se realizeaz n trei faze, una de iniializare, una de calcul efectiv
i una de obinere a drumul minim dintre
1
x i
n
x , dac exist drumuri ntre cele
dou vrfuri.
Considerm c
( )
1 ,
ij
i j n
P p

= este matricea ponderilor pentru graful G .
Pentru realizarea algoritmului Bellman-Kalaba, construim o versiune modificat a
matrici ponderilor, matricea
( )
1 ,
ij
i j n
W w

= , definit dup cum urmeaz
( )
( )
pentru si , ,
pentru
0 pentru
pentru 0
pentru si , ,
ij i ij j
ij
ij
i ij j
m i j x m x U
p i j
w i j
i j
i j x m x U



= = =

=

.
Algoritmul 6.
Etapa 1
Se construiete matricea extins a valorilor arcelor
( )
, 1,
ij
i j n
W w
=
= .
Construim un vector ( )
1
i
i n
v v

= pentru care considerm
1
0 v = i
i
v = +
pentru 2 i n .

106
Etapa 2
a) Cu 1, 2,..., i n = , n aceast ordine se construiete vectorul
( )
* *
1
i
i n
v v

= pe
baza formulei:
( )
{ }
*
,
min , min
i
i i j ji
j
x x U
j
v v v w



= +
`

)
.
b) Se continu aplicarea punctului (a) ct timp exist un indice k pentru care
*
k k
v v < , nlocuind vectorul v prin vectorul
*
v .
Etapa 3
- Dac
n
w = +, atunci nu exist drumuri ntre
1
x i
n
x .
- Se determin drumul de la
1
x la
n
x plecndu-se de la
n
x , procednd dup
cum urmeaz: dac presupunem c s-a determinat
( )
1 1
, ,...,
k k k n
i i
x x x x

= ,
partea de la
k
i
x la
n
x a drumului minim. Lum
1
k
i
x
+
vrful pentru care are
loc relaia
1 1
k k k k
i i i i
v w v
+ +
+ =

Exemplul 7. Se consider graful orientat ponderat ( ) , G X U = , cu
{ } 1, 2, 3, 4, 5 X = i
( ) ( ) ( ) ( ) ( ) ( ) ( ) { }
1, 4, 3 , 2, 3,1 , 2, 7, 5 , 3, 7, 4 , 4, 6, 2 , 5, 9, 4 , 5, 6,1 U = .
Graful are reprezentarea
1 2
3 4
5
3
4
7
6
7
9
6

Matricea extins a ponderilor este n acest caz

107
0 4
3 0 7
0 7
6 0
6 9 0
W
| |
|

|
| =
|

|
|

\

Considernd c dorim s determinm drumul minim de la vrful 1 la vrful
5, conform primei etape a algoritmului se construiete vectorul
( ) 0 v = .
Aplicm primul punct al etapei a doua i avem
1 i = , { } { }
*
1
min 0, min 3, 6 0 v = + + =
2 i = , { } { }
*
2
min , min 6 v = + =
3 i = , { } { } { }
*
3
min , min 0 4 min , 4 4 v = + = =
4 i = , { } { }
*
4
min , min 7, 9 v = + + =
5 i = , { } { }
*
5
min , min 7 v = + =
Obinem astfel vectorul ( )
*
0 4 v = .. Deoarece pentru
3 k = ,
*
3 3
4 v v = < = , facem ( ) 0 4 v = i relum calculele de
mai sus.
1 i = , { } { }
*
1
min 0, min 3, 6 0 v = + + =
2 i = , { } { }
*
2
min , min 6 v = + =
3 i = , { } { } { }
*
3
min 4, min 0 4 min 4, 4 4 v = + = =
4 i = , { } { } { }
*
4
min , min 4 7, 9 min ,11 11 v = + + = =
5 i = , { } { }
*
5
min , min 7 v = + =
Am ajuns la vectorul ( )
*
0 4 11 v = i deoarece pentru 4 k =
are loc relaia
*
4 4
11 v v = < = , relum calculele pentru vectorul
( ) 0 4 11 v = .
Procednd ca anterior, de aceast dat se ajunge la
( )
*
0 17 4 11 v = , iar relaia de reluare este ndeplinit pentru 2 k = .
Relum primul pas al etapei a doua pentru ( ) 0 17 4 11 v = i obinem
( )
*
0 17 4 11 24 v = .
Urmeaz nc o aplicare a primului pas din etapa a doua, n final obinnd
( )
*
0 17 4 11 24 v v = = i deoarece relaia
*
k k
v v < nu este verificat

108
pentru niciun { } 1, 2, 3, 4, 5 k se trece la etapa a treia a algoritmului din care se
obine c exist un drum de la vrful 1 la vrful 5 deoarece
5
24 v = i acest
drum este ( ) 1, 3, 4, 2, 5 d = .
.
Algoritmul prezentat este un algoritm care conine o serie de complicaii
datorate faptului c s-a dorit s funcioneze pentru toate grafurile orientate. Pentru
cazul n care se cunoate faptul c graful G nu conine circuite, acest algoritm
poate fi simplificat pentru a se ajunge la urmtoarea form.
Algoritmul 7.
1. Se construiete matricea extins a valorilor arcelor
( )
, 1,
ij
i j n
W w
=
= .,
facem
1
0 v = (. ( )
1
i
i n
v v

= fiind un vector de dimensiune n ) i
considerm mulimile { }
1
A x = i { }
1
\ B X x = .
2. Dac nu exist
j
x A i
i
x B astfel nct
( )
,
j i
x x U , atunci ne
oprim, nu exist drumuri de la
1
x la
n
x ; altfel se continu.
3. Considerm mulimea
( ) ( ) { }
, , , , C x B y A y x U si z B z x U = .
Pentru orice
i
x C , facem
{ }
min
i j ji
j
x A
j
v v w

= + .
4. Facem nlocuirile A A C = , \ B B C = .
5. Dac
n
x A atunci se trece la pasul 2, altfel se continu.
6. Se determin drumul de la
1
x la
n
x plecndu-se de la
n
x , procednd dup
cum urmeaz: dac presupunem c s-a determinat
( )
1 1
, ,...,
k k k n
i i
x x x x

= ,
partea de la
k
i
x la
n
x a drumului minim. Lum
1
k
i
x
+
vrful pentru care
are loc relaia
1 1
k k k k
i i i i
v w v
+ +
+ = .

Exemplul 8. Considerm graful orientat ponderat, fr circuite
( ) , G X U = cu { } 1, 2, 3, 4, 5 X = i
( ) ( ) ( ) ( ) ( ) ( ) ( ) { }
1, 3, 2 , 1, 4, 3 , 2, 2, 3 , 2, 4, 4 , 2, 9, 5 , 3, 5, 4 , 4, 4, 5 U =
avnd reprezentarea urmtoare

109
1 2
3 4
5
3
4
5
4 2
4
9

Scriem matricea extins a valorilor arcelor i anume
0 3 4
0 2 4 9
0 5
0 4
0
W
| |
|

|
| =
|

|
|

\

i considernd c dorim s determinm drumul de extremitate iniial vrful 1, cu
extremitatea final vrful 5, facem iniializrile
1
0 v = , { } 1 A = i { } 2, 3, 4, 5 B = .
Deoarece exist 1 A i 2 B astfel nct ( ) 1, 2 U se continu cu
pasul 3 al algoritmului.
Construim mulimea { } 2 C = . Pentru 2 C facem
{ }
2
min 0 3 3 v = + = ..
La pasul 4 obinem { } 1, 2 A = i { } 3, 4, 5 B = i deoarece 5 A facem o
nou iteraie ncepnd cu pasul 2.
Deoarece exist 1 A i 3 B astfel nct ( ) 1, 3 U se continu cu pasul
3 al algoritmului.
Obinem { } 3 C = . Pentru 3 C facem
{ } { }
3
min 0 4, 3 2 min 4, 5 4 v = + + = =
La pasul 4 ajungem la { } 1, 2, 3 A = i { } 4, 5 B = i din nou, deoarece
5 A , relum de la pasul 2.
Cum 2 A i 4 B astfel nct ( ) 2, 4 U continum cu pasul 3 i
obinem { } 4 C = . Pentru 4 C se obine
{ } { }
4
min 3 4, 4 5 min 7, 9 7 v = + + = =
La pasul 4 se determin mulimile { } 1, 2, 3, 4 A = i { } 5 B = i este
necesar o nou reluare de la pasul 2 deoarece 5 A .

110
Avnd 2 A i 5 B pentru care ( ) 2, 5 U continum construind
{ } 5 C = i cu determinarea
{ } { }
5
min 3 9, 7 4 min 12,11 11 v = + + = =
urmat de obinerea mulimilor { } 1, 2, 3, 4, 5 A = i B = . De aceast dat
5 A i astfel, trecem la pasul 6 cu ( ) 0 3 4 7 11 v = determinnd drumul
( ) 1, 2, 4, 5 d = .

Se poate observa c n algoritmul simplificat al lui Ford, n pasurile 3 i 4
se determin un minim i apoi are loc o trecere a tuturor vrfurilor din C n A. Pe
de alt parte, o parte din arcele considerate la pasul 3 nu vor face parte din drumul
minim de la
1
x la
n
x . Acest lucru se va ntmpla doar pentru vrfurile n care se
atinge minimul calculat la aplicarea relaiei
{ }
min
i j ji
j
x A
j
v v w

= + . Aceast
consideraie ne conduce la un algoritm nbuntit pentru determinarea drumurilor
minime n grafuri fr circuite, cunoscut sub numele de algoritmul lui Dijkstra.
Algoritmul 8.
1. Se construiete matricea extins a valorilor arcelor
( )
, 1,
ij
i j n
W w
=
= .,
facem
1
0 v = (. ( )
1
i
i n
v v

= fiind un vector de dimensiune n ) i
considerm mulimile { }
1
A x = i { }
1
\ B X x = .
2. Dac nu exist
j
x A i
i
x B astfel nct
( )
,
j i
x x U , atunci ne
oprim, nu exist drumuri de la
1
x la
n
x ; altfel se continu.
3. Considerm mulimea
( ) ( ) { }
, , , , C x B y A y x U si z B z x U = .
Pentru orice
i
x C , facem
{ }
min
i j ji
j
x A
j
v v w

= + .
4. Pentru fiecare
k
x C pentru care exist
j
x A astfel nct
{ }
min
k jk j jk
j
x A
j
v w v w

+ = + considerm { }
k
A A x = i { } \
k
B B x = .
5. Dac
n
x A atunci se trece la pasul 2, altfel se continu.




111
6. Se determin drumul de la
1
x la
n
x plecndu-se de la
n
x , procednd dup
cum urmeaz: dac presupunem c s-a determinat
( )
1 1
, ,...,
k k k n
i i
x x x x

= ,
partea de la
k
i
x la
n
x a drumului minim. Lum
1
k
i
x
+
vrful pentru care
are loc relaia
1 1
k k k k
i i i i
v w v
+ +
+ = .

Exemplul 9. Fie un graf ( ) , G X U = cu { } 1, 2, 3, 4, 5, 6, 7 X = , iar pe
arce este marcat ponderea fiecrui arc. Dorim s determinm drumul minim dintre
vrfurile 1 i 7.
Graful considerat este fr circuite i este prezentat n imaginea de mai jos
1
2
3
4
5
6
7
2
6
4
1
4
11
9
11
6
4
9
14
19
13

La pasul 1 se scrie matricea extins a valorilor arcelor
0 2 6 11
0 4 4 9
0 1 11
0 7
6 0 14 19
4 0 13
0
W
| |
|

|
|

|
=
|
|

|

|
|

\

i se fac iniializrile
1
0 v = , { } 1 A = i { } 2, 3, 4, 5, 6, 7 B =
Modul de lucru al algoritmului este similar celui prezentat n exemplul 8 i
conduce n final la drumul ( ) 1, 2, 4, 7 d = .

112





VII. ALGORITMI PENTRU GRAFURI
HAMILTONIENE I EULERIENE

7.1. Algoritmul lui Foulkes pentru drumuri hamiltoniene

Pentru a uura cutarea drumurilor hamiltoniene ntr-un graf orientat conex
( ) , G X U = , vom face o cutarea a drumurilor hamiltoniene n subcomponente
tari conexe ale grafului G i apoi vom asambla subdrumurile prin utilizarea
punilor prin care sunt conectate componentele tari conexe.
Considerm un graf orientat conex ( ) , G X U = care are matricea de
adiacen A. Din matricea de adiacen putem determina matricea drumurilor D,
utiliznd modalitile prezentate n capitolele anterioare.
Procesul se desfoar n 3 etape, una de formare a componentelor tari
conexe din graful G , a doua n care se formeaz cte un drum hamiltonian n
fiecare din componentele tari conexe i ultima etap de formare a unui drum
hamiltonian n G pe baza subdrumurilor determinare n etapa a doua.
Algoritmul 1.
Etapa 1
1.a) Facem M I D = + i 1 i =
1.b) n matricea M se consider toate liniile formate doar cu
valoarea 1. Vrfurile corespunztoare acestor linii formeaz mulimea de
vrfuri
i
C .
1.c) Se elimin din matricea M liniile i coloanele considerate n formarea
mulimii
i
C .
1.d) Dac matricea M nu s-a epuizat se trece la pasul (1.b), altfel se continu
trecnd la etapa a doua.
Etapa 2
Se construiete un grag ( ) , G Y V = unde { }
1 2
, ,...,
r
Y C C C = i
( )
,
i j
C C V dac i numai dac exist
i
x C i exist
j
y C astfel nct
( ) , x y U . Se formeaz astfel un drum hamiltonian n G , i anume drumul
( )
1 2
, ,...,
r
d C C C = .




113
Etapa 3
3.a) Se consider
1 1
x C i
2 2
x C pentru care exist ( )
1 2
, x x U . Gsim n
1
C un drum hamiltonian
1
d de extremitate iniial
*
1
x i extremitate final
1
x
i n
2
C un drum hamiltonian
2
d de extremitate iniial
2
x i extremitate
final
*
2
x . Se formeaz astfel drumul hamiltonian ( ) ( )
*
1 1 1 2 2
, , , d d x x d = n
graful parial al lui G de vrfuri
1 2
C C . Facem 3 i = .
3.b) Dac i r > ne oprim, s-a obinut drumul hamiltonian, altfel se continu.
3.c) Dac exist
i i
x C astfel nct
( )
*
1
,
i i
x x U

atunci se trece la pasul (3.d),


altfel se trece la pasul (3.e).
3.d) Se consider n
i
C un drum hamiltonian
i
d de extremitate iniial
i
x i
notm extremitatea sa final prin
*
i
x . Am format astfel drumul hamiltonian
( ) ( )
* * *
1 1
, , ,
i i i i i
d d x x d

= n graful parial al lui G de vrfuri
1 2
...
i
C C C . Facem 1 i i = + i mergem la pasul (3.b).
3.e) Fie
i
e partea din drumul
*
1 i
d

care formeaz acest drum mpreun cu
1 i
d

.
Fie
1 1 i i
x C

i
i i
x C pentru care ( )
1
,
i i
x x U

. mprim drumul
1 i
d

n
1 i
d

de extremitate final
1 i
x

i drumul
1 i
d

de extremitate iniial
1 i
x

i
extremitate final
*
1 i
x

. Considerm un drum
1 i
d

care pleac din
1 i
x

, trece
*
1 i
x

i apoi prin toate celelalte vrfuri care apar n drumul


1 i
d

astfel nct
extremitatea final a lui
1 i
d

s fie
1 i
x

. Se consider n
i
C un drum
hamiltonian
i
d de extremitate iniial
i
x i notm extremitatea sa final prin
*
i
x . Considerm drumul ( ) ( )
*
1 1 1
, , , ,
i i i i i i
d d d x x d

= n graful parial al lui
G de vrfuri
1 2
...
i
C C C . Facem 1 i i = + i mergem la pasul (3.b).

Exemplul 1. Considerm graful urmtor
1
2
3
4
5
6 7
8
9

Matricea de adiacen a grafului este

114
0 1 0 0 1 0 0 0 0
0 0 1 1 0 0 0 0 1
0 0 0 1 0 0 0 0 0
1 0 0 0 1 0 0 0 0
0 0 1 0 0 1 0 0 0
0 0 0 0 0 0 1 1 0
0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 1
0 0 0 0 0 1 0 0 0
A
| |
|
|
|
|
|
|
=
|
|
|
|
|
|
\
.
Prin aplicarea unuia din algoritmii pentru determinarea matricii drumurilor
ntr-un graf orientat se obine matricea
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
0 0 0 0 0 1 1 1 1
0 0 0 0 0 1 1 1 1
0 0 0 0 0 1 1 1 1
0 0 0 0 0 1 1 1 1
M
| |
|
|
|
|
|
|
=
|
|
|
|
|
|
\

Prin aplicarea primei etape a algoritmului de mai sus se obine
{ }
1
1, 2, 3, 4, 5 C = i { }
2
6, 7, 8, 9 C = i n etapa a doua se obine graful condensat
C
1
C
2

i astfel se obine drumul hamiltonian ( )
1 2
,
c
d C C = .
n etapa a treia se alege o punte, s spunem arcul ( ) 2, 9 .
Alegem n componenta tare conex
1
C drumul hamiltonian de extremitate
final vrful 2, i anume ( )
1
5, 3, 4,1, 2 d = .

115
De asemenea, deoarece
2
C este ultima component tare conex,
determinm n ea un drum hamiltonian de extremitate iniial vrful 9, i anume
( )
2
9, 6, 7,8 d = .
Acum, drumul hamiltonian se obine ca ( )
1 2
, d d d = , deci
( )
1
5, 3, 4,1, 2, 9, 6, 7, 8 d =


7.2. Teorema lui Chen

Fie ( ) , G X U = un graf orientat i fr circuite cu { }
1 2
, ,...,
n
X x x x = .
Considerm c A este matricea de adiacen a grafului i putem determina
matricea D a drumurilor din G .
Pentru fiecare nod
i
x notm cu
i
p puterea de atingere a vrfului
i
x , adic
numrul de vrfuri
j
x pentru care exist drum de extremitate iniial
i
x i
extremitate final
j
x .

Propoziia 1. Fie ( ) , G X U = un graf orientat i fr circuite i
( )
,
i j
x x U . Atunci
i j
p p , unde
i
p este gradul de atingere al vrfului
i
x .
Demonstraie. Fie
( )
{ }
,...,
j k j k
A x d x x = =
i
( ) { }
,...,
i k i k
A x d x x = = .
Dac
j
y A , atunci exist un drum
( )
,...,
j
d x y = . Deoarece
( )
,
i j
x x U ,
atunci
( ) ( ) ( )
, , , ,...,
i j i j
d x x d x x y = =
este un drum de la
i
x la y i astfel
i
y A . Cum y a fost ales arbitrar, rezult
j i
A A , deci
j j i i
p A A p = = .

Corolar. Fie ( ) , G X U = un graf orientat i fr circuite i care conine
un drum de la
i
x la
j
x . Atunci
i j
p p , unde
i
p este gradul de atingere al
vrfului
i
x .

116
Demonstraie. Se procedeaz ca n propoziia 1 doar c n loc de a utiliza
arcul
( )
,
i j
x x se consider drumul
( )
,...,
i j
e x x = .

Urmtoarele rezultate, dintre care primul este cunoscut drept teorema lui
Chen stau la baza algoritmului lui Chen.
Teorema 1. Fie ( ) , G X U = un graf orientat i fr circuite cu X n = .
G conine un drum hamiltonian dac i numai dac are loc relaia
( )
1
1
2
n
i
i
n n
p
=


unde
i
p este gradul de atingere al vrfului
i
x .
Demonstraie.

Fie { }
n
x x x d ,..., ,
2 1
= drumul hamiltonian n G , atunci:
- dac j i > din
j
x nu se poate atinge vrful
i
x , deoarece n caz contrar n G
ar exista circuite;
- din vrful
i
x ( 1, 2,..., 1 i n = ) se pot atinge vrfurile
n i i
x x x ,..., ,
2 1 + +
deci
i
p n i = ;
- din vrful
n
x nu se poate atinge nici un vrf.
n total avem:
( )
( )
1 1
1
2
n n
i
i i
n n
p n i
= =

= =

.

Presupunem c
( )
1
1
2
n
i
i
n n
p
=

, atunci n matricea D se gsesc


( )
2
1 n n

elemente de 1.
Triangulariznd superior aceast matrice, aceste elemente vor ocupa toate
locurile disponibile de deasupra diagonalei; n final drumul hamiltonian nsui este
dat de succesiunea vrfurilor corespunztoare matricii triangularizat superior.

Teorema 2. ntr-un graf orientat fr circuite, drumul hamiltonian, dac
exist este unic.
Demonsraie. Dac ar exista dou drumuri hamiltoniene
( ) 1
H
d i
( ) 2
H
d ,
atunci n cele dou drumuri ar exista cel puin dou vrfuri
i
x ,
j
x aezate n
ordine invers, ceea ce ar face s apar un circuit ntre
i
x i
j
x .


117
Rezultatele prezentate mai sus dau un proces imediat pentru determinarea
drumului hamiltonian ntr-un graf orientat fr circuite. Pentru acesta vom proceda
dup cum urmeaz:
Algoritmul 2.
1. Scriem matricea de adiacen A.
2. Calculm, prin una din metodele descrise n capitolele anterioare,
matricea drumurilor D. Dac n aceast matrice apare cel puin o
valoare 1 pe diagonala principal ne oprim pentru c graful G conine un
circuit i teorema lui Chen nu se poate aplica.
3. Se determin puterile de atingere ale vrfurilor ( )
1,2,...,
i
i n
p
=
i se verific
valoarea de adevr pentru relaia
( )
1
1
2
n
i
i
n n
p
=

. Dac aceast relaie


nu este verificat atunci graful G nu conine un drum hamiltonian.
4. Se ordoneaz puterile de atingere ale vrfurilor i dac este
permutarea pentru care are loc relaia
( ) ( ) ( ) 1 2
1 ... 0
n
n p p p

= > > > = ,
atunci drumul
( ) ( ) ( )
( )
1 2
, ,...,
n
h x x x

=
este drumul hamiltonian cutat.

Exemplul 2. Considerm graful dat prin reprezentarea
x
1
x
2
x
3
x
4

Matricea de adiacen este
0 1 0 1
0 0 0 1
1 1 0 0
0 0 0 0
A
| |
|
|
=
|
|
\

Matricea drumurilor este

118
0 1 0 1
0 0 0 1
1 1 0 1
0 0 0 0
D
| |
|
|
=
|
|
\

S determinm drumul hamiltonian pentru matricea drumurilor astfel
obinut. Matricea nu conine nicio valoare 1 pe diagonal, deci graful la care
matricea este asociat nu conine circuite.
Avem
1
2 p = ;
2
1 p = ;
3
3 p = ;
4
0 p = i astfel
4
1
6
i
i
p
=
=

, iar pentru
4 = n rezult
( )
6
2
1
=
n n
.
Matricea D a drumurilor graf la care am ataat i puterile de atingere a
vrfurilor este
1 2 3 4
1
2
3
4
0 1 0 1 2
0 0 0 1 1
1 1 0 1 3
0 0 0 0 0
i
x x x x p
x
x
D
x
x
| |
|
|
=
|
|
\

Pentru a triangulariza matricea D ne folosim de relaiile
3 1 2 4
p p p p > > > ,
vom scrie vrfurile n ordinea { }
4 2 1 3
, , , x x x x n loc de ordinea { }
4 3 2 1
, , , x x x x .
Avem:
1 2 3 4
1
2
1
3
4
0 1 1 1
0 0 1 1
0 0 0 1
0 0 0 0
x x x x
x
x
D
x
x
| |
|
|
=
|
|
\

care este matricea triangularizat a drumurilor.
Deci, se poate aplica teorema lui Chen, n G exist un drum hamiltonian,
iar acesta este { }
4 2 1 3
, , , : x x x x d
H
.







119
7.3. Algoritmul nmulirii latine

Algoritmul de determinare a matricii drumurilor are un caracter prea
sintetic, n sensul c prezena unei valori de 1 n matricea drumurilor nu d
informaii asupra vrfurilor din care se compun drumurile corespunztoare,
bineneles c nici asupra numrului de drumuri ntre vrfurile care corespund
acelor valori de 1.
Ca un exemplu de algoritm capabil s rspund acestor deziderate,
prezentm algoritmul datorat lui Kaufmann, numit aloritmul nmulirii latine.
Introducem, ca punct de plecare, o matrice
( ) 1
M , care, n locul valorilor de
1 utilizate n matricea obinuit a arcelor, utilizeaz nsui arcul respectiv,
reprezentat prin vrfurile care l compun.
( ) ( )
( )
n j i
ij
m M
, 1 ,
1 1
=
= , unde
dac exist arc de la
i
x la
j
x
( )

=
0
1
j i
ij
x x
m
n rest
Prin suprimarea primei litere n matricea
( ) 1
M se obine o matrice
( ) 1
~
M ,
numit a destinaiilor posibile. Se compun matricele
( ) 1
M i
( ) 1
~
M prin operaia
de nmulire latin.
( ) ( ) 1 1
M L M

.
nmulirea latin a matricilor se face formal ca i nmulirea a dou matrici,
fr nsumare i fr nmulire efectiv, innd cont c:
- produsul latin a dou componente participante la calcul este nul dac cel puin
una din ele este nul.
- produsul latin a dou componente participante este nul dac au vrf comun.
- rezultatul compunerii const n scrierea n continuare a vrfurilor componente
ale simbolurilor participante.
Prin definiia produsului latin avem
( ) ( ) ( ) 2 1 1
M M L M =

,
( ) ( ) ( ) 3 2 1
M M L M =

, Algoritmul continu pn la obinerea matricii
( ) 1 n
M

,
deoarece ntr-un graf cu n vrfuri un drum hamiltonian are 1 n arce.
n matricea
( ) 1 n
M citim, conform modului de scriere de mai sus, toate
drumurile hamiltoniene ale grafului.
Dac toate elementele lui
( ) 1 n
M sunt zerouri (
( )
0 =
1 n
M ), graful nu
admite drum hamiltonian.
Observaie. Procedeul este aplicabil pentru orice tip de graf orientat (cu
sau fr circuit), dar pentru grafurile fr circuite se recomand algoritmul lui
Chen, ntruct pentru grafuri de dimensiuni mari, algoritmul nmulirii latine este
greoi (dar sigur).






120
Exemplul 3. S se determine drumurile hamiltoniene pentru graful
1
2
3
4
5

Cum tim c graful are circuite, vom folosi metoda nmulirii latine.
Matricele
( ) 1
M i
( ) 1
M

vor fi:
( )
|
|
|
|
|
|

\
|
=
0 0 0 0
0 0 0
0 0 0 0
0 0 0
0 0 0
3 5
5 4 1 4
4 3
4 2 3 2
5 1 2 1
1
x x
x x x x
x x
x x x x
x x x x
M
( )
|
|
|
|
|
|

\
|
=
0 0 0 0
0 0 0
0 0 0 0
0 0 0
0 0 0
~
3
5 1
4
4 3
5 2
1
x
x x
x
x x
x x
M
( )
|
|
|
|
|
|
|
|

\
|
)
`

=
0 0 0 0
0 0
0 0 0
0 0
0 0 0
4 3 5
5 1 4 3 5 4 2 1 4
5 4 3 1 4 3
5 4 2 4 3 2 1 4 2
4 2 1
3 5 1
3 2 1
2
x x x
x x x x x x x x x
x x x x x x
x x x x x x x x x
x x x
x x x
x x x
M

121
( )
|
|
|
|
|
|
|
|
|
|

\
|
)
`

)
`

)
`

=
0 0 0 0
0 0 0 0
0 0 0
0 0
0 0 0
1 4 3 5
3 5 1 4
3 2 1 4
5 1 4 3 2 1 4 3
5 4 3 2
5 1 4 2
3 5 4 2 1 4 3 2
5 4 2 1
4 3 5 1
4 3 2 1
3
x x x x
x x x x
x x x x
x x x x x x x x
x x x x
x x x x
x x x x x x x x
x x x x
x x x x
x x x x
M
( )
|
|
|
|
|
|

\
|
=
0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 3 0 0
0 0 0
2 1 4 3 5
5 1 4 3 2 5 1 4 2
5 4 3 2 1 3 5 4 2 1
4
x x x x x
x x x x x x x x x x
x x x x x x x x x x
M

n graful dat exist 5 drumuri hamiltoniene.


7.4. Algoritmul lui Fleury pentru drumuri euleriene

Fie ( ) , G X U = un graf conex n care X n = i U m = . Dorim ca n
graful G s determinm un ciclu eulerian. Pentru acest lucru, o soluie este de a
pleca de la un lan simplu C (iniial format dintr-o muchie a grafului) i la care s
adugm muchii nct s pstrm lanul simplu i n graful care se formeaz s nu
apar muchii izolate. Dac nu exist i alte opiuni, atunci se utilizeaz i muchiile
izolate.
Algoritmul care se bazeaz pe principiul enunat mai sus este cunoscut
drept algoritmul lui Fleury.
Pentru a putea prezenta acest algoritm este necesar s considerm un mod
special de specificare a lanurilor. Pn acum am fcut acest lucru fie sub forma
{ }
0 1
, ,...,
r
L x x x = , unde
i
x X (reprezentarea prin noduri), fie prin
{ }
1 2
, ,...,
s
L u u u = , unde
i
u U avnd condiia ca pentru orice 1, 2,..., 1 i s =
muchiile
i
u i
1 i
u
+
au o extremitate comun (reprezentarea prin muchii).
Reprezentarea util a lanurilor este o reprezentare combinat n sensul c
sunt prezente att nodurile, ct i muchiile implicate n formarea lanului sub forma
{ }
0 1 1 2 1
, , , ,..., , ,
r r r
L x u x u x u x

= , unde pentru orice 1, 2,..., i r = avem


{ }
1
,
i i i
u x x

= .
Prezentm n comtinuare algoritmul lui Fleury:

122
Algoritmul 4.
1. Se alege un vrf
0
x X i considerm { }
0 0
C x = i 0 i = .
2. Pentru
i
x alegem o muchie ( )
1 1
,
i i i
u x x
+ +
= care nu apare n
i
C i
care nu este izolat n graful parial al lui G obinut prin eliminarea
muchiilor care formeaz
i
C (sau o muchie izolat din graful parial
menionat, dac nu avem alt variant). Definim lanul
{ } { }
1 1 1 0 1 1 2 1 1
, , , , , ,..., , ,
i i i i i i i
C C u x x u x u x u x
+ + + + +
= = i facem 1 i i = + .
3. Dac i m = ne oprim,
m
C este ciclul eulerian, altfel se trece la pasul (2).

Teorema 3. Dac ( ) , G X U = este un graf eulerian, atunci orice ciclu
obinut prin aplicarea algoritmului 2 este un ciclu eulerian.

Exemplul 4. Fie graful urmtor
1
2
3
4
5
6

deci ( ) , G X U = , cu { } 1, 2, 3, 4, 5, 6 X = i { }
1 2 3 4 5 6 7 8 9
, , , , , , , , U u u u u u u u u u = ,
unse s-a notat { }
1
1, 4 u = , { }
2
1, 5 u = , { }
3
2, 3 u = , { }
4
2, 4 u = , { }
5
3, 4 u = ,
{ }
6
3, 5 u = , { }
7
3, 6 u = , { }
8
4, 5 u = i { }
9
5, 6 u = . Avem astfel 6 n X = = i
9 m U = = .
Pentru aplicarea algoritmului 4 se realizeaz alegerea unui nod
0
3 x X =
i se fac iniializrile { }
0
3 C = , 0 i = .
La prima iteraie graful parial ( )
0
, \ X U C coincide cu graful G i putem
alege orice muchie care are o extremitate n nodul 3, s spunem { }
5
3, 4 u = .
Definim lanul { }
1 5
3, , 4 C u = i facem 1 i = . Cum 9 i , procesul este reluat.
La a doua iteraie, graful parial ( )
1
, \ X U C este reprezentat prin

123
1
2
3
4
5
6

i deoarece nu conine muchii izolate, putem alege orice muchie care are o
extremitate nodul 4, s spunem { }
8
4, 5 u = . Definim lanul { }
2 5 8
3, , 4, , 5 C u u = i
facem 2 i = , urmnd a relua pasul 2.
A treia iteraie are la baz graful parial
1
2
3
4
5
6

care nu conine muchii izolate i astfel pentru continuare putem alege orice muchie
care are o extremitate n nodul 5, s spunem { }
2
1, 5 u = . Definim lanul
{ }
3 5 8 2
3, , 4, , 5, ,1 C u u u = i facem 3 i = . Deoarece 9 i se revine la pasul 2.
A patra iteraie pornete de la graful parial
1
2
3
4
5
6

n care se poate observa c singurele contunuri posibile sunt legate de muchiile
din lanul { } 1, 4, 2, 3 (corespunznd i iteraiilor cinci i ase). Facem n ordine
alegerile { }
1
1, 4 u = , { }
4
2, 4 u = i { }
3
2, 3 u = . n final se obine lanul

124
{ }
6 5 8 2 1 4 3
3, , 4, , 5, ,1, , 4, , 2, , 3 C u u u u u u = .
Facem 6 i = . Urmeaz a relua pasul al doilea.
La a aptea iteraie, graful parial ( )
6
, \ X U C este
1
2
3
4
5
6

n acest graf nu conine muchii izolate i putem alege orice muchie care are o
extremitate n nodul 3, s spunem { }
7
3, 6 u = i astfel s formm lanul
{ }
7 5 8 2 1 4 3 7
3, , 4, , 5, ,1, , 4, , 2, , 3, , 6 C u u u u u u u =
i trecem la 7 i = . La reluarea pasului 2, graful parial obinut prin eliminarea
muchiilor din lanul
7
C conine lanul { } 6, 5, 3 i prin iteraiile 8 i 9 se ajunge la
un lan
{ }
9 5 8 2 1 4 3 7 9 3
3, , 4, , 5, ,1, , 4, , 2, , 3, , 6, , 5, , 3 C u u u u u u u u u =
Deoarece ajungem la 9 i = , algoritmul se oprete. Lanul
9
C are ambele
extremiti nodul 3 i astfel este un ciclu. Fiecare muchie din ciclul
9
C apare o
singur dat i deci ciclul este unul simplu. Ciclul simplu
9
C conine toate
muchiile din graful G , deci este un ciclu eulerian.


7.5. Algoritmul lui Hierholzer pentru drumuri euleriene

O alt idee pentru determinarea unui ciclu eulerian este s determinm
ciclurile formate cu muchii distincte i care s aib cte un nod comun i unirea
acestor cicluri n ciclul eulerian cutat.
Existena ciclurilor cu un nod comun este garantat de faptul c graful
considerat este conex.
Ideea de mai sus a fost utilizat de Hierholzer pentru realizarea
argoritmului de mai jos, cunoscut drept algoritmul lui Hierholzer.
Fie graful ( ) , G X U = .




125
Algoritmul 5.
1. Se alege un vrf
0
x X i plecnd de la
0
x , prin traversarea fiecrei
muchii neconsiderate formm un ciclu
{ }
0 0 0
0 1 2
0
, ,...,
r
C u u u = i 0 i = .
2. Dac graful parial format cu muchiile cuprinse n ciclul
i
C coincide cu
G atunci ne oprim,
i
C reprezint ciclul eulerian cutat, altfel se
continu.
3. Fie nodul
i
x , extremitate a muchiei
i
k
u din ciclul
i
C i al unei muchii
*
i
u
care nu este n
i
C . Pornind de la nodul
i
x , n graful parial al lui G cu
mulimea de muchii format de muchiile nefolosite la formarea lui
i
C ,
formm un ciclu ca la pasul (1), notat
*
i
C .
4. Formm ciclul
{ }
1 1 1
1 1 2
1
, ,...,
i i i
i r
i
C u u u
+ + +
+
+
= pornind din
i
x , parcurgnd
integral
i
C pn ajungem din nou la
i
x i apoi parcurgnd integral
*
i
C
pn se ajunge la
i
x
5. Facem 1 i i = + i trecem la pasul (2).




126





VIII. FLUX MAXIM N REELE DE TRANSPORT

8.1. Consideraii generale

Definiie. Un graf orientat ponderat ( ) , , G X U p = fr circuite, se
numete reea de transport dac ndeplinete urmtoarele condiii:
1. Dac { }
n
x x x X ,..., ,
2 1
= , atunci oricare ar fi 1 i n avem ( ) ,
i i
x x U .
2. Exist un vrf unic X x
1
n care nu intr niciun arc, numit sursa reelei.
3. Exist un unic vrf
n
x din care nu iese niciun arc, numit destinaia reelei.
4. G este conex i exist drumuri de la
1
x la
n
x .
5. S-a definit o funcie : c U astfel nct ( ) 0 u c pentru orice arc u U ;
numrul ( ) u c se numete capacitatea reelei.

Definiie. Fie ( ) , , G X U p = o reea de transport. Fiind dat o
submulime X Y , se numete tietur de suport Y mulimea de arce
( ) ( )
{ }
, ,
i j i j
Y x x U x Y x Y U

=
( ) ( )
{ }
, ,
i j i j
Y x x U x Y x Y U
+
= .
Cantitatea ( ) ( )
( ) ( )

=
Y
j
x
i
x
ij
p Y c
,
este capacitatea tieturii ( ) Y

.

Definiie. Fie ( ) , , G X U p = o reea de transport. O funcie :U
+

se numete flux pe reeaua de transport ( ) , , G X U p = dac ndeplinete
urmtoarele condiii:
1. Condiia de mrginire a fluxului:
pentru orice
( )
,
i j
x x U , avem ( )
ij
p x x
j i
, 0 .
2. Condiia de conservare
Pentru orice
i
x X , avem ( )
( )
( )

|

\
|
=

=
=
n
h
x
j
x
h
h j
n
j
x
k
x
k
j k
x x x x
,
1
,
1
, , .


127
Observaii
1. Condiia 2) afirm c pentru orice vrf x cu
1
x x i
n
x x , suma
fluxurilor de pe arcele care intr n x este egal cu suma fluxurilor pe arcele
care ies din x .
2. Funcia nu este unic.
Definiie. Fie ( ) , , G X U p = o reea de transport. Un arc
( )
,
i j
x x U se
numete arc saturat, dac n raport cu are loc relaia ( )
ij j i
p x x = , .

Se pune problema determinrii funciei astfel nct suma fluxurilor pe
arcele ce intr n
n
x s fie maxim, aa-numita problem a fluxului maxim.
Adic, dintre toate fluxurile :U
+
posibile n reeaua de transport
( ) , , G X U p = se urmrete s se determine fluxul pentru care
( )
( )
( )
( )
1 1
, ,
, ,
n n
h n h n
h h
x x U x x U
n n
h h
x x x x
= =


.
Propoziia 1. Fie ( ) , , G X U p = o reea de transport avnd sursa
1
x ,
destinaia
n
x i :U
+
un flux oarecare n reeaua G , atunci:
( )
( )
( )
( )
1
1 1
,
, 1
, ,
n n
i j n
i j
x x U
x x U i
j n
x x x x
= =


=


Demonstraie. Relaia din enun exprim faptul c fluxul care iese din
1
x

ajunge n
n
x . Avem ( ) ( ) 0
1
= =
+
n
x x i se deduce c:
( )
( ) ( )
( )
( ) ( )
( )
( ) ( )
( )
( ) ( )


=
=
(
(


i
x
i
x x
i
n
x
n
x
j
x
n j
X
j
x
n
x
n
x
j
x
n j
j
x
j
x
i
x
j i
x x x x
x x x x
,
1
1
co ,
, ,
, ,
, ,


Definiie. Fie ( ) , , G X U p = o reea de transport avnd sursa
1
x ,
destinaia
n
x i :U
+
un flux oarecare n reeaua G . Valoarea
( )
( )
( )
( )
( ) ( )
1
, ,
1
, ,
j n i
x x x x x x
n n i j i
x x x x


+

= =


se numete valoarea total a fluxului :
+
.


128
Propoziia 2. Fie ( ) , , G X U p = o reea de transport i fie X Y o
submulime cu proprietile:
- pentru sursa
1
x a lui G avem
1
x Y ;
- pentru destinaia
n
x a lui G avem Y x
n
.
Atunci pentru orice flux :U
+
avem
( )
( ) ( )
( )
( ) ( )
( ) ( ) Y c x x x x
Y
j
x
i
x
j i
Y
j
x
i
x
j i
=
+


=

, ,
, , .
Demonstraie. Avem:
( )
( )
( )
( )
( )
( )
( )
( ) ( )
( )
( ) ( )
( )
( ) ( )
( )
( ) ( )
( )
( ) ( )
( )
( ) ( )
( )
( )
, ,
, ,
, ,
\ , ,
1
,
1
, ,
, ,
, ,
, ,
,
i j i j
x x Y x x Y
i j i j
i k k j
x Y x x x x x x
k i k k j k k
i k k j
x Y x x x x x x
k i k k j k k
i k k j
x X Y x x x x x x
k i k k j k k
j
x x
j
x x x x
x x x x
x x x x
x x x x
x x



+

+

+

+

=
(
(
= =
(

(
(
=
(

(
(
=
(

=




( )
1
x
+
=



ceea ce demonstreaz egalitatea, cci:
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( ) ( )
, ,
,
,
, ,
,
,
i j i j
x x Y x x Y
i j i j
i j
x x Y
i j
i j
x x Y
i j
x x x x
x x
p x x c Y

.









129
8.2. Algoritmul Ford-Fulkerson

n continuare vom considera c toate capacitile sunt numere raionale sau
ntruct numrul total de arce este finit, chiar numere naturale.
Pe baza consideraiilor precedente se deduce urmtorul algoritm cunoscut
sub numele de algoritmul Ford-Fulkerson pentru determinarea fluxului maxim
ntr-o reea de transport.
Algoritm
Pasul I
Se construiete un flux iniial
0
, care verific condiiile de conservare n
fiecare vrf i de mrginire pe fiecare arc, de exemplu chiar fluxul avnd
componente nule pe fiecare arc al reelei,
( )
0
, 0
i j
x x = , oricare ar fi
( )
,
i j
x x U .
Pasul II
Folosind operaiile de marcare ce vor fi prezentate mai jos, se cerceteaz
dac fluxul iniial
0
este maxim; operaiunile de marcare constau n
urmtoarele:
a) se marcheaz sursa reelei
1
x cu semnul + ;
b) vrfurile ( )
1
x x
j
+
vor fi marcate cu
1
x + dac arcul ( )
j
x x ,
1
este
nesaturat;
c) dac vrful
j
x este deja marcat i dac pentru un vrf ( )
j k
x x
+
arcul
( )
k j
x x , este nesaturat, atunci marcm vrful
k
x prin
j
x + ;
d) dac vrful
j
x

este deja marcat i dac pentru un vrf ( )
j k
x x

arcul
( )
j k
x x are fluxul nenul, marcm vrful
k
x prin
j
x
.;

n urma terminrii operaiei de marcare, putem ntlni urmtoarele
situaii:
1. Dac destinaia
n
x a reelei nu s-a marcat, atunci fluxul este maxim i
algoritmul se termin, altfel se aplic procesul (2) i se reia pasul II.
2. Dac destinaia
n
x s-a putut marca, atunci fluxul nu este maxim i poate fi
msurat astfel:
a) se alege un drum de la
1
x la
n
x ;
b) pe arcele drumului marcat cu + fluxul se majoreaz cu o cantitate
de flux (de exemplu 1 = );
c) pe arcele drumului marcat cu - fluxul se micoreaz cu aceeai
cantitate ;
d) fluxul arcelor nemarcate nu se schimb;
.

130
Algoritmul are un numr finit de pai, iar fluxul maxim se atinge cnd nu mai
poate fi marcat destinaia
n
x a reelei.
Observaie. Mrimea fluxului se poate face cu mai mult dect o unitate,
evitndu-se astfel prea multe operaii de marcare, astfel: se consider un drum V
format din drumuri marcate cu + sau - ce unete
1
x cu
n
x , uor de gsit
urmrind vrfurile marcate n sensul de la
n
x ctre
1
x . Notm
+
V mulimea
arcelor ( ) y x, unde y este marcat cu + i

V mulimea arcelor ( ) y x, unde y


este marcat cu -. Calculm
( ) ( ) { } u u c
V u
=
+

min
1

( ) u
V u
=

min
2

i { }
2 1
, min = . Observm c 0 > i este numr ntreg.
Mrim cu pe fiecare arc
+
V u i micorm cu pe fiecare arc

V u ,
obinnd, la ieire, un flux mrit cu .
Se repet etapa a doua cu fluxul obinut. Valoarea fluxului maxim se gsete
realiznd o tietur prin separarea cu o linie a vrfurilor marcate de cele nemarcate
i capacitatea acestei tieturi reprezint fluxul maxim, sau adunnd fluxurile
arcelor incidente interior lui
n
x .

8.3. Exemple

Exemplul 1. Fie reeaua
x
1
x
2
x
3
x
4
x
5
+x
1
+x
1
+x
1
2,0
5,0
3,0
7,0
5,0
4,0
8,0
5,0
+x
2






131
Vrful
1
x este sursa reelei, vrful
5
x este destinaia i se verific
urmtoarele:
( ) =

1
x , ( ) ( ) ( ) ( ) { }
4 1 3 1 2 1 1
, , , , , x x x x x x x =
+

( ) ( ) ( ) { }
5 4 5 2 5
, , , x x x x x =

, ( ) =
+
5
x
Pentru reeaua din figur vrem s determinm fluxul maxim. Considerm
fluxul iniial
( )
0
, 0
i j
x x = pentru orice
( )
,
i j
x x U .
Pasul 2
1) Observm prin procedeul de marcaj am putut marca destinaia
5
x a reelei.
Atunci fluxul nu este maxim i poate fi mrit.
Alegem un drum de la
1
x la
5
x
( )
5 2 1 1
, , : x x x d
Fluxul se majoreaz cu cantitatea
( ) ( ) { } { } 2 0 8 , 0 2 min min = = =
+

u u c
V u
;
(arcul ( )
2 1
, x x se va satura).
Fluxul va avea valoarea 2 2
0 1
= + = .
x
1
x
2
x
3
x
4
x
5
+x
1
+x
1
2,2
5,0
3,0
7,0
5,0
4,0
8,2
5,0
+x
4

Am putut marca destinaia
5
x a reelei, fluxul nu este maxim i poate fi
mrit. Fie drumul { }
5 4 1 2
, , : x x x d , mrim fluxul cu 3 = (arcul ( )
4 1
, x x (x
1,
x
4
)
se va satura).
Noul flux va avea valoarea 5 3
1 2
= + = .

132
x
1
x
2
x
3
x
4
x
5
+x
1
+x
3
2,2
5,0
3,3
7,0
5,0
4,0
8,2
5,3
+x
3
+x
4

Prin repetarea procedeului de marcaj am putut marca din nou destinaia,
deci fluxul nu este maxim. Fie drumul { }
5 4 3 1 3
, , , : x x x x d ,
( ) ( ) { } { } 2 3 5 , 0 4 . 0 5 min min = = =
+

u u c
V u

Cu cantitatea 2 = vom mri fluxul i 7 2
2 3
= + =
x
1
x
2
x
3
x
4
x
5
+x
1
2,2
5,2
3,3
7,0
5,0
4,2
8,2
5,3+2
+x
3
+x
2

Destinaia a fost marcat, alegem drumul { }
5 2 3 1 4
, , , : x x x x d ,
{ } 3 2 8 , 0 5 , 2 5 min = = . Fluxul va fi mrit cu cantitatea 3 = i obinem
10 3
3 4
= + = .

Exemplul 2. Pentru a transporta n 6 locaii anumite elemente se poate
opta pentru variantele din reeaua de mai jos, tiind c numerele din afara
parantezelor reprezint capacitile arcelor, iar numerele din interior, valorile unui
flux iniial ce nu satureaz niciun arc. Se dorete gsirea fluxului maxim de
transport

133
x
1
x
2
x
3
x
4
x
6
+x
1
+x
1
+x
1
3,(2)
8,(5)
7,(2)
5,(1)
5,(2)
4,(2)
3,(1)
6,(2)
+x
2
x
5
+x
5
4,(1)
5,(3)
10,(5)

Rezolvare: verificm dac flux iniial constituie un flux realizabil, adic
:U
+
ndeplinete condiia de mrginire a fluxului, deci orice
( )
,
i j
x x U
avem ( )
ij j i
p x x , 0 , { } 6 ,..., 2 , 1 , j i . Obinem:
( ) 3 2 , 0
12 2 1
= < = < p x x , ( ) 8 5 , 0
13 3 1
= < = < p x x
( ) 7 2 , 0
14 4 1
= < = < p x x , ( ) 4 1 , 0
26 6 2
= < = < p x x
( ) 5 1 , 0
32 2 3
= < = < p x x , ( ) 5 2 , 0
34 4 3
= < = < p x x
( ) 6 2 , 0
35 5 3
= < = < p x x , ( ) 10 5 , 0
46 6 4
= < = < p x x
( ) 3 1 , 0
54 4 5
= < = < p x x , ( ) 5 3 , 0
56 6 5
= < = < p x x .
Pentru condiia de conservare oricare ar fi
i
x X
( )
( )
( )
( )
6 6
2 1
, ,
, ,
k j j h
k h
x x U x x U
j j k h
x x x x
= =

=


avem
Vrfuri Flux care intr n vrful
i
x

Flux care iese n vrful
i
x
2
x

3 3
3
x
5 5
4
x

5 5
6
x
4 4
Se observ c i Propoziia 1. este verificat, adic
( ) ( ) 9 , ,
5
2
6
4
2
1
= =

= = j
j
i
i
x x x x
deci fluxul iniial este 9
0
= .

134
Trecem la Pasul II din algoritmul Ford-Fulkerson
1) Destinaia
6
x a putut fi marcat. Alegem drumul { }
6 5 3 1 1
, , , : x x x x d pentru
care
{ } 2 3 5 , 2 6 , 5 8 min = =
i
11 2 9
1
= + = .
Arcul ( )
6 5
, x x s-a saturat.
x
1
x
2
x
3
x
4
x
6
+x
1
+x
1
+x
1
3,(2)
8,(5+2)
7,(2)
5,(1)
5,(2)
4,(2)
3,(1)
6,(2+2)
x
5
+x
4
4,(1)
5,(3+2)
10,(5)

2) Destinaia
6
x a putut fi marcat. Alegem drumul { }
6 4 1 2
, , : x x x d ;
{ } 5 5 10 , 2 7 min = = ; 16 5 11
2
= + = . Arcele ( )
4 1
, x x , ( )
6 4
, x x s-au
saturat.
x
1
x
2
x
3
x
4
x
6
+x
1
+x
1
+x
3
3,(2)
8,(7)
7,(2+5)
5,(1)
5,(2)
4,(2)
3,(1)
6,(4)
x
5
+x
2
4,(1)
5,(5)
10,(5+5)

3) Destinaia
6
x a putut fi marcat. Alegem drumul { }
6 2 1 3
, , : x x x d ;
{ } 1 1 4 , 2 3 min = = ; 17 1 16
3
= + = . Arcul ( )
2 1
, x x s-a saturat.

135
x
1
x
2
x
3
x
4
x
6
+x
3
+x
1
3,(2+1)
8,(7)
7,(7)
5,(1)
5,(2)
4,(2)
3,(1)
6,(4)
x
5
+x
2
4,(1+1)
5,(5)
10,(10)

4) Destinaia
6
x a putut fi marcat. Alegem drumul { }
6 2 3 1 4
, , , : x x x x d ;
{ } 1 2 4 , 1 5 , 7 8 min = = ; 18 1 17
4
= + = . Arcul ( )
3 1
, x x s-a saturat.
x
1
x
2
x
3
x
4
x
6
3,(3)
8,(7+1)
7,(7)
5,(1+1)
5,(2)
4,(2)
3,(1)
6,(4)
x
5
4,(2+1)
5,(5)
10,(10)

Observm c destinaia nu s-a mai putut marca. Deci fluxul este maxim 18 = .


136





IX. REELE DE PROGRAMARE A ACTIVITILOR

O activitate este un proces precis determinat, care consum timp i resurse
i are urmtoarele proprieti: indivizibilitate (nu se mai descompune n
subactiviti), durat cunoscut i neinteruptibilitate (odat nceput, nu mai
poate fi ntrerupt).
Un proiect este un proces complex destinat atingerii unui scop bine
precizat i care poate fi caracterizat printr-un obiectiv (produs, cantitate de
informaii etc.), un ansamblu de activiti (subaciuni, subprocese, operaii) i un
proces tehnologic (intercondiionrile ntre activiti).
O problem de programare a activitilor const n stabilirea unei ordini
de efectuare a operaiilor (activitilor) unui proiect, astfel ca interdependenele
dintre ele s fie respectate n cadrul resurselor disponibile i durata total de
execuie a acestuia s fie minim.
n literatura de specialitate, problemele de programare a activitilor mai
sunt numite probleme de ordonanare.
Un proiect poate fi prezentat prin intermediul unui tabel n care se
precizeaz activitile desfurate, condiionarea lor direct n sensul precedenei
imediate i durata de execuie a fiecrei activiti.
Un exemplu de tabel de prezentare a unui proiect este
Activitile
proiectului
Activitile
direct precedente
(condiionri)
Durate
A - 3
B - 2
C A 2
D B 6
E B 4
F C,D,E 4
G E 1
Pornind de la prezentarea proiectului, acesta se poate transpune ntr-un graf
orientat. Exist dou moduri de construcie a grafului de activiti, arc activitate
sau vrf activitate









137

9.1. Graful arc/activitate, metoda drumului critic

Pentru construcia grafului de activiti de tip arc/activitate se procedeaz
dup urmtoarele reguli:
fiecare activitate este reprezentat de un arc pe care se trece identificarea
activitii i n paranteze durata ei. n exemplul de mai sus, considernd
activitatea D cu durata de 6, ea se reprezint printr-un arc

D(6)

activitile care au durata egal cu zero sunt considerate activiti de
ateptare i se reprezint prin arce desenate cu linie dubl. Astfel, dac un
proiect conine o activitate R cu durata egal cu zero, n graful de activiti
vom avea reprezentarea

R(0)

toate activitile necondiionate se consider a avea extremitatea iniial
comun, vrful obinut fiind considerat vrful de start al proiectului. n
exemplificarea de mai sus activitile necondiionate sunt A i B, deci
arcele corespunztoare lor vor pleca din acelai vrf notat s i vom avea
s
B(2)
A(3)

toate activitile care nu apar n coloana de preceden direct se consider
a avea o extremitate final comun, vrful astfel obinut fiind considerat
vrful terminal al proiectului. n tabelul de activiti considerat, activitile
F i G nu apar n coloana precedenelor directe, deci arcele
corespunztoare lor vor avea o extremitate final comun notat t
obinnd

138
t
G(1)
F(4)

toate activitile care au o activitate comun care le precede au
extremitatea iniial identic cu extremitatea final a activitii care le
precede direct. n exemplul considerat activitile D i E sunt condiionate
direct de activitatea B i astfel, n graful asociat proiectului avem
E(4)
D(6)
B(2)

cu exceia cazului cnd ntre dou vrfuri se formeaz dou arce sau a celui
n care se conine un vrf n care att gradul de intrare, ct i cel de ieire
sunt mai mari dect 1, dac mai multe activiti condiioneaz aceeai
activitate, atunci extremitile finale ale activitilor care condiioneaz
reprezint un vrf comun, i anume extremitatea iniial a activitii
condiionate. n tabelul de mai sus, activitile C, D i E condiioneaz
activitatea F i astfel se obine
E(4)
C(2)
D(6) F(4)






139
cnd ntre dou vrfuri se formeaz dou arce, ca n cazul
Q(2)
P(3)

se introduce o activitate suplimentar numit activitate fictiv, cu durata de
execuie zero i care se reprezint printr-un arc cu linie punctat.
Introducerea acestui arc se poate face la oricare din arcele cu extremitile
comune pentru a forma o reprezentare
Q(2)
P(3)
Z(0)

sau
Q(2)
P(3) Z(0)

cnd att gradul de intrare, ct i cel de ieire dintr-un vrf sunt mai mari
dect 1 se introduc activiti fictive pentru a elimina situaia aprut. De
exemplu, dac n graful de activiti s-a obinut situaia

140
G(1)
F(4)
J(3)
H(7)

atunci se introduce activitatea fictiv Z (cu durata egal cu zero) i se
obine graful
G(1)
F(4)
J(3)
H(7)

n care fiecare vrf are fie gradul de ieire, fie cel de intrare egal cu 1.
n final se numeroteaz vrfurile cresctor de la vrful s ctre vrful t .
Considernd proiectul prezentat n tabelul de mai sus, respectnd modul de
construcie al grafului de activiti de tipul arc/activitate, rezult reprezentarea
s t
1
2 3
4
A(3)
B(2)
C(2)
D(6)
E(4) G(1)
F(4)

Metoda drumului critic sau algoritmul lui Ford asociaz fiecrul vrf o
caset cu dou celule, cea stng pentru specificarea timpului minim de nceput a
activitilor care au vrful drept extremitate iniial (numit i termenul cel mai
devreme de ncepere a activitilor), i cea dreapt pentru timpul maxim de
ncepere a activitilor respective (sau termenul cel mai trziu de ncepere a
activitilor). Pentru un vrf i vom nota timpul minim cu
min
i
t i timpul maxim cu
Max
i
t iar caseta asociat vrfului va fi de forma

141
min Max
i i
t t .
Considerm c n urma construciei s-a obinut graful ( ) , G X U = n care
dac un arc ( ) , x y corespunde activitii
xy
N , atunci are ponderea
xy
d egal cu
durata execuiei activitii i n rest 0
xy
d = . Formm astfel o matrice de ponderare
corespunztoare duratelor de execuie ale activitilor
( )
,
xy
x y X
D d

= , care este o
matrice ptrat de ordin X .
Algoritmul 1.
1. Se iniializeaz caseta vrfului s cu
min
0
s
t = .
2. Dac s-a completat
min
t
t , atunci se trece la pasul 6, altfel se continu.
3. Se determin mulimea
( )
{ }
min
, , completat
i j i j
A x X x x U t = .
4. Pentru fiecare x A se determin
( )
( )
min min
,
max
x y yx
y x U
t t d

= + .
5. Se trece la pasul 2.
6. Se iniializeaz
Max min
t t
t t = din caseta vrfului t .
7. Dac s-a completat
Max
s
t , atunci ne oprim, drumul care trece prin vrfurile
cu
min Max
x x
t t = este drumul optim n reeaua de pragramare a activitilor
(numit i drum critic), altfel se continu.
8. Se determin mulimea
( )
{ }
Max
, , completat
i i j j
B x X x x U t = .
9. Pentru fiecare x B se determin
( )
( )
Max Max
,
min
x x yx
y x U
t t d

= .
10. Se trece la pasul 7.

Exemplul 1. Considerm un proiect n care activitile sunt cele din tabelul
Activitile
proiectului
Activitile
direct precedente
(condiionri)
Durate
A - 3
B - 2
C A 2
D B 6
E B 4
F C,D,E 4
G E 1

142
Aa cum s-a vzut mai sus se obine graful ( ) , G X U = cu
{ } ,1, 2, 3, 4, X s t = i ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) { }
,1 , , 2 , 1, 4 , 2, 3 , 2, 4 , 3, 4 , 3, , 4, U s s t t = .
Se obine urmtoarea matrice a ponderilor asociate duratelor de execuie:
0 3 2 0 0 0
0 0 0 0 2 0
0 0 0 4 6 0
0 0 0 0 0 1
0 0 0 0 0 4
0 0 0 0 0 0
D




=







Graful, la care se adaug casetele asociate fiecrui vrf, are reprezentarea
s t
1
2 3
4
A(3)
B(2)
C(2)
D(6)
E(4) G(1)
F(4)

Aplicnd pasul 1 facem
min
0
s
t = i deoarece nu s-a completat
min
t
t are loc
prima iteraie a pailor 3, 4 i 5.
Pai 3, 4, 5, iteraie 1. Obinem { } 1, 2 A = .
Pentru 1 x = avem doar arcul ( ) ,1 s i astfel
( )
( ) ( ) { }
min min
1 1
,1
max max 0 3 3
y y
y U
t t d

= + = + = .
Pentru . 2 x = avem doar arcul ( ) , 2 s i astfel
( )
( ) ( ) { }
min min
2 2
,2
max max 0 2 2
y y
y U
t t d

= + = + = .
Cum nc nu s-a completat
min
t
t se reitereaz.
Pai 3, 4, 5, iteraie 2. Obinem { } 3 A = .i avnd doar arcul ( ) 2, 3 rezult
( )
( ) ( ) { }
min min
3 3
,3
max max 2 4 6
y y
y U
t t d

= + = + = . Din nou nu s-a completat


min
t
t .
Pai 3, 4, 5, iteraie 3. Ajungem la { } 4 A = pentru care avem arcele
( ) 1, 4 , ( ) 2, 4 i ( ) 3, 4 astfel c

143
( )
( ) ( ) ( ) ( ) { }
min min
4 4
,4
max max 3 2 , 2 6 , 6 0 8
y y
y U
t t d

= + = + + + =
Neavnd completat
min
t
t realizm o nou iteraie.
Pai 3, 4, 5, iteraie 4. Avem { } A t = i arcele ( ) 3, t i ( ) 4, t de unde
rezult
( )
( ) ( ) ( ) { }
min min
,
max max 6 1 , 8 4 12
t y yt
y t U
t t d

= + = + + =
Deoarece s-a completat
min
t
t trecem la pasul 6 i facem
Max min
12
t t
t t = = .
Imaginea care se obine n acest moment pentru reeaua de planificare a activitilor
este
s t
1
2 3
4
A(3)
B(2)
C(2)
D(6)
E(4) G(1)
F(4) 3
2 6
8 12 12 0

Deoarece nu s-a completat
Max
s
t trecem la realizarea primei iteraii pentru
paii 8, 9 i 10.
Pai 8, 9, 10, iteraie 1. Avem { } 4 B = i doar arcul ( ) 4, t i astfel
( )
( ) ( ) { }
Max Max
4 4
4,
min min 12 4 8
x x
x U
t t d

= = = .
Deoarece nu s-a completat
Max
s
t se trece la o nou iteraie.
Pai 8, 9, 10, iteraie 2.Obinem acum { } 1, 3 B = .
Pentru 1 y = avem doar arcul ( ) 1, 4 i astfel
( )
( ) ( ) { }
Max Max
1 1
1,
min min 8 2 6
x x
x U
t t d

= = = .
Pentru 3 y = avem arcele ( ) 3, 4 i ( ) 3, t i astfel rezult
( )
( ) ( ) ( ) { }
Max Max
3 3
3,
min min 8 0 , 12 1 8
x x
x U
t t d

= = = .
Din nou nu este completat
Max
s
t i realizm iteraia a treia.
Pai 8, 9, 10, iteraie 3. Se obine { } 2 B = cu arcele ( ) 2, 3 i ( ) 2, 4 astfel
c ajungem la
( )
( ) ( ) ( ) { }
Max Max
2 2
2,
min min 8 4 , 8 6 2
x x
x U
t t d

= = = .

144
Cum nc nu s-a realizat completarea lui
Max
s
t continum iteraiile.
Pai 8, 9, 10, iteraie 4. Se obine { } B s = cu arcele ( ) ,1 s i ( ) , 2 s astfel
c ajungem la
( )
( ) ( ) ( ) { }
Max Max
,
min min 6 3 , 2 2 0
s x sx
s x U
t t d

= = = .
Deoarece s-a completat
Max
s
t algoritmul se termin, iar drumul critic al
proiectului este format de succesiunea de activiti ( ) , , B D F .
Imaginea grafic la care se ajunge prin completarea timpilor maximi i n
care drumul critic s-a marcat prin ngroarea liniilor de trasare a arcelor din care
este format este
s t
1
2 3
4
A(3)
B(2)
C(2)
D(6)
E(4) G(1)
F(4) 3
2 6
8 12 12 0 8
2
6
8
0



9.1. Graful vrf/activitate, metoda potenialului

Dorim construcia unui graf orientat n care activitile sunt plasate n
vrfurile grafului. Pentru a utiliza vrfurile i pentru realizarea algoritmului de
determinare a drumului critic, vrfurile vor fi casete formate din 6 celule de forma
,min ,min
Max Max
i t
i i i
i t
i i i
t N t
t t t

unde, pentru fiecare vrf i

i
N este identificarea activitii;

i
t este dutara de realizare a activitii;

,min i
i
t este momentul minim de ncepere a activitii;

,min t
i
t este momentul minim de terminare a activitii;

,Max i
i
t este momentul maxim de ncepere a activitii;

,Max t
i
t este momentul maxim de terminare a activitii.
Presupunem c proiectul este format din n activiti.

145
n afara activitilor specificate n proiect se introduc dou activiti noi,
activitatea de start, pentru care
0
N s = i
0
0 t = i activitatea de terminare cu
1 n
N t
+
= i
1
0
n
t
+
= .
Pentru construcia grafului se folosesc urmtoarele reguli:
Intervine un arc ( ) 0, i dac activitatea
i
N nu este condiionat de nicio
activitate, 1 i n .
Apare un arc ( ) , 1 i n + dac activitatea
i
N nu condiioneaz nicio
activitate, 1 i n .
Se consider c exist arcul ( ) , i j dac activitatea
i
N condiioneaz
activitatea
j
N , 1 , i j n .
Exemplul 2. Considerm tabelul de specificaie a proiectului
Nr.
crt.
i
Activitile
proiectului
i
N
Activitile
direct precedente
(condiionri)
Durate
i
t
1 A - 3
2 B - 2
3 C A 2
4 D B 6
5 E B 4
6 F C,D,E 4
7 G E 1
Numrul specificat al activitilor este 7 i astfel vom construi un graf
orientat n care { } 0,1, 2, 3, 4, 5, 6, 7, 8 X = , considernd i cele dou vrfuri
suplimentare.
Graful ( ) , G X U = va avea urmtoarele arce:
( ) 0,1 i ( ) 0, 2 , deoarece activitile
1
N i
2
N sunt necondiionate;
( ) 6, 8 i ( ) 7,8 , deoarece activitile
6
N i
7
N nu condiioneaz alte
activiti;
deoarece activitatea A condiioneaz pe C, rezult arcul ( ) 1, 3 ;
activitatea B condiioneaz activitile D i E i astfel genereaz arcele
( ) 2, 4 i ( ) 2, 5
activitatea G este condiionat de E i se produce arcul ( ) 5, 7 ;
Fiecare din activitile C, D i E condiioneaz pe F i astfel avem arcele
( ) 3, 6 , ( ) 4, 6 i ( ) 5, 6 .
Rezumnd raionamentele fcute am obinut

146
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) { }
0,1 , 0, 2 , 1, 3 , 2, 4 , 2, 5 , 3, 6 , 4, 6 , 5, 6 , 5, 7 , 6,8 , 7, 8 U =
Graful are reprezentarea grafic
s t
A
B
C
D
E
F
G
0 0
3
2
2
6
4
4
1
0
1
2
3
4
5
6
7
8

Pentru determinarea drumului critic n grafurile de activiti de tip
vrf/activitate se aplic un algoritm similar celui pentru vrfurile de activiti
arc/activitate.
Algoritm 2.
1. Se inializeaz
,min ,min
0 0
0
i t
t t = = .
2. Dac s-a completat
,min
1
t
n
t
+
se trece la pasul 6, altfel se continu.
3. Se determin mulimea A a vrfurilor pentru care toate arcele care intr
au completate valorile de timp minim de terminare la extremitile iniiale.
4. Pentru fiecare i A se calculeaz
( )
,min ,min
,
max
i t
i j
j i U
t t

= i apoi
,min ,min t i
i i i
t t t = + .
5. Se trece de la pasul 2.
6. Facem iniializrile
,Max ,Max ,min
1 1 1
i t t
n n n
t t t
+ + +
= = .
7. Dac s-a completat
,Max
0
i
t , atunci ne oprim, drumul critic este drumul care
trece prin vrfurile k n care
,Max ,min t t
k k
t t = , altfel se continu.
8. Se determin mulimea B a vrfurilor pentru care toate arcele care ies au
completate valorile de timp maxim de nceput la extremitile finale.
9. Pentru fiecare j B se calculeaz
( )
,Max ,Max
,
min
t i
j i
j i U
t t

= i apoi
,Max ,Max i t
j j j
t t t = .
10. Se trece de la pasul 7.






147
Exemplul 3. Considerm c lucrm pe proiectul prezentat n exemplele
anterioare. Modul de lucru al algoritmului este similar procesului descris integral
n exemplul 2. n urma calculelor vom obine rezultatele trecute n urmtoarea
reprezentare, n care am desenat cu linie ngroat arcele ce fac parte din
drumul critic care este ( ) 0, 2, 4, 6,8 C = i astfel corespunde succesiunii de
activiti ( ) , , , , s B D F t sau, eliminnd activitile de start i terminare, la
succesiunea ( ) , , B D F .
s t
A
B
C
D
E
F
G
0 0
3
2
2
6
4
4
1
0
1
2
3
4
5
6
7
8 0 0
0 0
0
0
3 3 5
2
2
2
8
6
8
6 7
12
12 12
12 12
12
12
8
11
8
8
8
6
4
2
6 3
2 0


148





BIBLIOGRAFIE

1. I. Tomescu, Combinatoric i teoria grafurilor, Editura Universitii din.
Bucureti, 1990
2. Bang-Jensen, G. Gutin, Digraphs Theory, Algorithms and Applications,
Springer-Verlag, 2007
3. J.A. Bomdy, U.S.R. Murty, Graph Theory, Springer, 2007
4. I. Tomescu, Probleme de combinatoric i teoria grafurilor, Editura
Didactic i Pedagogic, Bucureti, 1981. Ediia englez: Problems in
Combinatorics and Graph Theory, John Wiley, New York , 1985.
5. M. Behzad, G. Chartrand, L. Lesniak-Foster, Graphs & Digraphs, Prindle,
Weber & Schmidt, Boston, Massachusetts, 1979.
6. B. Bollobas, Graph Theory. An Introductory Course, Springer-Verlag,
New York, Heidelberg, Berlin, 1979.
7. C. Berge, Teoria grafurilor i aplicaii, Editura Tehnic, Bucureti, 1971

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