Sunteți pe pagina 1din 11

2. Elemente de teoria grafurilor (DUDA I., TRANDAFIR R., BACIU A.

, IOAN
R. Matematici pentru economisti, Ed. FRM, Bucuresti, 2007, pag. 220-241)
Concepte cheie mulimea vrfurilor (sau a nodurilor), extremitate iniial (surs),
extremitate final (destinaie),drum,drum simplu, drum elementar, muchie, lant, matricea
conexiunilor directe, matricea drumurilor,matricea extins a valorilor arcelor

2.1. Introducere. Definiii


Prima referire la teoria grafurilor a fost fcut n 1736 de ctre Euler n lucrarea
numit: Problema podurilor din Knigsberg. n 1847 Kirchoff a abordat teoria reelelor
electrice prin metoda grafurilor.
n 1956 Ford i Fulkerson au aplicat teoria grafurilor n reelele de transport. Astfel,
dup aceast perioad teoria grafurilor a fost utilizat pentru rezolvarea unor probleme cu
caracter economic, pentru proiectarea reelelor electrice, de canalizare, de gaze sau a
reelelor de tehnic de calcul, ori n medicin.
Definiie 1. Un graf G este o pereche de forma G = ( X , ) unde: X este este o
mulime finit numit mulimea vrfurilor (sau a nodurilor); orice element x X se
numete vrf, este o submulime a lui X X , mulimea perechilor ordonate (xi , x j ) ,
xi , x j X , i = 1, n , j = 1, n , i j numite arce.
Pentru un arc (xi , x j ) vrful xi se numete extremitate iniial (surs), iar
vrful x j extremitate final (destinaie).
Graful G admite o reprezentare geometric n plan, obinut astfel:
- vrfurile se plaseaz n plan n poziii distincte oarecare.
- fiecare arc (xi , x j ) se reprezint printr-o linie ce unete cele 2 extremiti i pe care
se afl sensul de la xi la x j .
Exemplu: Fie graful G = ( X , ) dat de X = {x1 , x 2 , x3 , x 4 , x5 } iar
= {( x1 , x 2 ), ( x1 , x3 ), ( x 2 , x 4 ), ( x3 , x 2 ), ( x3 , x 4 ), ( x 4 , x1 ), ( x 4 , x5 )} .
Cu reprezentarea geometric:

Figura .1.1.
Se observ c poate fi definit ca o aplicaie multivoc : X P ( X ) adic,
(x ) este mulimea tuturor nodurilor finale ale arcelor ce au ca nod iniial pe x .
Astfel, graful din exemplul de mai sus poate fi scris ca X = {x1 , x 2 , x3 , x 4 , x5 },
( x1 ) = {x 2 , x3 } , ( x 2 ) = {x 4 }, ( x3 ) = {x 2 , x 4 } , ( x 4 ) = {x1 , x5 } , ( x5 ) =
Dac xi ( xi ) , arcul ( xi , xi ) se numete bucl.
Dac graful G conine arcul (xi , x j ) vom spune c vrfurile xi i x j sunt adiacente
n G i amndou sunt incidente cu arcul (xi , x j ) .
Definiie 2. O succesiune de arce n care vrful terminal al unuia este origine
pentru urmtorul se numete drum.
Definiie 3. Un drum este simplu dac folosete un arc o singur dat.
Definiie 4. Un drum este elementar dac nu trece de dou ori prin acelai vrf.
Definiie 5 Un drum elementar care cuprinde toate vrfurile grafului se numete
hamiltonian.
Definiie 6. Numrul arcelor care compun un drum se numete lungimea acelui
drum.
Pentru exemplul grafului din figura 1.1, un drum elementar poate fi
d1 : {x1 , x 2 , x 4 , x5 }, lungimea drumului d 1 este 3.
ntr-un graf G , se numete muchie o pereche de vrfuri xi , x j de vrfuri pentru [ ]
care avem proprietatea c (xi , x j ) sau (x j , xi ) ; muchiile unui graf reprezentat
geometric se prezint ca nite segmente neorientate.
Definiie 7. Se numete lan un ir de arce l = {( x1 , x 2 ), ( x3 , x 4 ),..., (x p , x p +1 )} cu
proprietatea c oricare arce vecine (xi , xi +1 ) , (xi + 2 , xi + 3 ) au o extremitate comun pentru
orice i = 1,2,... p 2 .
Definiie 8. Un lan care nu-i repet vrfurile se numete lan elementar, iar un
lan care nu-i repet muchiile se numete un lan simplu.
Numrul de muchii care formeaz un lan se numete lungimea lanului.
Exemplu
n graful din figura 1.2. urmtoarele iruri de arce sunt lanuri:
l1 : {(x1 , x 2 ), ( x 2 x 4 ), ( x 4 , x3 )}, l 2 : {( x1 , x 2 ), ( x 2 , x 4 )}, l3 : {( x1 , x3 ), ( x3 , x 2 ), ( x 2 , x 4 )} ,
l 4 : {( x1 , x 4 ), ( x 4 , x3 ), ( x3 , x 2 )}
Definiie 9. Se spune c un graf este conex dac ntre oricare dou vrfuri ale sale
exist cel puin un lan care s le lege. n caz contrar graful este neconex.
Un graf se numete tare conex dac ntre oricare dou vrfuri ale sale exist cel
puin un drum.

