Documente Academic
Documente Profesional
Documente Cultură
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ă5i 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 dintr5o
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 dintr5o
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 într5un 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ându5se 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
matricea drumurilor (
i NDG = ndij )
1≤i , j ≤ n
matricea numărului de drumuri.
Atunci pentru orice 1 ≤ i, j ≤ n , d ij = 1 dacă i numai dacă nd ij ≠ 0 .
DemonstraŃie. Rezultatul este imediat, deoarece este clar că d ij = 1 dacă &i
numai dacă există cel puŃin un drum de la xi la x j &i astfel nd ij ≠ 0 .
□
Trebuie să observăm faptul că discuŃia relativă la conexitate pentru grafuri
neorientate &i legătura acestei proprietăŃi cu matricea lanŃurilor are corespondent &i
pentru grafurile orientate când paralela se face între proprietatea de tare conexitate
&i matricea drumurilor. Din această cauză următoarele rezultate sunt date fără
demonstraŃii.
PropoziŃia 8. Fie G = ( X , U ) un graf orientat cu DG matricea
drumurilor. G este tare conex dacă i numai dacă DG are toate elementele egale
cu 1.
□
PropoziŃia 9. Există o permutare a numerotării nodurilor unui graf
orientat G = ( X , U ) astfel încât matricea drumurilor să fie de formă bloc
diagonală cu blocurile formate doar cu valoarea 1. Blocurile diagonale corespund
componentelor tari conexe ale grafului.
□
61