Sunteți pe pagina 1din 76

TEORIA GRAFURILOR

AU

Conf. univ. dr. COSTEL BALC


2014

Tematica
1 Arbori si arborescente
1.1 Numarul ciclomatic . . . . . . . . . . . . .
1.2 Teorema de caracterizare a arborilor . . .
1.3 Numararea arborilor partiali . . . . . . . .
1.4 Arborescente . . . . . . . . . . . . . . . .
1.5 Teorema de caracterizare a arborescentelor
1.6 Arborescente partiale de cost minim . . . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

5
5
10
11
13
15
16

2 Clase particulare de grafuri


26
2.1 Grafuri euleriene . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2 Grafuri hamiltoniene . . . . . . . . . . . . . . . . . . . . . . . 33
2.3 Grafuri bipartite . . . . . . . . . . . . . . . . . . . . . . . . . 39
3 Invarianti ai unui graf
3.1 Definitii si exemple . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Proprietati . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Teorema Berge-Norman-Rabin . . . . . . . . . . . . . . . . . .

44
44
49
56

4 Invariantii unui graf bipartit


66
4.1 Teorema lui Konig . . . . . . . . . . . . . . . . . . . . . . . . 66
4.2 Consecinte algoritmice . . . . . . . . . . . . . . . . . . . . . . 72

Evaluare
Prezenta: 10%
Activitate seminar: 30% (Probleme rezolvate la seminar)
Teme de casa: 10% (Probleme si programe suplimentare)
Evaluare periodica + examen final: 20%+30%=50% (Proba scrisa:
teorie, algoritmi si probleme)

Bibliografie
[1] Gh. Barbu, V. P
aun, Programarea n limbajul C/C++, Editura Matrix Rom, Bucuresti, 2011.
[2] Gh. Barbu, V. P
aun, Calculatoare personale si programare n C/C++, Editura Didactic
a si Pedagogic
a, Bucuresti, 2005.
[3] C. Balc
au, Combinatoric
a si teoria grafurilor, Editura Universitatii din Pitesti,
Pitesti, 2007.
[4] O. Basc
a, L. Livovschi, Algoritmi euristici, Editura Universitatii din Bucuresti, Bucuresti, 2003.
[5] E. Ciurea, L. Ciupal
a, Algoritmi. Introducere n algoritmica fluxurilor n retele, Editura Matrix Rom, Bucuresti, 2006.
[6] T.H. Cormen, Algorithms Unlocked, MIT Press, Cambridge, 2013.
[7] T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein, Introduction to Algorithms, MIT
Press, Cambridge, 2009.
[8] C. Croitoru, Tehnici de baz
a n optimizarea combinatorie, Editura Universitatii Al.
I. Cuza, Iasi, 1992.
[9] N. Dale, C. Weems, Programming and problem solving with JAVA, Jones & Bartlett
Publishers, Sudbury, 2008.
[10] D. Du, X. Hu, Steiner Tree Problems in Computer Communication Networks, World
Scientific Publishing Co. Pte. Ltd., Hackensack, 2008.
[11] S. Even, Graph Algorithms, Cambridge University Press, Cambridge, 2012.
[12] H. Georgescu, Tehnici de programare, Editura Universitatii din Bucuresti, Bucuresti,
2005.
[13] C.A. Giumale, Introducere n analiza algoritmilor. Teorie si aplicatii, Ed. Polirom,
Iasi, 2004.
[14] F.V. Jensen, T.D. Nielsen, Bayesian Networks and Decision Graphs, Springer, New
York, 2007.
[15] D. Jungnickel, Graphs, Networks and Algorithms, Springer, Heidelberg, 2013.

4
[16] B. Korte, J. Vygen, Combinatorial Optimization. Theory and Algorithms, Springer,
Heidelberg, 2012.
[17] L. Livovschi, H. Georgescu, Sinteza si analiza algoritmilor, Editura Stiintific
a si
Enciclopedica, Bucuresti, 1986.
[18] D. Logofatu, Algoritmi fundamentali n C++: Aplictii, Ed. Polirom, Iasi, 2007.
[19] D. Lucanu, M. Craus, Proiectarea algoritmilor, Ed. Polirom, Iasi, 2008.
[20] D.R. Popescu, Combinatoric
a si teoria grafurilor, Societatea de Stiinte Matematice
din Rom
ania, Bucuresti, 2005.
[21] N. Popescu, Data structures and algorithms using Java, Editura Politehnica Press,
Bucuresti, 2008.
[22] T. Toadere, Grafe. Teorie, algoritmi si aplicatii, Editura Albastr
a, Cluj-Napoca,
2002.
[23] I. Tomescu, Combinatoric
a si teoria grafurilor, Tipografia Universitatii din Bucuresti, Bucuresti, 1978.
[24] I. Tomescu, Probleme de combinatoric
a si teoria grafurilor, Editura Didactica si
Pedagogic
a, Bucuresti, 1981.
[25] I. Tomescu, Data structures, Editura Universitatii din Bucuresti, Bucuresti, 2004.
[26] ***, Handbook of combinatorics, edited by R.L. Graham, M. Grotschel and L. Lovasz,
Elsevier, Amsterdam, 1995.
[27] ***, Handbook of discrete and combinatorial mathematics, edited by K.H. Rosen,
J.G. Michaels, J.L. Gross, J.W. Grossman and D.R. Shier, CRC Press, Boca Raton,
2000.

Tema 1
Arbori si arborescente
1.1

Num
arul ciclomatic

Propozitia 1.1.1 (Dirac). Fie G = (V, E) un graf neorientat simplu si


(G) = min d(x)
xV

gradul minim al nodurilor din G.


a) G contine un lant deschis elementar astfel ncat
l() (G),
unde l() reprezinta lungimea lantului .
b) Daca (G) 2, atunci G contine un ciclu elementar C astfel ncat
l(C) (G) + 1.
Definitia 1.1.1. Un graf se numeste par daca toate nodurile sale au gradele
pare.
Propozitia 1.1.2 (Veblen). Fie G = (V, E) un graf cu E 6= . Atunci
graful G este par daca si numai daca exista C1 , . . . , Ck cicluri elementare
muchie-disjuncte (doua cate doua) astfel ncat
E = E(C1 ) E(Ck ) (k N ),

(1.1.1)

unde E(Ci ) reprezinta multimea muchiilor ciclului Ci , i {1, . . . , k}.

TEMA 1. ARBORI SI ARBORESCENT


E

Propozitia 1.1.3. Fie G = (V, E) un graf. Atunci (P(E), , ) este un


spatiu vectorial peste corpul finit cu doua elemente (Z2 , +, ), unde
P(E) = {F |F E}, AB = (A \ B) (B \ A) (diferenta simetrica),
b
0 A = , b
1 A = A, A P(E).

Definitia 1.1.2. Spatiul vectorial (P(E), , ) din propozitia anterioara se


numeste spatiul muchiilor grafului G.
Propozitia 1.1.4. Fie G = (V, E) un graf si
C(E) = {F E|(V, F ) = graf par}.
Atunci C(E) este un subspatiu vectorial al spatiului muchiilor grafului G.
Propozitia 1.1.5. Fie G = (V, E) un graf si
C0 (E) = {F E| C = ciclu elementar n G a.. F = E(C)},
unde E(C) este multimea muchiilor ciclului C. Atunci subspatiul vectorial al
spatiului muchiilor lui G generat de C0 (E) este subspatiul C(E) din propozitia
anterioara.
Demonstratie. Evident, C0 (E) C(E). Conform Propozitiei 1.1.2, pentru
orice F C(E), F 6= , exista F1 , . . . , Fk C0 (E) disjuncte doua cate doua
a.. F = F1 Fk , deci F = F1 . . . Fk = b
1 F1 . . . b
1 Fk .

Definitia 1.1.3. Subspatiul C(E) din Propozitia 1.1.4 se numeste spatiul


ciclurilor grafului G. Dimensiunea acestui subspatiu se numeste num
arul
ciclomatic al grafului G si se noteaza cu (G).
Propozitia 1.1.6 (Listing). Fie G = (V, E) o padure cu n noduri, m muchii
si k componente conexe. Atunci
m n + k = 0.
Demonstratie. Demonstram egalitatea din enunt prin inductie dupa m.
Pentru m = 0 rezulta ca toate nodurile sunt izolate, deci fiecare nod
formeaza o componenta conexa, adica k = n si egalitatea m n + k = 0 este
verificata.
Presupunem adevarata egalitatea din enunt pentru orice padure cu m 1
muchii (m 1) si o demonstram pentru padurea G cu m muchii. Fie
G = (V, E ), unde E = E \ {e}, cu e E, e = [x, y].

TEMA 1. ARBORI SI ARBORESCENT


E

Evident G este o padure cu n noduri, m 1 muchii si k + 1 componente


conexe (deoarece componentele conexe din G ce nu contin x si y raman
componente conexe si n G , iar componenta conexa din G ce contine x si
y se partitioneaza n doua componente conexe n G , una continand pe x si
cealalta pe y). Aplicand ipoteza de inductie pentru graful G avem
(m 1) n + (k + 1) = 0, deci m n + k = 0.

Corolarul 1.1.1. Orice arbore cu n noduri are m = n 1 muchii.


Demonstratie. Se aplica propozitia anterioara, cu k = 1.
Propozitia 1.1.7. Un graf este conex daca si numai daca are arbori partiali.
Demonstratie. Daca graful G = (V, E) are un arbore partial T , atunci pentru
orice x, y V , x 6= y, exista un lant [x, . . . , y] n T (fiind conex), deci si n
G, si astfel G este conex.
Reciproc, demonstram ca orice graf conex G = (V, E) are arbori partiali
prin inductie dupa numarul p de cicluri elementare ale lui G.
Pentru p = 0 rezulta ca nsusi G este un arbore, deci arbore partial n G.
Presupunem adevarata afirmatia pentru orice graf conex cu cel mult p 1
cicluri elementare (p 1) si o demonstram pentru graful conex G = (V, E)
cu p cicluri elementare. Fie e = [x, y] o muchie a lui G aflata pe un ciclu
elementar C si fie G = (V, E \ {e}). Graful G ramane conex (ntre x si y
exista lantul [x, v1 , . . . , vk , y], unde [x, v1 , . . . , vk , y, x] este ciclul C) si are cel
mult p 1 cicluri elementare. Conform ipotezei de inductie, exista un arbore
partial T n G , deci si n G.
Propozitia 1.1.8. Fie G = (V, E) un graf, T = (V, F ) un arbore partial al
lui G si e E \ F . Atunci graful partial
T + e = (V, F {e})
are un unic ciclu elementar si acest ciclu contine muchia e.
Demonstratie. Fie e = [x, y]. T fiind arbore partial, exista un lant elementar = [x, v1 , . . . , vk , y] n T , deci + e = [x, v1 , . . . , vk , y, x] este un ciclu
elementar n T + e.
Unicitatea acestui ciclu rezulta din unicitatea lantului elementar (daca
ar exista doua lanturi elementare distincte 1 = [x, . . . , y] si 2 = [x, . . . , y]
n T , portiunile lor muchie-disjuncte ar produce un ciclu, contradictie cu T =
arbore).

TEMA 1. ARBORI SI ARBORESCENT


E

Teorema 1.1.1 (Teorema num


arului ciclomatic). Orice graf G = (V, E)
cu n noduri, m muchii si k componente conexe are numarul ciclomatic
(G) = m n + k.
Demonstratie. Demonstram egalitatea din enunt n doua etape.
Etapa 1) Presupunem ca graful G este conex, deci k = 1. Fie T =
(V, F ) un arbore partial al lui G (exista, conform Propozitiei 1.1.7). Conform
Corolarului 1.1.1, card (F ) = n 1. Fie
E \ F = {e1 , . . . , emn+1 }.
Pentru orice i {1, . . . , m n + 1}, fie Ci multimea muchiilor ciclului
elementar unic din T + ei (conform Propozitiei 1.1.8). Demonstram ca
B = {C1 , . . . , Cmn+1 }
este o baza a spatiului ciclurilor C(E) (numita baz
a de cicluri a grafului
G).
a) Fie
1 C1 . . . mn+1 Cmn+1 = , cu 1 , . . . , mn+1 Z2 .
Pentru orice i {1, . . . , m n + 1}, ei Ci si ei 6 Cj j 6= i. Daca am
avea i = b
1, atunci ar rezulta ca ei i Ci si ei 6 j Cj j 6= i, adica ei
1 C1 . . . mn+1 Cmn+1 = , fals. Deci i = b
0 i {1, . . . , m n + 1},
si astfel multimea B este liniar independenta.
b) Fie H C(E) si H \ F = {ei1 , . . . , eir } E \ F . Evident,
H(Ci1 . . . Cir ) C(E) si H(Ci1 . . . Cir ) F
(eis H Cis si eis 6 Cij j 6= s, deci eis 6 H(Ci1 . . . Cir ) eis H \F ).
Cum arborele T = (V, F ) nu contine cicluri, conform Propozitiei 1.1.5
rezulta ca singura submultime A C(E) cu A F este A = .
Deci H(Ci1 . . . Cir ) = , adica
1 Ci1 . . . b
1 C ir ,
H = Ci1 . . . Cir = b

si astfel multimea B este un sistem de generatori al spatiului ciclurilor C(E).


Deci B este o baza a acestui spatiu. Rezulta ca
(G) = card (B) = m n + 1 = m n + k.

TEMA 1. ARBORI SI ARBORESCENT


E

Etapa 2) Fie acum G un graf oarecare si G1 , . . . , Gk componentele sale


conexe. Fie ni si mi numerele de noduri, respectiv muchii ale componentei
Gi . Evident, n = n1 + + nk si m = m1 + + mk .
Deoarece subspatiile ciclurilor componentelor G1 , . . . , Gk sunt liniar independente, avem
(G) = (G1 ) + + (Gk ).
Dar, conform etapei 1), (Gi ) = mi ni + 1 i {1, . . . , k}, si astfel prin
adunare rezulta ca (G) = m n + k.
Observatia 1.1.1. Demonstratia teoremei anterioare este constructiva, indicand urmatorul algoritm de determinare a unei baze de cicluri pentru graful G:
se determina componentele conexe G1 , . . . , Gk ;
pentru fiecare componenta Gi , se determina un arbore partial T (de
exemplu arborele DF sau BF ) si ciclurile elementare C1 , . . . , Cmi ni +1
din grafurile T + ei , pentru fiecare muchie ei din Gi ce nu apartine lui
T;
ciclurile astfel determinate formeaza mpreuna o baza de cicluri pentru
graful G.
Exemplul 1.1.1. Fie graful G reprezentat n Figura 1.1.1.
1

7
4

Figura 1.1.1:

Figura 1.1.2:

Numarul sau ciclomatic este (G) = m n + k = 9 7 + 1 = 3.


Considerand arborele partial T reprezentat n Figura 1.1.2 si aplicand algoritmul din observatia anterioara se obtine baza de cicluri {C1 , C2 , C3 } unde
C1 = {[1, 4], [4, 2], [2, 1]}, C2 = {[4, 5], [5, 2], [2, 4]} si C3 = {[5, 6], [6, 3], [3, 2], [2, 5]}.

TEMA 1. ARBORI SI ARBORESCENT


E

1.2

10

Teorema de caracterizare a arborilor

Teorema 1.2.1 (de caracterizare a arborilor). Fie G = (V, E) un graf


cu n noduri. Urmatoarele afirmatii sunt echivalente:
1) G este un arbore (adica este conex si fara cicluri);
2) G este fara cicluri si are m = n 1 muchii;
3) G este conex si are m = n 1 muchii;
4) G este fara cicluri si maximal cu aceasta proprietate, adica daca se
adauga o muchie ntre oricare doua noduri graful obtinut contine cicluri;
5) G este conex si minimal cu aceasta proprietate, adica dac
a se elimina
o muchie oarecare graful obtinut devine neconex;
6) ntre oricare doua noduri ale lui G exista un unic lant elementar.
Demonstratie. 1) 2) Fie G un arbore, adica si conex si fara cicluri. Deci
0 = (G) = m n + 1 si astfel m = n 1.
2) 3) Fie G fara cicluri si cu m = n 1 muchii. Avem 0 = (G) =
n 1 n + k, unde k reprezinta numarul de componente conexe ale lui G,
deci k = 1, adica G este conex.
3) 4) Fie G conex si cu m = n1 muchii. Avem (G) = n1n+1 =
0, deci G este fara cicluri. Fie G+e = (V, E{e}), e 6 E. Graful G+e ramane
conex si are n noduri si m + 1 = n muchii. Astfel (G + e) = n n + 1 = 1,
adica G + e contine un ciclu (elementar).
4) 5) Fie G fara cicluri maximal. Daca G nu ar fi conex, atunci
adaugand o muchie ntre doua noduri x si y din componente conexe diferite
ale lui G s-ar obtine un graf fara cicluri (deoarece nu exista lant ntre x si y
n G), contradictie cu ipoteza. Deci G este conex.
Fie G e = (V, E \ {e}), e E, e = [x, y]. Daca graful G e ar fi
conex, atunci ar exista un lant elementar [x, v1 , . . . , vk , y] n G e si astfel
[x, v1 , . . . , vk , y, x] ar fi un ciclu n G, contradictie cu ipoteza. Deci G e este
neconex.
5) 6) Fie G conex minimal. Fie x, y V .
Daca x 6= y, rezulta ca exista un lant elementar [x, . . . , y].
Daca x = y exista de asemenea lantul elementar [x] de lungime zero.
Daca ntre nodurile x si y ar exista doua lanturi elementare distincte
1 = [x, v1 , . . . , vi , y] si 2 = [x, w1 , . . . , wj , y], atunci notand cu e muchia
[x, v1 ] a lantului 1 , graful G e = (V, E \ {e}) ar ramane conex (deoarece

11

TEMA 1. ARBORI SI ARBORESCENT


E

ntre x si v1 avem lantul [x, w1 , . . . , wj , y, vi , . . . , v1 ]), contradictie cu ipoteza.