Figura 1.2.
Exemplu
Graful

Figura 1.3a.

este conex, iar graful

Figura 1.3b

nu este conex.
Definiie 10. Gradul unui vrf x se noteaz g ( x ) i reprezint numrul de arce
incidente cu x . Gradul interior al unui vrf x se noteaz cu g ( x ) i este numrul
arcelor de forma ( y, x ) cu y X . Gradul exterior al unui vrf x se noteaz cu
g + ( x ) i este numrul de arce de forma (x, y ) cu y X .
Exemplu. n graful din figura 1.1. g ( x 2 ) = 2 existnd dou arce ( x1 , x 2 ) , (x3 , x 2 )
cu destinaia x 2 i g + ( x 2 ) = 1 pentru c ( x 2 ) = {x 4 }. Deci g ( x 2 ) = 3 .
Definiie 11. Se numete subgraf G = ( X , ) al grafului G = ( X , ) un graf
obinut din G prin suprimarea anumitor vrfuri i arce.
Dac G se obine din G prin suprimarea anumitor vrfuri i a tuturor arcelor
incidente cu acestea vom spune c subgraful G este indus sau generat de mulimea de
vrfuri X .
Subgraful G se numete graf parial al lui G dac se obine din graful G , avnd
aceleai vrfuri, dar numai cu o parte din arcelor acestuia.
Exemplu
Fie graful
Figura 1.4a.
n Figura 1.4b. este prezentat subgraful G generat de nodurile {x1 , x 2 , x3 , x5 },

Fidura 1.4b.
iar n Figura 1.4c. este prezentat graful parial G fr arcele (x 2 , x3 ) i ( x3 , x5 ) .

Figura 1.4c.

Definiie 12. Un graf orientat este complet dac oricare dou vrfuri sunt
adiacente.

2.2. Matrici asociate unui graf. Proprieti ale grafurilor


n problemele ce pot fi rezolvate cu ajutorul grafurilor apar anumite matrici ce conin
informaii asupra arcelor, drumurilor sau altor elemente legate de grafuri.
2.2.1. Matricea conexiunilor directe
Fie un graf G = ( X , ) cu X = {x1 , x 2 ,..., x n }. Asociem acestui graf o matrice
ptratic C , ale crui elemente sunt C = (cij )i , j =1,n .

1 pentru ( xi , x j )

cij =
0 pentru ( xi , x j )
Matricea C poart numele de matricea arcelor, matricea conexiunilor directe sau
matricea de adiacen pentru graful G
Observaii
1. Numrul de cifre 1 de pe linia xi reprezint numrul de conexiuni directe ale lui xi ,
iar numrul de cifre 1 de pe coloana x j reprezint numrul conexiunilor directe cu
x j . De exemplu, dac nodurile grafului de mai sus reprezint 5 bnci, iar arcele
corespunztoare reprezint relaiile de colaborare interbancare, atunci cifrele de 1 de
pe linia xi ar putea reprezenta posibilitile la care banca i face plasamente, iar
cifrele de 1 de pe coloana x j ar putea reprezenta posibilitile de la care banca j ar
putea face mprumuturi.
2. Dac dou grafuri au aceeai matrice a conexiunilor directe (i aceeai mulime de
vrfuri), atunci cele dou grafuri coincid.
3. Gradul exterior al vrfului xi se obine adunnd elementele de pe linia i a matricei
C , iar gradul interior al aceluiai vrf se obine adunnd elementele de pe coloana i a
matricei C :
n n
g + ( xi ) = cij , g ( xi ) = c ki .
j =1 k =1

2.2.2. Matricea drumurilor


