Documente Academic
Documente Profesional
Documente Cultură
Algoritmica Grafurilor - Note de Curs IFR
Algoritmica Grafurilor - Note de Curs IFR
3
5
4
7 6
9
DefiniŃie. Fie G = ( X , U ) un graf şi x ∈ X un nod fixat. Prin gradul
nodului x înŃelegem numărul muchiilor incidente lui x şi notăm acest număr cu
d ( x ) . Dacă d ( x ) = 1 spunem că x este nod terminal. Dacă d ( x ) = 0 spunem
că x este nod izolat.
□
Exemplul 2. Pentru graful specificat în exemplul 1 gradele vârfurilor sunt
cele indicate în următorul tabel.
x 1 2 3 4 5 6 7
d ( x) 2 3 2 4 3 3 1
După cum se poate vedea în acest tabel, graful nu are vârfuri izolate şi
nodul 7 este nod terminal
╬
PropoziŃia 1. Fie G = ( X , U ) un graf în care U = m . Atunci
∑ d ( x ) = 2m .
x∈ X
(
G ′ = X , U \ {{ x, y}} , ) atunci în G′ vom avea d ′( x) = d ( x) −1 ,
d ′ ( y ) = d ( y ) − 1 şi pentru orice z ∈ X \ { x, y} , d ′ ( z ) = d ( z ) .
Pentru graful G ′ vom avea
∑ d ′( z ) = d′( x) + d ′( y ) + ∑ d ′( z ) =
z∈ X z∈ X \{x , y}
= d ( x) −1 + d ( y ) −1 + ∑
z∈ X \{ x , y}
d (z) = ∑ d ( z) − 2 = .
z∈ X
= 2m − 2 = 2 ( m − 1) = 2 U \ {{ x, y}}
Deoarece într-un graf G 0 = ( X , ∅ ) , în care toate vârfurile sunt izolate
avem d ( z ) = 0 pentru orice z ∈ X , putem scrie 0 = ∑ d (z) = 2⋅0 = 2 ∅ ,
z∈ X
iterând relaŃia de mai sus, demonstrăm egalitatea dată în anunŃ.
□
Exemplul 3. Pentru graful dat în exemplul 1, folosind gradele vârfurilor
date în tabelul din exemplul 2 avem
7
∑ d ( x ) = ∑ d ( x ) = 2 + 3 + 2 + 4 + 3 + 3 + 1 = 18 .
x∈ X x =1
{ }
X 2 = x ∈ X d ( x ) par . În mod evident X 1 ∩ X 2 = ∅
d1 = ∑ d ( x)
x∈ X1
este număr impar ca sumă impară de numere impare.
Deoarece X 1 ∩ X 2 = ∅ , rezultă că ∑ d ( x) = d
x∈ X
1 + d 2 şi astfel ∑ d ( x)
x∈ X
este număr impar ca sumă între un număr par şi unul impar. Dar din propoziŃia 1
avem ∑d ( x ) = 2 U , deci este număr par. ContradicŃie.
x∈ X
□
Exemplul 4. Pentru graful neorientat din exemplul 1, nodurile cu gradul
impar sunt 2, 5, 6 şi 7 şi astfel numărul lor este 4, deci număr par. Astfel se verifică
practic afirmaŃia făcută în propoziŃia 2.
╬
DefiniŃie. Fie G = ( X , U ) un graf. Numim graf parŃial al lui G, graful
G′ = ( X , V ) , unde V ⊂ U .
□
Exemplul 5. Fie graful G = ( X , U ) , unde X = {1, 2, 3, 4,5, 6, 7} este
mulŃimea de vârfuri, iar mulŃimea muchiilor este
U = {{1, 2} , {1,3} , {2,3} , {2, 4} , {3, 6} , {3, 7} , {4, 5} , {5, 6} , {5, 7}} .
Considerăm graful G ′ = ( X , V ) , unde
U = {{1, 2} , {1, 3} , {2, 4} , {3, 7} , {4, 5} , {5, 6} , {5, 7}}
Astfel, G ′ = ( X , V ) este graf parŃial pentru graful G = ( X , U ) . Din punct
de vedere al reprezentării, graful G = ( X , U ) şi graful parŃial G ′ = ( X , V ) au
următoarele imagini:
11
1 7 1 7
2 2
3 3
4 5 4 5
6 6
1 7 7
2 2
3 3
4 5 4 5
graful G = ( X , U ) subgraful G ′′ = (Y , V )
╬
DefiniŃie. Fie G = ( X , U ) un graf cu n vârfuri ( X = n ). Spunem că G
este un graf complet , dacă oricare ar fi x, y ∈ X , avem { x, y} ∈ U (orice două
vârfuri din G sunt conectate sau adiacente).
□
12
Exemplul 7. Pentru graful G = ( X , U ) din exemplul 5 nu este complet
deoarece, de exemplu, {1, 7} ∉ U şi {4, 6} ∉ U .
╬
Graful complet cu n vârfuri se notează prin K n
PropoziŃia 3. Numărul muchiilor lui K n este Cn2 .
DemonstraŃie. Deoarece K n este un graf complet şi astfel oricare ar fi
x, y ∈ X , avem { x, y} ∈U , rezultă că U conŃine toate submulŃimile cu două
elemente care se pot forma cu elemente în mulŃimea X .
Folosind noŃiuni de combinatorică, avem astfel că dintr-o mulŃime cu n
elemente se pot forma Cn2 submulŃimi cu două elemente. Astfel, dacă
K n = ( X , U ) , cu n = X , atunci U = Cn2 .
□
Exemplul 8. Să construim K 5 , deci graful K 5 = ( X , U ) , unde
5i4
X = {1, 2, 3, 4,5} . Numărul de muchii este, conform propoziŃiei 3, C52 = = 10 .
1i2
MulŃimea de muchii este astfel:
U = {{1, 2} , {1,3} , {1, 4} , {1,5} , {2,3} , {2, 4} , {2, 5} , {3, 4} , {3, 5} , {4, 6}}
Graful K 5 astfel definit are reprezentarea:
1
4
3
5
╬
DefiniŃie. Fie G = ( X , U ) un graf. Dacă există X 1 şi X 2 astfel încât
X 1 ∩ X 2 = ∅ şi X = X 1 ∪ X 2 ( X admite o partiŃie din două blocuri X 1 şi X 2 )
şi orice muchie din G uneşte un nod din X 1 cu unul din X 2 (oricare ar fi
e = { x, y} ∈ U , dacă x ∈ X 1 , atunci y ∈ X 2 ) spunem că G este graf bipartit.
□
13
Exemplul 9. Considerăm graful neorientat G = ( X , U ) , în care mulŃimea
de vârfuri este X = {1, 2, 3, 4,5, 6, 7} şi mulŃimea de muchii este
U = {{1, 2} , {1, 6} , {2, 3} , {2, 7} , {4, 5} , {4, 6} , {5, 7}} .
Se observă că putem realiza partiŃia X = X 1 ∪ X 2 , X 1 ∩ X 2 = ∅ , cu
X 1 = {1,3, 4, 7} şi X 2 = {2, 5, 6} , deoarece pentru orice muchie { x, y} ∈ U avem
x ∈ X 1 şi y ∈ X 2 .
Graful considerat are următoarea reprezentare:
1
2
5
4
6
7
╬
DefiniŃie. Fie G = ( X , U ) un graf bipartit cu partiŃiile X 1 şi X 2 . Dacă
X 1 = p şi X 2 = q şi dacă fiecare vârf din X 1 este adiacent cu toate vârfurile
din X 2 (pentru orice x ∈ X 1 şi orice y ∈ X 2 avem { x, y} ∈U ) spunem că G
este un graf bipartit complet, notat K p ,q .
□
Exemplul 10. Pentru graful bipartit din exemplul 9 se observă că el nu este
un graf bipartit complet, deoarece, de exemplu, nu conŃine muchia {3,5} şi nici
muchia {2, 4}
╬
PropoziŃia 4. Graful bipartit complet K p ,q are pq muchii.
DemonstraŃie. Considerăm K p ,q = ( X ,U ) , X = X1 ∪ X 2 ,
X 1 ∩ X 2 = ∅ , X 1 = p şi X 2 = q .
14
Conform definiŃiei pentru orice x ∈ X 1 şi orice y ∈ X 2 avem
{ x, y} ∈U . Dacă fixăm x ∈ X 1 , atunci pentru fiecare y ∈ X 2 avem { x, y} ∈ U ,
deci numărul de muchii pentru x ∈ X 1 fixat este egal cu X 2 = q .
Fiecare vârf x ∈ X 1 poate fi ales, fixat în X 1 = p . Astfel, numărul
total de muchii este pq .
□
Exemplul 11. Considerăm că mulŃimea de vârfuri X = {1, 2, 3, 4,5, 6, 7}
este partiŃionată prin mulŃimile X 1 = {1,3, 4, 7} şi X 2 = {2, 5, 6} (are loc
X = X 1 ∪ X 2 şi X 1 ∩ X 2 = ∅ ). Având p = X 1 = 4 şi q = X 2 = 3 , putem
construi un graf bipartit K 4,3 = ( X , U ) , unde mulŃimea de muchii este:
U = {{1, 2} , {1, 5} , {1, 6} , {2, 3} , {2, 4} , {2, 7} ,
{3,5} , {3, 6} , {4, 5} , {4, 6} , {5, 7} , {6, 7}}
şi avem U = 12 ceea ce corespunde enunŃului propoziŃiei 4.
Acest graf are următoarea reprezentare
1
2
5
4
6
7
╬
DefiniŃie. Fie G = ( X , U ) un graf. Numim lanŃ în G o succesiune de
vârfuri L = ( x0 , x1 ,..., xr ) = x0 x1...xr , astfel încât pentru orice i = 0,1,..., r − 1 ,
xi xi +1 ∈ U (adică o succesiune în care oricare două vârfuri vecine din lanŃ sunt
adiacente).
□
15
Fie G = ( X , U ) este un graf şi L = x0 x1...xr un lanŃ în G . Vârfurile x0 şi
xr se numesc extremităŃile lanŃului L , iar r se numeşte lungimea lanŃului L ,
notată l ( L ) = r (lungimea unui lanŃ este dată de numărul muchiilor sale sau de
numărul vârfurilor mai puŃin unul).
Exemplul 12. Considerăm graful G = ( X , U ) care corespunde următoarei
reprezentări:
1 6
2 3
5
4
16
DefiniŃie. Fie G = ( X , U ) un graf. LanŃul L din G se numeşte lanŃ
simplu dacă pentru orice 0 ≤ i, j ≤ r − 1 , i ≠ j , avem { xi , xi +1} ≠ x j , x j +1 (toate{ }
muchiile sale sunt distincte).
□
Exemplul 14. LanŃurile L1 = [1, 2, 4,1,3, 6] şi L2 = [1, 2, 4,3, 5] din
exemplul 12 şi L3 = [1, 2, 4,3, 6 ] din exemplul 13 sunt toate lanŃuri simple. Cel mai
bine se observă acest lucru la exprimarea lanŃurilor prin muchiile lor, aşa cum este
cazul pentru lanŃul L1 = [1, 2, 4,1,3, 6] , care în exemplul 12 este exprimat şi prin
muchii prin L1 = {1, 2} , {2, 4} , {1, 4} , {1,3} , {3, 6} .
În graful din exemplul 12 putem considera şi lanŃul
L4 = {2,1, 4, 3,1, 4, 5}
care nu este un lanŃ simplu deoarece conŃine de două ori muchia {1, 4} .
╬
PropoziŃia 5. Fie G = ( X , U ) un graf şi L un lanŃ în G . Dacă L este
lanŃ elementar, atunci L este lanŃ simplu.
DemonstraŃie. Prin absurd, L nu este lanŃ simplu. Atunci există
0 ≤ i, j ≤ r − 1 , i ≠ j astfel încât { xi , xi +1} = { x j , x j +1} . Astfel avem fie xi = x j ,
fie xi = x j +1 , de unde rezultă că L nu este lanŃ elementar. ContradicŃie.
□
1.2. Grafuri orientate
1
6
2 3
7
5
4
8
9
╬
Un graf orientat se reprezintă grafic printr-o mulŃime de puncte
corespunzătoare vârfurilor şi printr-o mulŃime de segmente orientate (săgeŃi)
corespunzătoare arcelor. O săgeată este orientată de la extremitatea iniŃială spre
extremitatea finală a arcului pe care îl reprezintă.
Dacă u = ( x, y ) ∈ U spunem că x şi y sunt adiacente în G şi că
nodurile x şi y sunt incidente arcului u sau că arcul u este incident nodurilor x
şi y . Mai exact, spunem că u este incident exterior nodului x ( u pleacă sau iese
din x ) şi că u este incident interior nodului y ( u ajunge sau intră în y ). Arcul
( x, y ) ∈ U se mai notează şi prin xy .
DefiniŃie. Fie G = ( X , U ) un graf orientat şi x ∈ X un nod fixat.
a) Numim grad interior al lui x , numărul arcelor incidente interior lui x ,
adică mărimea d − ( x ) = {( y, x ) ∈U y∈ X . }
b) Numim grad exterior al lui x , numărul arcelor incidente exterior lui x ,
adică mărimea d + ( x ) = {( x, y ) ∈U y∈ X . }
c) Prin gradul nodului x înŃelegem numărul total al arcelor incidente lui x ,
adică mărimea d ( x ) = d − ( x ) + d + ( x ) .
d) Dacă d ( x ) = 0 spunem că x ∈ X este vârf izolat.
e) Dacă d − ( x ) = 1 şi d + ( x ) = 0 spunem că x ∈ X este vârf terminal; dacă
d − ( x ) = 0 şi d + ( x ) = 1 spunem că x ∈ X este vârf iniŃial.
□
18
Exemplul 16. Pentru graful din exemplul 15 putem rezuma valorile pentru
gradul interior, gradul exterior şi gradul fiecărui vârf în următorul tabel:
x 1 2 3 4 5 6 7 8 9
d− ( x ) 0 1 2 1 1 3 1 2 2
d+ ( x ) 3 2 1 2 1 1 1 1 1
d ( x) 3 3 3 3 2 4 2 3 3
╬
DefiniŃie. Fie G = ( X , U ) un graf orientat şi A ⊂ X o mulŃime de
vârfuri.
a) Gradul interior lui A este numărul arcelor ce intră în A şi care au nodul
iniŃial în afara lui A, adică mărimea
d − ( A) = {( y, x ) ∈U y ∉ A, x ∈ A .}
b) Gradul exterior lui A este numărul arcelor ce ies din A şi au nodul
terminal în afara lui A, adică mărimea
d + ( A) = {( x, y ) ∈U x ∈ A, y ∉ A} .
c) Gradul total al lui A este d ( A ) = d − ( A ) + d + ( A ) .
□
Exemplu 17. Considerăm graful din exemplul 15 şi mulŃimea
A = {3, 4, 6, 7} . Avem d − ( A) = 5 , d + ( A) = 3 . Astfel d ( A ) = 8 .
╬
ObservaŃii
1) Evident, pentru orive A ⊂ X avem d − ( A ) ≤ ∑ d ( x) ,
x∈ A
− deoarece s-ar
putea ca anumite arce care ies din A să aibă extremitatea finală tot în A ,
arce care nu se numără la determinarea valorii d + ( A ) .
2) Evident, pentru orice A ⊂ X avem d + ( A ) ≤ ∑ d ( x) ,
x∈ A
+ deoarece s-ar
19
Exemplul 18. Fie graful orientat G = ( X , U ) , unde mulŃimea de vârfuri
este X = {1, 2,3, 4,5, 6} şi mulŃimea de arce este
U = {(1, 2 ) , (1,5 ) , (1, 6 ) , ( 2,3) , ( 2, 4 ) , ( 4,3) , ( 6, 4 ) , ( 6,5 )}
{ }
Dacă G ′ = ( X , V ) , unde V = (1, 2 ) , (1,5 ) , ( 2, 4 ) , ( 6, 4 ) , ( 6,5 ) , este un
graf orientat parŃial al grafului G .
Grafurile G şi G ′ au reprezentarea următoare:
1 1
6 6
2 2
5 5
3 3
4 4
20
1
6 6
2 2
5
3 3
4 4
2 4
3 5
Fie mulŃimea
V = {(1, 2 ) , (1,5 ) , ( 2,3 ) , ( 2, 4 ) , ( 3,1) , ( 3, 4 ) , ( 4,1) , ( 4,5 ) , ( 5, 2 ) , ( 5,3)}
Se formează astfel K 5′ = ( X , V ) care este tot un graf orientat complet. El diferă de
K 5 descris mai sus prin orientarea arcelor şi are reprezentarea
21
1
2 4
3 5
De asemenea, putem considera drept mulŃime de arce, mulŃimea
W = {(1, 2 ) , (1, 4 ) , (1,5 ) , ( 2,1) , ( 2, 4 ) , ( 3,1) ,
( 3, 2 ) , ( 4, 2 ) , ( 4, 3) , ( 4, 5) , ( 5, 2 ) , ( 5, 3)}
şi se formează acum un graf K 5′′ = ( X , W ) care este graf orientat complet. Acesta
diferă de K 5 prin faptul că unele vârfuri sunt unite de perechi de arce în ambele
sensuri. Graful K 5′′ are ca reprezentare imaginea:
2 4
3 5
╬
ObservaŃie. În cazul grafurilor neorientate, pentru un n ∈ ℕ , n ≥ 2 ,
există un singur graf complet cu n vârfuri, notat K n . În cazul grafurilor orientate
pentru un n ∈ ℕ , n ≥ 2 dat, există mai multe grafuri orientate complete cu n
vârfuri, ele diferind fie prin orientarea arcelor, fie prin numărul de arce ce unesc
două vârfuri, număr ce poate fi 1 sau 2.
22
DefiniŃie. Fie G = ( X , U ) un graf orientat. Numim drum în G o
succesiune de vârfuri d = ( x0 , x1 ,..., xr ) astfel încât pentru orice i = 0,1,..., r − 1 ,
xi xi +1 ∈ U (sau o succesiune de arce care au acelaşi sens, d = ( u1 , u1 ,..., u p ) , cu
proprietatea că pentru orice i = 1, 2,..., p − 1 , ui şi ui +1 au o extremitate comună,
mai exact extremitatea finală a lui ui coincide cu extremitatea iniŃială a lui ui +1 .
□
Fie d = ( x0 , x1 ,..., xr ) un drum în graful G = ( X , U ) . x0 se numeşte
extremitatea iniŃială, iar xr extremitatea finală a drumului d .
Exemplul 21. Fie X = {1, 2,3, 4,5, 6} şi graful G = ( X , U ) , unde
U = {(1, 2 ) , (1,5 ) , (1, 6 ) , ( 2,3) , ( 2, 4 ) , ( 3, 6 ) , ( 4,3) , ( 5,3) , ( 6, 4 ) , ( 6,5 )}
care are reprezentarea
6
2
5
23
DefiniŃie. Fie G = ( X , U ) un graf orientat. Numim lanŃ în G , o secvenŃă
de noduri L = [ x0 , x1 ,..., xr ] cu proprietatea că pentru orice i = 0,1,..., r − 1 avem
( xi , xi +1 ) ∈U sau ( xi +1 , xi ) ∈U (sau o succesiune de arce
L = u1 , u2 ,..., u p astfel încât pentru orice i = 1, 2,..., p − 1 , arcele ui şi ui +1 au
o extremitate comună – nu se mai pune condiŃia ca arcele să aibă acelaşi sens, ca
la drumuri).
□
ObservaŃie. Din definiŃie rezultă imediat că orice drum care este într-un
graf orientat este, în acelaşi timp, şi lanŃ în graful orientat respectiv.
Exemplul 23. Conform observaŃiei de mai sus, cum d = (1, 2,3, 6,5 ) din
exemplul 21 este un drum, l = [1, 2,3, 6,5] este şi lanŃ.
Tot în graful din exemplul 21 avem drept lanŃ succesiunea de vârfuri
l ′ = [3, 6,1, 2, 4] deoarece în U avem arcele ( 3, 6 ) , (1, 6 ) , (1, 2 ) şi ( 2, 4 ) .
╬
DefiniŃie. Fie G = ( X , U ) un graf orientat. Pentru orice x, y ∈ X
spunem că y este accesibil din x sau y este atins din x dacă şi numai dacă
există d = ( x0 , x1 ,..., xr ) un drum de capete x şi y .
□
Exemplul 24. Drumul d = (1, 2,3, 6,5 ) dat în exemplul 21 este un drum
care are extremitatea iniŃială 1 şi cea finală 5. Astfel vârful 5 este accesibil din
vârful 1.
Tot în graful din exemplul 21 avem că vârful 1 nu este accesibil din niciun
alt vârf deoarece nu poate exista niciun drum cu extremitatea finală 1. Acest lucru
este adevărat deoarece d − (1) = 0 (în 1 nu intra niciun arc).
╬
24
II. TIPURI PARTICULARE DE GRAFURI
1 5
3
4
2
O problemă pentru multigrafuri este de specificare a muchiilor care, aşa
cum s-a văzut până acum, sunt mulŃimi de două elemente. Dacă va fi cazul, pentru
muchiile multiple din multigrafuri vom folosi o indiciere în exteriorul mulŃimii
care specifică muchia. Astfel, pentru multigraful de mai sus avem G = ( X , U ) ,
unde X = {1, 2,3, 4,5} şi
U = {{1, 2} , {2, 3}1 , {2, 3}2 , {3, 4}1 , {3, 4}2 , {3, 5}}
╬
DefiniŃie. Graful orientat G = ( X , U ) se numeşte reflexiv (nereflexiv,
simetric, antisimetric, total, tranzitiv) dacă şi numai dacă relaŃia binară U este
relaŃie binară reflexivă (nereflexivă, simetrică, antisimetrică, totală, tranzitivă).
□
Exemplul 2. Să considerăm o mulŃime de 5 elemente X = {1, 2,3, 4,5} şi
cazul unei relaŃii simetrice definite pe X , şi anume următoarea submulŃime a
produsului cartezian X × X :
U = {(1, 2 ) , (1, 4 ) , ( 2,1) , ( 2,3) , ( 3, 2 ) , ( 4,1) , ( 4,5 ) , ( 5, 4 )}
Se poate observa că pentru orice x, y ∈ X avem că ( x, y ) ∈ U dacă şi
numai dacă ( y, x ) ∈ U de unde rezultă că U defineşte o relaŃie simetrică.
25
Pe de altă parte dacă considerăm graful G = ( X , U ) , cu X şi U definite
ca mai sus, atunci spunem că graful G este simetric. Graful are imaginea:
2
5
3
4
╬
DefiniŃie. Fie G = ( X , U ) un graf orientat. Dacă pentru fiecare x ∈ X
se asociază o etichetă pentru identificare spunem că G este un graf orientat
etichetat.
□
Observăc că la toate grafurile de mai sus am folosit o numerotare a
vârfurilor. Numerele folosite pot fi considerate etichete pentru vârfuri şi astfel
grafurile pot fi considerate drept grafuri etichetate.
DefiniŃie. Fie G = ( X , U ) un graf orientat. G se numeşte graf orientat
marcat sau reŃea dacă fiecărui u ∈ U i se asociază o marcă mu . În acest caz,
U ⊂ X × M × X , M fiind mulŃimea mărcilor asociate arcelor. Dacă
( x, m, y ) ∈ X × M × X , atunci arcul x → y se marchează cu m şi se reprezintă
prin x
m
→y.
□
Exemplul 3. Considerăm dată mulŃimea X = {1, 2,3, 4,5, 6} şi mulŃimea
U = {(1,3) , (1, 6 ) , ( 2, 4 ) , ( 2,5 ) , ( 3, 2 ) , ( 3, 6 ) , ( 4,1) , ( 4,5 ) , ( 5, 6 ) , ( 6, 2 )}
Am definit astfel graful orientat G = ( X , U ) a cărui imagine este
1 4
2 5
3 6
26
Considerăm acum că fiecărei muchii îi asociem o literă. Putem considera
că M = {a, b, c, d , e, f , g , h, i, j} şi că U ⊂ X × M × X este mulŃimea
U = {(1, a, 3) , (1, j , 6 ) , ( 2, b, 4 ) , ( 2, i,5 ) , ( 3, c, 2 ) , ( 3, h, 6 ) , ( 4, d ,1) ,
( 4, g , 5) , ( 5, e, 6 ) , ( 6, f , 2 )}
şi astfel se obŃine un graf orientat marcat pentru care avem reprezentarea
d
1 4
b g
e
i
2 5
a
j f
c h
3 6
╬
DefiniŃie. Numim reŃea etichetată un graf orientat marcat şi etichetat.
□
De fapt, graful din exemplul anterior, având vârfurile numerotate şi
muchiile marcate, poate fi considerat şi un exemplu de reŃea etichetată.
2.1. Grafuri conexe
27
X 2 = {6, 7} . În urma acestei partiŃii se produce şi o partiŃie a mulŃimii de muchii
în
U1 = {{1, 2} .{1,3} , {2,3} , {4,5} , {5,1}}
şi U 2 = {{6, 7}} .
Deoarece nu există muchii între elementele lui X 1 şi X 2 , înseamnă că nu
pot exista lanŃuri între x ∈ X 1 şi y ∈ X 2 şi de aici rezultă că G nu este un graf
conex. Subgrafurile G1 = ( X 1 , U1 ) şi G2 = ( X 2 , U 2 ) sunt grafuri conexe şi astfel
reprezintă componentele conexe ale grafului G .
Imaginea grafului G este:
5
1
G1
4
2
G2
6
3 7
╬
Fie G = ( X , U ) un graf neorientat. Pentru x, y ∈ X spunem că x este
conectat cu y dacă există un lanŃ ce le uneşte, adică există un lanŃ
L = ( x0 , x1 ,..., xr ) de extremităŃi x şi y
Pe mulŃimea X definim relaŃia binară ~ ⊂ X × X , dată prin x ~ y dacă
şi numai dacă ( x = y sau x este conectat cu y ).
PropoziŃia 1. RelaŃia " ~ " definită mai sus este o relaŃie de echivaleŃă
DemonstraŃie.
• reflexivitate – pentru orice x ∈ X deoarece x = x , rezultă că x ~ x .
• antisimetrie – considerăm că x ~ y şi y ~ x . Din x ~ y avem x = y sau
x este conectat cu y , adică există un lanŃ L = ( x0 , x1 ,..., xr ) de
extremităŃi x şi y .
Putem presupune că lanŃul este elementar şi că x = x0 şi y = xr . Din
y ~ x avem x = y sau y este conectat cu x , adică există un lanŃ
L′ = ( y0 , y1 ,..., yq ) de extremităŃi y şi x .
28
Putem presupune că lanŃul este elementar şi că y = y0 şi x = yq .
Presupunem că avem x ≠ y . Atunci rezultă că relaŃiile au loc doar prin
conectare. Fie astfel lanŃul format din concatenarea lanŃurilor L şi L′ şi
astfel x este conectat cu x de unde x ≠ x . ContradicŃie.
• tranzitivitate – deoarece x ~ y avem x = y sau x este conectat cu y ,
adică există un lanŃ L = ( x0 , x1 ,..., xr ) de extremităŃi x şi y . Dacă
x = y , rezultă că în y ~ z putem înlocui y cu x şi rezultă x ~ z .
Deoarece y ~ z avem y = z sau y este conectat cu z , adică există un
( )
lanŃ L′ = y0 , y1 ,..., yq de extremităŃi y şi z .
Dacă y = z , atunci în afirmaŃia „există un lanŃ L = ( x0 , x1 ,..., xr ) de
extremităŃi x şi y ” putem înlocui y cu z şi rezultă „există un lanŃ
L = ( x0 , x1 ,..., xr ) de extremităŃi x şi z ” astfel că rezultă x ~ z .
Dacă nu are loc relaŃia y = z, fie lanŃul
L′′ = ( x0 , x1 ,..., xr = y0 , y1 ,..., yq ) obŃinut prin concatenarea lanŃurilor L
şi L′ . Atunci lanŃul L′′ este de extremităŃi x şi z şi astfel avem că x este
conectat cu z , deci x ~ z .
□
PropoziŃia 2. Fie G = ( X , U ) un graf în care X = n , U = m şi n ≥ 2 .
Dacă G este conex, atunci m ≥ n − 1 .
DemonstraŃie. Pentru n = 2 , deoarece G este conex rezultă că între cele
două vârfuri există o muchie între ele şi astfel m ≥ 1 .
Presupunem că relaŃia este adevărată pentru un graf cu X = n vârfuri. Fie
H = (Y ,V ) un graf pentru care Y = n + 1 şi fie V = m . Considerăm z ∈ Y şi
subgraful G = ( X ,U ) unde X = Y \ { z} , deci putem scrie că
X = Y − 1 = n + 1 − 1 = n . Putem alege z astfel încât G să fie conex.
Deoarece H este conex, rezultă că există x ∈ X astfel încât { z , x} ∈V ,
deci m = V ≥ U + 1 .
Pentru G conex, din ipoteza de inducŃie rezultă U ≥ X − 1 = n − 1 .
Înlocuind în relaŃia de mai sus obŃinem m = V ≥ U + 1 ≥ n − 1 + 1 = n .
Datorită principiului inducŃiei complete, din cele de mai sus rezultă că
relaŃia din enunŃ este adevărată pentru orice graf conex G .
□
29
Considerând graful din exemplul 4 în care X = 7 şi U = 6 , deci nu are
loc relaŃia m ≥ n − 1 , ceea ce, reprezentând o negare a propoziŃiei 2, implică faptul
că graful G nu este unul conex, ceea ce este adevărat conform exemplului
considerat.
NoŃiunea de graf conex este valabilă şi pentru grafurile orientate. DefiniŃia
este următoarea:
DefiniŃie. Graful orientat G = ( X , U ) se numeşte conex dacă şi numai
dacă oricare ar fi două noduri x, y ∈ X , x ≠ y , există cel puŃin un lanŃ în G ,
L = ( x0 , x1 ,..., xr ) de extremităŃi x şi y .
□
Dacă în definiŃia grafului conex pentru grafuri orientate înlocuim condiŃia
de existenŃă a unui lanŃ cu cea de existenŃă a unui drum se obnŃine următoarea
noŃiune.
DefiniŃie. Graful orientat G = ( X , U ) se numeşte tare conex dacă şi
numai dacă oricare ar fi două noduri x, y ∈ X , x ≠ y , există cel puŃin un drum în
G , d = ( x = x0 , x1 ,..., xr = y ) de extremităŃi x şi y .
□
Exemplul 5. Considerăm un graf orientat G = ( X ,U ) , unde
X = {1, 2,3, 4,5} şi
U = {(1, 2 ) , (1,3) , ( 2,3 ) , ( 2, 4 ) , ( 2,5 ) , ( 3, 4 ) , ( 4,1) , ( 5,1) , ( 5,3) , ( 5, 4 )}
Putem vedea că există un lanŃ:
L = (1, 2 ) , ( 2, 3) , ( 3, 4 ) , ( 5, 4 ) = [1, 2,3, 4,5]
care conŃine toate vârfurile şi astfel se poate ajunge între oricare două vârfuri prin
lanŃuri. Astfel, rezultă că graful orientat G este conex.
Să considerăm vârful 1. Putem forma următoarele drumuri cu extremitatea
iniŃială 1: D1,1 = (1, 2, 4,1) , D1,2 = (1, 2 ) , D1,3 = (1, 2,3) , D1,4 = (1, 2, 4 ) şi
D1,5 = (1, 2,5 ) .
Pentru vârful 2, considerat ca extremitate iniŃială se formează:
D2,1 = ( 2, 4,1) , D2,2 = ( 2, 4,1, 2 ) , D2,3 = ( 2,3) , D2,4 = ( 2, 4 ) , D2,5 = ( 2,5 ) .
Similar, pentru vârful 3 avem: D3,1 = ( 3, 4,1) , D3,2 = ( 3, 4,1, 2 ) ,
D3,3 = ( 3, 4,1, 2,3) , D3,4 = ( 3, 4 ) , D3,5 = ( 3, 4,1, 2,5 ) .
Pentru vârful 4 putem construi: D4,1 = ( 4,1) , D4,2 = ( 4,1, 2 ) ,
D4,3 = ( 4,1,3) , D4,4 = ( 4,1, 2, 4 ) , D4,5 = ( 4,1, 2,5 ) .
30
În fine, folosind ca extremitate iniŃială vârful 5 construim drumurile:
D5,1 = ( 5,1) , D5,2 = ( 5,1, 2 ) , D5,3 = ( 5,3) , D5,4 = ( 5, 4 ) , D5,5 = ( 5,1, 2,5 ) .
Am arătat astfel că din orice x ∈ X se poate ajunge printr-un drum la orice
y ∈ X şi astfel, graful G este tare conex.
Imaginea grafului este
2 3
5
4
╬
O posibilitate de a determina dacă un graf neorientat este conex, sau
determinarea efectivă a componentelor conexe (sau problemele similare pentru
grafurile orientate) constă în aplicarea unui algoritm de tip greede.
Să considerăm întâi problema determinării conexităŃii unui graf neorientat
G = ( X ,U ) .
Algoritm 1.
1. Se consideră Y = X , V = U şi se alege orice x ∈ X pentru care
considerăm B = { x} .
2. Dacă B = ∅ , atunci algoritmul se termină generând un răspuns astfel:
a. Dacă V = ∅ , atunci graful este conex
b. Dacă V ≠ ∅ , atunci graful nu este conex (în plus se poate spune
că mulŃimea X \ Y reprezintă componenta conexă din care face
parte şi nodul x considerat la 1).
Altfel se continuă.
3. Se alege orice y ∈ B .
4. Pentru fiecare z ∈ Y \ B astfel încât { y, z} ∈V considerăm B = B ∪ { z}
şi V = V \ {{ y, z}}
5. Considerăm B = B \ { y} şi reluăm de la 2.
■
31
Exemplul 6. Se consideră graful din următoarea figură.
5
1
4
2
6
3 7
Folosind algoritmul 1 să determinăm dacă graful considerat este sau nu
conex
Din pasul 1 al algoritmului se fac iniŃializările Y = X = {1, 2,3, 4,5, 6, 7}
şi
V = U = {{1, 2} , {1,3} , {1,5} , {1,6} , {2,3} , {4,5} , {6, 7}} .
Alegem vârful 6 şi considerăm B = {6} .
Deoarece B ≠ ∅ se realizează o primă aplicare a paşilor 3, 4 şi 5 cu
{ }
alegerea 6 ∈ B , rezultând B = {1, 7} şi V = {1, 2} , {1,3} , {1,5} , {2,3} , {4,5} .
În continuare B ≠ ∅ , la a doua aplicare, cu alegerea 7 ∈ B nu există
muchii cu extremitatea 7 şi astfel nu se modifică decât B care devine B = {1}
Pentru a treia aplicare nu putem face decât alegerea 1 ∈ B pentru care va
{
rezulta B = {2,3,5} şi V = {2,3} , {4,5} . }
Putem continua cu alegerea 3 ∈ B pentru care nu avem în V muchii între
3 şi vârfurile din mulŃimea {1, 4, 6, 7} şi astfel se ajunge la B = {2,5} cu V
nemodificat.
A cincea aplicare se poate face cu alegerea 5 ∈ B pentru care efectul este
{
B = {2, 4} şi V = {2,3} . }
În continuare, selectând 2 ∈ B vom obŃine B = {3, 4} şi V = ∅ .
Următoarele aplicaŃii, două la număr sunt în aceeaşi situaŃie ca la a doua
aplicare a algoritmului şi se produc eliminările celor două elemente din B care
ajunge mulŃime vidă.
Cum avem şi V = ∅ , suntem în cazul (a) al răspunsului, deci graful
considerat este unul conex.
╬
Aşa cum se vede din pasul 2, algoritmul prezentat dă răspunsul la
întrebarea „Este G un graf conex?”.
32
De asemenea, se poate determina componenta conexă a grafului G din
care face parte un anumit nod specificat. Acest lucru crează premizele realizării
algoritmului de determinare a componentelor conexe, plecând de la algoritmul 1.
Algoritm 2.
1. Se consideră Y = X , V = U k = 0 .
2. Dacă V = ∅ , atunci algoritmul se termină şi componentele conexe ale
k
grafului G sunt A1 , A2 , ..., Ak . Vârfurile care nu sunt în ∪A k sunt
i =1
vârfuri izolate şi formează fiecare în parte câte o componentă conexă a
grafului G (în plus valoarea pentru k arată dacă graful G este sau nu
conex. Astfel pentru k = 1 şi A1 = X graful este conex, altfel G nu este
conex).
3. Alegem orice x ∈ Y . Fie k = k + 1 , Ak = ∅ , B = { x} .
4. Dacă B = ∅ se trece le 8, altfel se continuă.
5. Se alege orice y ∈ B .
6. Pentru fiecare z ∈ Y \ B astfel încât { y, z} ∈V considerăm B = B ∪ { z}
şi V = V \ {{ y, z}} .
7. Considerăm B = B \ { y} , Ak = Ak ∪ { y} . Se trece la 4.
8. Se elimină din V orice muchie {a, b} pentru care a, b ∈ Ak . Se trece la
2.
■
Exemplul 7. Considerăm graful de la exemplul 4, deci cu imaginea
5
1
4
2
6
3 7
Să aplicăm algoritmul 2 pentru a determina componentele conexe ale
acestui graf G = ( X , U ) .
Pasul 1 realizează iniŃializările Y = X = {1, 2,3, 4,5, 6, 7} , k = 0 şi
V = U = {{1, 2} , {1,3} , {1,5} , {2,3} , {4,5} , {6,7}}
şi cum V ≠ ∅ rezultă că se continuă cu pasul 3.
33
Să alegem 5 ∈ Y . Avem k = 1 , B = {5} şi A1 = ∅ şi deoarece B ≠ ∅ se
continuă cu paşii 5, 6 şi 7, în urma cărora se ajunge la B = {1, 4} , A1 = {5} şi
V = {{1, 2} , {1,3} , {2,3} , {6, 7}}
Se continuă cu aceeaşi paşi deoarece din nou B ≠ ∅ , şi alegând în prima
iteraŃie vârful 4 şi apoi vârful 1 obŃinem B = {2,3} , A1 = {1, 4,5} şi
V = {{2,3} , {6, 7}} .
Din nou B ≠ ∅ şi după realizarea a încă trei iteraŃii cu ordinea de alegere
2, 3 şi 2 pentru vârfuri se ajunge la situaŃia B = ∅ , A1 = {1, 2,3, 4,5} şi
V = {{6, 7}} . Deoarece nu sunt muchii între nodurile lui A1 din pasul 8 se trece la
pasul 2 care impune reluarea paşilor 3, 4, 5, 6, 7 deoarece V ≠ ∅ . Se consideră
astfel k = 2 şi A2 = ∅
Prin următoarele două iteraŃii se ajunge în starea B = ∅ , V = ∅ ,
A2 = {6, 7} şi la revenirea la pasul 2 cu V = ∅ algoritmul se opreşte.
Deoarece X = A1 ∪ A2 , rezultă că s-a format o partiŃie reprezentând
componentele conexe ale grafului G şi acestea sunt subgrafurile G1 = ( A1 , U1 ) şi
G2 = ( A2 ,U 2 ) , unde U 2 = {{6, 7}} şi
U 2 = {{1, 2} , {1,3} , {1,5} , {2,3} , {4,5}} .
╬
34
Exemplul 8. Fie un graf neorientat G = ( X , U ) cu
X = {1, 2,3, 4,5}
şi
U = {{1, 2} , {1,3} , {1, 4} , {2,5} , {4,5}} .
Cum U = 5 şi numărul maxim de muchii este 10 rezultă că graful
complementar are 5 muchii şi astfel avem
V = CU = {{1,5} , {2,3} , {2, 4} , {3, 4} , {3,5}} ,
obŃinându-se graful
CG = ( X , CU ) .
Grafurile din acest exemplu au următoarele imagini:
1 1
3 3
2 2
5 5
4 4
G = ( X ,U ) CG = ( X , CU )
╬
Exemplul 9. Fie un graf orientat G = ( X , U ) cu
X = {1, 2,3, 4,5}
şi
U = {(1, 2 ) , (1,3) , (1, 4 ) , ( 2, 4 ) , ( 2,5 ) , ( 3, 2 ) , ( 3,5 ) , ( 4, 2 ) , ( 4,5 ) , ( 5,1) , ( 5,3)} .
Deoarece numărul total de muchii posibile într-un graf orientat este egal cu
aranjamente de numărul de vârfuri luate câte două, deci 20, şi U = 11 , rezultă că
în graful complementar avem 9 arce şi astfel
CU = {(1,5 ) , ( 2,1) , ( 2,3) , ( 3,1) , ( 3, 4 ) , ( 4,1) , ( 4,3) , ( 5, 2 ) , ( 5, 4 )} .
În acest mod se obŃine graful
CG = ( X , CU ) .
Grafurile orientate din acest exemplu au următoarele reprezentări:
35
1 1
3 3
2 2
5 5
4 4
G = ( X ,U ) CG = ( X , CU )
╬
PropoziŃia 3. Fie G = ( X , U ) şi G′ = ( X ′,U ′ ) două grafuri orientate.
Atunci G ≅ G ′ dacă şi numai dacă CG ≅ CG ′ .
DemonstraŃie. Verificarea concluziei propoziŃiei este imediată folosind
definiŃiile date pentru izomorfismul de grafuri şi pentru graful complementar. De
exemplu, să considerăm implicaŃia ⇒ .
Avem că G ≅ G ′ şi fie f : X → X ′ izomorfismul de la G la G ′ . Astfel
f este o funcŃie bijectivă pentru care are loc enunŃul { x, y} ∈ U dacă şi numai
dacă { f ( x ) , f ( y )} ∈U ′ .
Fie { x, y} ∈ CU . Rezultă, conform definiŃiei grafurilor complementare, că
{ x, y} ∉U . Din G ≅ G′ , se ajunge la { f ( x ) , f ( y )} ∉ G′ de unde obŃinem
{ f ( x ) , f ( y )} ∈ CG′ . De aici obŃinem că f este şi izomorfism de la CG la
CG′ , deci CG ≅ CG′ .
□
Exemplul 10. Se consideră grafurile G din exemplul 8 şi graful
H = (Y ,V ) , unde
V = {{1, 2} , {1,3} , {2, 4} , {2,5} , {3, 4}}
Considerăm funcŃie f : X → Y , dată prin tabelul
x 1 2 3 4 5
f ( x) 2 4 5 1 3
Ca funcŃie definită pe mulŃimi finite cu acelaşi număr de elemente şi pentru
care observăm că este injectivă, rezultă că f este o funcŃie bijectivă Se poate
observa, de asemenea, că ( x, y ) ∈ U dacă şi numai dacă ( f ( x ) , f ( y ) ) ∈V şi
astfel f este un izomorfism de la G la H . Astfel avem G ≅ H .
Grafurile au următoarea reprezentare:
36
1 2
3 5
2 4
5 3
4 1
G = ( X ,U ) H = (Y , V )
╬
37
Din scrierea ciclului prin muchiile prin care trece se vede că fiecare muchie
apare o singură dată şi astfel ciclul este un ciclu simplu.
Un exemplu de ciclu elementar este L2 = [1, 2,3, 4, 6,1] , în care, cu
excepŃia extremităŃilor, se trece o singură dată prin fiecare vârf
Acest graf are reprezentarea
1
6
2
5
4
În reprezentarea de mai sus am îngroşat muchiile care formează ciclul
elementar L2 .
╬
DefiniŃiile de mai sus continuă să fie valabile şi pentru grafurile orientate.
Suplimentar intervin definiŃiile care urmează.
DefiniŃie. Fie G = ( X , U ) un graf orientat. Numim circuit în G un drum
C = ( x0 , x1 ,..., xr ) în care x0 = xr (în care extremităŃile coincid).
□
DefiniŃie. Fie G = ( X , U ) un graf orientat şi C = ( x0 , x1 ,..., xr ) un
circuit. Spunem că C este circuit elementar dacă pentru orice 0 ≤ i, j ≤ r − 1 ,
i ≠ j , avem xi ≠ x j (toate vârfurile sale, exceptând extremităŃile, sunt distincte
două câte două) .
□
DefiniŃie. Fie G = ( X , U ) un graf orientat şi C = ( x0 , x1 ,..., xr ) un ciclu.
Spunem că C este circuit simplu daca pentru orice 0 ≤ i, j ≤ r − 1 , i ≠ j , avem
( xi , xi +1 ) ≠ ( x j , x j +1 ) (toate arcele sale sunt distincte două câte două).
□
38
Exemplul 12. Considerăm graful orientat G = ( X ,U ) , unde
X = {1, 2,3, 4,5, 6} şi
U = {(1, 2 ) , (1,5 ) , ( 2,3) , ( 3,1) , ( 4,3) , ( 4, 6 ) , ( 5, 4 ) , ( 6,1)} .
Graful considerat, anulând orientarea arcelor, conduce la graful neorientat
din exemplul 11 şi astfel, în graful considerat, L1 = [1, 2,3,1,5, 4, 6,1] este un ciclu
simplu, în timp ce L2 = [1, 2,3, 4, 6,1] este un ciclu elementar. Scrierea ciclului L1
prin arce este
L1 = (1, 2 ) , ( 2,3) , ( 3,1) , (1,5 ) , ( 5, 4 ) , ( 4, 6 ) , ( 6,1) .
Din această scriere se observă că în ciclul L1 toate arcele sunt în sensul de
la extremitatea stângă la cea dreaptă şi astfel L1 este şi un circuit în G . Deoarece
în L1 fiecare arc intervine o singură dată, rezultă că L1 este un circuit simplu.
Putem astfel scrie
L1 = (1, 2,3,1,5, 4, 6,1)
sau
L1 = ( (1, 2 ) , ( 2,3) , ( 3,1) , (1,5 ) , ( 5, 4 ) , ( 4,6 ) , ( 6,1) ) .
Considerăm în G lanŃul L3 = (1,5, 4,3,1) care este un ciclu elementar
deoarece trece o singură dată prin fiecare vârf şi, în plus, având arcele în sensul
scrierii lanŃului, este şi drum. Astfel, L3 este un circuit elementar în G .
Graful considerat are reprezentarea:
1
6
2
5
39
DefiniŃie. Graful neorientat G = ( X , U ) se numeşte ciclic dacă G
conŃine cel puŃin un ciclu şi se numeşte aciclic în caz contrar.
□
`Exemplul 13. Graful neorientat din exemplul 11 este un graf neorientat
ciclic deoarece conŃine cel puŃin un ciclu (de fapt, am dat exemplu de două cicluri
în graful considerat).
╬
DefiniŃie. Fie G = ( X , U ) un graf orientat. Spunem că G este aciclic
dacă G nu conŃine niciun circuit şi ciclic în caz contrar.
□
Exemplul 14. Considerăm graful dat în exemplul 12. Deoarece în acest
graf orientat am detectat circuitul L3 , astfel graful este un graf orientat ciclic.
╬
PropoziŃia 4. Fie G = ( X , U ) un graf neorientat. Dacă U ≥ X , atunci
G este ciclic.
DemonstraŃie. Fie X = n , U = m , deci m ≥ n .
Dacă G nu este conex, fie G1 , G2 , ..., Gk . Dacă există un ciclu L în G ,
atunci există 1 ≤ k ≤ r astfel încât L este ciclu în Gx , deoarece în caz contrar ar
exista o muchie între două componente conexe şi astfel cele două componente
conexe coincid. Putem presupune că L este ciclu în G1 şi că pentru orice
2 ≤ i ≤ r , Gi nu conŃine cicluri şi astfel numărul de muchii din componenta
conexă Gi este mai mic decât numărul de vârfuri din Gi .
Prin sumare şi deoarece m ≥ n rezultă că numărul de muchii din
componenta conexă G1 trebuie să fie mai mare decât numărul de vârfuri din
componentă. Astfel, putem presupune că G este conex.
Conform propoziŃiei 2, G conex implică m ≥ n − 1 . Dacă m ≥ n
presupunem că G nu este ciclic. G fiind conex rezultă că pentru orice x, y ∈ X
există doar un drum elementar de la capete x şi y . Atunci, prin eliminarea unei
muchii, graful obŃinut nu mai este conex şi astfel obŃinem un graf neconex pentru
m = n − 1 . ContradicŃie.
Considerăm acum că m = n − 1 şi graful este ciclic. Fie C = [ x0 , x1 ,..., xr ]
un ciclu în G . Atunci putem elimina una din muchiile adiacente cu x0 pentru a
obŃine drumul C = [ x1 ,..., xr ] sau C = [ x0 , x1 ,..., xr −1 ] şi astfel să se păstreze
conexitatea. Rezultă astfel un graf conex pentru care m ≥ n − 2 . ContradicŃie.
□
40
DefiniŃie. Fie G = ( X , U ) un graf neorientat având k ≥ 1 componente
conexe. Se numeşte punte în G o muchie m ∈ U pentru care graful parŃial
( )
G′ = X ,U \ {m} are numărul de componente conexe mai mare decât k .
□
Exemplul 15. Considerăm graful neorientat G = ( X ,U ) , unde
X = {1, 2,3, 4,5, 6,7} şi
U = {{1, 2} , {1,3} .{2,3} , {2, 4} , {3, 4} , {3,5} , {5, 6} , {5,7} , {6, 7}}
G are reprezentarea:
1
7
2
3
4
6
5
41
DemonstraŃie
⇒
Considerăm că m este punte şi că numărul de componente conexe este
egal cu 1. Acest lucru nu reduce generalitatea, deoarece raŃionamentul care
urmează este valabil doar în componenta conexă care conŃine muchia m .
Presupunem că există un ciclu C = [ m1 , m2 ,..., mr ] în G dat prin muchiile
sale astfel încât există i , 1 ≤ i ≤ r , pentru care m = mi .
Fie x, y ∈ G . G fiind conex rezultă că există un lanŃ L = e1 , e2 ,..., e p
în G , dat prin muchiile sale, de extremităŃi x şi y.
Dacă pentru orice j = 1, 2,..., p , m ≠ e j , atunci L este lanŃ şi în graful
G′ = ( X ,U \ {m} ) ., deci eliminarea muchiei nu întrerupe conectarea dintre x şi y.
Dacă există j, 1≤ j ≤ p , considerăm
lanŃul L′ = e1 ,..., e j −1 , mi +1 ,..., mr , m1 ,..., mi −1 , e j +1 , e p care are extremităŃile x şi y
şi nu conŃine muchia m şi astfel este lanŃ în graful G ′ = X , U \ {m} . ( )
Din cele de mai sus rezultă că graful G ′ = X , U \ {m} ( ) este conex şi
astfel m nu este punte. ContradicŃie.
⇐
Putem presupune, fără a reduce generalitatea, că G este un graf conex.
Altfel, eliminarea unei muchii afectează eventual doar componenta conexă în care
muchia se găseşte, celelalte componente conexe rămânând neschimbate, deci şi
numărul lor. Astfel, dacă G nu este conex, putem reduce raŃionamentul la
subgraful lui G corespunzător componentei conexe în care există muchia m .
Presupunem că oricare ar fi un ciclu C = m1 , m2 ,..., m p , avem m ≠ mi
pentru orice 1 ≤ i ≤ p . Atunci, prin eliminarea muchiei m , toate aceste cicluri
rămân valabile.
Dacă presupunem că m uneşte două cicluri, atunci prin eliminare cele
două cicluri devin separate, deci pot intra în două componente conexe diferte.
Dacă m uneşte un vârf de un ciclu, prin eliminare vârful şi ciclul devin
separate, deci pot intra în două componente conexe diferite.
Dacă m se găseşte pe un lanŃ care nu face parte dintr-un ciclu, prin
eliminare se obŃin două componente separate şi deci posibil din două componente
conexe.
Astfel, eliminarea lui m produce apariŃia a două componente conexe în
G , de unde, conform definiŃiei, m este punte.
□
42
PropoziŃia 6. Fie G = ( X , U ) un graf orientat. G este tare conex dacă şi
numai dacă există un circuit C care conŃine toate vârfurile grafului.
DemonstraŃie
⇒
Conform definiŃiei, dacă G este conex, atunci pentru orice x1 , x2 ∈ X
există un drum d1,2 care să aibă extremitatea iniŃială x1 şi extremitatea finală x2 .
Din acelaşi motiv există un drum d 2,1 care să aibă extremitatea iniŃială x2 şi
extremitatea finală x1 . Putem forma astfel un circuit C1 = d1,2 , d 2,1 . ( )
Dacă C1 conŃine toate vârfurile din G , atunci C = C1 este circuitul căutat.
Presupunând că C1 nu conŃine toate vârfurile grafului G , fără a reduce
generalitatea, considerăm că celelalte vârfuri sunt cuprinse în circuitul C2 .
Fie x3 un vârf care se găseşte pe circiutul C2 . Deoarece G este tare
conex, rezultă că există un drum d3 de la x1 la x3 şi există un drum d 4 de la x3
la x1 .
Considerând C2 scris ca drum de la x3 la x3 , formăm astfel un circuit nou
C = ( d1,2 , d 2,1 , d 3 , C2 , d 4 ) care este un circuit ce conŃine toate vârfurile lui G .
⇐
Presupunând că în G există un circuit C care conŃine toate vârfurile,
atunci pentru orice x, y ∈ X există un drum d ⊂ C care să fie de extremităŃi x şi
y , deci G este tare conex.
□
DefiniŃie. Fie G = ( X ,U ) un graf orientat. Definim
V = {( x, y ) ∈ U ∃C circuit in G cu ( x, y ) ∈ C} . Graful parŃial H = ( X ,V ) se
numeşte graful orientat ciclu al lui G .
□
Exemplul 16. Se consideră un graf orientat G = ( X , U ) cu
X = {1, 2,3, 4,5, 6,7}
şi
U = {(1, 2 ) , ( 2, 4 ) , ( 3,1) , ( 3, 2 ) , ( 3,5 ) , ( 5, 6 ) , ( 6, 7 ) , ( 7,5 )}
43
Graful considerat are reprezentarea
1
7
2
3
4
6
5
1
7
2
3
4
6
5
╬
PropoziŃia 7. Fie G = ( X , U ) un graf orientat şi H = ( X , V ) graful
ciclu al lui G . Fie Y ⊂ X şi G ′ = ( Y , W ) subgraf. Atunci G ′ componentă tare
conexă în G dacă şi numai dacă G ′ componentă tare conexă în H .
44
DemonstraŃie
⇒
Folosind propoziŃia 6, dacă G ′ este componentă tare conexă a lui G
atunci există un circuit C care conŃine toate vârfurile din Y şi orice x ∈ X \ Y nu
se formează circuite cu x şi vârfuri din Y . Astfel, W ⊂ V şi deci G ′ este subgraf
în H .
C conŃine toate vârfurile din Y şi este circuit maximal în H , de unde
rezultă că G ′ este componentă tare conexă a lui H .
⇒
Se repetă în sens invers raŃionamentul de mai sus.
□
DefiniŃie. Fie G = ( X , U ) un graf orientat şi C1 , C2 , ..., Ct
componentele tari conexe ale lui G . Fie
Y = {C1 , C2 ,..., Ct }
şi
{ }
V = ( Ci , C j ) ∃x ∈ Ci , ∃y ∈ C j cu ( x, y ) ∈ U ⊂ Y × Y .
Graful H = (Y , V ) se numeşte graful condensat al lui G .
□
ObservaŃie. Graful condensat al oricărui graf orientat este aciclic.
Exemplul 17. Să considerăm din nou graful orientat din exemplul 16. Am
văzut în exemplul 16 că există două circuite, C2 = (1, 2, 4,3,1) şi C3 = ( 5,6, 7,5 ) ,
care sunt circuite care cuprind toate vârfurile din graful orientat ciclic. Astfel am
obŃinut: graful G are două componente tare conexe, corespunzătoare celor două
circuite.
Deoarece în graful G există arcul ( 3,5 ) între vârful 3 care este în
componenta tare conexă C1 şi vârful 5 din componenta tare conexă C2 . Putem
constitui astfel mulŃimea Y = {C1 , C2 } şi V = {( C , C )}
1 2 pentru a forma graful
orientat Gc = (Y , V ) care este astfel graful orientat condensat a grafului G .
Reprezentarea grafului condensat este
C1 C2
45
III. REPREZENTAREA GRAFURILOR
3.1. Reprezentare grafuri neorientate
( )
prin aij = m xi , x j . Matricea AG se numeşte matricea de adiacenŃă asociată
grafului G .
□
ObservaŃie. Dacă G = ( X , U ) este un graf neorientat şi AG este matricea
sa de adiacenŃă, atunci AG este simetrică, deoarece muchia xi , x j { } este tot una cu
{
muchia x j , xi . }
ObservaŃie. Deoarece am presupus că pentru grafurile studiate nu avem
bucle (muchii de forma { x, x} ), matricea de adiacenŃa AG pentru orice graf
neorientat G = ( X , U ) are diagonala principală formată doar cu valoarea zero.
Atunci când nu există posibilitatea de confuzie, vom nota AG prin A .
Exemplul 1. Fie G = ( X , U ) un graf neorientat cu X = {1, 2,3, 4,5} şi
U = {{1, 2} , {1, 4} , {2,3} , {2, 4} , {3,5} , {4,5}}
Să determinăm matricea de adiacenŃă a grafului.
Graful are imaginea:
46
1
2 3 4
( )
că X = { x 1 , x2 ,..., xn } . Definim matricea LG = lij
1≤i , j ≤ n
∈ M n ({0,1} ) , definită
( )
prin lij = l xi , x j . Matricea LG se numeşte matricea lanŃurilor grafului G .
□
47
ObservaŃie. Matricea lanŃurilor LG este o matrice simetrică deoarece dacă
există un lanŃ L = [ x = x0 , x1 ,..., xr = y ] de la x la y , atunci există şi un lanŃ de la
y la x şi anume lanŃul L′ = [ y = xr ,..., x1 , x0 = x ] care este chiar lanŃul
L = [ x = x0 , x1 ,..., xr = y ] dar sub o altă scriere (cu nodurile scrise în ordine
inversă).
Exemplul 2. Se consideră graful din exemplul 1 şi dorim să-i scriem
matricea lanŃurilor. Pentru aceasta se observă că avem lanŃurile {1, 2} , {1, 2,3} ,
{1, 4} , {1, 4,5} , {2,3} , {2, 4} , {2,3,5} , {3,5, 4} , {3,5} şi {4,5} care
demonstrează că există lanŃuri între oricare două vârfuri ale grafului (graful este
conex). Astfel, matricea lanŃurilor va fi
1 1 1 1 1
1 1 1 1 1
LG = 1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
╬
Definim următoarele operaŃii:
• Adunarea logică, + : {0,1} × {0,1} → {0,1} , definită prin a + b = a ∨ b ,
pentru orice a, b ∈ {0,1} , unde ∨ este operaŃia uzuală de disjuncŃie logică
(sau logic);
• ÎnmulŃirea logică i : {0,1} × {0,1} → {0,1} , definită prin
ab = a ib = a ∧ b , pentru orice a, b ∈ {0,1} , unde ∧ este operaŃia uzuală
de conjuncŃie logică (şi logic).
Folosind aceste operaŃii drept operaŃii uzuale, A fiind o matrice cu valori
booleene, are loc următorul rezultat.
PropoziŃia 1. Fie G = ( X , U ) un graf neorientat, A matricea sa de
adiacenŃă şi L matricea lanŃurilor lui G . Atunci are loc relaŃia:
n −1
L = ∑ Ak
k =1
48
DemonstraŃie. Să considerăm întâi că în G avem muchiile {x , x }
i j şi
{x , x } . Atunci în matricea
j k A avem aij = a ji = 1 şi a jk = akj = 1 . În matricea
A = B = (b )
2
avem
ij 1≤i , j ≤ n
n n n
bik = ∑ ais i ask = aij i a jk + ∑ ais i ask = 1 + ∑ ais i ask = 1
s =1 s =1 s =1
s≠ j s≠ j
( )
Similar se poate arăta că dacă în A p = B′ = bij′
avem un lanŃ de la
1≤i , j ≤ n
1 5 4
3 2
Matricea de adiacenŃă a grafului este
0 1 0 1 0
0 0 1 0 0
0 0 0 1 A = 1
1 0 0 0 0
0 1 0 0 1
Trebuie să calculăm L = A4 . Pentru A2 = A i A avem:
49
0 0 1 0 1 0 0 1 0 1 1 0 1 0 1
0 0 0 1 0 0 0 0 1 0 0 1 0 0 0
A = 1 0 0 0
2
1 i 1 0 0 0 1 = 1 0 1 0 1 ,
0 1 0 0 0 0 1 0 0 0 0 0 0 1 0
1 0 1 0 0 1 0 1 0 0 1 0 1 0 1
Pentru A = A2 i A avem
3
1 0 1 0 1 0 0 1 0 1 1 0 1 0 1
0 1 0 0 0 0 0 0 1 0 0 0 0 1 0
A = 1 0 1 0
3
1 i 1 0 0 0 1 = 1 0 1 0 1
0 0 0 1 0 0 1 0 0 0 0 1 0 0 0
1 0 1 0 1 1 0 1 0 0 1 0 1 0 1
4 3
şi A = A i A conduce la
1 0 1 0 1 0 0 1 0 1 1 0 1 0 1
0 0 0 1 0 0 0 0 1 0 0 1 0 0 0
A = 1 0 1 0
4
1 i 1 0 0 0 1 = 1 0 1 0 1
0 1 0 0 0 0 1 0 0 0 0 0 0 1 0
1 0 1 0 1 1 0 1 0 0 1 0 1 0 1
Adunând cele 4 matrici avem
1 0 1 0 1
0 1 0 1 0
L = 1 0 1 0 1
0 1 0 1 0
1 0 1 0 1
╬
PropoziŃia 2. Fie G = ( X , U ) un graf neorientat şi L matricea lanŃurilor
sale. Graful G este conex dacă şi numai dacă lij = 1 , pentru orice 1 ≤ i, j ≤ n .
DemonstraŃie. G este conex dacă şi numai dacă pentru orice xi , x j ∈ X
există un lanŃ de la xi la x j , dacă şi numai dacă lij = 1 , pentru orice 1 ≤ i, j ≤ n .
□
ObservaŃie. Dacă G = ( X , U ) este un graf neorientat neconex, având k
componente conexe, atunci putem face o partiŃie a lui X bazată pe componentele
conexe, X = X 1 ∪ X 2 ∪ ... ∪ X k , X i ∩ X j = ∅ pentru orice 1 ≤ i, j ≤ k , i ≠ j ,
50
cu proprietatea că fiecare X i reprezintă nodurile unei componente conexe a lui G .
În plus, există o permutare a nodurilor din X astfel încât indicii nodurilor dintr-o
componentă conexă să fie consecutivi.
DefiniŃie. Fie A o matrice pătrată de ordin n . Dacă
Bi1 0 ⋯ 0
0 Bi2 ⋯ 0
A=
⋮ ⋮ ⋱ ⋮
0 0 ⋯ Bik
unde 0 reprezintă matrici cu toate elementele egale cu zero, B j este o matrice
pătrată de ordin j cu o proprietate dată şi i1 + i2 + ... + ik = n , spunem că A este
matrice bloc diagonală.
□
PropoziŃia 3. Există o permutare a numerotării nodurilor unui graf
neorientat G = ( X , U ) astfel încât matricea lanŃurilor să fie de formă bloc
diagonală cu blocurile formate doar cu valoarea 1. Blocurile diagonale corespund
componentelor conexe ale grafului.
DemonstraŃie. Este suficient să arătăm că propoziŃia are loc pentru un graf
neconex cu două componente conexe, deoarece pentru un graf conex se foloseşte
propoziŃia 2 pentru a scrie L = Bn , cu X = n şi Bn are toate elementele egale
cu 1.
Datorită observaŃiei făcute mai sus, există o permutare a numerotării
{ } {
indicilor astfel încât X 1 = x1 ,..., xi , X 2 = xi +1 ,..., xi
1 1 2
} cu i1 + i2 = n şi
{ }
X 2 = xi1 +1 ,..., xi2 corespund componentelor conexe ale lui G .
Deoarece subgraful G1 = ( X 1 , V1 ) corespunzător lui X 1 este conex, avem
LG1 = Bi1 . Similar, pentru subgraful G2 = ( X 2 ,V2 ) avem LG2 = Bi2 . Cum nu
există muchii între nodurile din X 1 şi nodurile din X 2 , rezultă că lij = 0 pentru
orice 1 ≤ i ≤ i1 şi orice i1 + 1 ≤ j ≤ i2 .
Astfel obŃinem
Bi1 0
LG = .
0 Bi2
□
51
Exemplul 4. Considerăm graful G = ( X , U ) din exemplul 3 pentru care
am calculat matricea lanŃurilor:
1 0 1 0 1
0 1 0 1 0
LG = 1 0 1 0 1
0 1 0 1 0
1 0 1 0 1
Cel mai simplu mod de a determina permutarea σ care aplicată lui X să
conducă la un graf pentru care matricea lanŃurilor să fie în format matrice bloc
diagonală este de a realiza o renumerotare a vârfurilor astfel încât vârfurile dintr-o
componentă conexă să fie numerotate cu valori consecutice.
Plecând de la graful G , prin renumerotarea vârfurilor putem obŃine graful
H = ( X ,V ) :
4 5 1
3 2
1 2 3 4 5
pentru care permutarea aplicată este σ = . (Deoarece
4 2 3 1 5
σ : X → X este o permutare, deci o funcŃie bijectivă şi se păstrează muchiile,
rezultă că G ≅ H , adică cele două grafuri sunt izomorfe)..
Prin aplicarea permutării la liniile şi coloanele matricii LG se obŃine
matricea
1 1 0 0 0
1 1 0 0 0
LH = 0 0 1 1 1
0 0 1 1 1
0 0 1 1 1
care este o matrice bloc diagonală, în care
1 1
B1 =
1 1
şi
52
1 1 1
B2 = 1 1 1 .
1 1 1
╬
ObservaŃie. Permutarea care transformă un graf într-un graf izomorf cu
matricea lanŃurilor bloc diagonală nu este unică. Acest lucru reiese din exemplul
următor.
Exemplul 5. Considerăm tot graful din exemplul 3. De această dată
transformăm graful în graful J = ( X , W ) din imaginea:
1 2 4
3 5
1 2 3 4 5
pentru care permutarea aplicată vârfurilor este π = .
1 5 3 4 2
Matrica lanŃurilor pentru acest graf este
1 1 1 0 0
1 1 1 0 0
LJ = 1 1 1 0 0 .
0 0 0 1 1
0 0 0 1 1
Care are ca blocuri diagonate pe
1 1 1
B1 = 1 1 1
1 1 1
şi
1 1
B2 = .
1 1
Se poate observa că matricile LH şi LJ sunt formate din aceleaşi blocuri
diagonale, dar scrise în altă ordine.
╬
53
Prin generalizare putem considera că matricea de adiacenŃă este şi matricea
lanŃurilor de lungime 1. PropoziŃia 2 ne dă modul de determinare a matricii tuturor
lanŃurilor. Din demonstraŃia propoziŃiei 2 putem trage concluzia că Ak dă matricea
lanŃurilor elementare de lungime exact k , pe care o putem nota prin L(G ) şi relaŃia
k
54
1
2
3 4
Matricea de adiacenŃă a grafului este
0 0 1 0 0
0 0 1 0 1
AG = 1 0 0 0 0 ,
0 1 1 0 0
0 0 0 0 1
în timp ce matricea de comutare este
0 0 1 0 0
0 0 1 −1 1
CG = 1 −1 0 −1 0 .
0 1 1 0 0
0 −1 0 0 1
╬
DefiniŃie. Fie G = ( X , U ) un graf orientat cu X = n şi presupunem că
X = { x 1 , x2 ,..., xn } . Matricea LG = ( lij )1≤i , j ≤ n ∈ M n ({0,1} ) , definită prin
1 ∃ x i = y0 , y1 ,..., yr = x j lant in G
lij = , orice 1 ≤ i, j ≤ n
0 altfel
se numeşte matrica lanŃurilor grafului G .
□
Matricea lanŃurilor se defineşte, în mod similar, cu cea dată pentru grafurile
neorientate şi este o matrice simetrică..
Pentru orice matrice reală A = aij ( ) 1≤i ≤ n putem defini matricea valorilor
1≤ j ≤ m
55
PropoziŃia 4. Fie G = ( X , U ) un graf orientat, C matricea sa de
conectare şi L matricea lanŃurilor lui G . Atunci are loc relaŃia:
n −1
L = ∑ C •k
k =1
∑( A )
k
Din propoziŃia 1 avem L = G′ •
şi folosind relaŃia anterioară avem
k =1
n −1
L = ∑ C •k
k =1
□
PropoziŃia 4 ne indică faptul că propoziŃiile 2 şi 3 enunŃate pentru grafuri
neorientate îşi păstrează enunŃul şi în condiŃiile grafurilor orientate, folosind
noŃiunile de graf conex şi componentă conexă date pentru grafurile orientate.
Exemplul 7. Să considerăm graful din exemplul 6. Pentru determinarea
matricii lanŃurilor avem de scris matricea C • care se obŃine din matricea CG ,
considerând toate elementele în modul. Se obŃine astfe matricea
00 1 0 0
00 1 1 1
C• = 1
1 0 1 0 .
01 1 0 0
01 0 0 1
Ultima matrice corespunde grafului neorientat G ′ = ( X , V ) , unde ( x, y ) ∈ V dacă
şi numai dacă {( x, y ) , ( y, x )} ∩ U ≠ ∅ . Imaginea lui G′ este
56
1
2
3 4
Graful G ′ , ca şi graful G , este conex şi astfel matricea lanŃurilor în cele
două grafuri va avea toate elementele egale cu 1, deci
1 1 1 1 1
1 1 1 1 1
LG = LG ′ = 1 1 1 1 1 .
1 1 1 1 1
1 1 1 1 1
╬
DefiniŃie. Fie G = ( X , U ) un graf orientat cu X = n şi presupunem că
X = { x 1 , x2 ,..., xn } . Matricea DG = ( dij )1≤i , j ≤ n ∈ M n ({0,1}) , definită prin
57
n
bik = aij i a jk + ∑ ail i alk = 1 ,
l =1
l≠ j
obŃinem bik′′ = 1 .
□
Corolar. În condiŃiile propoziŃiei 5 avem
DG( k ) = Ak .
Calculele în această relaŃie se fac prin operaŃiile + şi i . Am notat
( 5)
cu DG = d ij ( ) (k )
1≤ i , j ≤ n
matricea drumurilor din G de lungime k , definită prin
0 altfel
DemonstraŃie. RelaŃia rezultă direct din demonstraŃia propoziŃiei 5.
□
Exemplul 8. Considerăm din nou graful din exemplul 7 pentru care am
scris matricea de adiacenŃă:
0 0 1 0 0
0 0 1 0 1
AG = 1 0 0 0 0
0 1 1 0 0
0 0 0 0 1
Pentru A2 = A i A obŃinem
58
0 0 1 0 0 0 0 1 0 0 1 0 0 0 0
0 0 1 0 1 0 0 1 0 1 1 0 0 0 1
A = 1
2
0 0 0 0 1 0 0 0 0 = 0 0 1 0 0
0 1 1 0 0 0 1 1 0 0 1 0 1 0 1
0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
Din calculul pentru A3 = A2 i A avem
1 0 0 0 00 0 1 0 0 0 0 1 0 0
1 0 0 0 10 0 1 0 1 0 0 1 0 1
A3 = 0 0 1 0 0 1 0 0 0 0 = 1 0 0 0 0
1 0 1 0 10 1 1 0 0 1 0 1 0 1
0 0 0 0 10 0 0 0 1 0 0 0 0 1
4 3
Pentru A = A i A rezultă matricea
0 0 1 0 0 0 0 1 0 0 1 0 0 0 0
0 0 1 0 1 0 0 1 0 1 1 0 0 0 1
A4 = 1 0 0 0 0 1 0 0 0 0 = 0 0 1 0 0
1 0 1 0 1 0 1 1 0 0 1 0 1 0 1
0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
Prin sumare rezultă matricea
1 0 1 0 0
1 0 1 0 1
DG = 1 0 1 0 0
1 1 1 0 1
0 0 0 0 1
╬
PropoziŃia 6. Fie G = ( X , U ) un graf orientat, A matricea sa de
adiacenŃă. Atunci are loc relaŃia
NDG = A + A2 + ... + An
(unde operaŃiile sunt cele uzuale, definite pe ℕ ).
DemonstraŃie. Se procedează în acelaşi mod ca în demonstraŃia
propoziŃiei 5, plecându-se de la presupunerea iniŃială că A conŃine de fapt numărul
de drumuri de lungime 1 din G .
□
59
Corolar. În condiŃiile din propoziŃia 6 avem
NDG( k ) = Ak .
Calculele se fac prin operaŃiile uzuale definite pe mulŃimea numerelor naturale
5
(
ℕ . Am notat NDG( ) = nd ij(
k)
)
1≤ i , j ≤ n
matricea numărului de drumuri de lungime k
(k )
din G , unde nd ij este numărul de drumuri de lungime exact k având
extremitatea iniŃială xi şi extremitatea finală x j .
DemonstraŃie. Proprietatea rezultă imediat din detalierea demonstraŃiei
propoziŃiei 6.
□
Exemplul 8. Considerăm din nou graful din exemplul 7 pentru care am
scris matricea de adiacenŃă:
0 0 1 0 0
0 0 1 0 1
AG = 1 0 0 0 0
0 1 1 0 0
0 0 0 0 1
Pentru A2 = AA obŃinem
0 0 1 0 0 0 0 1 0 0 1 0 0 0 0
0 0 1 0 1 0 0 1 0 1 1 0 0 0 1
A = 1
2
0 0 0 0 1 0 0 0 0 = 0 0 1 0 0
0 1 1 0 0 0 1 1 0 0 1 0 1 0 1
0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
Din calculul pentru A3 = A2 A avem
1 0 0 0 00 0 1 0 0 0 0 1 0 0
1 0 0 0 10 0 1 0 1 0 0 1 0 1
A3 = 0 0 1 0 0 1 0 0 0 0 = 1 0 0 0 0
1 0 1 0 10 1 1 0 0 1 0 1 0 1
0 0 0 0 10 0 0 0 1 0 0 0 0 1
4 3
Pentru A = A A rezultă matricea
60
0 0 1 0 0 0 0 1 0 0 1 0 0 0 0
0 0 1 0 1 0 0 1 0 1 1 0 0 0 1
A = 1
4
0 0 0 0 1 0 0 0 0 = 0 0 1 0 0
1 0 1 0 1 0 1 1 0 0 1 0 1 0 1
0 0
0 0 0 1 0 0 0 1 0 0 0 0 1
Prin sumare rezultă matricea
2 0 2 0 0
2 0 2 0 4
NDG = 2 0 2 0 0
3 1 4 0 3
0 0 0 0 4
╬
PropoziŃia 7. Fie G = ( X , U ) un graf orientat cu DG = dij ( ) 1≤i , j ≤ n
61
IV. ARBORI
4.1. Definire şi proprietăŃi
( )
H = X , U \ {{ x, y}} pe care îl presupunem conex. Atunci există un lanŃ de
extremităŃi x şi y , L = x = x0 ,..., x y = y în H .
Deoarece { x, y} ∈U , considerând L′ = L, { y, x} în G , avem de fapt
L′ = [ x = x0 ,..., xr = y, x ] , care, având acelaşi vârf la extremităŃi, este un ciclu
în G . ContradicŃie ( G este aciclic).
62
2 ⇒1
Avem ipoteza că G este un graf aciclic maximal. Considerăm că G nu
este conex şi astfel U < X − 1 .
Atunci există x, y ∈ X fără a putea fi conectate printr-un lanŃ. Astfel
pentru a conecta x şi y trebuie să adăugăm muchia { x, y} ∉ U şi astfel să putem
obŃine eventual un graf conex.
G fiind aciclic maximal, rezultă că adăugând o muchie graful devine ciclic
şi astfel obŃinem U + 1 ≥ X , sau altfel scris U ≥ X − 1 . ContradicŃie.
G fiind conex şi aciclic, rezultă că G este arbore.
3⇒1
Avem ipoteza că G este un graf conex minimal. Considerăm că G nu este
aciclic. Atunci există L = [ x = x0 ,..., xr = y, x ] un ciclu în G . Considerăm graful
(
G ′ = X , U \ {{ x, y}} . )
Fie a, b ∈ X . Deoarece G este conex rezultă că a şi b sunt conectate
printr-un lanŃ L′ = y0 ,..., y p în G .
Dacă muchia { x, y} nu apare în L′ , atunci L′ este lanŃ şi în G ′ , deci a
şi b sunt conectate în G ′ . Dacă { x, y} apare în L′ atunci pentru L′ avem
explicit
L′ = y0 ,..., yi = x, y = yi +1 , y p .
Considerăm lanŃul
L′ = y0 ,..., yi = x = x0 ,..., xr = y = yi +1 , y p
care este de extremităŃi a şi b şi este un lanŃ în G ′ , deci a şi b sunt conectate
în G ′ .
De mai sus rezultă că G ′ care se obŃine prin eliminarea unei muchii din G
este conex, şi astfel G nu este minimal la proprietatea de conexitate. ContradicŃie.
Am obŃinut astfel că G este aciclic şi fiind conex, rezultă că G este
arbore.
□
Corolar. Dacă G = ( X , U ) este arbore, atunci U = X − 1 .
DemonstraŃie. G fiind arbore este aciclic maximal. Cum un graf ciclic are
U ≥ X , rezultă că pentru un graf aciclic avem U < X . Din maximalitatea lui
G la proprietatea de a nu conŃine cicluri, rezultă că numărul de muchii este cel mai
mare care îndeplineşte relaŃia U < X şi astfel U = X − 1 .
□
63
Exemplul 1. Considerăm graful G = ( X , U ) , unde X = {1, 2,...,15}
(deci X = 15 ) şi care are reprezentarea
2 3 4
5 6 7 8 9
10 11 12 13 14 15
Din reprezentarea grafică se poate vedea că acest graf este conex şi că nu
conŃine cicluri şi astfel graful este un arbore. Avem de asemenea U = 14 şi astfel
este verificată relaŃia U = X − 1 .
Dacă la acest graf adăugăm o muchie, de exemplu {3,8} se obŃine
reprezentarea
2 3 4
5 6 7 8 9
10 11 12 13 14 15
64
se observă că se formează ciclul C = {1,3,8, 4,1} , astfel că noul graf este ciclic,
deci nu mai este un arbore.
Dacă se elimină o muchie, de exemplu {1, 4} , atunci se obŃine
reprezentarea
2 3 4
5 6 7 8 9
10 11 12 13 14 15
Se vede că am obŃinut astfel un graf neconex (de componente conexe
C1 = {1, 2,3,5, 6,10} şi C2 = {4, 7,8,9,11,12,13,14,15} şi deci graful nou nu este
arbore.
╬
PropoziŃie 1. Dacă G = ( X , U ) este un arbore, atunci G are cel puŃin
două vârfuri terminale.
DemonstraŃie. Din propoziŃia 2, capitolul 1 avem că numărul nodurilor cu
gradul impar este par şi astfel trebuie să arătăm că dacă G este arbore atunci
conŃine cel puŃin un nod terminal.
Presupunem că G nu conŃine niciun nod terminal. Astfel, oricare ar fi
x ∈ X , d ( x) ≥ 2 .
Dacă x0 ∈ X , cum d ( x0 ) ≥ 2 , există x1 , x1′ ∈ X , astfel încât
{ x1 , x0 } , { x0 , x1′} ∈U , în plus, x0 , x1 şi x1′ sunt distincte două câte două, pentru
că altfel ar apare un ciclu. Putem forma astfel lanŃul elementar L1 = [ x1′, x0 , x1 ] .
65
Deoarece d ( x1 ) ≥ 2 şi { x0 , x1} ∈U , rezultă că există { x1 , x2 } ∈U . În
plus, trebuie să avem x2 ∉ { x1′, x0 , x1} , deoarece, în caz contrar, se formează un
ciclu. Astfel, putem forma lanŃul L2 = [ x1′, x0 , x1 , x2 ] şi procesul poate continua la
infinit, deci X este infinită. ContradicŃie.
□
4.2. Arbori parŃiali
1
6
2 3
7
4 5
10 8 9
şi astfel avem
U = {{1, 2} , {1, 4} , {2,3} , {2, 4} , {2,10} , {3,5} , {4, 6} ,
{4,8} , {4,9} , {5, 6} , {5, 7} , {5,10} ,{6, 7} ,{7, 9} , {9,10}}
Putem alege graful parŃial H1 = ( X , V1 ) , unde
V1 = {{1, 2} , {1, 4} , {2,3} , {3,5} , {4, 6} , {4,8} , {4,9} , {6, 7} , {9,10}}
Se poate arăta că graful H1 este un graf conex şi fără cicluri deci este un
arbore. Atunci este un alt arbore parŃial al grafului G .
66
Graful H1 are reprezentarea
1
6
2 3
7
4 5
10 8 9
1
6
2 3
7
4 5
10 8 9
67
DefiniŃie. Fie G = ( X , U ) un graf neorientat şi A = ( X , V ) un arbore
parŃial al lui G . Numim coarde ale lui H elementele mulŃimii U \ V , iar numărul
U \ V se numeşte numărul ciclomatic al lui G .
□
Exemplu 3. Pentru exemplul 2 se poate constata că U = 15 şi
V1 = V2 = 9 . Cum V1 ⊂ U , rezultă că U \ V1 = U − V1 = 15 − 9 = 6 şi deci,
numărul ciclomatic al grafului G este egal cu 6
╬
Teorema 2. Fie G = ( X , U ) un graf neorientat. G este conex dacă şi
numai dacă G are arbore parŃial.
DemonstraŃie
⇒
Considerăm că G este conex. Dacă G este conex minimal, atunci G este
arbore şi astfel H = G este arbore parŃial al lui G .
Dacă G nu este minimal la proprietatea de conexitate, atunci putem
elimina succesiv muchii astfel încât să rămână valabilă proprietatea de conexitate.
Presupunem că obŃinem graful parŃial H = ( X , V ) conex şi astfel încât
dacă eliminăm o muchie din V , atunci graful obŃinut nu mai este conex. Rezultă
astfel că H este maximal la proprietatea de conexitate şi astfel H este un arbore.
Cum H se obŃine din G prin eliminarea de muchii, rezultă că H este graf parŃial
al lui G şi astfel H este arbore parŃial al lui G .
⇐
Fie H un arbore parŃial al lui G . H fiind arbore este graf conex.
Fie x, y ∈ X arbitrare. H fiind conex, rezultă că există
L = m1 , m2 ,..., m p un lanŃ în H de extremităŃi x şi y , unde pentru orice
i = 1, 2,..., p , mi ∈ V .
Cum V ⊂ U , rezultă că pentru orice i = 1, 2,..., p , mi ∈ U şi astfel
L = m1 , m2 ,..., m p este un lanŃ în G de extremităŃi x şi y . Astfel rezultă că G
este un graf conex.
□
DemonstraŃia de mai sus permite considerarea unui algoritm care să
conducă la determinarea unui arbore parŃial pentru un graf conex.
68
Algoritm 1
1. Fie V = U .
2. Dacă graful H = ( X , V ) nu conŃine cicluri, atunci algoritmul se termină şi
H este un arborele parŃial al lui G , altfel se continuă.
3. Se consideră un ciclu C = e1 , e2 ,..., e p în H
{ }
4. Se alege e ∈ e1 , e2 ,..., e p . Considerăm V = V \ {e} şi mergem la 2.
■
Exemplul 4. Considerăm din nou graful G = ( X , U ) din exemplul 2 şi
facem iniŃializarea
V = U = {{1, 2} , {1, 4} , {2,3} , {2, 4} , {2,10} , {3,5} , {4, 6} ,
{4,8} , {4,9} , {5, 6} , {5, 7} , {5,10} , {6, 7} ,{7, 9} , {9,10}}
Un ciclu din graful ( X , V ) este {1, 2, 4,1} . Pentru a elimina acest ciclu
putem presupune că eliminăm din V muchia {1, 2} şi se obŃine
V = {{1, 4} , {2,3} , {2, 4} , {2,10} , {3, 5} , {4, 6} , {4,8} ,
{4, 9} , {5, 6} , {5, 7} , {5,10} , {6, 7} , {7,9} , {9,10}}
În graful obŃinut se formează ciclul {2,3,5,10, 2} şi pentru a-l elimina
putem considera muchia {2,10} . Rezultatul eliminării ei este
V = {{1, 4} , {2,3} , {2, 4} , {3, 5} , {4, 6} , {4,8} , {4, 9} , {5, 6} , {5, 7} ,
{5,10} , {6, 7} , {7, 9} , {9,10}}
Tot pornind din vârful 2 se formează ciclul {2, 4, 6,5,3, 2} şi pentru
eliminarea lui folosim muchia {2, 4} , obŃinând
V = {{1, 4} , {2,3} , {3,5} , {4, 6} , {4,8} , {4, 9} , {5, 6} , {5, 7} ,
{5,10} , {6, 7} , {7, 9} , {9,10}}
În ultimul graf ( X , V ) se formează ciclul {4, 6, 7,9, 4} şi eliminăm
muchia {7,9} pentru a ajunge la
V = {{1, 4} , {2,3} , {3,5} , {4, 6} , {4,8} , {4,9} , {5, 6} , {5, 7} , {5,10} , {6, 7} , {9,10}}
Detectăm în continuare ciclul {4,9,10,5, 6, 4} şi îl eliminăm prin
excluderea muchiei {9,10} având ca rezultat
V = {{1, 4} , {2,3} , {3,5} , {4, 6} , {4,8} , {4,9} , {5, 6} , {5, 7} , {5,10} , {6, 7}}
69
Ultimul graf ( X ,V ) obŃinut conŃine ciclul {5, 6, 7,5} . Pentru a elimina
acest ciclu putem şterge muchia {6, 7} şi ajungem la
V = {{1, 4} , {2,3} , {3,5} , {4, 6} , {4,8} , {4,9} , {5, 6} , {5, 7} , {5,10}}
Graful obŃinut nu mai conŃine cicluri şi astfel algoritmul 1 pe care l-am
aplicat mai sus se opreşte, graful ( X , V ) fiind un arbore parŃial al grafului G .
Acest lucru este adevărat deoarece pe de o parte ( X , V ) este graf parŃial al lui G
şi, pe de altă parte, deoarece V = 9 = X − 1 , rezultă că ( X , V ) este un arbore.
Arborele parŃial ( X , V ) are reprezentarea
1
6
2 3
7
4 5
10 8 9
╬
PropoziŃia 2. Fie G = ( X , U ) un graf neorientat conex. Atunci numărul
ciclomatic al lui G este U − X + 1 .
DemonstraŃie. Fie H = ( X , V ) arborele parŃial al lui G . Deoarece H
este arbore, rezultă că avem relaŃia V = X − 1 . Numărul ciclomatic al lui G este
prin definiŃie valoarea U \ V .
Din teoria mulŃimilor ştim că dacă V ⊂ U , atunci U \ V = U − V .
Înlocuind valoarea pentru V , pentru numărul ciclomatic al lui G obŃinem
U \ V = U − V = U − ( X − 1) = U − V + 1 .
□
70
PropoziŃia 3. Fie G = ( X , U ) un graf neorientat conex, A = ( X , V ) un
arbore parŃial al lui G şi e = { x, y} o coardă a lui A . Atunci graful
H = ( X , V ∪ {e}) conŃine exact un ciclu.
DemonstraŃie. Deoarece A este un arbore, deci este aciclic maximal şi H
se obŃine din A prin adăugarea de muchii, rezultă că H este un graf ciclic (deci
conŃine cel puŃin un ciclu)
Presupunem că H conŃine două cicluri diferite care trec prin muchia e
(dacă doar unul ar trece prin muchia e prin eliminarea acestei muchii se elimină un
singur ciclu şi astfel ar rezulta că A este ciclic, deci nu poate fi arbore).
Fie astfel C1 = x = x0 , x1 ,..., x p = y , x şi C2 = [ x = y0 , y1 ,..., yr = y, x ]
cele două cicluri. Putem forma ciclul
C = x = x0 , x1 ,..., x p = y = yr ,..., y1 , y0 = x
Care nu conŃine muchia e şi astfel este ciclu şi în A , care astfel nu este arbore.
ContradicŃie.
□
4.3. Algoritmul lui Kruskal
71
( )
Considerăm graful H ′ = X , V \ {e} . Acest graf este conex, pentru că se
obŃine din H prin eliminarea unei muchii ce aparŃine unui ciclu. Din calculul
costurilor avem:
c ( H ) = ∑ c (u ) = c ( e) + ∑ c ( u ) > ∑ c ( u ) = c ( H ′)
u∈V u∈V \{e} u∈V \{e}
72
Dorim să determinăm un graf parŃial de cost minim al lui G . Pentru
aceasta vom folosi algoritmul lui Kruskal prezentat mai sus.
Conform primului pas generăm vectorul L = (1, 2,3, 4,5, 6 ) . Ordonăm
muchiile în ordine crescătoare şi ne rezultă vectorul
M = ({1,5} , {3, 6} , {2, 4} , {3,5} , {1, 6} , {2,3} , {4,5} , {3, 4} , {2, 6} , {1, 2} ) .
Punem k = 0 , j = 1 şi V = ∅
Cum k = 0 şi n − 1 = 5 nu se îndeplineşte condiŃia din pasul 2 şi intervine
prima iteraŃie a algoritmului.
Prima iteraŃie
Considerăm muchia {1,5} . Deoarece L (1) = 1 ≠ 5 = L ( 5 ) se continuă cu
pasul 4 şi trecem la k = 1 şi adăugăm muchia considerată la V care devine astfel
{
V = {1,5} ..}
Deoarece L (1) = 1 < 5 = L ( 5 ) , conform pasului 5 înlocuim toate valorile
5 prin valoarea 1 şi astfel L ajunge la forma L = (1, 2,3, 4,1, 6 ) .
Se consideră j = 2 şi terminăm prima iteraŃie şi cum k = 1 şi n − 1 = 5
reluăm cu o nouă iteraŃie.
A doua iteraŃie
Muchia a doua din M este {3, 6} şi avem L ( 3) = 3 ≠ 6 = L ( 6 ) . Astfel
ajungem la k = 2 şi adăugând muchia la V , se obŃine V = {{1,5} , {3, 6}} .
Cum L ( 3) = 3 < 6 = L ( 6 ) , prin schimbarea valorilor 6 cu 3 ajungem la
L = (1, 2,3, 4,1,3) şi iteraŃia se termină considerând j = 3 . În plus avem k = 2 şi
n − 1 = 5 astfel că vom continua.
A treia iteraŃie
Următoarea muchie considerată este {2, 4} pentru care avem
L ( 2) = 2 ≠ 4 = L ( 4) şi ajungem la configuraŃia k =3 şi
V = {{1,5} , {3, 6} , {2, 4}} .
Deoarece L ( 2 ) = 2 < 4 = L ( 4 ) prin schimbarea valorilor se obŃine
L = (1, 2,3, 2,1,3) şi după ce facem j = 4 vom continua cu o nouă iteraŃie
deoarece k = 3 şi n − 1 = 5 .
A patra iteraŃie
Luăm muchia {3,5} şi avem L ( 3) = 3 ≠ 1 = L ( 5 ) ceea ce generează nouă
structură k = 4 şi V = {{1,5} ,{3, 6} , {2, 4} , {3,5}} .
73
Acum avem L ( 3) = 3 > 1 = L ( 5 ) astfel că se înlocuiesc toate apariŃiile lui
3 prin valoarea 1 şi obŃinem L = (1, 2,1, 2,1,1) şi după ce ajungem la j = 5 vom
trece la următoarea iteraŃie deoarece k = 4 şi n − 1 = 5 .
A cincea iteraŃie
Noua muchie considerată este {1, 6} pentru care L (1) = 1 = L ( 6 ) astfel că
face j = 6 şi luăm o nouă muchie, {2,3} . Pentru aceasta L ( 2 ) = 2 ≠ 1 = L ( 3) şi
ca urmare vom ajunge la situaŃia k =5 şi
V = {{1,5} , {3, 6} , {2, 4} , {3,5} , {2,3}} .
RelaŃia exactă relativă la valorile din L este L ( 2 ) = 2 > 1 = L ( 3) şi astfel
se ajunge la L = (1,1,1,1,1,1) . Facem j = 7 . La revenirea la pasul 2 cu k = 5 şi
n − 1 = 5 condiŃia este îndeplinită pe egalitate şi astfel algoritmul se opreşte. Am
obŃinut graful parŃial H = ( X , V ) care este arbore parŃial de cost minim, costul
arborelui fiind CH = 1 + 1 + 2 + 2 + 3 = 9 . Arborele parŃial de cost minim are
reprezentarea
1 2
1
2
5 4 6
3
2
1
3
╬
4.4. ArborescenŃe
74
DefiniŃie. Fie A = ( X , U ) o arborescenŃă cu rădăcina x0 . Pentru un vârf
x ∈ X definim nivelul nodului prin l ( x0 ,..., x ) , unde ( x0 ,..., x ) este drumul
(unic) de extremitate iniŃială x0 şi extremitate finală x .
□
Exemplul 6. Considerăm graful orientat conex şi aciclic G = ( X , U ) cu
10 vârfuri şi care are reprezentarea
2 3
4 5 6 7 8
9 10
Graful G este conex deoarece există lanŃuri între oricare două vârfuri. El
este aciclic. De asemenea există un unic vârf (notat 1) pentru care gradul de intrare
este zero, iar celelalte vârfuri au gradul de intrare mai mare sau egal cu 1. Astfel,
graful orientat G este o arborescenŃă.
Deoarece d − (1) = 0 , rezultă că vârful 1 este rădăcina arborescenŃei.
Observând că d + ( 6 ) = 0 rezultă că 6 este o frunză a arborescenŃei.
MulŃimea frunzelor arborescenŃei G este mulŃimea {4, 6, 7,8,9,10} .
Se poate vedea că l (1, 2 ) = l (1,3) = 1 şi astfel vârfurile 2 şi 3 se găsesc pe
acelaşi nivel, şi anume pe nivelul 1. Avem şi l (1, 2,5,9 ) = l (1, 2,5,10 ) = 3 , deci
putem spune că vârfurile 9 şi 10 se găsesc pe acelaşi nivel 3.
╬
DefiniŃia de mai sus clasifică vârfurile arborescenŃelor în funcŃie de
distanŃa lor faŃă de rădăcină. Această clasificare are ca efect o reprezentare în care
nodurile sunt poziŃionate pe fiecare nivel, cu rădăcina arborescenŃei în partea
superioară a imaginii.
75
Pentru o arborescenŃă A = ( X , U ) , dacă ( x, y ) ∈U , spunem că
x este
părintele (tatăl) lui y şi y este fiul (descendentul direct) lui x . Dacă x, y ∈ X
şi există drumul (unic) ( x, z1 ,..., zk , y ) , spunem că y este descendentul lui x .
DefiniŃie. Fie A = ( X , U ) o arborescenŃă. Dacă pentru orice x ∈ X
avem d + ( x ) ∈ {0,1, 2} . Spunem că A este o arborescenŃă binară (arbore binar).
Dacă d + ( x ) ∈ {0, 2} , spunem că A este o arborescenŃă binară completă (arbore
binar complet).
□
Exemplul 7. Considerăm arborescenŃa din imaginea de mai jos
2 3
4 5 6
7 8
care are ca răvădină vârful 1. Avem
d + ( 4 ) = d + ( 5 ) = d + ( 7 ) = d + ( 8) = 0 ,
d + ( 3) = 1
şi
d + (1) = d + ( 2 ) = d + ( 6 ) = 2 ,
deci orice vârf are gradul de ieşire în mulŃimea {0,1, 2} . Rezultă că arborescenŃa
considerată este un arbore binar.
Deoarece d + ( 3) = 1 rezultă că arborele binar nu este complet.. Dacă am
adăuga vârful 9 şi arcul ( 3,9 ) se obŃine d + ( 3) = 2 şi d + ( 9 ) = 0 şi vom obŃine un
arbore binar complet. Acesta are reprezentarea
76
1
2 3
4 5 6 9
7 8
╬
Teorema 4. Pentru orice n ∈ ℕ *
există A = ( X , U ) o arborescenŃă
binară astfel încât
{x ∈ X d + ( x ) = 0} = n
(numărul vârfurilor terminale să fie egal cu n ).
DemonstraŃie. Dacă n = 1 , atunci X = { x0 } şi U = ∅ . Astfel
{
A1 = ( X , U ) este arborescenŃă binară şi x ∈ X d + ( x ) = 0 = { x0 } = 1 . }
Dacă n = 2 , atunci fie X 1 = { x1 , x2 } . Considerăm X 2 = { x1,2 } şi
mulŃimea de arce U1 = {( x
1,2 }
, x2 ) , ( x1,2 , x2 ) . Deoarece X 2 are un element, există
o arborescenŃă binară A1 = ( X 2 , U 2 ) cu un nod terminal. Fie arborescenŃa
A2 = ( X 1 ∪ X 2 , U1 ∪ U 2 ) care este o arborescenŃă binară şi are numărul de noduri
terminale X 1 = { x1 , x2 } = 2 = n .
Presupunem că pentru orice i = 1, 2,..., k există Ai = (Yi , Vi ) arborescenŃă
binară cu numărul de vârfuri terminale egal cu i .
Considerăm n = k + 1 .
Dacă k + 1 este număr par, deci k +1 = 2 p , considerăm
X 1 = { x1 , x2 ,..., x2 p −1 , x2 p } . Fie X 2 = { x1,2 , x3,4 ,..., x2 p −1,2 p } pentru care avem
X 2 = p ≤ k . Considerăm mulŃimea de muchii
77
U1 = {( x 1,2 }
, x1 ) , ( x1,2 , x2 ) ,..., ( x2 p −1,2 p , x2 p −1 ) , ( x2 p −1,2 p , x2 p ) .
Deoarece X 2 = p ≤ k , rezultă că există Ap = (Yp , V p ) o arborescenŃă
binară care are p noduri terminale. Fie atunci Ak +1 = X 1 ∪ Yp , U1 ∪ V p care este ( )
o arborescenŃă binară care are numărul de noduri terminale egal cu
X 1 = { x1 , x2 ,..., x2 p −1 , x2 p } = 2 p = k + 1 .
Dacă k +1 este număr impar, deci k + 1 = 2q + 1 , considerăm
X 1 = { x1 , x2 ,..., x2 q −1 , x2 q , x2 q +1} . Fie X 2 = { x1,2 , x3,4 ,..., x2 q −1,2 q } pentru care
avem X 2 = q < k . Considerăm mulŃimea de muchii
U1 = {( x 1,2 }
, x1 ) , ( x1,2 , x2 ) ,..., ( x2 q −1,2 q , x2 q −1 ) , ( x2 q −1,2 q , x2 q ) .
Deoarece X 2 = q < k , pentru X 2 ∪ { xq +1} cu număr de elemente
q + 1 ≤ k există Aq +1 = (Yq +1 , Vq +1 ) o arborescenŃă binară care are q + 1 noduri
( )
terminale. Fie atunci Ak +1 = X 1 ∪ Yq +1 , U1 ∪ Vq +1 care este o arborescenŃă binară
care are numărul de noduri terminale egal cu
X 1 = { x1 , x2 ,..., x2 q −1 , x2 q , x2 q +1} = 2q + 1 = k + 1 .
Folosind teorema inducŃiei complete, obŃinem că afirmaŃia din enunŃ este
adevărată pentru orice n ∈ ℕ* .
□
PropoziŃia 4. Fie A = ( X , U ) o arborescenŃă binară completă în care
{x ∈ X d + ( x ) = 0} = n . Atunci U = 2 ( n − 1) .
DemonstraŃie. Pentru n = 1 , conform construcŃiei din demonstraŃia
teoremei 4, V1 = ∅ şi astfel V1 = 0 = 2 (1 − 1) . De semenea, pentru n = 2 avem
V2 = {( x1,2 }
, x2 ) , ( x1,2 , x2 ) şi astfel V2 = 2 = 2 ( 2 − 1) .
Presupunem că pentru orice i = 1, 2,..., k enunŃul propoziŃiei este adevărat
şi fie n = k + 1 .
Dacă k + 1 este număr par, deci k + 1 = 2 p , conform construcŃiei din
(
demonstraŃia teoremei 4, avem Ak +1 = X 1 ∪ Yp , U1 ∪ V p şi Ap = Yp , V p ) ( ) este o
arborescenŃă binară completă cu p vârfuri terminale şi astfel V p = 2 ( p − 1) . Din
construcŃie avem U1 = 2 p . Cum U1 ∩ V p = ∅ , rezultă că
Vk +1 = U1 ∪ V p = U1 + V p = 2 p + 2 ( p − 1) = 2 ( 2 p − 1) = 2 ( k + 1 − 1) = 2k .
78
Dacă k + 1 este număr impar, deci k + 1 = 2q + 1 , conform construcŃiei
din demonstraŃia teoremei 4, avem Ak +1 = ( X 1 ∪ Yq +1 , U1 ∪ Vq +1 ) şi
Aq +1 = (Yq +1 , Vq +1 ) este o arborescenŃă binară care are q + 1 noduri terminale şi
astfel Vq +1 = 2 ( q + 1 − 1) = 2q . Din construcŃie avem U1 = 2q . Cum
U1 ∩ Vq +1 = ∅ , rezultă că
Vk +1 = U1 ∪ Vq +1 = U1 + Vq +1 = 2q + 2q = 2 ( 2q + 1 − 1) = 2 ( k + 1 − 1) = 2k .
Din teorema inducŃiei complete rezultă că enunŃul din propoziŃie este
adevărat pentru orice n ∈ ℕ* .
□
DefiniŃie. Fie A = ( X , U ) o arborescenŃă binară şi
{
DT = s ∈ ℕ ∃x ∈ X cu d + ( x ) = 0 si l ( x0 ,..., x ) = s }
(mulŃimea distanŃelor de la rădăcină la fiecare vârf terminal). Dacă
max DT − min DT ≤ 1 , spunem că A este o arborescenŃă binară echilibrată.
□
Exemplul 8. Pentru ambele grafuri orientate din exemplul 7 avem
DT = {2,3} de unde
max DT − min DT = 3 − 2 = 1 ≤ 1
şi astfel ambele grafuri sunt arborescenŃe binare echilibrate.
╬
Teorema 5. Fie A = ( X ,U ) o arborescenŃă binară. Următoarele
afirmaŃii sunt echivalente:
1. A este o arborescenŃă binară echilibrată;
2. pentru orice x ∈ X cu d + ( x ) = 0 , dacă X = 2m , atunci
m = l ( x0 ,..., x ) şi dacă 2 < X < 2 m m +1
, atunci l ( x0 ,..., x ) ∈ {m, m + 1} .
DemonstraŃie
⇒
Presupunem că 2m ≤ X < 2m +1 şi există x ∈ X , d + ( x ) = 0 şi
l ( x0 ,..., x ) < m . Presupunând că nivelul l ( x0 ,..., x ) este complet, atunci şi
nivelurile anterioare sunt complete şi astfel numărul total de vârfuri din nivelurile
1, 2, ..., l ( x0 ,..., x ) este
(
l x0 ,..., x )
0 1 ( )
l x0 ,..., x −1 2 −1 (
l x0 ,..., x )
2 + 2 + ... + 2 = =2 − 1 < 2m − 1 .
2 −1
ContradicŃie.
79
În mod asemănător se arată că se obŃine o contradicŃie dacă presupunem că
2 ≤ X < 2m +1 şi există x ∈ X , d + ( x ) = 0 şi l ( x0 ,..., x ) > m + 1 .
m
80