Deci ntre x si y exista un unic lant elementar.
6) 1) Fie G cu proprietatea ca ntre orice doua noduri exista un unic
lant elementar. Evident, G este conex. Daca G ar avea un ciclu elementar
C = [x, v1 , . . . , vk , x] atunci [x, v1 ] si [v1 , . . . , vk , x] ar fi doua lanturi elementare ntre x si v1 , contradictie cu ipoteza. Deci G nu are cicluri elementare, si nici neelementare (deoarece orice ciclu neelementar s-ar descompune n cicluri elementare muchie-disjuncte).

1.3

Num
ararea arborilor partiali

Definitia 1.3.1. Fie G = (V, E) un graf fara bucle, unde V = {v1 , . . . , vn }.


Matricea de admitant
a asociata grafului G este matricea M = (mij )i,j=1,n
definita prin:
mii = dG (vi ), i {1, . . . , n};
mij = numarul de muchii sau arce dintre vi si vj , i, j {1, . . . , n}, i 6= j.
Exemplul 1.3.1. Fie G graful reprezentat n Figura 1.3.1.
2

Figura 1.3.1:
Matricea de admitanta a acestui graf este

2 1 1 0
0
1 5 2 1 1

.
1
2
4
1
0
M =

0 1 1 2
0
0 1 0
0
1

Observatia 1.3.1. Matricea de admitanta este o matrice simetrica (si pentru


grafuri orientate!) si are toate sumele pe linii si pe coloane egale cu zero.
Observatia 1.3.2. Definitia 1.3.1 se poate extinde si pentru grafuri cu bucle,
considerand drept matrice de admitanta a unui astfel de graf matricea de
admitanta a grafului obtinut prin eliminarea tuturor buclelor.

12

TEMA 1. ARBORI SI ARBORESCENT


E

Teorema 1.3.1 (Kirchoff-Trent). Fie G = (V, E) un graf fara bucle avand


matricea de admitanta M = (mij )i,j=1,n, n 2. Atunci numarul t(G) de
arbori partiali ai grafului G verifica egalitatea
t(G) = (1)i+j det[M]ij , i, j {1, . . . , n},
unde [M]ij reprezinta matricea obtinuta din M prin eliminarea liniei i si
coloanei j.
Observatia 1.3.3. Teorema anterioara este valabila si pentru grafuri cu bucle,
folosind Observatia 1.3.2.
Exemplul 1.3.2. Aplicand teorema anterioara rezulta ca numarul arborilor
partiali ai grafului G din Exemplul 1.3.1 este


2 1 0 0


1 4 1 0
= 12.
t(G) = det[M]22 =

0 1 2 0
0
0
0 1

Definitia 1.3.2. a) Graful neorientat simplu Kn = (V, E) definit prin


V = {v1 , . . . , vn }, E = {[vi , vj ]|i, j {1, . . . , n}, i 6= j}
se numeste graf complet de ordinul n, unde n N .
b) Graful neorientat simplu Kp,q = (V, E) definit prin

V = {x1 , . . . , xp , y1 , . . . , yq }, E = {[xi , yj ]|i {1, . . . , p}, j {1, . . . , q}}


se numeste graf bipartit complet, unde p, q N .
Corolarul 1.3.1. Graful complet Kn are nn2 arbori partiali.
Demonstratie. Matricea de admitanta

n 1 1 . . .
1 n 1 . . .
M =
...
... ...
1
1 . . .

a grafului Kn este

1
1
( de tipul n n),
...
n1

deci conform teoremei anterioare avem



n 1 1

1 n 1
t(Kn ) = det[M]11 =
...
...
1
1

...
1
...
1
...
...
... n 1

13

TEMA 1. ARBORI SI ARBORESCENT


E
(determinant de ordinul n 1). Adunand toate liniile la
adunand linia obtinuta la celalalte linii obtinem


1
1 ...
1
...
1 1



1 n 1 . . .
n ...
1 0
=
t(Kn ) =

... ... ... ...
... ... ...
1 1 . . . n 1 0
0 ...

prima linie, apoi


1
0
...
n





= nn2 .


Observatia 1.3.4. Corolarul anterior poate fi reformulat astfel: numarul arborilor ce pot fi construiti cu n noduri date (numiti si arbori etichetati)
este egal cu nn2 .
Corolarul 1.3.2. Graful bipartit complet Kp,q are pq1 q p1 arbori partiali.

1.4

Arborescente

Definitia 1.4.1. Fie G = (V, E) un graf orientat. Un nod x V se numeste


r
ad
acin
a a grafului G daca pentru orice nod y V \ {x} exista cel putin
un drum de la x la y.
Exemplul 1.4.1. In graful din Figura 1.4.1 nodurile 1, 2 si 3 sunt radacini,
iar nodurile 4 si 5 nu sunt radacini.
2

Figura 1.4.1:

Definitia 1.4.2.

a) O arborescent
a este un arbore care are o radacina.

b) O arborescent
a partial
a a unui graf orientat G = (V, E) este un graf
partial al lui G ce este arborescenta (adica o arborescenta T = (V, F )
cu F E).
Exemplul 1.4.2. Graful din Figura 1.4.1 nu este arborescenta (are cicluri,
deci nu este arbore). Doua arborescente partiale ale sale sunt reprezentate
n Figurile 1.4.2 si 1.4.3.

14

TEMA 1. ARBORI SI ARBORESCENT


E
1

Figura 1.4.2:

Figura 1.4.3:

Figura 1.4.4:

Definitia 1.4.3. Un graf orientat G = (V, E) se numeste quasi-tare conex


daca pentru orice doua noduri x, y V exista un nod z V si drumuri de
la z la x si de la z la y.
Observatia 1.4.1. Ca si n definitiile conexitatii si tare-conexitatii, si n Definitiile 1.4.1 si 1.4.3 putem nlocui termenul de drum cu drum elementar.
Observatia 1.4.2. Evident, orice graf quasi-tare conex este conex. Reciproca
nu este adevarata. De exemplu, graful reprezentat n Figura 1.4.4 este conex,
dar nu este quasi-tare conex (pentru nodurile x = 1 si y = 4 nu exista noduri
z din care sa avem drumuri la x si la y).
Observatia 1.4.3. Orice graf tare-conex este quasi-tare conex (deoarece pentru orice noduri x, y luand z = x exista drumuri (z, . . . , x) si (z, . . . , y)).
Reciproca nu este adevarata. De exemplu, graful din Figura 1.4.1 este quasitare conex, dar nu este tare-conex.
Propozitia 1.4.1. Un graf orientat este quasi-tare conex daca si numai daca
are (cel putin) o radacina.
Demonstratie. Fie G = (V, E) un graf quasi-tare conex, V = {v1 , . . . , vn }.
Demonstram prin inductie dupa k {1, . . . , n} ca exista un nod xk V cu
drumuri (xk , . . . , v1 ), (xk , . . . , v2 ), . . . , (xk , . . . , vk ).
Pentru k = 1 luam x1 = v1 .
Presupunem adevarata afirmatia pentru k 1 si o demonstram pentru k.
Deoarece graful este quasi-tare conex, rezulta ca exista un nod xk V cu
drumuri (xk , . . . , xk1 ) si (xk , . . . , vk ). Conform ipotezei de inductie, exista
drumuri (xk1 , . . . , v1 ), . . . , (xk1 , . . . , vk1), deci exista drumuri
(xk , . . . , xk1 , . . . , v1 ), . . . , (xk , . . . , xk1 , . . . , vk1 ), (xk , . . . , vk ).
Demonstratia prin inductie este ncheiata.
Luand k = n, nodul xn este o radacina a grafului G.
Fie G = (V, E) si z V o radacina a lui G. Pentru orice noduri x, y V
exista drumuri (z, . . . , x) si (z, . . . , y), deci G este quasi-tare conex.

TEMA 1. ARBORI SI ARBORESCENT


E

1.5

15

Teorema de caracterizare a arborescentelor

Teorema 1.5.1 (de caracterizare a arborescentelor). Fie G = (V, E)


un graf orientat cu n noduri. Urm
atoarele afirmatii sunt echivalente:
1) G este quasi-tare conex si fara cicluri;
2) G este quasi-tare conex si are m = n 1 arce;
3) G este o arborescenta (adica arbore cu radacina);
4) exista un nod x V astfel ncat pentru orice nod v V exista un unic
drum de la x la v;
5) G este quasi-tare conex si minimal cu aceasta proprietate, adica daca
se elimina un arc oarecare graful obtinut nu mai este quasi-tare conex;
6) G este conex si exista un nod x V astfel ncat d (x) = 0 si d (v) = 1
v V \ {x};
7) G este fara cicluri si exista un nod x V astfel ncat d (x) = 0 si
d (v) = 1 v V \ {x}.
Demonstratie. 1) 2) Fie G quasi-tare conex si fara cicluri. Fiind quasitare conex, G este conex. Deci G este un arbore si astfel are m = n 1 arce
(conform Teoremei de caracterizare a arborilor).
2) 3) Fie G quasi-tare conex si cu m = n 1 arce. Fiind quasi-tare
conex, G este conex si are radacina (conform propozitiei anterioare). Fiind
conex cu m = n 1 arce, G este arbore (conform teoremei amintite mai sus).
3) 4) Fie G arborescenta si x o radacina a lui G. Deci pentru orice
nod v V exista un drum de la x la v. Graful G fiind un arbore, acest drum,
fiind si lant, este unic.
4) 5) Fie G cu proprietatea 4). Deci x este o radacina a lui G si
astfel G este quasi-tare conex (conform propozitiei anterioare). Fie e =
(y, z) E un arc arbitrar fixat. Demonstram ca G e = (V, E \ {e}) nu este
quasi-tare conex prin reducere la absurd. Daca G e ar fi quasi-tare conex,
atunci ar exista un nod v V si drumuri (v, . . . , y) si (v, . . . , z) n G e. x
fiind radacina n G, s-ar obtine doua drumuri distincte (x, . . . , v, . . . , y, z) si
(x, . . . , v, . . . , z) de la x la z n G, contradictie cu ipoteza.
5) 6) Fie G quasi-tare conex minimal. Fiind quasi-tare conex, G este
conex. Conform propozitiei anterioare, G are o radacina x. Demonstram
ca d (x) = 0 prin reducere la absurd. Daca am avea d (x) > 0, atunci

16

TEMA 1. ARBORI SI ARBORESCENT


E

ar exista un arc e = (y, x) E, iar G e ar avea n continuare radacina x


(deoarece exista drum elementar (x, . . . , y) n G, deci si n Ge) si astfel Ge
ar ramane quasi-tare conex (conform propozitiei anterioare), contradictie cu
ipoteza.
Fie acum v V \ {x} un nod arbitrar fixat. x fiind radacina, exista un
drum (x, . . . , y, v) de lungime nenula (v 6= x), deci d (v) 1 ((y, v) E).
Demonstram ca d (v) = 1 prin reducere la absurd. Daca am avea d (v) > 1,
atunci ar exista doua arce diferite e1 = (y1 , v),e2 = (y2 , v) E, iar G e1
ar avea n continuare radacina x (deoarece exista un drum (x, . . . , y2 , v) n
G e1 ) si astfel G e1 ar ramane quasi-tare conex (conform propozitiei
anterioare), contradictie cu ipoteza.
P
6) 7) Fie G cu proprietatea 6). Dar m =
d (t) = n 1, deci G
tV

este un arbore (conform Teoremei de caracterizare a arborilor) si astfel nu


are cicluri.
P
7) 1) Fie G cu proprietatea 7). Din nou, m =
d (t) = n 1, deci
tV

G este un arbore si astfel este conex. Rezulta ca pentru orice nod y V


exista un lant elementar unic [x, v1 , . . . , vk , y].
Deoarece d (x) = 0 nu putem avea (v1 , x) E, deci (x, v1 ) E. Cum
(x, v1 ) E si d (v1 ) = 1, nu putem avea (v2 , v1 ) E, deci (v1 , v2 ) E.
Continuand n acest mod (inductie!) obtinem (v2 , v3 ) E, . . . , (vk , y)
E, deci lantul [x, v1 , . . . , vk , y] este un drum de la x la y.
Rezulta ca x este o radacina n G si astfel, conform propozitiei anterioare,
G este quasi-tare conex.

Corolarul 1.5.1. Orice arborescenta G = (V, E) are o unica radacina x si


aceasta verifica proprietatile 4), 6) si 7) din teorema anterioara.
Demonstratie. Concluzia rezulta imediat din demonstratia teoremei anterioare.

1.6

Arborescente partiale de cost minim

Ca si problema determinarii arborilor partiali de cost minim ntr-un graf


neorientat ponderat, si problema determinarii arborescentelor partiale de
cost minim ale unui graf orientat ponderat are numeroase aplicatii practice.
Prezentam n continuare un algoritm fundamental pentru rezolvarea acestei
probleme.

TEMA 1. ARBORI SI ARBORESCENT


E

17

Definitia 1.6.1. Fie (G, c) un graf orientat ponderat, G = (V, E). O arborescenta partiala T = (V, F ) a lui G cu proprietatea ca
c(T ) = min{c(T )|T = arborescenta partiala a lui G}
se numeste arborescent
a partial
a de cost minim a grafului ponderat
(G, c).
Lema 1.6.1. Un graf orientat are arborescente partiale daca si numai daca
este quasi-tare conex.
Demonstratie. Fie G = (V, E) un graf orientat avand arborescenta
partiala T = (V, F ), F E. Daca x este radacina lui T , atunci evident
x este radacina si n G, deci G este quasi-tare conex (conform Propozitiei
1.4.1).
Fie G = (V, E) un graf orientat quasi-tare conex cu n noduri si m
arce. Daca x este radacina n G (exista, conform Propozitiei 1.4.1), atunci
d (x) 0 si d (y) 1 y V \ {x} (deoarece exista un drum (x, . . . , v, y),
deci un arc (v, y)) si astfel
X
m=
d (t) n 1.
tV

Demonstram ca G are arborescente partiale prin inductie dupa numarul m


de arce ale lui G.
Pentru m = n 1, conform proprietatii 2) din Teorema de caracterizare a arborescentelor obtinem ca G este el nsusi o arborescenta, deci si o
arborescenta partiala n G.
Presupunem adevarata afirmatia pentru orice graf quasi-tare conex cu n
noduri si cel mult m 1 arce (m n) si o demonstram pentru graful G cu
m arce. Daca nu ar exista un arc e E astfel ncat G e = (V, E \ {e})
sa ramana quasi-tare conex, atunci conform proprietatii 5) din Teorema de
caracterizare a arborescentelor ar rezulta ca G este arborescenta si astfel
m = n 1, fals. Deci exista un arc e E astfel ncat G e ramane quasitare conex. Conform ipotezei de inductie, G e are o arborescenta partiala
care este evident si arborescenta partiala n G.
Corolarul 1.6.1. Un graf orientat are arborescente partiale daca si numai
daca are (cel putin) o radacina.
Demonstratie. Se aplica lema anterioara si Propozitia 1.4.1.
Definitia 1.6.2. Fie (G, c) un graf orientat ponderat si quasi-tare conex,
G = (V, E), V = {v1 , . . . , vn }. Fie x = vs o radacina n G.
Definim graful partial H(G, c) = (V, F ) astfel:

18

TEMA 1. ARBORI SI ARBORESCENT


E

pentru fiecare nod vi V \ {x}, fie ei E un arc de cost minim avand


forma ei = (y, vi ), y V (exista un astfel de arc, conform proprietatii
6) din Teorema 1.5.1, Corolarului 1.5.1 si Lemei 1.6.1);
daca d (x) = 0, atunci F = {ei |i {1, . . . , n} \ {s}};
daca d (x) > 0, fie es E un arc de cost minim avand forma es =
(y, x), y V . Fie ei un arc de cost maxim din multimea {ei |i
{1, . . . , n}}. Atunci F = {ei |i {1, . . . , n} \ {i }}.
Observatia 1.6.1. In contextul definitiei anterioare, daca d (x) = 0 atunci
x este unica radacina a lui G, iar daca d (x) > 0 atunci multimea F nu
depinde de alegerea lui x; deci n ambele cazuri graful H(G, c) nu depinde
de alegerea radacinii x.
Exemplul 1.6.1. Fie (G, c) graful ponderat reprezentat n Figura 1.6.1.
1

20
20

23
3

15

5
30

10

10

40

15

10
4

25
20
6

Figura 1.6.1:
Arcele de cost minim la intrarea n noduri fiind (5, 1), (3, 2), (5, 3), (2, 4),
(4, 5), (4, 6), (1, 7), (7, 8) iar cel mai mare cost dintre aceste arce avand arcul
(5, 1), obtinem ca graful H(G, c) este cel reprezentat n Figura 1.6.2.

19

TEMA 1. ARBORI SI ARBORESCENT


E
1
8
3

15

10
7

15

5
10
4

20
6

Figura 1.6.2:
Lema 1.6.2. Fie (G, c) un graf orientat ponderat si quasi-tare conex, si fie
H(G, c) graful partial al lui G dat de definitia anterioara. Daca H(G, c)
nu are circuite, atunci H(G, c) este o arborescenta partiala de cost minim a
grafului (G, c).
Demonstratie. Conform definitiei lui H(G, c), orice ciclu al sau este un circuit. Afirmatia din enunt rezulta conform proprietatii 7) din Teorema 1.5.1
si definitiei lui H(G, c).
Observatia 1.6.2. Algoritmul de construire a grafului H(G, c) este evident un
algoritm specific metodei de programare Greedy.
Definitia 1.6.3. Fie (G, c) un graf orientat ponderat, G = (V, E), si fie C un
circuit elementar al lui G. Definim graful ponderat (G|C , c|C ), G|C = (V , E )
astfel:
V = V \ V (C) {xC }, unde V (C) este multimea nodurilor circuitului
C, iar xC 6 V este un nod nou; spunem ca nodul xC este obtinut prin
contractia circuitului C;
E = E1 E2 E3 , unde
E1 = {e E|e = (x, y), x, y 6 V (C)},
E2 = {(xC , y)|y 6 V (C), x V (C) astfel ncat (x, y) E},
E3 = {(y, xC )|y 6 V (C), x V (C) astfel ncat (y, x) E};