Din matricea conexiunilor directe, prin anumite operaii se poate o matrice
D = (d ij )i , j =1.n numit matricea drumurilor sau matricea conexiunilor totale n care
dac exist drum de la xi la x j
1
d ij = dac nu exist drum de la xi la
0
xj
Definiie 13. Puterea de atingere p(xi ) a vrfului xi X n graful G = ( X , )
este egal cu numrul de vrfuri la care se poate ajunge din xi , adic egal cu numrul
de elemente de 1 de pe linia i din matricea D .

Observaii
1. Matricea D a drumurilor grafului G poate indica absena sau prezena circuitelor n
graful G astfel:
- dac d ii = 0 , ()i = 1, n , atunci graful G nu are circuite;
- dac exist un indice i , i = 1, n pentru care d ii = 1 , atunci exist n graful G un
circuit care are ca vrf pe xi .
2. Dac p( xi ) = 0 , atunci din vrful xi nu se ajunge nicieri i se numete ieire din
reea.
3. Dac matricea D are toate elementele egale cu 1 , atunci graful este tare conex. Dac
cel puin un element este egal cu 0 n D , graful nu este tare conex.
Pentru elaborarea unui algoritm de determinare a matricii drumurilor introducem o
operaie adecvat pe mulimea format din elementele 0 i 1, numit operaie de
adunare boolean cu regulile urmtoare:
+ 0 1
0 0 1
1 0 1
Astfel algoritmul de determinare al matricii drumurilor unui graf, pornind de la
matricea conexiunilor directe, este:
1. Pentru construirea liniei i din matricea D ( i = 1, n ) urmrim elementele egale cu
1 de pe linia i din matricea C :
c i = 1 d i = 1
c i = 1 d i = 1
dac , atunci
M M
ci = 1 d i = 1
2. Folosind adunarea boolean, se adun liniile , , din matricea C la linia i ; noile
valori 1 aprute se trec n linia i a matricei D ; fie k , l , ..., m poziiile ocupate de
aceste noi valori n cadrul liniei.
3. Adunm (boolean) liniile k , l , ..., m din C la linia i trecnd noile valori de 1
aprute n linia i a matricii D , continund procesul pn la apariia uneia din
situaiile:
a) sau toate elementele d ij ( j = 1, n ) devin egale cu 1.
b) nu mai apare nici un element egal cu 1 , caz n care locurile rmase libere se
completeaz cu zerouri i se trece la linia i + 1 , pentru care se repet procedeul.

2.3. Determinarea drumurilor hamiltoniene n grafuri fr circuite


Dac graful G nu are circuite, vom scrie matricea D a drumurilor grafului,
ordonnd n prealabil vrfurile grafului n ordinea descresctoare a puterilor de atingere
astfel toate valorile de 1 din matrice vor aprea deasupra diagonalei principale.
Deoarece
- dac n graful G exist un drum de la xi la x j , atunci p (x j ) < p( xi ) , deoarece orice
vrf atins din x j poate fi atins i din xi , printr-un drum obinut n cadrul operaiei de
conectare;
- dac ar mai fi posibil ca d ij = 1 cu i > j , atunci p( xi ) > p(x j ) ceea ce conform
rearanjrii liniilor i coloanelor nu mai este posibil.
Acest procedeu se numete triangularizare; matricea D se va numi form
triungularizat superior.
Este evident c dac ordinea {x1 , x 2 ,..., x n } a vrfurilor grafului conducere la o
matrice triangularizat atunci p( x1 ) p( x 2 ) ... p( x n ) .
Aceast form are proprietatea c fiecare element egal cu 1 de pe fiecare linie a
matricii drumului corespunde unui drum format dintr-un singur arc.
ntr-adevr, presupunem c, pe linia vrfului xi constatm c:
d ik = 0 k = 1, j 1

d ij = 1 j > i
S presupunem c exist un drum de la xi la x j format din mai multe arce, de
exemplu drumul {(x , x ), (x
i k k , x j )}. Atunci avem:
d ik = 1
p( x k ) > p (x j ) ,
d kj = 1
deci x k este naintea lui x j i deci valoarea d ik = 1 ar fi anterioar lui d ij , pe linia
vrfului xi , ceea ce am presupus c nu se ntmpl.
Exemplu
Fie matricea D a drumurilor unui graf
x1 x2 x3 x4 p ( x1 )
x1 0 1 0 1 2

x 0 0 0 1 1
D= 2
x3 1 1 0 1 3

