Documente Academic
Documente Profesional
Documente Cultură
Grafuri Curs
Grafuri Curs
, 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
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.
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.
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
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.
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.
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.