20

TEMA 1. ARBORI SI ARBORESCENT


E
pentru orice e = (x, y) E1 , c|C (e) = c(e);
pentru orice e = (xC , y) E2 ,
c|C (e) = min{c(x, y)|x V (C), (x, y) E};

spunem ca arcul e provine din arcul (x, y) E ce atinge acest


minim;
pentru orice e = (y, xC ) E3 ,
c|C (e) = min{c(y, x) c(z, x)|x V (C), (y, x) E, (z, x) E(C)}
(unde E(C) reprezinta multimea arcelor circuitului C); spunem din nou
ca arcul e provine din arcul (y, x) E ce atinge acest minim.
Spunem ca graful ponderat (G|C , c|C ) se obtine din graful (G, c) prin contractia circuitului C.
Exemplul 1.6.2. Pentru graful ponderat (G, c) din Exemplul 1.6.1 si circuitul
elementar C = (2, 4, 5, 3, 2), graful (G|C , c|C ) este reprezentat n Figura 1.6.3.

1
20
8

8
30
15

9 = xC
40

20

6
Figura 1.6.3:
De exemplu, arcul (xC , 6) provine din arcul de cost minim dintre (4, 6)
si (5, 6), adica din (4, 6), si are costul 20; arcul (1, xC ) provine din acel arc
dintre (1, 2) si (1, 3) ce are diferenta de cost minima dintre c(1, 2) c(3, 2) =
20 10 = 10 si c(1, 3) c(5, 3) = 23 15 = 8, adica din (1, 3) si are costul 8.

TEMA 1. ARBORI SI ARBORESCENT


E

21

Definitia 1.6.4. Fie (G, c) un graf orientat ponderat, G = (V, E), V =


{v1 , . . . , vn }, C un circuit elementar al lui G si (G|C , c|C ) graful ponderat
obtinut din G prin contractia circuitului C, G|C = (V , E ). Fie T = (V , F )
o arborescenta partiala n graful G|C si xT radacina sa. Definim graful partial
(T ) = (V, F ) al lui G prin:
daca xT = xC (xC fiind nodul obtinut prin contractia circuitului C n
graful G), atunci F = F1 F2 [E(C) \ {e }], unde
F1 = {e F |e = (x, y), x, y V \ {xC }},
F2 = {(x, y)|(x, y) E este arcul din care provine un arc (xC , y) F }
(luand un singur arc (x, y) E pentru fiecare arc e = (xC , y) F ),
E(C) este multimea arcelor circuitului C, iar e este un arc de cost
maxim din E(C);
daca xT 6= xC , atunci F = F1 F2 {(y, x)} [E(C) \ {(z, x)}], unde
F1 si F2 sunt definite mai sus, (y, x) E este arcul din care provine
unicul arc (y, xC ) F , iar (z, x) E(C) (arcul unic de pe circuitul C
incident cu x spre interior).
Lema 1.6.3. In contextul definitiei anterioare, (T ) este o arborescenta
partiala n graful G.
Demonstratie. Deoarece T este o arborescenta partiala n G|C , din definitia
lui (T ) si proprietatea 7) din Teorema 1.5.1 rezulta ca (T ) este o arborescenta partiala n G, avand ca radacina radacina xT a lui T , cand xT 6= xC ,
respectiv extremitatea finala a arcului e din definitia anterioara, cand xT =
xC .
Definitia 1.6.5. In contextul definitiei anterioare, spunem ca arborescenta
partiala (T ) se obtine din arborescenta partiala T prin decontractia circuitului C.
Exemplul 1.6.3. Fie graful (G, c) din Exemplul 1.6.1, circuitul elementar C =
(2, 4, 5, 3, 2) si graful (G1 , c1 ) calculat si reprezentat n Exemplul 1.6.2.
Graful partial T = H(G1 , c1 ) construit conform Definitiei 1.6.2 este reprezentat n Figura 1.6.4.

22

TEMA 1. ARBORI SI ARBORESCENT


E

1
8

8
15

9 = xC

7
20

6
Figura 1.6.4:
Deci T este o arborescenta partiala (de cost minim, conform Lemei 1.6.2)
n graful (G1 , c1 ), avand radacina 1, 1 6= xC . Arborescenta partiala (T ) a
grafului initial G obtinuta din T prin decontractia circuitului C este reprezentata n Figura 1.6.5. Arcul (xC , 6) din T s-a nlocuit n (T ) cu arcul (4, 6)
din care a provenit; arcul (1, xC ) din T s-a nlocuit n (T ) cu arcul (1, 3)
din care a provenit si a condus si la eliminarea arcului (5, 3) (arcul unic de
pe circuitul C incident cu 3 spre interior).
Lema 1.6.4. Fie (G, c) un graf orientat ponderat, C un circuit elementar
al lui G si (G1 , c1 ) = (G|C , c|C ) graful ponderat obtinut din G prin contractia
circuitului C. Atunci G are arborescente partiale daca si numai daca G1 are
arborescente partiale.
Demonstratie. Daca G are arborescente partiale, atunci conform Corolarului 1.6.1 G are o radacina x. Avem doua cazuri.
a) Daca x 6 V (C), cum orice drum (x, . . . , y) din G cu y 6 V (C) se
transforma prin contractia lui C ntr-un drum (x, . . . , y) n G1 , iar orice
drum (x, . . . , y) din G cu y V (C) se transforma prin contractia lui C ntrun drum (x, . . . , xC ) n G1 , rezulta ca x este radacina si n G1 , deci G1 are
arborescente partiale.
b) Daca x V (C), cum orice drum (x, . . . , y) din G cu y 6 V (C) se
transforma prin contractia lui C ntr-un drum (xC , . . . , y) n G1 , rezulta ca
xC este radacina n G1 , deci G1 are arborescente partiale.
Daca G1 are arborescente partiale, fie T o arborescenta partiala a
sa. Conform Lemei 1.6.3, (T ) este o arborescenta partiala a lui G.

23

TEMA 1. ARBORI SI ARBORESCENT


E
1
8

23
3

15

10
7

5
10
4

20
6

Figura 1.6.5:
Lema 1.6.5. Fie (G, c) un graf orientat ponderat si quasi-tare conex, C un
circuit elementar al lui G si (G1 , c1 ) = (G|C , c|C ) graful ponderat obtinut
din G prin contractia circuitului C. Fie T o arborescenta partiala n graful (G1 , c1 ) si (T ) arborescenta partiala n graful (G, c) construita conform
Definitiei 1.6.4. Atunci, cu notatiile din acea definitie, avem

c1 (T ) + c(C), daca xC 6= xT ,
c((T )) =
c1 (T ) + c(C) c(e ), daca xC = xT .
Demonstratie. Concluzia rezulta imediat din Definitiile 1.6.4 si 1.6.3.
Lema 1.6.6. Fie (G, c) un graf orientat ponderat si quasi-tare conex si fie
H(G, c) graful partial al lui G dat de Definitia 1.6.2. Fie C un circuit elementar n graful H(G, c), deci si n graful G. Fie (G1 , c1 ) = (G|C , c|C ) graful
ponderat obtinut din G prin contractia circuitului C si fie T o arborescenta
partiala de cost minim n acest graf. Atunci graful (T ) construit conform
Definitiei 1.6.4 este o arborescenta partiala de cost minim n graful (G, c).
Demonstratie. Se foloseste faptul ca din orice arborescenta partiala T0 a lui
G se obtine, prin contractia circuitului C, o arborescenta partiala T1 a lui
G1 (conform demonstratiei Lemei 1.6.4), iar c1 (T1 ) c1 (T ).
Concluzia rezulta din Lema 1.6.5, folosind alegerile grafului H(G, c), grafului (T ) si arcului e (conform definitiilor si lemelor anterioare).

TEMA 1. ARBORI SI ARBORESCENT


E

24

Exemplul 1.6.4. Revenind la exemplul anterior, cum T = H(G1 , c1 ) este o


arborescenta partiala de cost minim n graful (G1 , c1 ) (conform Lemei 1.6.2),
rezulta ca (T ) este o arborescenta partiala de cost minim n graful initial
(G, c).
Conform Lemelor 1.6.2 si 1.6.6 obtinem urmatorul algoritm pentru determinarea unei arborescente partiale de cost minim.
Algoritmul 1.6.1 (Edmonds). Fie (G, c) un graf orientat ponderat si quasitare conex (verificarea quasi-tare conexitatii poate fi efectuata pe baza Propozitiei 1.4.1). Fie G = (V, E), V = {1, . . . , n}. Algoritmul descris n pseudocod are forma urmatoare.
EDMONDS :
do
k 1;
// k = pasul
nv n;
// nv = num
arul de noduri la pasul curent
GREEDY;
// se determin
a graful part
ial H(G, c)
// pentru graful curent

ine circuite
if (EXISTA CIRCUIT) then // acesta cont

DETERMINA CIRCUIT; // se determin


a un circuit
// elementar C
nv nv + 1;
// nv reprezint
a nodul xC
CONTRACT
IE;
// se efectueaz
a contract
ia
// circuitului C
k k + 1;
// se reia algoritmul pentru noul graf
CIRCUIT);
while (EXISTA
// nu mai exist
a circuite, structura H(G, c) din graful
// curent este arborescent

a part
ial
a de cost minim
// ^
n acest graf; trecem la decontract
iile succesive
// ale arborescent
elor part
iale de cost minim,
// ^
n ordinea invers
a a pa
silor
k k 1;
while (k > 0) do
DECONTRACT
IE;
// decontract
ia arborescent
ei
// part
iale din graful curent
nv nv 1;
k k 1;
// se reia algoritmul pentru noul graf
AFIS
ARE;

// se afi
seaz
a arborescent
a part
ial
a
// de cost minim

Graful partial (structura de tip greedy) H(G, c) poate fi usor memorat

TEMA 1. ARBORI SI ARBORESCENT


E

25

ntr-un vector T AT A avand semnificatia



j, daca (j, i) este un arc al grafului H(G, c),
T AT A[i] =
0, n caz contrar,
iar circuitul elementar C din acest graf poate fi determinat si memorat
folosind un vector P AS avand semnificatia

k, daca nodul i face parte din circuitul C de la un pas k,
P AS[i] =
0, n caz contrar.
Teorema 1.6.1 (de corectitudine a Algoritmului Edmonds). In contextul Algoritmului 1.6.1, fie (G, c) graful orientat ponderat si quasi-tare
conex initial. Fie (G1 , c1 ) = (G, c) si (G2 , c2 ), . . . , (Gp , cp ) grafurile succesive
obtinute prin contractia succesiva a circuitelor elementare C1 din H(G1 , c1 ),
. . . , Cp1 din H(Gp1 , cp1), unde H(Gp , cp ) nu mai are circuite. Fie Tp =
H(Gp , cp ), Tp1 = (Tp ), . . . , T1 = (T2 ) arborescentele partiale succesive din
Gp , Gp1, . . . , respectiv din G1 = G.
Atunci T1 este o arborescenta partiala de cost minim a grafului (G, c).
Demonstratie. Conform Lemelor 1.6.1 si 1.6.4, grafurile G2 , . . . , Gp sunt quasitare conexe, deci au arborescente partiale.
Deoarece la fiecare pas circuitul Ci contine cel putin un arc, deci Gi+1
are cel putin un arc mai putin decat Gi , rezulta ca numarul p de pasi ai
algoritmului este finit, adica exista p N astfel ncat H(Gp , cp ) nu mai
contine circuite. Conform Lemei 1.6.2, Tp este arborescenta partiala de cost
minim n (Gp , cp ). Conform Lemelor 1.6.3 si 1.6.6, rezulta ca Tp1 , . . . , T1
sunt arborescente partiale de cost minim n (Gp1, cp1 ), . . . , respectiv n
(G1 , c1 ).
Observatia 1.6.3. Algoritmul Edmonds este specific metodei de programare Greedy. In implementarea optima, se poate arata ca acest algoritm
are complexitatea O (mn), unde n si m reprezinta numerele de noduri, respectiv de arce ale grafului dat.

Tema 2
Clase particulare de grafuri
2.1

Grafuri euleriene

Definitia 2.1.1. a) Fie G = (V, E) un graf. Un lant simplu, ciclu, drum


simplu sau circuit n graful G ce contine toate muchiile sau arcele lui
G se numeste eulerian.
b) Un graf neorientat se numeste eulerian daca are (cel putin) un ciclu
eulerian.
c) Un graf orientat se numeste eulerian daca are (cel putin) un circuit
eulerian.
Exemplul 2.1.1. Graful neorientat reprezentat n Figura 2.1.1 este eulerian,
un ciclu eulerian al sau fiind C = [1, 2, 3, 4, 10, 9, 3, 6, 2, 5, 8, 7, 5, 1].
1

10

6
5

Figura 2.1.1:
Exemplul 2.1.2. Fie graful orientat reprezentat n Figura 2.1.2. Un drum
eulerian n acest graf este (1, 2, 3, 4, 6, 3, 5, 6, 1, 5, 4).
26

27

TEMA 2. CLASE PARTICULARE DE GRAFURI


2

Figura 2.1.2:
Observatia 2.1.1. Existenta lanturilor, ciclurilor, drumurilor sau circuitelor
euleriene nu este influentata de prezenta unor eventuale noduri izolate, deci
putem analiza n continuare doar grafurile fara noduri izolate.
Teorema 2.1.1 (Euler, de caracterizare a grafurilor euleriene neorientate). Un graf neorientat fara noduri izolate este eulerian dac
a si numai
daca este conex si par.
Demonstratie. Fie G = (V, E) un graf neorientat eulerian, fara noduri
izolate. Fie C un ciclu eulerian al lui G. Neexistand noduri izolate, orice nod
x V are o muchie incidenta, si cum aceasta muchie apartine lui C rezulta
ca si nodul x apartine lui C. Deci C contine si toate nodurile lui G. Rezulta
ca G este conex, ntre orice doua noduri distincte x, y V existand un lant
elementar continut n ciclul C.
Cum C contine toate muchiile lui G rezulta ca
dG (x) = dC (x) = par, x V
(orice ciclu este evident un subgraf par).
Fie G = (V, E) un graf neorientat conex, par si fara noduri izolate.
Conform Propozitiei 1.1.2, graful G are o descompunere n cicluri elementare
muchie-disjuncte C1 , . . . , Ck , k 1.
Daca k = 1, atunci C1 este un ciclu eulerian n G.
Daca k 2, graful G fiind conex, ciclul C1 are un nod comun cu un alt
ciclu din {C2 , . . . , Ck }. Fie C2 acest ciclu si C2 ciclul obtinut pornind din
nodul comun si parcurgand ntai C1 apoi C2 . Spunem ca C2 se obtine prin
concatenarea (alipirea) ciclurilor C1 si C2 .
Daca k = 2, atunci C2 este un ciclu eulerian n G.
Daca k 3, din conexitatea lui G obtinem ca C2 are un nod comun
cu un alt ciclu din {C3 , . . . , Ck }, fie acesta C3 , si fie C3 ciclul obtinut prin

TEMA 2. CLASE PARTICULARE DE GRAFURI

28

concatenarea ciclurilor C2 si C3 . Continuand acest procedeu de concatenare


a ciclurilor, rezulta (prin inductie dupa k) ca obtinem un ciclu Ck ce este
eulerian n G.
Exemplul 2.1.3. Graful din Exemplul 2.1.1 este conex, par si fara noduri
izolate, deci este eulerian.
Observatia 2.1.2. Demonstratia teoremei anterioare este constructiva, ea indicand un algoritm de determinare a unui ciclu eulerian ntr-un graf neorientat conex, par si fara noduri izolate.
Prezentam n continuare un algoritm pentru determinarea unui ciclu eulerian bazat pe arborele DF al grafului dat.
Algoritmul 2.1.1 (de determinare a unui ciclu eulerian). Fie G = (V, E)
un graf neorientat conex, par si fara noduri izolate. Verificarea conexitatii, cu neglijarea nodurilor izolate, poate fi efectuata cu ajutorul parcurgerii
DF , iar verificarea paritatii poate fi efectuata calculand gradele nodurilor
prin intermediul matricei de adiacenta. Fie T = (V, F ) arborele DF al lui
G, considerand ca radacina a parcurgerii DF un nod x1 V arbitrar fixat.
Un ciclu eulerian n G poate fi obtinut astfel:
se porneste din nodul radacina x1 ;
se parcurg cu prioritate muchiile (neparcurse anterior) ce nu apartin
arborelui DF (adica daca exista o astfel de muchie [x, y], incidenta cu
nodul curent x, se parcurge aceasta muchie si nodul curent devine y,
iar daca nu exista o astfel de muchie se parcurge, daca exista, o muchie
[x, z] a arborelui DF , incidenta cu nodul curent x, si nodul curent
devine z).
se continua parcurgerea n modul descris mai sus, cat timp este posibil.
Exemplul 2.1.4. Arborele DF (1) al grafului din Exemplul 2.1.1 este reprezentat n Figura 2.1.3.

29

TEMA 2. CLASE PARTICULARE DE GRAFURI


1

10

6
5

Figura 2.1.3:
Aplicand algoritmul anterior obtinem ciclul eulerian
[1, 5, 8, 7, 5, 2, 6, 3, 9, 10, 4, 3, 2, 1].
Teorema 2.1.2 (de corectitudine a Algoritmului 2.1.1). In contextul
Algoritmului 2.1.1, muchiile selectate succesiv formeaz
a un ciclu eulerian al
grafului dat.
Demonstratie. Fie G = (V, E) graful neorientat, conex, par si fara noduri izolate. Fie x1 , x2 , . . . , xn multimea nodurilor grafului G, n ordinea parcurgerii
DF , iar T = (V, F ) arborele DF .
Fie e1 , e2 , . . . , ek muchiile selectate prin aplicarea algoritmului. Deoarece
G este par, din descrierea algoritmului rezulta ca e1 , e2 , . . . , ek sunt, n aceasta
ordine, muchiile unui ciclu avand ca extremitate radacina x1 .
Fie C acest ciclu si E(C) = {e1 , e2 , . . . , ek }. Demonstram ca F E(C)
prin reducere la absurd. Daca am avea F 6 E(C), fie f1 = [xi , xj ] prima
muchie din F \ E(C), n ordinea parcurgerii DF , unde i < j. Din descrierea
algoritmului, xi 6= x1 (n caz contrar ar continua selectarea de muchii din
radacina x1 ). Deoarece graful G C = (V, E \ E(C)) ramane par, pornind
din nodul xi , parcurgand muchia f1 = [xi , xj ] si continuand parcurgerea de
muchii din graful G C cat timp este posibil, obtinem un ciclu C avand ca
extremitati pe xi (a se vedea Figura 2.1.4).