x4 0 0 0 0 0
Pentru a triangulariza matricea D ne folosim de relaiile
p( x3 ) > p( x1 ) > p( x 2 ) > p( x 4 ) ,
vom scrie vrfurile n ordinea {x3 , x1 , x 2 , x 4 } n loc de ordinea {x1 , x 2 , x3 , x 4 }. Avem:
x1 x2 x3 x4
x1 0 1 1 1
x 0 0 1 1
D1 = 2
x3 0 0 0 1

x4 0 0 0 0
care este matricea triangularizat a drumurilor.
Aceste consideraii permit elaborarea algoritmului de determinare a drumurilor
hamiltoniene n grafurile fr circuite, astfel:

Teorema (Y. CHEN). Un graf fr circuite, care are n vrfuri, conine un


drum hamiltonian, dac i numai dac avem:
n
n(n 1)
p(x ) =
i =1
i
2
.

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

n(n 1)
elemente de 1.
2
Triangulariznd superior aceast matrice, aceste elemente vor ocupa toate locurile
disponibile de deasupra diagonalei; n final drumul hamiltonian nsui este dat de
succesiunea vrfurilor corespunztoare matricii triangularizat superior.
Observaie. ntr-un graf fr circuite, exist cel mult un drum hamiltonian.
Dac ar exista dou drumuri hamiltoniene d H(1) i d H(2 ) , atunci n cele dou drumuri
ar exista cel puin dou vrfuri xi , x j aezate n ordine invers, ceea ce ar face s apar
un circuit ntre xi i x j .
Algoritmul de determinare a drumului hamiltonian.
Etapa 1
Se scrie matricea D = (d ij )i , j =1,n a drumurilor. Dac exist un indice i pentru care
d ii = 1 , atunci graful are circuite i algoritmul Y.Chen nu se poate aplica.
Etapa 2
n(n 1)
n caz contrar, dac n matrice exist elemente de 1 graful admite drum
2
hamiltonian i se trece la Etapa 3, iar dac numrul de elemente 1 este mai mic dect
n(n 1)
graful nu are drum hamiltonian.
2
Etapa 3
Ordinea vrfurilor n cadrul drumului hamiltonian este dat de ordinea
descresctoare a puterilor de atingere.

2.4. Determinarea drumului hamiltonian n graf cu circuite


Algoritmul de determinare a matricii drumurilor are un caracter prea sintetic, n
sensul c prezena unei valori de 1 n matricea drumurilor nu d informaii asupra
vrfurilor din care se compun drumurile corespunztoare, bineneles c nici asupra
numrului de drumuri ntre vrfurile care corespund acelor valori de 1.
Ca un exemplu de algoritm capabil s rspund acestor deziderate, prezentm
algoritmul fundamental datorat lui A.Kaufmann (1963) numit al nmulirii latine.
Introducem ca punct de plecare, o matrice M (1) , care n locul valorilor de 1
utilizate n matricea obinuit a arcelor, utilizeaz nsui arcul respectiv, reprezentat prin
vrfurile care l compun. M (1) = (mij(1) )i , j =1,n , unde
xi x j dac exist arc de la xi la
mij(1) =
0 xj
n rest
~
Prin suprimarea primei litere n matricea M (1) se obine o matrice M (1) numit a
~
destinaiilor posibile. Se compun matricele M (1) i M (1) prin operaia de nmulire
latin. M (1) L M% (1) .
nmulirea latin a matricilor se face formal ca i nmulirea a dou matrici, fr
nsumare i fr nmulire efectiv innd cont c:
- produsul latin a dou componente participante la calcul este nul dac cel puin una din
ele este nul.
- produsul latin a dou componente participante este nul dac au vrf comun.
- rezultatul compunerii const n scrierea n continuare a vrfurilor componente ale
simbolurilor participante.
Prin definiia produsului latin avem M ( 2) = M (1) L M% (1) , M ( 3) = M ( 2) L M% (1) ,
Algoritmul continu pn la obinerea matricii M ( n 1) , deoarece ntr-un graf cu n
vrfuri un drum hamiltonian are n 1 arce.
n matricea M (n 1) citim, conform modului de scriere de mai sus toate drumurile
hamiltoniene ale grafului.
Dac toate elementele lui M (n 1) sunt zerouri ( M (n 1) = 0 ), graful nu admite drum
hamiltonian.
Observaie. Procedeul este aplicabil pentru orice tip de graf orientat (cu sau fr
circuit), dar pentru grafurile fr circuite se recomand algoritmul lui Chen, ntruct
pentru grafuri de dimensiuni mari, algoritmul nmulirii latine este greoi (dar sigur).
n cazul n care exist mai multe drumuri hamiltoniene prezint interes i noiunea de
cel mai bun drum hamiltonian ceea ce conduce la ideea de drumuri optime ntr-un
graf.