TEMA 2. CLASE PARTICULARE DE GRAFURI

30

x1

xl
xi
xj

xk
Figura 2.1.4:
Din definitia parcurgerii DF , nodul xj si orice succesor xk al sau n arborele DF nu pot avea ca vecini decat succesori sau predecesori n acest
arbore, deci pentru a ajunge din nou n nodul xi ciclul C trebuie sa contina
cel putin o muchie de forma f2 = [xk , xl ], f2 6= f1 , unde xk este xj sau un
succesor al sau n arborele DF , iar xl este xi sau un predecesor al sau n arborele DF . Muchia f2 se numeste muchie de ntoarcere pentru parcurgea
DF . Ar rezulta ca f2 (E \ F ) \ E(C) este incidenta cu nodul xl , iar xl
apartine lantului elementar [x1 , . . . , xi ] al arborelui DF . Avem doua cazuri.
Cazul 1) xl = x1 . Atunci algoritmul nu s-ar fi ncheiat fara selectarea
muchiei f2 , deci f2 E(C), fals.
Cazul 2) xl 6= x1 . Atunci fiecare muchie [xs , xt ], s < t, a lantului
[x1 , . . . , xl ] de pe arborele DF a fost parcursa de ciclul C pornind din xt .
Intr-adevar, daca prima muchie [x1 , xt ] F a acestui lant ar fi fost par1
cursa de ciclul C pornind din x1 , atunci la revenirea n x1 ciclul C ar folosi
o muchie de ntoarcere [xq , x1 ] E \ F si s-ar contrazice selectarea cu prioritate a muchiilor din E \ F ; folosind acum ca [x1 , xt1 ] a fost parcursa de
ciclul C pornind din xt1 , analog se arata ca a doua muchie [xt1 , xt2 ] a lantului
[x1 , . . . , xl ] a fost parcursa pornind din xt2 si asa mai departe (inductie!). Deci
ultima muchie [xtr , xl ] F a lantului [x1 , . . . , xl ] a fost parcursa pornind din
xl . Cum muchia f2 = [xk , xl ] E \ F nu a fost selectata, s-ar contrazice
selectarea cu prioritate a muchiilor din E \ F .
Demonstratia prin reducere la absurd este ncheiata, deci F E(C).
Cum arborele T contine toate nodurile grafului conex G, fiecare muchie
e E \ F este o muchie de ntoarcere e = [xk , xl ], k > l. Analog ca mai sus
se obtine ca e = [xk , xl ] este selectata nainte de selectarea muchiei [xtr , xl ]

TEMA 2. CLASE PARTICULARE DE GRAFURI

31

de pe lantul elementar [x1 , . . . , xl ] al arborelui DF . Deci E(C) = E si astfel


ciclul C este eulerian n graful G.
Observatia 2.1.3. Datorita necesitatii parcurgerii DF si a tuturor muchiilor
grafului dat, complexitatea Algoritmului 2.1.1 este O (m), unde m reprezinta
numarul de muchii ale grafului dat.
Observatia 2.1.4. Pentru implementarea Algoritmului 2.1.1, n cazul grafurilor simple putem memora arborele DF tot n matricea de adiacenta A
considerand
aij = 2 daca muchia [i, j] apartine arborelui DF .
Algoritmul descris n pseudocod are forma urmatoare.
CICLU EULERIAN(x) :
i x;
// i este nodul curent al ciclului eulerian
do

VIZITEAZA(i);
// se viziteaz
a nodul i,
// de exemplu se afi
seaz
a i
j 1;
while (aij 6= 1 and j n) do
// c
aut
am [i, j] 6 DF
j j + 1;
if (j n) then
// exist
a, deci [i, j] ciclu eulerian
aij 0; aji 0;
// elimin
am [i, j] din graf
i j;
else
j 1;
while (aij 6= 2 and j n) do
// c
aut
am [i, j] DF
j j + 1;
if (j n) then
// exist
a, deci [i, j] ciclu eulerian
aij 0; aji 0;
// elimin
am [i, j] din graf
i j;
while (j n);
Observatia 2.1.5. In cazul grafurilor nesimple, pentru implementarea Algoritmului 2.1.1 graful dat poate fi memorat cu ajutorul matricei de adiacenta,
iar arborele DF poate fi memorat cu ajutorul vectorului T AT A. Verificarea
daca [i, j] DF revine la T AT A[i] = j sau T AT A[j] = i, iar eliminarea
unei muchii [i, j] din graf revine la aij aij 1 si aji aji 1.
Corolarul 2.1.1. Un graf neorientat fara noduri izolate are un lant eulerian
deschis daca si numai daca este conex si are exact doua noduri de grade

TEMA 2. CLASE PARTICULARE DE GRAFURI

32

impare. In plus, orice lant eulerian are ca extremitati cele dou


a noduri de
grade impare.
Demonstratie. Fie G = (V, E) un graf neorientat fara noduri izolate,
avand un lant eulerian deschis = [x, v1 , . . . , vk , y]. Evident, G este conex.
Fie G = (V, E {e}), unde e = [y, x], e 6 E (muchie noua). Adaugand
muchia e la lantul obtinem un ciclu eulerian C = [x, v1 , . . . , vk , y, x] n
graful G . Conform Teoremei 2.1.1, G este conex si par. Rezulta ca
dG (x) = dG (x) 1 = impar,
dG (y) = dG (y) 1 = impar,
dG (z) = dG (z) = par z V \ {x, y}.
Fie G = (V, E) un graf neorientat conex, fara noduri izolate, cu
exact doua noduri x si y de grade impare. Fie G graful definit ca mai
sus. Rezulta ca G este conex si par, deci conform Teoremei 2.1.1 el contine
un ciclu eulerian C = [x, v1 , . . . , vk , y, x]. Eliminand muchia e = [y, x] de
pe ciclul C obtinem un lant eulerian deschis = [x, v1 , . . . , vk , y] n graful
G.
Observatia 2.1.6. Folosind trecerea ntre grafurile G si G si ntre lantul eulerian deschis si ciclul eulerian C din demonstratia corolarului anterior, precum si Algoritmul 2.1.1, se obtine un algoritm pentru determinarea lanturilor
euleriene deschise ntr-un graf dat.
Teorema 2.1.3 (de caracterizare a grafurilor euleriene orientate).
Un graf orientat fara noduri izolate este eulerian daca si numai daca este
conex si d+ (x) = d (x), pentru orice nod x.
Demonstratie. Demonstratia este analoga cu cea a Teoremei 2.1.1, nlocuind
ciclu cu circuit si d(x) = par cu d+ (x) = d (x).
Existenta unui circuit se obtine pornind dintr-un nod arbitrar si parcurgand succesiv arce cat timp este posibil (revenirea n nodul initial este
asigurata de conditia d+ (x) = d (x) x).
Corolarul 2.1.2. Un graf orientat fara noduri izolate are un drum eulerian
deschis daca si numai daca este conex si are doua noduri x si y astfel ncat
d+ (x) = d (x) + 1, d+ (y) = d (y) 1, d+ (z) = d (z) pentru orice nod z
diferit de x si y. In plus, orice drum eulerian are ca extremitate initiala
nodul x si ca extremitate finala nodul y.
Demonstratie. Demonstratia este analoga cu cea a Corolarului 2.1.1, utilizand acum Teorema 2.1.3.

33

TEMA 2. CLASE PARTICULARE DE GRAFURI

Exemplul 2.1.5. Graful din Exemplul 2.1.2 este conex, fara noduri izolate si
d+ (1) = d (1) + 1, d+ (4) = d (4) 1, d+ (z) = d (z) z V \ {1, 4},
deci graful are drumuri euleriene de forma (1, . . . , 4).
Observatia 2.1.7. Demonstratia Teoremei 2.1.3 este constructiva, ea indicand
un algoritm de determinare a unui circuit eulerian ntr-un graf orientat ce
verifica ipotezele teoremei. De asemenea, analog Observatiei 2.1.6, acest
algoritm poate fi utilizat si pentru determinarea unui drum eulerian deschis
ntr-un graf orientat ce verifica ipotezele Corolarului 2.1.2.

2.2

Grafuri hamiltoniene

Definitia 2.2.1. a) Fie G = (V, E) un graf. Un lant elementar, ciclu


elementar, drum elementar sau circuit elementar n graful G ce contine
toate nodurile lui G se numeste hamiltonian.
b) Un graf neorientat se numeste hamiltonian daca are (cel putin) un
ciclu hamiltonian.
c) Un graf orientat se numeste hamiltonian daca are (cel putin) un circuit hamiltonian.
Exemplul 2.2.1. Graful eulerian din Exemplul 2.1.1 nu este hamiltonian,
deoarece pentru ca un circuit sa treaca de la nodul 1 la nodul 3 si sa revina
n nodul 1 ar trebui sa treaca de cel putin doua ori prin nodul 2.
Exemplul 2.2.2. Graful reprezentat n Figura 2.2.1 este hamiltonian, un ciclu hamiltonian al sau fiind C = [1, 2, 3, 4, 8, 7, 6, 5, 1]. Acest graf nu este
eulerian, avand 4 noduri de grade impare.
1

Figura 2.2.1:

TEMA 2. CLASE PARTICULARE DE GRAFURI

34

Observatia 2.2.1. Spre deosebire de problemele euleriene studiate n sectiunea


anterioara, problemele de testare a hamiltoneitatii unui graf si de determinare
a unui ciclu sau circuit hamiltonian optim ntr-un graf ponderat sunt probleme pentru care nu se cunosc (pana n prezent) algoritmi de rezolvare cu
complexitate polinomiala (numite si probleme NP). Dispunem totusi de
numeroase conditii fie necesare, fie suficiente, pentru ca un graf dat sa fie
hamiltonian. Cateva astfel de conditii vor fi prezentate n continuare.
Observatia 2.2.2. Este evident ca ntr-un graf cu n 3 noduri orice lant,
ciclu, drum sau circuit hamiltonian nu utilizeaza bucle si nici muchii sau
arce multiple, deci este suficient sa studiem hamiltoneitatea pentru grafurile
simple.
Lema 2.2.1 (Bondy, Chv
atal). Fie G = (V, E) un graf neorientat simplu
cu n 3 noduri. Fie x, y V astfel ncat
x 6= y, [x, y] 6 E si d(x) + d(y) n.
Atunci graful G este hamiltonian daca si numai daca graful
G + [x, y] = (V, E {[x, y]})
este hamiltonian.
Demonstratie. Evident, daca G este hamiltonian atunci orice ciclu hamiltonian n G este ciclu hamiltonian si n G+[x, y], deci G+[x, y] este hamiltonian.
Reciproc, fie G + [x, y] hamiltonian si C un ciclu hamiltonian n acest
graf.
Cazul 1) Daca C nu contine muchia [x, y], atunci C este un ciclu hamiltonian n graful G.
Cazul 2) Daca C contine muchia [x, y], atunci prin eliminarea muchiei
[x, y] din ciclul C obtinem un lant hamiltonian
= [x = v1 , v2 , . . . , vn = y]
n graful G. Fie
A = {i {1, . . . , n 1}|[x, vi+1 ] E},
B = {i {1, . . . , n 1}|[vi , y] E}.
Avem card (A) = d(x) si card (B) = d(y), deci, conform ipotezei,
card (A) + card (B) n.

35

TEMA 2. CLASE PARTICULARE DE GRAFURI


Cum A B {1, . . . , n 1}, avem card (A B) n 1, deci
card (A B) = card (A) + card (B) card (A B) n (n 1) = 1,
adica A B 6= . Fie k A B. Atunci
[x = v1 , v2 , . . . , vk , y = vn , vn1 , . . . , vk+1 , x]
este un ciclu hamiltonian n graful G.

Definitia 2.2.2. Fie G un graf neorientat simplu cu n 3 noduri.


Inchiderea lui G, notata cu cl(G), este graful neorientat simplu obtinut din
G prin adaugarea repetata a tuturor muchiilor [x, y] ntre noduri distincte si
neadiacente x, y cu d(x) + d(y) n n graful curent.
Observatia 2.2.3. Daca H = cl(G), atunci pentru orice noduri distincte x, y
cu [x, y] 6 E(H) avem dH (x) + dH (y) < n, unde E(H) este multimea muchiilor grafului H.
Observatia 2.2.4. Graful cl(G) este bine definit, nedepinzand de ordinea de
adaugare a muchiilor. Acest fapt poate fi demonstrat prin inductie dupa
numarul muchiilor adaugate.
Exemplul 2.2.3. Fie G graful reprezentat n Figura 2.2.2.
2

Figura 2.2.2:
Adaugand succesiv muchiile [1, 5] (deoarece d(1) + d(5) = 4 + 2 n = 6),
[2, 4] (deoarece d(2) + d(4) = 2 + 4 n, n graful curent), [2, 5] (deoarece
d(2) + d(5) = 3 + 3 n, n graful curent!), [2, 6], [3, 5] si [3, 6], obtinem
nchiderea cl(G) = K6 , unde K6 este graful complet cu 6 noduri.
Lema 2.2.2 (Lema nchiderii; Bondy, Chv
atal). Fie G un graf neorientat simplu cu n 3 noduri. Atunci G este hamiltonian daca si numai daca
graful cl(G) este hamiltonian.

36

TEMA 2. CLASE PARTICULARE DE GRAFURI

Demonstratie. Concluzia este evidenta conform Lemei 2.2.1 si definitiei anterioare.


Lema 2.2.3. Fie G un graf neorientat simplu cu n 3 noduri. Daca avem
cl(G) = Kn , atunci G este hamiltonian.
Demonstratie. Concluzia rezulta folosind lema anterioara si faptul ca graful
complet Kn , n 3, este evident hamiltonian (orice succesiune de forma
[v1 , v2 , . . . , vn , v1 ] cu nodurile v1 , . . . , vn distincte este un ciclu hamiltonian n
Kn ).
Observatia 2.2.5. Reciproca lemei anterioare nu este adevarata. De exemplu
graful G reprezentat n Figura 2.2.3 este hamiltonian, dar cl(G) = G 6= K6 .
2

Figura 2.2.3:
Teorema 2.2.1 (Chv
atal). Fie G = (V, E) un graf neorientat simplu cu
n 3 noduri avand gradele
d1 d2 dn .
Daca pentru orice k N este verificata proprietatea
n
dk k < dnk n k,
2
atunci G este hamiltonian.
Demonstratie. Se arata ca are loc egalitatea cl(G) = Kn si conform lemei
anterioare rezulta astfel ca G este hamiltonian.
Observatia 2.2.6. Daca graful G verifica ipoteza Teoremei lui Chvatal atunci
cl(G) = Kn . Reciproca nu este adevarata. De exemplu, graful G din Exemplul 2.2.3 are cl(G) = Kn , dar nu verifica ipoteza Teoremei lui Chvatal (are
gradele, n ordine crescatoare, 2, 2, 3, 3, 4, 4, deci d2 2 < n2 dar d4 < 4).
Astfel nici reciproca Teoremei lui Chvatal nu este adevarata.

37

TEMA 2. CLASE PARTICULARE DE GRAFURI

Corolarul 2.2.1 (Teorema lui Bondy). Fie G un graf neorientat simplu


cu n 3 noduri avand gradele
d1 d2 dn .
Daca pentru orice p, q N este verificata proprietatea
dp p, dq q, p 6= q dp + dq n,
atunci G este hamiltonian.
Demonstratie. Se arata ca graful G verifica ipoteza Teoremei lui Chvatal si
astfel este hamiltonian.
Observatia 2.2.7. Teorema lui Chvatal generalizeaza Teorema lui Bondy.
Aceasta generalizare este stricta. De exemplu, graful reprezentat n Figura
2.2.4 are gradele, n ordine crescatoare, 3, 3, 3, 4, 5, 5, 5, 6, deci verifica ipoteza
Teoremei lui Chvatal dar nu verifica ipoteza Teoremei lui Bondy (d3 = 3 3,
d4 = 4 4, dar d3 + d4 = 7 < n = 8).
3

Figura 2.2.4:
Corolarul 2.2.2 (Teorema lui P
osa). Fie G un graf neorientat simplu cu
n 3 noduri avand gradele
d1 d2 dn .
Daca

dk > k, k < n1
,
2
dk+1 > k, pentru k =

atunci G este hamiltonian.

n1
2

si n = impar,

38

TEMA 2. CLASE PARTICULARE DE GRAFURI

Demonstratie. Se arata ca graful G verifica ipoteza Teoremei lui Bondy (corolarul anterior) si astfel este hamiltonian.
Observatia 2.2.8. Teorema lui Bondy generalizeaza Teorema lui Posa. Generalizarea este stricta. De exemplu, graful reprezentat n Figura 2.2.5 are
gradele, ordonate crescator, 2, 2, 4, 4, 4, 4, deci verifica ipoteza Teoremei lui
Bondy, dar nu verifica ipoteza Teoremei lui Posa.
2

1
4

Figura 2.2.5:
Corolarul 2.2.3 (Teorema lui Ore). Fie G = (V, E) un graf neorientat
simplu cu n 3 noduri. Daca pentru orice doua noduri x, y distincte si
neadiacente avem
d(x) + d(y) n,
atunci G este hamiltonian.
Demonstratie. Se arata ca graful G verifica ipoteza Teoremei lui Posa (corolarul anterior) si astfel este hamiltonian.
Observatia 2.2.9. Teorema lui Posa generalizeaza Teorema lui Ore. Aceasta
generalizare este stricta. De exemplu, graful reprezentat n Figura 2.2.6 are
gradele, ordonate crescator, 2, 3, 3, 4, 4, 4, deci verifica ipoteza Teoremei lui
Posa, dar nu verifica ipoteza Teoremei lui Ore.
Corolarul 2.2.4 (Teorema lui Dirac). Fie G = (V, E) un graf neorientat
simplu cu n 3 noduri. Daca
d(x)
atunci G este hamiltonian.

n
, x V,
2

39

TEMA 2. CLASE PARTICULARE DE GRAFURI

Demonstratie. Se arata ca graful G verifica ipoteza Teorema lui Ore (corolarul anterior), deci este hamiltonian.
Observatia 2.2.10. Teorema lui Ore generalizeaza Teorema lui Dirac. Aceasta
generalizare este stricta. De exemplu, graful reprezentat n Figura 2.2.7
verifica ipoteza Teoremei lui Ore, dar nu verifica ipoteza Teoremei lui Dirac.
2

1
4

Figura 2.2.6:

2.3

Figura 2.2.7:

Grafuri bipartite

Definitia 2.3.1. Un graf G = (V, E) se numeste bipartit daca exista o


partitie V = A B (A 6= , B 6= , A B = ) a.. fiecare muchie sau arc
al grafului are o extremitate n A si cealalta extremitate n B.
Exemplul 2.3.1. Graful reprezentat n Figura 2.2.3 este bipartit, luand partitia
nodurilor V = {1, 3, 5} {2, 4, 6}. O alta reprezentare a acestui graf bipartit,
cu evidentierea partitiei nodurilor prin asezarea n stanga a nodurilor din
partea A = {1, 3, 5} si n dreapta a nodurilor din partea B = {2, 4, 6}, este
data n Figura 2.3.1.

Figura 2.3.1:

TEMA 2. CLASE PARTICULARE DE GRAFURI

40

Teorema 2.3.1 (de caracterizare a grafurilor bipartite). Un graf cu


n 2 noduri este bipartit daca si numai daca nu contine cicluri de lungime
impara.
Demonstratie. Fie G = (V, E) un graf bipartit avand partitia nodurilor
V = A B ca n definitia anterioara. Orice ciclu al grafului G are una din
formele [a1 , b1 , a2 , b2 , . . . , ak , bk , a1 ] sau [b1 , a1 , b2 , a2 , . . . , bk , ak , b1 ] cu a1 , a2 ,
. . . , ak A si b1 , b2 , . . . , bk B, deci are lungimea 2k.
Fie G = (V, E) un graf cu n 2 noduri ce nu contine cicluri de
lungime impara. Demonstram ca graful G este bipartit n doua etape.
Etapa 1) Presupunem ca graful G este conex. Fie v V un nod arbitrar
fixat. Pentru orice nod x V definim numarul d(v, x) N prin
d(v, x) = min{l()| este lant de la v la x n G},
unde l() reprezinta lungimea lantului . Definitia este corecta, deoarece
graful este conex. Pentru grafuri neorientate d(v, x) se numeste distanta de
la v la x. Fie
A = {x V |d(v, x) = numar par} si B = {x V |d(v, x) = numar impar}.
Evident, V = A B si A B = . Deoarece d(v, v) = 0 rezulta ca v A,
deci A 6= . Fie v1 un nod vecin cu v (exista, deoarece graful este conex si
are cel putin doua noduri). Atunci d(v, v1 ) = 1, deci v1 B si astfel B 6= .
Demonstram prin reducere la absurd ca orice muchie (sau arc) a grafului
are o extremitate n A si cealalta extremitate n B si astfel va rezulta ca
graful este bipartit. Fie [x, y] E o muchie (sau arc) arbitrar fixata. Fie
1 un lant de lungime minima de la v la x si 2 un lant de lungime minima
de la v la y, deci l(1 ) = d(v, x) si l(2 ) = d(v, y). Evident, lanturile 1
si 2 sunt elementare. Presupunem prin absurd ca x, y A sau x, y B,
adica numerele d(v, x) si d(v, y) au aceeasi paritate. Atunci [x, y] nu apartine
lantului 1 , deoarece n caz contrar y ar fi penultimul nod al acestui lant si
cum orice sublant (portiune) al unui lant de lungime minima este un lant de
lungime minima ntre extremitatile sale am avea d(v, y) = d(v, x) 1, fals.
Analog, [x, y] nu apartine nici lantului 2 . Fie
= [v, . . . , x, y, . . . , v]
lantul nchis obtinut parcurgand ntai lantul 1 de la v la x, apoi muchia
[x, y] si apoi lantul 2 de la y la v. Avem
l() = l(1 ) + 1 + l(2 ) = d(v, x) + 1 + d(v, y) = numar impar.

TEMA 2. CLASE PARTICULARE DE GRAFURI

41

Deoarece muchia [x, y] nu apartine lanturilor 1 si 2 , rezulta ca prin eliminarea din lantul nchis a eventualelor portiuni comune L1 , . . . , Lr ale
lanturilor 1 si 2 ramane o multime nevida de cicluri (elementare) muchiedisjuncte C1 , . . . , Cs (iar muchia [x, y] apartine unuia din aceste cicluri).
Folosind aceasta descompunere, lungimea lantului nchis poate fi scrisa
sub forma
l() = 2l(L1 ) + + 2l(Lr ) + l(C1 ) + + l(Cs ).
Cum l() este un numar impar, rezulta ca l(C1 )+ +l(Cs ) = numar impar,
deci cel putin unul din ciclurile C1 , . . . , Cs are lungimea impara, contradictie
cu ipoteza. Demonstratia prin reducere la absurd este ncheiata.
Etapa 2) Fie acum G un graf oarecare si G1 = (V1 , E1 ), . . . , Gk = (Vk , Ek )
componentele sale conexe. Deoarece G nu contine cicluri de lungime impara,
rezulta ca si componentele sale conexe G1 , . . . , Gk au aceasta proprietate.
Conform etapei 1) rezulta ca toate componentele conexe Gi cu cel putin doua
noduri sunt grafuri bipartite. Pentru fiecare astfel de componenta conexa,
fie Vi = Ai Bi partitia corespunzatoare grafului bipartit Gi . Daca exista si
componente conexe Gi cu un singur nod (adica card Vi = 1 si Ei = , deoarece
Gi nu contine bucle, buclele fiind cicluri de lungime 1), atunci pentru fiecare
astfel de componenta conexa definim Ai = Vi , Bi = sau Bi = Vi , Ai = .
Fie
A = A1 Ak si B = B1 Bk .
Atunci V = A B este o partitie si fiecare muchie sau arc al grafului G are o
extremitate n A si cealalta extremitate n B, deci graful G este bipartit.
Exemplul 2.3.2. Graful reprezentat n Figura 2.2.2 nu este bipartit, deoarece
contine cicluri de lungime impara (de exemplu ciclul [1, 2, 3, 1] de lungime 3).
Corolarul 2.3.1. Orice graf bipartit conex G = (V, E) are o unica partitie
V = A B ce verifica Definitia 2.3.1.
Demonstratie. Pentru un nod v arbitrar fixat, submultimile A si B definite
n etapa 1) a demonstratiei teoremei anterioare determina unica partitie cu
proprietatea ca v A. Intr-adevar, fie V = A B o partitie arbitrara ce
verifica Definitia 2.3.1 si proprietatea v A . Pentru orice nod x A exista
= [v = v0 , v1 , . . . , v2k = x] lant de lungime minima de la v la x, deci avem,
succesiv:
v = v0 A , v1 B , v2 A , . . . , v2k = x A .
Analog, pentru orice nod y B exista = [v = w0 , w1, . . . , w2p+1 = y] lant
de lungime minima de la v la y, deci avem, succesiv:
v = w0 A , w1 B , w2 A , . . . , w2p+1 = y B .

TEMA 2. CLASE PARTICULARE DE GRAFURI

42

Rezulta ca A A si B B . Cum B = V \ A si B = V \ A rezulta ca


A = A si B = B .
Observatia 2.3.1. Demonstratia teoremei anterioare este constructiva, indicand urmatorul algoritm de determinare dac
a un graf G este bipartit si, n caz afirmativ, a unei partitii V = A B a nodurilor sale.
Se determina componentele conexe G1 , . . . , Gk .
Pentru fiecare componenta Gi = (Vi , Ei ) cu cel putin doua noduri, se
parcurg urmatoarele etape:
Se fixeaza un nod vi Vi .
Se calculeaza distantele d(vi , x) pentru toate nodurile x Vi . De
exemplu,
d(vi , x) =lungimea lantului elementar unic de la vi la x n
arborele BF (vi )
(corespunzator parcurgerii BF a grafului neorientat G pornind din
nodul vi ; daca graful G este orientat se parcurge graful neorientat
obtinut prin eliminarea orientarii arcelor!).
Se calculeaza multimile
Ai = {x Vi |d(vi , x) = numar par} si
Bi = {x Vi |d(vi , x) = numar impar}.
Daca exista o muchie (sau arc) de forma [x, y] Ei a.. x, y Ai
sau x, y Bi , atunci componenta Gi nu este graf bipartit, deci
nici graful G nu este bipartit si algoritmul se ncheie.
In caz contrar componenta Gi este graf bipartit si Vi = Ai Bi
este partitia corespunzatoare acestui graf bipartit.
Pentru fiecare componenta Gi = (Vi , Ei ) cu cate un singur nod, adica
Vi = {vi }, se parcurg urmatoarele etape:
Daca [vi , vi ] Ei (bucla), atunci graful G nu este bipartit si algoritmul se ncheie.
In caz contrar se calculeaza multimile Ai = Vi , Bi = pentru
prima componenta Gi si Bi = Vi , Ai = pentru urmatoarele
componente Gi (se asigura astfel ca A 6= si B 6= ).

TEMA 2. CLASE PARTICULARE DE GRAFURI

43

Toate componentele conexe cu cel putin doua noduri sunt grafuri bipartite, iar toate componentele conexe cu cate un singur nod nu contin
bucle. Atunci graful G este bipartit si o partitie corespunzatoare este
V = A B, cu A = A1 Ak si B = B1 Bk .
Exemplul 2.3.3. Fie graful reprezentat n Figura 2.2.1. Aplicam algoritmul
din observatia anterioara. Fixand nodul v = 1 (pentru singura componenta
conexa), obtinem distantele
d(1, 1) = 0, d(1, 2) = d(1, 5) = 1, d(1, 3) = d(1, 6) = 2,
d(1, 4) = d(1, 7) = 3, d(1, 8) = 4,
deci A = {1, 3, 6, 8} si B = {2, 4, 5, 7}. Nu exista nicio muchie [x, y] a.. x, y
A sau x, y B, deci graful dat este bipartit si unica partitie corespunzatoare
este V = A B. O reprezentare a acestui graf bipartit, cu evidentierea
partitiei nodurilor, este data n Figura 2.3.2.

Figura 2.3.2:

Tema 3
Invarianti ai unui graf
3.1

Definitii si exemple

Definitia 3.1.1. Fie G = (V, E) un graf neorientat simplu.


a) O multime stabil
a (multime independent
a de noduri) n graful
G este o submultime M V cu proprietatea ca orice doua noduri
distincte din M nu sunt adiacente.
b) Numarul
(G) = max{card (M) | M = multime stabila n G}
se numeste num
arul de stabilitate (num
arul de independenta
)
al grafului G.
c) O multime stabila M n G a.. card (M ) = (G) se numeste multime
stabil
a de cardinal maxim n graful G.
Observatia 3.1.1. Multimea vida si submultimile formate dintr-un singur nod
sunt multimi stabile n orice graf simplu.
Pentru orice graf neorientat simplu G cu n noduri avem (G) {1, . . . , n}.
Mai mult, (G) = 1 daca si numai daca G = Kn (graf complet), iar
(G) = n daca si numai daca G = (V, ) (graf fara nicio muchie).
Exemplul 3.1.1. Fie graful simplu G reprezentat n Figura 3.1.1.

44

TEMA 3. INVARIANT
I AI UNUI GRAF

45

Figura 3.1.1:
Urmatoarele doua submultimi de noduri sunt multimi stabile n graful G:
M1 = {1, 5}, M2 = {2, 5, 7}.
Numarul de stabilitate al grafului G este
(G) = 3
(deoarece orice multime stabila care contine nodul 1 poate sa mai contina
doar nodul 5, iar orice multime stabila care nu contine nodul 1 poate sa
contina cel mult cate un nod din fiecare din submultimile {2, 3}, {4, 5, 6} si
{7}).
Astfel M2 este o multime stabila de cardinal maxim n graful G.
Definitia 3.1.2. Fie G = (V, E) un graf neorientat simplu.
a) Un cuplaj (multime independent
a de muchii) n graful G este o
submultime C E cu proprietatea ca orice doua muchii din C nu au
nicio extremitate comuna.
b) Numarul
(G) = max{card (C) | C = cuplaj n G}
se numeste num
arul de muchie-independent
a al grafului G.
c) Un cuplaj C n G a.. card (C ) = (G) se numeste cuplaj de cardinal maxim n graful G.

TEMA 3. INVARIANT
I AI UNUI GRAF

46

Observatia 3.1.2. Multimea vida este un cuplaj n orice graf simplu. De


asemenea, submultimile formate dintr-o singura muchie sunt cuplaje n orice
graf simplu cu cel putin o muchie.
In orice graf simplu cu n noduri, orice submultime formata cu mai mult
n
muchii nu este un cuplaj, deoarece aceste muchii ar avea mpreuna
de
2
mai mult de n extremitati, deci cel putin doua din aceste muchii ar avea o
extremitate comuna.
Deci pentru orice graf simplu G cu n noduri avem (G) {0, 1, . . . , n/2},
unde x reprezinta partea ntreag
a (inferioar
a) a num
arului real x.
Mai mult, (G) = 0 daca si numai daca G = (V, ) (graf fara nicio
muchie), iar (G) = 1 daca si numai daca G are o componenta conexa egala
cu K3 (triunghi) sau cu K1,q (graf stea, q {1, . . . , n 1}) si, eventual, alte
componente conexe formate din noduri izolate.
Exemplul 3.1.2. Fie graful simplu G reprezentat n Figura 3.1.1.
Urmatoarele doua submultimi de muchii sunt cuplaje n graful G:
C1 = {[1, 3], [4, 6]}, C2 = {[1, 2], [3, 4], [5, 6]}.
Numarul de muchie-independenta al grafului G este
(G) = 3
(deoarece, conform observatiei anterioare, (G) 7/2 = 3).
Astfel C2 este un cuplaj de cardinal maxim n graful G.
Definitia 3.1.3. Fie G = (V, E) un graf neorientat simplu.
a) Un suport (multime transversal
a, acoperire a muchiilor cu
noduri) n graful G este o submultime S V de noduri cu proprietatea
ca orice muchie a lui G are cel putin o extremitate n S.
b) Numarul
(G) = min{card (S) | S = suport n G}
se numeste num
arul de transversalitate al grafului G.
c) Un suport S n G a.. card (S ) = (G) se numeste suport de cardinal minim n graful G.
Observatia 3.1.3. In orice graf simplu G cu n noduri, multimea nodurilor si
submultimile formate din n 1 noduri sunt suporturi. Pentru orice astfel de
graf avem (G) {0, . . . , n 1}.
Mai mult, (G) = 0 daca si numai daca G = (V, ) (graf fara nicio
muchie), iar (G) = n 1 daca si numai daca G = Kn (graf complet).

TEMA 3. INVARIANT
I AI UNUI GRAF

47

Exemplul 3.1.3. Fie graful simplu G reprezentat n Figura 3.1.1.


Urmatoarele doua submultimi de noduri sunt suporturi n graful G:
S1 = {2, 3, 4, 6, 7}, S2 = {1, 3, 5, 6}.
Numarul de transversalitate al grafului G este
(G) = 4
(deoarece orice suport care nu contine nodul 1 trebuie sa contina nodurile
2, 3, 4, 6, 7, iar orice suport care contine nodul 1 trebuie sa contina cel putin
cate un nod din fiecare din submultimile {2, 3}, {4, 5} si {6, 7}).
Astfel S2 este un suport de cardinal minim n graful G.
Definitia 3.1.4. Fie G = (V, E) un graf neorientat simplu.
a) O acoperire (acoperire a nodurilor cu muchii) n graful G este
o submultime A E de muchii cu proprietatea ca orice nod al lui G
este extremitate pentru cel putin o muchie din A.
b) Presupunem ca graful G nu are noduri izolate. Numarul
(G) = min{card (A) | A = acoperire n G}
se numeste num
arul de acoperire al grafului G.
c) Presupunem ca graful G nu are noduri izolate. O acoperire A n G
a.. card (A ) = (G) se numeste acoperire de cardinal minim n
graful G.
Observatia 3.1.4. Evident, un graf simplu admite o acoperire daca si numai
daca nu are noduri izolate.
Fie G un graf simplu cu n noduri, toate aceste noduri fiind neizolate.
n
Atunci orice submultime formata cu mai putin de muchii nu este o acoperire,
2
deoarece aceste muchii ar avea mpreuna mai putin de n extremitati, deci cel
putin un nod al grafului nu s-ar afla printre aceste extremitati.
De asemenea, exista acoperiri formate din cel mult n 1 muchii (se poate
lua o muchie arbitrara [x, y] si cate o muchie incidenta cu fiecare din cele
n 2 noduri diferite de x si y).
Deci avem (G) {n/2, . . . , n 1}, unde x reprezinta partea ntreag
a superioar
a a num
arului real x.
Mai mult, pentru n {2, 3} avem (G) = n 1, iar pentru n 4 are loc
echivalenta (G) = n 1 daca si numai daca G = K1,n1 (graf stea).

TEMA 3. INVARIANT
I AI UNUI GRAF

48

Exemplul 3.1.4. Fie graful simplu G reprezentat n Figura 3.1.1.