2.5. Drumuri de valoare ntr-un graf ; algoritmul Bellman-Kalaba


Fie G = ( X , ) un graf, vom introduce o funcie v : ce asociaz fiecrui arc
din o valoare real.
Notm vij = v(xi , x j ) i Gv = ( X , , v ) graful valuat. n cazurile reale valuarea poate
reprezenta: distana dintre dou puncte (localiti); timpi sau costuri ntr-o reea de
transport etc.
{
Pentru un drum d = xi1 , xi2 ,..., xik } n graful G vom numi valoare a drumului,
suma valorilor arcelor componente, adic:
k 1
v(d ) = vihih +1
h =1

Vrem s determinm drumul d de la un vrf oarecare xi la vrful x n , pentru care


valoarea lui v(d ) s fie minim.
Pentru aceasta introducem matricea extins a valorilor arcelor, V = (vij )i , j =1,n ,
dat de
0 pentru i = j

vij = vij pentru (xi , x j )
pentru i j , (xi , x j )


i notm cu mi(k ) valoarea minim a drumului d de la xi la x n n graful dat, considerat n
mulimea drumurilor de cel mult k arce, cu mi valoarea minim a drumului de la xi la
x n , considerat n mulimea tuturor drumurilor (indiferent de numrul de arce
componente).
Algoritmul de construire a vectorilor (mi )i =1,m se bazeaz pe urmtoarele propoziii:
Propoziie Pentru orice k N * avem
mi(k +1) = min{vij + m (jk ) }
j =1, n

Demonstraie.
Este evident c un drum de cel mult k + 1 arce cu destinaia x n se poate obine
dintr-un drum de cel mult k arce cu destinaia x n , prin adugarea unui arc la nceputul
su. Deci:
mi(k +1) = min vij + min v(d k ) = min{vij + m (jk ) }
j =1, n dk j =1,n
Propoziie Dac exist k N * pentru care mi(k ) = mi(k +1) , pentru orice i = 1, n ,
atunci:
a) mi(k ) = mi( s ) , i = 1, n , s k + 1
b) mik = mi , i = , n .
Demonstraie.
a) demonstrm prin inducie dup s . Pentru s = k + 1 proprietatea este adevrat
conform enunului.
Presupunnd proprietatea adevrat pentru o valoare s h avem:

j =1, n
{ } j =1, n
{ }
mi( h +1) = min vij + mi( h ) = min vij + mi( k ) = mi( k +1)
b) rezult n mod evident, pentru c prin adugarea de arce noi nu obinem drumuri de
valoare mai mic.
Algoritmul de determinare a drumului minim este:
Etapa 1
Se consider graful valuat Gv = ( X , , v ) , X = {x1 , x 2 ,..., x n } se construiete
matricea estins a valorilor arcelor V = (vij )i , j =1,n .

Etapa 2
( ) ( )
Se adaug matricii V , liniile suplimentare mi(1) , mi(2 ) , , astfel:
( )
a) linia mi(1) coincide cu transpusa coloanei n a matricii V , (v jn ) j =1,n ;
t

b) presupunnd completat linia (mi(k ) )i =1,n se completeaz linia (mi(k +1) )i =1,n conform
propoziiei 1.
( ) ( )
c) se continu aplicarea fazei (b) pn la obinerea a dou linii mi(k ) i mi(k +1) identice
Etapa 3
Se determin regresiv drumul minim de la xi la x n astfel:
- ( )
se adun linia i din V cu linia mi(k +1) urmrindu-se rezultatul minim ce se poate
obine. S presupunem c mi(k +1) = vij + mi(k +1) , atunci primul arc din drumul minim de
la xi la x n este arcul (xi , x j ) ;
- ( )
se adaug linia j din V cu mi(k +1) reinnd valoare minim, aflat de exemplu pe
coloana k , atunci al doilea arc va fi (x j , x k ) .a.m.d. Ultimul succesor determinat
va fi x n .
Algoritmul de determinare a drumului maxim este
Etapa 1
Se construiete matricea V a valorilor arcelor astfel:
0 pentru i = j

vij = vij pentru (xi , x j )

pentru i j , (xi , x j )

Etapa 2
Similar cu etapa 2 din algoritmul anterior, dar la pasul 2b) linia (mi(k +1) )i =1,n se
completeaz prin mi(k +1) = max{vij + m (jk ) }
j =1, n

Etapa 3
Determinarea drumului maxim se determin la fel ca la etapa 3 anterioar.

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