Urmatoarele doua submultimi de muchii sunt acoperiri n graful G:
A1 = {[1, 2], [2, 3], [3, 6], [4, 6], [5, 6], [6, 7]}, A2 = {[1, 4], [2, 3], [4, 5], [6, 7]}.
Numarul de acoperire al grafului G este
(G) = 4
(deoarece, conform observatiei anterioare, (G) 7/2 = 4).
Astfel A2 este o acoperire de cardinal minim n graful G.
Definitia 3.1.5. Fie G = (V, E) un graf neorientat simplu.
a) O clic
a n graful G este o submultime U V cu proprietatea ca orice
doua noduri distincte din U sunt adiacente (adica subgraful indus de U
n G este un graf complet sau U = ).
b) Numarul
(G) = max{card (U) | U = clica n G}
se numeste num
arul de densitate al grafului G.
c) O clica U n G a.. card (U ) = (G) se numeste clic
a de cardinal
maxim n graful G.
Observatia 3.1.5. Multimea vida si submultimile formate dintr-un singur nod
sunt clici n orice graf simplu.
Pentru orice graf neorientat simplu G cu n noduri avem (G) {1, . . . , n}.
Mai mult, (G) = 1 daca si numai daca G = (V, ) (graf fara nicio
muchie), iar (G) = n daca si numai daca G = Kn (graf complet).
Exemplul 3.1.5. Fie graful simplu G reprezentat n Figura 3.1.1.
Urmatoarele doua submultimi de noduri sunt clici n graful G:
U1 = {4, 5, 6}, U2 = {1, 3, 4, 6}.
Numarul de densitate al grafului G este
(G) = 4
(deoarece graful G nu contine ca subgraf graful complet K5 , neexistand cinci
noduri de grad mai mare sau egal decat 4).
Astfel U2 este o clica de cardinal maxim n graful G.
Observatia 3.1.6. Definitiile din aceasta sectiune sunt valabile si pentru grafuri oarecare (nu neaparat simple), neorientate sau orientate.

TEMA 3. INVARIANT
I AI UNUI GRAF

3.2

49

Propriet
ati

Propozitia 3.2.1. Fie G = (V, E) un graf neorientat simplu.


a) Pentru orice multime stabila M si orice acoperire A ale lui G avem
card (M) card (A).
b) Presupunem ca graful G nu are noduri izolate. Atunci are loc inegalitatea
(G) (G).
Demonstratie. a) Fie M = {x1 , . . . , xk }. Deoarece A este o acoperire, rezulta
ca pentru orice i {1, . . . , k} exista o muchie ei A incidenta cu nodul xi .
Deoarece M este o multime stabila, rezulta ca pentru orice i 6= j avem
ei 6= ej (n caz contrar am avea ei = ej = [xi , xj ], adica nodurile xi si xj ar fi
adiacente, fals). Deci {e1 , . . . , ek } A si astfel card (M) = k card (A).
Inegalitatea de la punctul b) este o consecinta imediata a celei de la
punctul a) si a definitiilor numerelor (G) si (G).
Propozitia 3.2.2. Fie G = (V, E) un graf neorientat simplu.
a) Pentru orice cuplaj C si orice suport S ale lui G avem
card (C) card (S).
b) Are loc inegalitatea
(G) (G).
Demonstratie. a) Fie C = {e1 , . . . , ek }. Deoarece S este un suport, rezulta
ca pentru orice i {1, . . . , k} exista un nod xi S ce este extremitate pentru
muchia ei . Deoarece C este un cuplaj, rezulta ca pentru orice i 6= j avem xi 6=
xj (n caz contrar nodul xi = xj ar fi extremitate comuna pentru muchiile ei
si ej , fals). Deci {x1 , . . . , xk } S si astfel card (C) = k card (S).
Inegalitatea de la punctul b) este o consecinta imediata a celei de la
punctul a) si a definitiilor numerelor (G) si (G).
Propozitia 3.2.3. Fie G = (V, E) un graf neorientat simplu cu n noduri.
a) Fie U V . Atunci U este o multime stabila n G daca si numai daca
multimea V \ U este un suport n G.
b) Fie U V . Atunci U este o multime stabila de cardinal maxim n G
daca si numai daca multimea V \ U este un suport de cardinal minim
n G.

TEMA 3. INVARIANT
I AI UNUI GRAF

50

c) Are loc egalitatea


(G) + (G) = n.
Demonstratie. a) Fie U o multime stabila n G. Rezulta ca orice muchie
e = [x, y] E are cel mult o extremitate n U (n caz contrar nodurile
x, y U ar fi adiacente, fals). Deci orice muchie e = [x, y] E are cel putin
o extremitate n V \ U si astfel multimea V \ U este un suport n G.
Fie V \ U un suport n G. Rezulta ca orice muchie e = [x, y] E are
cel putin o extremitate n V \ U, deci cel mult o extremitate n U. Rezulta
ca orice doua noduri x, y U nu sunt adiacente si astfel multimea U este un
suport n G.
Echivalenta de la punctul b) este o consecinta imediata a celei de la
punctul a).
Egalitatea de la punctul c) este o consecinta imediata a echivalentei de
la punctul b) si a definitiilor numerelor (G) si (G).
Exemplul 3.2.1. Fie graful simplu G reprezentat n Figura 3.1.1.
Conform Exemplului 3.1.1, submultimea de noduri M = {2, 5, 7} este o
multime stabila de cardinal maxim n graful G. Aplicand propozitia anterioara rezulta ca submultimea de noduri V \ M = {1, 3, 4, 6} este un suport
de cardinal minim n graful G.
Conform Exemplului 3.1.3, submultimea de noduri S = {1, 3, 5, 6} este
un suport de cardinal minim n graful G. Aplicand propozitia anterioara
rezulta ca submultimea de noduri V \ S = {2, 4, 7} este o multime stabila
de cardinal maxim n graful G.
Propozitia 3.2.4 (Norman-Rabin). Fie G = (V, E) un graf neorientat
simplu cu n noduri, fara noduri izolate. Are loc egalitatea
(G) + (G) = n.
Demonstratie. Vom demonstra egalitatea din enunt prin dubla inegalitate.
Fie k = (G) si C = {e1 , . . . , ek } un cuplaj de cardinal maxim n graful
G. Fie e1 = [x1 , y1], . . . , ek = [xk , yk ]. C fiind un cuplaj, rezulta ca nodurile
x1 , y1 , . . . , xk , yk sunt distincte doua cate doua, deci
card (V \ {x1 , y1, . . . , xk , yk }) = n 2k.
Fie
V \ {x1 , y1 , . . . , xk , yk } = {z1 , . . . , zn2k }.
Reamintim ca {z1 , . . . , zn2k } reprezinta multimea {zi |, 1 i n 2k}, deci
pentru n 2k = 0 aceasta multime este .

TEMA 3. INVARIANT
I AI UNUI GRAF

51

Pentru orice i {1, . . . , n 2k}, nodul zi nu este izolat, deci exista cel
putin o muchie fi E incidenta cu zi . Evident, fi 6 C , i {1, . . . , n2k}
(deoarece muchiile e1 = [x1 , y1 ], . . . , ek = [xk , yk ] nu sunt incidente cu zi ).
Pentru orice i 6= j avem fi 6= fj , deoarece n caz contrar ar rezulta ca
fi = fj = [zi , zj ], deci muchia fi nu ar avea nicio extremitate comuna cu
muchiile e1 , . . . , ek si astfel multimea C {fi } ar un cuplaj de cardinal k + 1
n graful G, contradictie cu alegerea lui C drept cuplaj de cardinal maxim
n G. Fie multimea
A = C {f1 , . . . , fn2k }.
Pentru orice i {1, . . . , k}, nodurile xi si yi sunt extremitati pentru muchia
ei C A, iar pentru orice i {1, . . . , n 2k} nodul zi este extremitate
pentru muchia fi A. Deci A este o acoperire n graful G. Evident,
card (A) = card (C ) + card ({f1 , . . . , fn2k }) = k + n 2k = n k.
Din definitia numarului (G) rezulta ca (G) card (A), deci (G) nk =
n (G), si astfel
(G) + (G) n.
(3.2.1)
Demonstram n continuare inegalitatea contrara.
Fie p = (G) si A = {e1 , . . . , ep } o acoperire de cardinal minim n graful
G. A fiind o acoperire, rezulta ca orice nod al grafului G este extremitate
pentru cel putin o muchie din A , deci subgraful indus de A n G este graful
partial G[A ] = (V, A ) si acest graf nu contine noduri izolate. Mai mult, n
graful G[A ] nu exista lanturi simple de lungime 3, deoarece daca ar exista
un lant simplu [x, y, z, w] cu [x, y], [y, z], [z, w] A (muchii distincte doua
cate doua), atunci multimea A \ {[y, z]} ar ramane o acoperire n graful G
(extremitatile y si z ale muchiei eliminate fiind extremitati si pentru muchiile
[x, y], respectiv [z, w]) si card (A \ {[y, z]}) = p 1, contradictie cu alegerea
lui A drept acoperire de cardinal minim n G. Astfel graful G[A ] nu contine
noduri izolate, dar nici cicluri si nici lanturi deschise simple de lungime mai
mare decat 2, deci toate componentele conexe ale acestui graf sunt grafuri
stea (avand cel putin doua noduri fiecare, deci cel putin o muchie fiecare).
Fie r numarul de componentele conexe ale grafului G[A ]. Conform Teoremei
numarului ciclomatic (Teorema 1.1.1) rezulta ca
0 = (G[A ]) = card (A ) card (V ) + r = p n + r, deci r = n p.
Fie
K1,t1 , . . . , K1,tnp
componentele conexe ale grafului G[A ], t1 , . . . , tnp 1 (t1 + + tnp =
n (n p) = p). Fie multimea

C = {f1 , . . . , fnp
},

TEMA 3. INVARIANT
I AI UNUI GRAF

52

unde, pentru orice i {1, . . . , n p}, fi este o muchie a componentei conexe


K1,ti .
Pentru orice i 6= j muchiile fi si fj nu au nicio extremitate comuna,
deoarece fac parte din componente conexe diferite ale grafului G[A ]. Deci C
este un cuplaj n graful G. Din definitia numarului (G) rezulta ca (G)
card (C), deci (G) n p = n (G), si astfel
(G) + (G) n.

(3.2.2)

Din inegalitatile (3.2.1) si (3.2.2) obtinem egalitatea din enunt.


Observatia 3.2.1. In ipotezele propozitiei anterioare, daca C este un cuplaj
de cardinal maxim n graful G, atunci acoperirea A construita n demonstratia
propozitiei are cardinalul
card (A) = n card (C ) = n (G) = (G),
deci este o acoperire de cardinal minim n graful G.
De asemenea, daca A este o acoperire de cardinal minim n graful G,
atunci cuplajul C construit n demonstratia propozitiei are cardinalul
card (C) = n card (A ) = n (G) = (G),
deci este un cuplaj de cardinal maxim n graful G. Astfel demonstratia
propozitiei anterioare este constructiva.
Exemplul 3.2.2. Fie graful simplu G reprezentat n Figura 3.1.1.
Conform Exemplului 3.1.2, submultimea de muchii
C = {[1, 2], [3, 4], [5, 6]}
este un cuplaj de cardinal maxim n graful G. Determinam acoperirea A
construita n demonstratia propozitiei anterioare. Avem V \{1, 2, 3, 4, 5, 6} =
{7}. Adaugand la multimea C o muchie incidenta cu nodul 7 obtinem, de
exemplu, acoperirea
A = C {[1, 7]} = {[1, 2], [1, 7], [3, 4], [5, 6]}.
Aplicand propozitia si observatia anterioara rezulta ca submultimea de muchii
A este o acoperire de cardinal minim n graful G.
Conform Exemplului 3.1.4, submultimea de muchii
A = {[1, 4], [2, 3], [4, 5], [6, 7]}

TEMA 3. INVARIANT
I AI UNUI GRAF

53

este o acoperire de cardinal minim n graful G. Determinam cuplajul C


construit n demonstratia propozitiei anterioare. Graful partial G[A ] este
reprezentat n Figura 3.2.1.

Figura 3.2.1:
Acest graf partial are trei componente conexe, si anume grafurile stea
K1,2 = ({1, 4, 5}, {[1, 4], [4, 5]}), K1,1 = ({2, 3}, {[2, 3]}), K1,1 = ({6, 7}, {[6, 7]}).
Luand cate o muchie din fiecare componenta conexa, obtinem, de exemplu,
cuplajul
C = {[1, 4], [2, 3], [6, 7]}.
Aplicand propozitia si observatia anterioara rezulta ca submultimea de muchii
C este un cuplaj de cardinal maxim n G.
Definitia 3.2.1. Fie G = (V, E) un graf neorientat simplu. Graful G =
(V, P2 (V ) \ E) se numeste graful complementar al lui G.
Observatia 3.2.2. Graful complementar G este tot un graf simplu. Doua
noduri distincte x, y V sunt adiacente n G daca si numai daca nu sunt
adiacente n G. Astfel graful complementar al lui G este chiar G, adica
G=G
Exemplul 3.2.3. Fie graful simplu G reprezentat n Figura 3.1.1. Graful
complementar al lui G este graful simplu G reprezentat n Figura 3.2.2.

TEMA 3. INVARIANT
I AI UNUI GRAF

54

Figura 3.2.2:
Propozitia 3.2.5. Fie G = (V, E) un graf neorientat simplu.
a) O submultime U V este o multime stabila n G daca si numai daca
este o clica n graful complementar G.
b) O submultime U V este o clica n G daca si numai daca este o
multime stabila n graful complementar G.
c) O submultime U V este o multime stabila de cardinal maxim n G
daca si numai daca este o clica de cardinal maxim n graful complementar G.
d) O submultime U V este o clica de cardinal maxim n G daca si
numai daca este o multime stabila de cardinal maxim n graful complementar G.
e) Au loc egalit
atile
(G) = (G) si (G) = (G).
Demonstratie. a) Utilizand definitiile multimii stabile (Definitia 3.1.1), grafului complementar (Definitia 3.2.1) si clicii (Definitia 3.1.5) avem echivalentele:
U = multime stabila n G
orice doua noduri distincte din U nu sunt adiacente n graful G
orice doua noduri distincte din U sunt adiacente n graful G
U = clica n G

TEMA 3. INVARIANT
I AI UNUI GRAF

55

b) Utilizand aceleasi definitii ca n demonstratia punctului a), avem echivalentele:


U = clica n G
orice doua noduri distincte din U sunt adiacente n graful G
orice doua noduri distincte din U nu sunt adiacente n graful G
U = multime stabila n G
Echivalenta de la punctul c) este o consecinta imediata a celei de la punctul a), iar echivalenta de la punctul d) este o consecinta imediata a celei de
la punctul b).
Prima egalitate de la punctul e) este o consecinta imediata a echivalentei
de la punctul c) si a definitiilor numerelor (G) si (G), iar a doua egalitate
de la punctul e) este o consecinta imediata a echivalentei de la punctul d) si
a definitiilor numerelor (G) si (G).
Exemplul 3.2.4. Fie graful simplu G reprezentat n Figura 3.1.1, avand graful
complementar G reprezentat n Figura 3.2.2.
Conform Exemplului 3.1.1, numarul de stabilitate al grafului G este
(G) = 3, iar submultimea de noduri M = {2, 5, 7} este o multime stabila de cardinal maxim n graful G. Aplicand propozitia anterioara rezulta
ca numarul de densitate al grafului G este
(G) = (G) = 3,
iar M este si o clica de cardinal maxim n graful G.
Conform Exemplului 3.1.5, numarul de densitate al grafului G este (G) =
4, iar submultimea de noduri U = {1, 3, 4, 6} este o clica de cardinal maxim
n graful G. Aplicand propozitia anterioara rezulta ca numarul de stabilitate
al grafului G este
(G) = (G) = 4,
iar U este si o multime stabila de cardinal maxim n graful G.
Observatia 3.2.3. Conform Propozitiilor 3.2.3 si 3.2.5, problemele determinarii unei multimi stabile de cardinal maxim, a unui suport de cardinal minim
si a unei clici de cardinal maxim ntr-un graf simplu arbitrar sunt echivalente.
Aceste trei probleme sunt probleme NP-dificile, pentru care nu se cunosc
(pana n prezent) algoritmi de rezolvare cu complexitate polinomiala.
De asemenea, conform Propozitiei 3.2.4 si Observatiei 3.2.1, problemele
determinarii unui cuplaj de cardinal maxim si a unei acoperiri de cardinal
minim ntr-un graf simplu arbitrar sunt echivalente. Spre deosebire de cele

TEMA 3. INVARIANT
I AI UNUI GRAF

56

trei probleme de mai sus, pentru aceste doua probleme dispunem de algoritmi de rezolvare cu complexitate polinomiala. Un astfel de algoritm va fi
prezentat n capitolul urmator.
In cazul particular al grafurilor bipartite, exista algoritmi de rezolvare cu
complexitate polinomiala pentru toate cele cinci probleme. Astfel de algoritmi vor fi prezentati n ultimul capitol.

3.3

Teorema Berge-Norman-Rabin

Observatia 3.3.1. Fie G = (V, E) un graf neorientat simplu si C E. Conform Definitiei 3.1.2, avem echivalenta
C = cuplaj n G dC (v) 1, v V,
unde dC (v) reprezinta gradul nodului v n graful partial (V, C).
Definitia 3.3.1. Fie G = (V, E) un graf neorientat simplu si C E un
cuplaj n G.
a) Un nod v V se numeste nod saturat de cuplajul C daca dC (v) =
1. Notam
SG (C) = {v V | v = nod saturat de cuplajul C}.
b) Un nod v V se numeste nod nesaturat (expus) de cuplajul C
daca dC (v) = 0. Notam
S G (C) = {v V | v = nod nesaturat de cuplajul C}.
Exemplul 3.3.1. Fie graful simplu G reprezentat n Figura 3.3.1 si fie cuplajul
C = {[2, 3], [4, 9], [5, 6], [7, 10], [8, 11]},
muchiile ce alcatuiesc acest cuplaj fiind reprezentate ngrosat n figura.

TEMA 3. INVARIANT
I AI UNUI GRAF

57

Figura 3.3.1:
Avem SG (C) = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11} si S G (C) = {1, 12, 13, 14}.
Observatia 3.3.2. Fie G = (V, E) un graf neorientat simplu si C E un
cuplaj n G. Conform observatiei anterioare, avem
S G (C) = V \ SG (C).
Observatia 3.3.3. Fie G = (V, E) un graf neorientat simplu si
C = {[x1 , y1], . . . , [xk , yk ]} E
un cuplaj n G. Evident, SG (C) = {x1 , y1 , . . . , xk , yk } (deoarece nodurile
x1 , y1 , . . . , xk , yk sunt distincte doua cate doua, conform Definitiei 3.1.2).
Folosind si observatia anterioara rezulta ca pentru orice cuplaj C al grafului
G avem
card (SG (C)) = 2 card (C) si card (S G (C)) = card (V ) 2 card (C).
Observatia 3.3.4. Fie G = (V, E) un graf neorientat simplu si C E un
cuplaj n G a..
card (S G (C)) 1.
Atunci C este un cuplaj de cardinal maxim n G. Intr-adevar, n caz contrar
ar exista un cuplaj C n G cu card (C ) card (C) + 1 si atunci, conform
observatiei anterioare, am avea
card (S G (C )) = card (V ) 2 card (C )
card (V ) 2 card (C) 2
= card (S G (C)) 2 1,
fals.

TEMA 3. INVARIANT
I AI UNUI GRAF

58

Definitia 3.3.2. Fie G = (V, E) un graf neorientat simplu si C E un


cuplaj n G.
a) Un lant alternat n graful G relativ la cuplajul C este un lant
elementar = [x0 , x1 , . . . , xk ] (k 0) al lui G cu proprietatea ca
{[xi1 , xi ], [xi , xi+1 ]} C 6= , i {1, . . . , k}.
b) Un ciclu alternat n graful G relativ la cuplajul C este un ciclu
elementar al lui G ce este lant alternat relativ la cuplajul C.
Observatia 3.3.5. In contextul definitiei anterioare, deoarece C este un cuplaj
n G rezulta ca
card ({[xi1 , xi ], [xi , xi+1 ]} C) = 1, i {1, . . . , k},
adica dintre orice doua muchii consecutive ale unui lant alternat relativ la
cuplajul C, exact una apartine cuplajului C.
Rezulta ca este un lant alternat relativ la cuplajul C daca si numai
daca este un lant elementar ce are una din urmatoarele forme:
1) = [x0 ] (lant alternat de lungime zero);
2) = [x0 , x1 , x2 , . . . , xk ] cu xk 6= x0 , k = par, k 2 si [x0 , x1 ] 6
C, [x1 , x2 ] C, [x2 , x3 ] 6 C, . . . , [xk1 , xk ] C (adica [x2i2 , x2i1 ] 6
C si [x2i1 , x2i ] C, i {1, . . . , k/2}) (lant alternat deschis de
lungime par
a);
3) = [x0 , x1 , x2 , . . . , xk ] cu xk 6= x0 , k = impar si [x0 , x1 ] 6 C, [x1 , x2 ]
C, [x2 , x3 ] 6 C, . . . , [xk1 , xk ] 6 C (adica [x2i2 , x2i1 ] 6 C, i
{1, . . . , (k + 1)/2} si [x2i1 , x2i ] C, i {1, . . . , (k 1)/2}) (lant
alternat deschis de lungime impar
a cu prima muchie neapartin
and lui C);
4) = [x0 , x1 , x2 , . . . , xk ] cu xk 6= x0 , k = impar si [x0 , x1 ] C, [x1 , x2 ] 6
C, [x2 , x3 ] C, . . . , [xk1 , xk ] C (adica [x2i2 , x2i1 ] C, i
{1, . . . , (k + 1)/2} si [x2i1 , x2i ] 6 C, i {1, . . . , (k 1)/2}) (lant
alternat deschis de lungime impar
a cu prima muchie n C);
5) = [x0 , x1 , x2 , . . . , xk = x0 ] cu k = par (k 4) si [x0 , x1 ] 6 C, [x1 , x2 ]
C, [x2 , x3 ] 6 C, . . . , [xk1 , xk ] = [xk1 , x0 ] C (adica [x2i2 , x2i1 ] 6
C si [x2i1 , x2i ] C, i {1, . . . , k/2}) (ciclu alternat de lungime
par
a);

TEMA 3. INVARIANT
I AI UNUI GRAF

59

6) = [x0 , x1 , x2 , . . . , xk = x0 ] cu k = impar (k 3) si [x0 , x1 ] 6


C, [x1 , x2 ] C, [x2 , x3 ] 6 C, . . . , [xk1 , xk ] 6 C (adica [x2i2 , x2i1 ] 6
C, i {1, . . . , (k + 1)/2} si [x2i1 , x2i ] C, i {1, . . . , (k 1)/2})
(ciclu alternat de lungime impar
a).
Astfel toate nodurile intermediare ale unui lant alternat relativ la cuplajul
C sunt saturate de cuplajul C.
In particular, este un ciclu alternat relativ la cuplajul C daca si numai
daca este un ciclu elementar ce are una din formele 5 sau 6 de mai sus.
Definitia 3.3.3. Fie G = (V, E) un graf neorientat simplu si C E un
cuplaj n G. Un lant de cre
stere n graful G relativ la cuplajul C
este un lant alternat = [x0 , x1 , . . . , xk ] n graful G relativ la cuplajul C cu
proprietatea ca
xk 6= x0 si x0 , xk S G (C)
(adica avand extremitatile distincte si nesaturate de cuplajul C).
Observatia 3.3.6. Conform Observatiei 3.3.5 rezulta ca este un lant de
crestere relativ la cuplajul C daca si numai daca are forma 3 de mai sus si
extremitatile nesaturate de cuplajul C.
Rezulta ca pentru orice lant de crestere = [x0 , x1 , . . . , xk ] n graful G
relativ la cuplajul C avem
l() = numar impar, card (E() \ C) = card (E() C) + 1
si
V () S G (C) = {x0 , xk }
(adica doar extremitatile lantului de crestere sunt nesaturate de cuplajul C).
Reamintim ca l() reprezinta lungimea lantului , iar V () si E() reprezinta
multimea nodurilor, respectiv multimea muchiilor lantului .
Exemplul 3.3.2. Fie graful G si fie cuplajul C din Exemplul 3.3.1 (Figura
3.3.1). Lantul
= [1, 2, 3, 4, 9, 5, 6, 7, 10, 11, 8, 12],
reprezentat n Figura 3.3.2, este un lant de crestere n graful G relativ la
cuplajul C.

TEMA 3. INVARIANT
I AI UNUI GRAF

60

Figura 3.3.2:
Lantul
= [13, 2, 3, 4, 9, 10, 7, 5]
este un lant alternat relativ la cuplajul C de forma 3 de mai sus, dar nu este
un lant de crestere relativ la cuplajul C deoarece are ca extremitate nodul 5
care este saturat de cuplajul C.
Urmatorul rezultat justifica denumirea unui lant drept lant de crestere
relativ la un cuplaj.
Lema 3.3.1. Fie G = (V, E) un graf neorientat simplu, C E un cuplaj
n G si un lant de crestere n G relativ la cuplajul C. Atunci multimea
CE() este de asemenea un cuplaj n G si
card (CE()) = card (C) + 1
(unde reprezinta operatia de diferenta simetrica a multimilor, adica AB =
(A \ B) (B \ A)).
Demonstratie. Fie un lant de crestere n graful G relativ la cuplajul C.
Conform Observatiei 3.3.6, este un lant deschis elementar de forma =
[x0 , x1 , x2 , . . . , xk ] cu k N , k = impar, xk 6= x0 , x0 , xk S G (C) si
(
[x2i2 , x2i1 ] 6 C, i {1, . . . , (k + 1)/2},
[x2i1 , x2i ] C, i {1, . . . , (k 1)/2}.
Fie C = CE() si fie v V un nod arbitrar fixat. Atunci
dC (v) = dC (v) + dE() (v) 2dCE() (v).
Avem urmatoarele cazuri posibile.
1) v 6 V (). Atunci dE() (v) = 0 si dCE() (v) = 0, deci dC (v) = dC (v)
1.

TEMA 3. INVARIANT
I AI UNUI GRAF

61

2) v este extremitate pentru , adica v = x0 sau v = xk . Atunci dC (v) =


0, dE() (v) = 1 si dCE() (v) = 0, deci dC (v) = 1.
3) v este nod intermediar pentru , adica v V () \ {x0 , xk }. Atunci
dC (v) = 1, dE() (v) = 2 si dCE() (v) = 1, deci dC (v) = 1.
Rezulta ca dC (v) 1 pentru orice nod v V , si astfel C este cuplaj n
G.
Evident,
E() \ C = {[x2i2 , x2i1 ] | i {1, . . . , (k + 1)/2}},
E() C = {[x2i1 , x2i ] | i {1, . . . , (k 1)/2}},
deci card (E() \ C) =
Rezulta ca avem

k+1
k1
=1+
= 1 + card (E() C).
2
2

card (C ) = card (CE())


= card (C \ E()) + card (E() \ C)
= card (C) card (C E()) + card (E() \ C)
= card (C) + 1.

Exemplul 3.3.3. Fie graful G si fie cuplajul C din Exemplul 3.3.1 (Figura
3.3.1) si fie lantul de crestere n G relativ la C din Exemplul 3.3.2 (Figura
3.3.2). Multimea
D = CE() = {[1, 2], [3, 4], [5, 9], [6, 7], [10, 11], [8, 12]},
reprezentata prin ngrosarea muchiilor n Figura 3.3.3, este de asemenea un
cuplaj n G si
card (D) = card (C) + 1 = 6.

Figura 3.3.3:

TEMA 3. INVARIANT
I AI UNUI GRAF

62

Definitia 3.3.4. Fie G = (V, E) un graf si fie 1 , 2 , . . . , r lanturi n G,


r 2. Lanturile 1 , 2 , . . . , r se numesc independente (disjuncte) daca
pentru orice i, j {1, 2, . . . , r} cu i 6= j avem V (i ) V (j ) = (adica
oricare doua dintre aceste lanturi nu au noduri comune).
Lema 3.3.2. Fie G = (V, E) un graf neorientat simplu si C, C doua cuplaje
n G a..
card (C ) card (C) = r 1.
Atunci exista r lanturi de crestere n G relativ la cuplajul C ce sunt independente.
Demonstratie. Fie
G = (V, CC )
graful partial indus de CC n G. Avem
dCC (v) = dC (v) + dC (v) 2dCC (v) dC (v) + dC (v) 2, v V,
deci componentele conexe ale grafului G sunt lanturi elementare. Fie
1 , 2 , . . . , p
aceste lanturi, p N . Evident, lanturile 1 , 2 , . . . , p sunt independente.
Fie j {1, . . . , p} arbitrar fixat si fie j = [x0 , x1 , x2 , . . . , xk ].
Pentru orice doua muchii consecutive [xi1 , xi ], [xi , xi+1 ] ale lantului j ,
i {1, . . . , k 1}, avem [xi1 , xi ], [xi , xi+1 ] CC = (C \ C ) (C \ C)
si dC (xi ) 1, dC (xi ) 1 (deoarece C si C sunt cuplaje), deci nu putem

avea( [xi1 , xi ], [xi , xi+1 ] C sau


( [xi1 , xi ], [xi , xi+1 ] C , si astfel rezulta
[xi1 , xi ] C \ C
[xi1 , xi ] C \ C
Deci j este un lant
sau
ca
[xi , xi+1 ] C \ C .
[xi , xi+1 ] C \ C
alternat n graful G atat relativ la cuplajul C, cat si relativ la cuplajul C .
k
Pentru k = par avem card (E(j ) C) = = card (E(j ) C ).
2
Pentru k = impar avem x0 6= xk (deoarece n caz contrar ar rezulta
ca [x0 , x1 ], [xk1 , x0 ] C sau [x0 , x1 ], [xk1 , x0 ] C , deci dC (x0 ) 2 sau
dC (x0 ) 2, fals), deci
(
j este lant de crestere relativ la C, daca [x0 , x1 ] 6 C,
j este lant de crestere relativ la C , daca [x0 , x1 ] C
si

k1

= card (E(j ) C ) 1, daca [x0 , x1 ] 6 C,


card (E(j ) C) =
2

card (E( ) C) = k + 1 = card (E( ) C ) + 1, daca [x , x ] C.


j
0
1
j
2

63

TEMA 3. INVARIANT
I AI UNUI GRAF
Astfel, avem

Fie
(

0,
= 1,

1,

card (E(j ) C ) card (E(j ) C) =


daca l(j ) = numar par,
daca j este lant de crestere relativ la C,
daca j este lant de crestere relativ la C .

(3.3.1)

q = card {j | j {1, . . . , p}, j este lant de crestere relativ la C},


q = card {j | j {1, . . . , p}, j este lant de crestere relativ la C }.
(3.3.2)
Avem
r = card (C ) card (C)
= [card (C \ C) card (C C)] [card (C \ C ) card (C C )]
= card (C \ C) card (C \ C )
= card ((CC ) C ) card ((CC ) C)
p
X
[card (E(j ) C ) card (E(j ) C)] ,
=
j=1

deci conform (3.3.1) si (3.3.2) rezulta ca

r = q q.
Astfel avem q r, deci conform (3.3.2) rezulta ca n multimea de lanturi
independente {1 , 2 , . . . , p } exista cel putin r lanturi de crestere n G relativ
la cuplajul C.
Teorema 3.3.1 (Berge-Norman-Rabin, de caracterizare a cuplajelor
de cardinal maxim). Fie G = (V, E) un graf neorientat simplu. Un cuplaj
C E este un cuplaj de cardinal maxim n G daca si numai daca nu exista
lanturi de crestere n G relativ la cuplajul C.
Demonstratie. Fie C un cuplaj de cardinal maxim n G. Daca ar exista
un lant de crestere n G relativ la cuplajul C, atunci conform Lemei 3.3.1
ar rezulta ca multimea CE() ar fi un cuplaj n G si card (CE()) =
card (C) + 1 > card (C), contradictie. Deci nu exista lanturi de crestere n G
relativ la cuplajul C.
Fie C un cuplaj n G a.. nu exista lanturi de crestere n G relativ la
C. Daca ar exista un cuplaj C n G cu card (C ) > card (C), atunci notand
r = card (C ) card (C), deci r 1, conform Lemei 3.3.2 ar rezulta ca ar
exista r lanturi de crestere n G relativ la cuplajul C, contradictie. Deci C
este un cuplaj de cardinal maxim n G.

TEMA 3. INVARIANT
I AI UNUI GRAF

64

Descriem n continuare un algoritm pentru determinarea unui cuplaj de


cardinal maxim ntr-un graf neorientat simplu G = (V, E), pe baza Teoremei
3.3.1.
Algoritmul 3.3.1 (Berge-Norman-Rabin). Algoritmul descris n pseudocod
are forma urmatoare.
Berge Norman Rabin :
C ;
// sau C C0 , unde C0 este un cuplaj
// disponibil init
ial
do
LANT
if (EXISTA
DE CRES
TERE) then
// exist
a lant
uri de cre
stere relativ la
// cuplajul curent C
LANT
DE CRES
TERE;
// se determin
a un
// astfel de lant
de cre
stere
C CE();
// se m
are
ste cardinalul cuplajului
// curent, de-a lungul lant
ului de cre
stere
LANT
while (EXISTA
DE CRES
TERE);
// nu mai exist
a lant
uri de cre
stere
// deci cuplajul curent este de cardinal maxim
AFIS
ARE;
// se afi
seaz
a cuplajul de cardinal maxim
Teorema 3.3.2 (de corectitudine a Algoritmului Berge-Norman-Rabin). In contextul Algoritmului 3.3.1, fie G = (V, E) graful neorientat simplu
dat si fie C0 cuplajul initial, de exemplu C0 = . Fie 1 , 2 , . . . , k lanturile
de crestere succesive obtinute, k 0, si fie C1 = C0 E(1 ), C2 = C1 E(2 ),
. . . , Ck = Ck1E(k ) cuplajele succesive obtinute, unde 1 este lant de
crestere relativ la C0 , 2 este lant de crestere relativ la C1 , . . . , k este lant
de crestere relativ la Ck1, si nu mai exista lanturi de crestere relativ la Ck .
Atunci Ck este un cuplaj de cardinal maxim n graful G.
Demonstratie. Conform Lemei 3.3.1 rezulta ca C1 , C2 , . . . , Ck sunt cuplaje si
card (C1 ) = card (C0 ) + 1, card (C2 ) = card (C1 ) + 1 = card (C0 ) + 2, . . . ,
card (Ck ) = card (Ck1) + 1 = card (C0 ) + k.
Cum card (Ck ) (G) card (V )/2, rezulta ca avem
k card (V )/2 card (C0 ),
deci numarul k de pasi ai algoritmului (numarul de lanturi de crestere succesive construite) este finit, adica exista k N astfel ncat G nu mai contine
lanturi de crestere relativ la cuplajul Ck . Conform Teoremei 3.3.1 rezulta ca
multimea Ck este un cuplaj de cardinal maxim n G.

TEMA 3. INVARIANT
I AI UNUI GRAF

65

Observatia 3.3.7. Conform demonstratiei teoremei anterioare, rezulta ca numarul de pasi ai Algoritmului Berge-Norman-Rabin, adica numarul de lanturi
de crestere succesive construite, este
k = card (Ck ) card (C0 ) = (G) card (C0 ).
Observatia 3.3.8. Algoritmul Berge-Norman-Rabin este specific metodei de
programare Greedy. Dificultatea implementarii acestui algoritm consta n
testarea existentei lanturilor de crestere si, n caz afirmativ, n construirea
acestor lanturi.

Tema 4
Invariantii unui graf bipartit
4.1

Teorema lui K
onig

Definitia 4.1.1. Fie G = (V, E) un graf neorientat bipartit avand partitia


nodurilor
V =AB
(adica V = A B, A 6= , B 6= , A B = si fiecare muchie a grafului are
o extremitate n A si cealalta extremitate n B). Presupunem ca G este un
graf simplu.
Definim reteaua RG = (G , s, t, c) astfel:
G = (V , E ) este graful orientat simplu avand multimea nodurilor
V = V {s, t}, unde s, t 6 V, s 6= t
(adica nodurile sursa si destinatie sunt noduri noi) si multimea arcelor
E = {(i, j) | i A, j B, [i, j] E}{(s, i) | i A}{(j, t) | j B};
c : E R+ este functia capacitate definita prin
c(e) = 1, e E .
Extindem functia capacitate
(
1,
c : V V R+ , c(i, j) =
0,

daca (i, j) E ,
daca (i, j) 6 E .

Observatia 4.1.1. Definitiile si rezultatele din acest capitol sunt valabile si


pentru grafuri neorientate bipartite oarecare (nu neaparat simple).
66

TEMA 4. INVARIANT
II UNUI GRAF BIPARTIT

67

Definitia 4.1.2. Fie G = (V, E) un graf neorientat bipartit si simplu, avand


partitia nodurilor V = A B, si fie reteaua RG = (G , s, t, c) construita n
definitia anterioara.
a) Definim multimile C(G) si F (RG ) prin
C(G) = {C | C E, C este un cuplaj n graful G},
F (RG ) = {f | f : V V N, f este un flux n reteaua RG }.
b) Definim functiile : C(G) F (RG ) si : F (RG ) C(G) prin
(C) = fC , unde, pentru orice C C(G),

1,

1,
fC : V V N, fC (i, j) =

1,

0,

daca i A, j B, [i, j] C,
daca i = s, j A SC (G),
daca i B SC (G), j = t,
n rest,

(f ) = Cf , unde, pentru orice f F (RG ),


Cf = {[i, j] E | i A, j B, f (i, j) = 1}.

Lema 4.1.1. Fie G = (V, E) un graf neorientat bipartit si simplu, avand


partitia nodurilor V = A B, si fie reteaua RG = (G , s, t, c) construita n
Definitia 4.1.1. Cu notatiile din definitia anterioara, avem:
a) functiile si sunt bine definite;
b) functiile si sunt bijective si = 1 ;
c) v(fC ) = card (C), C C(G);
d) card (Cf ) = v(f ), f F (RG ).
Demonstratie. a) Fie C C(G) un cuplaj arbitrar n graful G. Demonstram
ca functia fC este un flux n reteaua RG . Evident, fC (i, j) = 0, (i, j)
V V \ E si
0 fC (i, j) 1 = c(i, j), (i, j) E ,
deci fC satisface conditia de marginire a fluxului. Demonstram n continuare
ca functia fC satisface si conditia de conservare a fluxului. Fie i V \ {s, t}
un nod arbitrar fixat. Evident, V \ {s, t} = V = A B, deci i A B.
Avem urmatoarele cazuri posibile.
1) i A SC (G). Atunci exista un unic nod j B a.. [i, j ] C.
Avem
X
X
fC (j, i) = fC (s, i) = 1 = fC (i, j ) =
fC (i, j).
jV

jV

68

TEMA 4. INVARIANT
II UNUI GRAF BIPARTIT

2) i A \ SC (G). Atunci nu exista niciun nod j B a.. [i, j] C. Avem


X
X
fC (j, i) = 0 =
fC (i, j).
jV

jV

3) i B SC (G). Atunci exista un unic nod j A a.. [j , i] C.


Avem
X
X
fC (j, i) = fC (j , i) = 1 = fC (i, t) =
fC (i, j).
jV

jV

4) i B \ SC (G). Atunci nu exista niciun nod j A a.. [j, i] C. Avem


X
X
fC (i, j).
fC (j, i) = 0 =
jV

jV

Deci fC este un flux n reteaua RG . Astfel functia este bine definita.


Fie acum f F (RG ) un flux arbitrar n reteaua RG . Demonstram ca
multimea Cf este un cuplaj n graful G. Fie i V un nod arbitrar fixat.
Avem doua cazuri posibile.
1) i A. Atunci
X
X
f (i, j)
dCf (i) = card {j B | [i, j] Cf } =
f (i, j) =
=

jB

jV

f (j, i) = f (s, i) c(s, i) = 1.

jV

2) i B. Atunci
dCf (i) = card {j A | [j, i] Cf } =
=

f (j, i) =

jA

jV

f (j, i)

f (i, j) = f (i, t) c(i, t) = 1.

jV

Deci Cf este un cuplaj n graful G. Astfel si functia este bine definita.


b) Fie f F (RG ) arbitrar fixat. Avem echivalentele:
f (i, j) = 1, i A, j B [i, j] Cf ;
X
f (s, j) = 1, j A
f (j, i) = 1 i B a.. [j, i ] Cf j SCf (G);
iB

f (i, t) = 1, i B

X
jA

f (j, i) = 1 j A a.. [j , i] Cf i SCf (G).

69

TEMA 4. INVARIANT
II UNUI GRAF BIPARTIT
Rezulta ca

1,

1,
f (i, j) =

1,

0,

Deci

daca i A, j B, [i, j] Cf ,
daca i = s, j A SCf (G),
daca i B SCf (G), j = t,
n rest

((f )) = (Cf ) = f, f F (RG ).

(4.1.1)

Fie acum C C(G) arbitrar fixat. Pentru orice doua noduri i A, j B,


avem echivalenta
[i, j] C fC (i, j) = 1.
Deci
((C)) = (fC ) = C, C C(G).

(4.1.2)

Din (4.1.1) si (4.1.2) rezulta ca functiile si sunt inverse una celeilalte,


deci sunt bijective si = 1 .
c) Fie C C(G) un cuplaj arbitrar n graful G. Evident, ({s}A, B {t})
este o sectiune n reteaua RG . Avem
v(fC ) =

(fC (i, j) fC (j, i)) =

XX
iA jB

(fC (i, j) 0) =

(fC (i, j) fC (j, i))

iA jB

i{s}A jB{t}

XX

1 = card (C).

iA jB, [i,j]C

d) Conform punctelor c) si b) avem


card (Cf ) = v((Cf )) = v(((f ))) = v(f ), f F (RG ).

Lema 4.1.2. Fie G = (V, E) un graf neorientat bipartit si simplu, avand


partitia nodurilor V = A B, si fie reteaua RG = (G , s, t, c) construita n
Definitia 4.1.1. Cu notatiile din Definitia 4.1.2, avem:
a) C C(G) este un cuplaj de cardinal maxim n graful G daca si numai
daca functia fC este un flux de valoare maxima n reteaua RG ;
b) f F (RG ) este un flux de valoare maxima n reteaua RG daca si
numai daca multimea Cf este un cuplaj de cardinal maxim n graful G;
c) (G) = max{v(f ) | f = flux n RG }.

70

TEMA 4. INVARIANT
II UNUI GRAF BIPARTIT

Demonstratie. Afirmatiile din enunt sunt consecinte imediate ale lemei anterioare si ale Teoremei conform careia n reteaua RG exista un flux de valoare
maxima ce are toate componentele numere ntregi.
Teorema 4.1.1 (K
onig). Fie G un graf neorientat bipartit si simplu. Are
loc egalitatea
(G) = (G).
Demonstratie. Fie G = (V, E) un graf neorientat bipartit si simplu, avand
partitia nodurilor V = A B, si fie reteaua RG = (G , s, t, c) construita n
Definitia 4.1.1.
Fie f fluxul de valoare maxima n reteaua RG obtinut prin aplicarea Algoritmul Ford-Fulkerson, pornind cu un flux initial avand toate componentele
numere ntregi, de exemplu fluxul nul. Rezulta ca toate componentele fluxului f sunt numere ntregi, adica f F (RG ).
Fie
C = {[i, j] E | i A, j B, f (i, j) = 1}.
Conform Lemelor 4.1.1 si 4.1.2 rezulta ca multimea C este un cuplaj de
cardinal maxim n graful G si numarul de muchie-independenta (G) verifica
egalitatile
(G) = card (C) = v(f ).
(4.1.3)
Fie
(

S = {x V {s, t} | exista C-lanturi de la s la x n RG relativ la f },


T = {x V {s, t} | nu exista C-lanturi de la s la x n RG relativ la f }.

Rezulta ca (S, T ) este o sectiune de capacitate minima n reteaua RG si


v(f ) = c(S, T ).

(4.1.4)

Fie multimea
U = A T B S.
Demonstram ca U este un suport n graful G prin reducere la absurd. Intradevar, n caz contrar rezulta ca exista o muchie [i, j] E, i A, j B a..
i, j 6 U, deci i A S si j B T . Deoarece i S, rezulta ca exista un
C-lant = [s, . . . , i] n RG relativ la f . Evident, l() 1, deoarece s 6= i.
Avem doua cazuri posibile.
1) l() = 1, adica = [s, i]. Arcul (s, i) este arc direct pentru
(din definitia retelei RG ), deci, conform definitiei notiunii de C-lant, avem
f (s, i) < c(s, i). Cum c(s, i) = 1 (din definitia retelei RG ), iar f (s, i) N,
rezulta ca f (s, i) = 0. Conform conditiei de conservare a fluxului f obtinem

71

TEMA 4. INVARIANT
II UNUI GRAF BIPARTIT
ca 0 = f (s, i) =

f (i, y), deci f (i, y) = 0, y B. In particular, avem

yB

f (i, j) = 0, deci f (i, j) = 0 < 1 = c(i, j). Rezulta ca [s, i, j] este un C-lant
n RG relativ la f , contradictie cu faptul ca j T .
2) l() 2, adica = [s, . . . , x, i] cu x 6= s. Atunci x B si arcul (i, x)
este arc invers pentru (din definitia retelei RG ), deci, conform definitiei
notiunii de C-lant, avem f (i, x) = c(i, x). Cum c(i, x) = 1 (din definitia
retelei RG ), rezulta ca fP
(i, x) = 1. Conform
Pconditiei de conservare a fluxului
f obtinem ca f (s, i) =
f (i, y) = 1 +
f (i, y). Dar f (s, i) c(s, i) =
yB

yB\{x}

1 (din conditia de marginire a fluxului f ), deci f (s, i) = 1 si f (i, y) = 0, y


B \ {x}. Cum j 6 V () (deoarece n caz contrar sublantul de la s la j al
lui ar fi un C-lant, contradictie cu j T ), rezulta ca j 6= x, deci avem
f (i, j) = 0, si astfel f (i, j) = 0 < 1 = c(i, j). Rezulta ca [s, . . . , x, i, j] este
un C-lant n RG relativ la f , contradictie cu faptul ca j T .
Demonstratia ca U = A T B S este un suport n graful G este
ncheiata. Folosind acest fapt si definitia retelei RG avem
X
X X
X
XX
c(i, j) =
c(s, j) +
c(i, j) +
c(i, t)
c(S, T ) =
iS jT

1+

jAT

= card (U).

jAT

X X

iAS jBT

0+

iAS jBT

iBS

1 = card (A T ) + card (B S)

iBS

(4.1.5)

Multimea U fiind un suport n graful G, conform definitiei numarului de


transversalitate (G) avem
card (U) (G).

(4.1.6)

Din relatiile (4.1.3), (4.1.4), (4.1.5) si (4.1.6) rezulta ca


(G) = card (C) = v(f ) = c(S, T ) = card (U) (G).
Dar, conform Propozitiei 3.2.2 avem (G) (G), deci are loc egalitatea
(G) = (G).
Observatia 4.1.2. In contextul demonstratiei anterioare, rezulta ca
(G) = card (C) = v(f ) = c(S, T ) = card (U) = (G),
deci cuplajul C si suportul U definite n demonstratia anterioara sunt un
cuplaj de cardinal maxim, respectiv un suport de cardinal minim n graful
bipartit G. Astfel demonstratia teoremei anterioare este constructiva.

TEMA 4. INVARIANT
II UNUI GRAF BIPARTIT

72

Corolarul 4.1.1. Fie G un graf neorientat bipartit si simplu, fara noduri


izolate. Are loc egalitatea
(G) = (G).
Demonstratie. Fie n numarul de noduri din G. Conform Propozitiei 3.2.3,
Teoremei 4.1.1 si Propozitiei 3.2.4 avem
(G) = n (G) = n (G) = (G).

4.2

Consecinte algoritmice

Conform rezultatelor din sectiunea anterioara si din Capitolul 3 obtinem


urmatorul algoritm.
Algoritmul 4.2.1 (determinarea unui cuplaj de cardinal maxim, a unui
suport de cardinal minim, a unei multimi stabile de cardinal maxim
si a unei acoperiri de cardinal minim ntr-un graf bipartit). Fie
G = (V, E) un graf neorientat bipartit si simplu, avand partitia nodurilor
V = A B.
Pentru determinarea unui cuplaj de cardinal maxim, a unui suport de
cardinal minim, a unei multimi stabile de cardinal maxim si a unei acoperiri
de cardinal minim n graful G se parcurg urmatorii pasi.
Pasul 1. Se construieste reteaua RG = (G , s, t, c), conform Definitiei
4.1.1.
Pasul 2. In reteaua RG se determina un flux f de valoare maxima avand
toate componentele numere ntregi si o sectiune (S, T ) de capacitate
minima. Pentru aceasta se utilizeaza Algoritmul Ford-Fulkerson pentru
un flux initial avand toate componentele numere ntregi, de exemplu
fluxul nul.
Pasul 3. Se determina multimea
C = {[i, j] E | i A, j B, f (i, j) = 1}.
C este un cuplaj de cardinal maxim n graful G (conform Lemei 4.1.2).
Pasul 4. Se determina multimea
U = A T B S.
U este un suport de cardinal minim n graful G (conform Observatiei
4.1.2).

TEMA 4. INVARIANT
II UNUI GRAF BIPARTIT

73

Pasul 5. Se determina multimea


M = V \ U = A S B T.
M este o multime stabila de cardinal maxim n graful G (conform
Propozitiei 3.2.3).
Pasul 6. Presupunem ca graful G nu are noduri izolate. Se determina
multimea
F = C {ex | x S G (C)},
unde, pentru orice nod x S G (C), ex E este o muchie incidenta cu x.
F este o acoperire de cardinal minim n graful G (conform Observatiei
3.2.1).
Exemplul 4.2.1. Vom aplica algoritmul anterior pentru graful bipartit G =
(V, E) reprezentat n Figura 4.2.1, avand partitia nodurilor V = A B, unde
A = {1, 2, 3, 4, 5} si B = {6, 7, 8, 9, 10}.

Figura 4.2.1:

Figura 4.2.2:

Reteaua asociata, RG = (G , s, t, c), este reprezentata n Figura 4.2.2.


Aplicand Algoritmul Ford-Fulkerson, pornind cu fluxul nul, lanturile succesive de crestere relativ la fluxul curent sunt
1 = [s, 1, 6, t], 2 = [s, 2, 7, t], 3 = [s, 3, 7, 2, 9, t], 4 = [s, 5, 8, t].

TEMA 4. INVARIANT
II UNUI GRAF BIPARTIT

Figura 4.2.3:

74

Figura 4.2.4:

Fluxul f de valoare maxima obtinut este reprezentat n Figura 4.2.3.


Pentru acest flux de valoare maxima avem C-lanturi de la nodul sursa s
doar la nodurile 4, 7, 3, 9 si 2, deci o sectiune de capacitate minima n RG
este
(S, T ) = ({s, 2, 3, 4, 7, 9}, {1, 5, 6, 8, 10, t}).
Astfel un cuplaj de cardinal maxim n graful G este
C = {[i, j] E | i A, j B, f (i, j) = 1} = {[1, 6], [2, 9], [3, 7], [5, 8]},
reprezentat n Figura 4.2.4 (prin ngrosarea muchiilor), deci numarul de
muchie-independenta al grafului G este (G) = 4.
Un suport de cardinal minim n graful G este
U = A T B S = {1, 5, 7, 9},
deci numarul de transversalitate al grafului G este (G) = 4.
O multime stabila de cardinal maxim n graful G este
M = V \ U = A S B T = {2, 3, 4, 6, 8, 10},
deci numarul de stabilitate al grafului G este (G) = 6.
Multimea nodurilor nesaturate de cuplajul C n graful G este S G (C) =
{4, 10}. Adaugand la cuplajul C cate o muchie incidenta cu nodurile 4 si 10

TEMA 4. INVARIANT
II UNUI GRAF BIPARTIT

75

obtinem ca o acoperire de cardinal minim n graful G este


A = C {[4, 7], [5, 10]} = {[1, 6], [2, 9], [3, 7], [4, 7], [5, 8], [5, 10]},
deci numarul de acoperire al grafului G este (G) = 6.
Observatia 4.2.1. Pentru un graf neorientat bipartit G cu n noduri si m
muchii, reteaua RG construita n Definitia 4.1.1 are n + 2 noduri si m + n
arce, iar capacitatea maxima a arcelor retelei este cmax = 1. Rezulta ca
Pasul 2 al Algoritmului 4.2.1 are complexitatea O(mn + n2 ). Aceasta este
si complexitatea ntregului algoritm, deoarece restul pasilor necesita doar
parcurgerea multimii nodurilor sau a multimii muchiilor grafului G.
Observatia 4.2.2. Orice graf neorientat bipartit nu contine cicluri de lungime
trei (conform Teoremei 2.3.1), deci nu are clici formate din cel putin trei
noduri. Rezulta ca numarul de densitate al unui graf neorientat bipartit
G = (V, E) este
(
2, daca E 6= ,
(G) =
1, daca E = .
Exemplul 4.2.2. Graful bipartit G = (V, E) reprezentat n Figura 4.2.1 are
numarul de densitate (G) = 2, iar clicile de cardinal maxim n graful G
sunt multimile formate din doua noduri adiacente (de exemplu {1, 6}).

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