Sunteți pe pagina 1din 48

1

TEORIA GRAFURILOR

1. Noiuni generale
Exist numeroase probleme economice pentru care o reprezentare sub forma unor scheme alctuite din puncte i sgei aduce clarificri i uureaz nelegerea proceselor n sensul elucidrii legturilor de succesiune i cauzalitate. Pentru a da un exemplu, ne referim la procesul de luare a unei decizii. Pornind de la o situaie A0 se constat c sunt p variante ce conduc la situaiile A1, ..., Ap. Analiznd n continuare desfurarea fenomenului, pentru fiecare situaie Ai, i = 1, p , exist posibilitatea de a trece la una din situaiile Aij, j = 1, ni . Raionamentul poate continua ct timp procesul pune n eviden noi variante. O reprezentare sugestiv a procesului descris mai sus poate fi dat n figura urmtoare: A1 A0 Ai Ap A11 A 1n Ai1 A in

Ap1 A pn

n raport cu un obiectiv stabilit apriori, dac este posibil ca pentru oricare cuplu de situaii succesive s se asocieze o valoare real, urmeaz s

Teoria grafurilor

se gseasc o metod de determinare a succesiunii optime din punctul de vedere al obiectivului adoptat. Un graf G este o pereche (X, T) unde X este o mulime de elemente numite vrfuri sau noduri, iar T este o aplicaie a lui X pe mulimea prilor sale. Vom nota graful G = (X, T). Deci dac x X, atunci T(x) X. Dac x, y X i y T(x), perechea u = (x, y) se numete arc al grafului G, cu x extremitatea iniial (originea) arcului u, iar y este extremitatea final a lui u. Notnd prin U = (x, y) x X, y T(x) putem da o alt expresie a grafului i anume G = (X, U). Exemplu: Fie X = x1, x2, x3, x4, x5 i T(x1) = x2, x4, x5; T(x2) = x3, x5; T(x3) = x1, x5; T(x4) = x3; T(x5) = x4. Mulimea arcelor este: U = (x1, x2), (x1, x4), (x1, x5), (x2, x3), (x2, x5), (x3, x1), (x3, x5), (x4, x3) (x5, x4). Pentru graful astfel definit se poate realiza o imagine geometric construit astfel: vrfurile mulimii X se aeaz n plan i se duc segmente orientate care unesc punctele xi i T(xi), i = 1,5 .

x2 x5 x1 x4 x3 O mulime de vrfuri unite dou cte dou prin arce formeaz un


graf orientat. Dac u1, ..., uk sunt arce ale unui graf cu proprietatea c

extremitatea final a lui ui coincide cu extremitatea iniial a lui ui+1,

Modele matematice n economie

1 i k-1, irul de arce se numete drum. Cnd extremitatea final a lui uk coincide cu originea lui u1 drumul se numete circuit. Drumul poate fi definit i prin specificarea irului de vrfuri prin care trece, astfel: d = (x1, x2, ..., xr) dac aceste vrfuri sunt n ordinea x1, x2, ..., xr. Drumul ce trece o singur dat prin unele vrfuri ale grafului se numete drum elementar. Drumul elementar ce trece prin toate vrfurile grafului se numete drum hamiltonian. Numrul arcelor ce compun un drum se numete lungimea drumului. Cnd xi T(xi), arcul (xi, xi) se numete
bucl.

Vom spune c [x, y] este o muchie dac (x, y) i (y, x) sunt arce. De aceea, o muchie coincide cu mulimea vrfurilor care o compun. Nu este deci necesar s figurm dou sensuri contrare pe segmentul care le unete. Un ir de muchii formeaz un lan dac oricare dou muchii consecutive au o extremitate comun. Lanul poate fi definit i de succesiunea de vrfuri prin care trece, astfel: L = [x1, x2, ..., xr] dac aceasta este ordinea vrfurilor. Lanul ce trece o singur dat prin unele vrfuri ale grafului se numete lan
elementar. Lanul elementar ce trece prin toate vrfurile grafului se va numi lan hamiltonian. Cnd x1 = xr i toate muchiile lanului L sunt distincte

dou cte dou, lanul se numete ciclu. Numrul muchiilor unui lan se numete lungimea lanului. Dac ntr-un graf oricare dou vrfuri ale sale sunt unite printr-un lan, graful este conex. Graful G1 = (X, U), cu U U este un graf parial al grafului G = (X, U), iar graful G2 = (X, U) cu X X i U U este un subgraf al lui G = (X, U).

Teoria grafurilor

Graful cu un numr finit de vrfuri se numete graf finit. Cnd vrfurile grafului G sunt legate numai prin arce vom spune c graful G este
orientat, iar cnd vrfurile sunt legate prin muchii, graful G este neorientat.

2. Matrici asociate unui graf

Fie graful G = (X, U) cu X = x1, ..., xn. Matricea A = (aij), 1 i, j n, cu aij = 1, dac exist arcul (xi, xj) 0, n cazul contrar

se numete matricea arcelor sau matricea conexiunilor directe. Ea determin graful n mod unic i constituie un nou mod de a defini un graf. Matricea D = (dij), 1 i, j n, cu dij = 1, dac exist cel puin un drum de la xi la xj 0, n cazul contrar

se numete matricea drumurilor sau matricea conexiunilor totale. Matricea drumurilor poate determina mai multe grafuri. Astfel grafurile de mai jos, dei diferite, au aceeai matrice a drumurilor.
x2 x1 x4 x3 x1 x4 x2 x3 D x1 x2 x3 x4 x1 0 0 0 0 x2 1 0 1 0 x3 1 0 0 0 x4 1 0 0 0

Dm acum cteva rezultate necesare prezentrii unui algoritm de determinare a matricei drumurilor, datorat lui Y. V. Chen.
Propoziia 1: ntr-un graf G cu n vrfuri lungimea maxim a unui

drum elementar este egal cu n -1.

Modele matematice n economie

Demonstraie: Aplicm metoda induciei complete i pentru n = 2

proprietatea este adevrat deoarece ntre 2 vrfuri poate exista cel mult un drum elementar format dintr-un arc, deci de lungime 1, dac arcul exist. Presupunem c ntr-un graf cu n -1 vrfuri exist un drum elementar de lungime n -2 i fie acesta: d = (x i1 , ..., x in1 ), i1, ..., in-1 1, ..., n-1. Adugm grafului considerat nc un vrf xn ce poate aduce drumului de mai sus un arc n plus ((xn, x i1 ) sau (x in1 , xn) sau (x ik , xn) i (xn, x ik +1 ), cu dispariia din d a arcului (x ik , x ik +1 )) i lungimea noului drum va fi n-1. n restul cazurilor drumul elementar are lungimea mai mic dect n 1 i propoziia este demonstrat. Notm acum prin T(1)(xi) mulimea vrfurilor unui graf G la care se ajunge din xi prin drumuri de lungime 1 (dintr-un singur arc); T(2)(xi) mulimea vrfurilor din G la care se ajunge din xi prin drumuri de lungime 2 (din dou arce) .a.m.d.; conform propoziiei 1, ultima mulime va fi T(n-1)(xi), dac graful G are n vrfuri.
Propoziia 2: Fie G un graf cu n vrfuri, D = (dij), 1 i, j n,

matricea drumurilor lui G. Atunci dij = 1, i j, dac i numai dac xj

UT
s =1

n 1

(s)

( xi ).

Demonstraie: Dac dij = 1 rezult c exist cel puin un drum de la xi la xj. Presupunem c drumul este format din k arce, 1 k n-1; atunci xj T(k)(xi), deci xj
n 1 s =1

UT

(s)

( xi ).

Teoria grafurilor

Reciproc, dac xj

UT
s =1

n 1

(s)

( xi ) , atunci xj aparine cel puin unei

mulimi a reuniunii, fie aceasta T(k)(xi). Adic la xj se ajunge din xi printr-un drum de lungime k, deci dij = 1 i propoziia 2 este demonstrat. Reamintim c adunarea boolean se definete astfel: + 0 1 0 1 0 1 1 1

Cu rezultatele de mai sus dm etapele urmtorului Algoritm pentru determinarea matricei D 1) Asociem grafului dat matricea arcelor A = (aij), 1 i, j n; 2) Construim matricea D, linie cu linie, astfel: pentru determinarea liniei i din D, i = 1, n , urmrim elementele egale cu 1 de pe linia i

din A; dac acestea sunt aip, ..., ais se transcriu n linia i din D i se adun boolean liniile p, ..., s din A la linia i generndu-se noi elemente egale cu 1 pe linia i din D. Fie acestea dik, ..., dim ce indic, conform propoziiei 2, existena drumurilor de la xi la xk, ..., xm, drumuri formate din 2 arce, adic xk, ..., xm T(2)(xi). Adunm boolean liniile k, ..., m din A la linia i, genernd noi elemente egale cu 1 ce vor reprezenta drumurile de la xi la alte vrfuri, formate din 3 arce, .a.m.d. pn cnd ajungem la una din situaiile: a) toate elementele liniei i sunt egale cu 1; b) nu se mai pot genera alte elemente egale cu 1 pe linia i din D i completm locurile rmase libere cu 0.

Modele matematice n economie

3) Procedm analog pentru fiecare linie din D i obinem n final matricea drumurilor.
Exemplu: S se determine matricea D pentru urmtorul graf:

x2 x3 x1 x4 x5
Rezolvare

Matricea arcelor A va fi: A x1 x2 x3 x4 x5 x1 0 1 0 0 1 x2 0 0 0 0 0 x3 0 1 0 1 0 x4 1 0 0 0 1 x5 0 1 0 0 0

Pentru a obine linia 1 din D observm c n A elementul a14 = 1; l transcriem n linia 1 din D, deci d14 = 1 i adunm boolean linia 4 din A la linia 1. Se genereaz elementul d13 = 1, apoi adunm boolean linia 3 din A la linia 1 i observm c nu mai pot fi generate alte elemente egale cu 1 deoarece toate elementele liniei 3 sunt nule. Completm locurile libere din linia 1 a lui D cu 0. S determinm acum linia 2 din D. Observm c n A avem a21 = a23 = a25 = 1 i le prelum n linia 2 din D, apoi adunm boolean liniile 1, 3 i 5 la linia 2. Se obine d24 = 1, deci vom aduna linia 4 din A la 2 i deoarece nu mai pot fi generate alte elemente egale cu 1, completm cu 0 locurile libere.

Teoria grafurilor

Linia 3 din D este linia 3 din A deoarece are toate elementele 0. Pe linia 4 din A avem a43 = 1, l prelum n linia 4 din D, adunm boolean linia 3 din A la linia 4 i nu mai pot fi generate elemente egale cu 1, deci completm cu 0. n sfrit linia 5 din A are a51 = a54 = 1, le prelum n linia 5 din D, adunm boolean linia 1 i 4 din A la linia 5, apare d53 = 1, adunm linia 3 din A la linia 5 i algoritmul ia sfrit cci nu mai pot fi generate elemente egale cu 1. n final matricea D se prezint astfel: A x1 x2 x3 x4 x5 x1 0 1 0 0 1 x2 0 0 0 0 0 x3 1 1 0 1 1 x4 1 1 0 0 1 x5 0 1 0 0 0

Notm cu p(xi) puterea de atingere a vrfului xi prin care nelegem numrul de vrfuri ce pot fi atinse de drumurile ce pornesc din xi, adic numrul elementelor egale cu 1 de pe linia i din D. n exemplul nostru p(x1) = 2, p(x2) = 4, p(x3) = 0, p(x4) = 1, p(x5) = 3. Observaia 1: Matricea D pune n eviden existena circuitelor n graful considerat. Astfel dac dii = 1, graful are un drum ce pleac din xi i revine n xi, deci un circuit. Dac toate elementele diagonalei principale din D sunt egale cu 0, graful nu are circuite. n exemplul de mai sus, graful nu are circuite. Observaia 2: Dac n matricea D a unui graf finit cu n vrfuri fr circuite ordonm liniile i coloanele descresctor dup puterile de atingere ale vrfurilor obinem o nou matrice D = (dij), 1 i, j n, cu toate elementele egale cu 1 deasupra diagonalei principale. ntr-adevr, notnd, x1, ..., xn ordinea liniilor (coloanelor) n D i considernd dij = 1, i < j, rezult c exist cel puin un drum de la xi la xj, deci vrfurile atinse de xj

Modele matematice n economie

vor fi atinse i de xi, adic p(xi) > p(xj) fapt ce atrage aezarea liniei i naintea liniei j, deci dij = 1 se va gsi deasupra diagonalei principale n D. Matricea D se numete matricea triangularizat superior a matricei D. Pentru exemplul nostru, D se prezint astfel: D x2 x5 x1 x4 x3 x2 0 0 0 0 0 x5 1 0 0 0 0 x1 1 1 0 0 0 x4 1 1 1 0 0 x3 1 1 1 1 0

Observaia 3: n matricea D a unui graf fr circuite, primul element egal cu 1 de pe fiecare linie corespunde unui arc din graf. ntradevr, presupunnd prin absurd c primului element pe linia i din D, dij = 1, i corespunde un drum (xi, ..., xm, ..., xj), cu m i, m j, atunci xm are puterea de atingere mai mare ca xj i coloana lui xm o precede pe cea a lui xj. Deci pe linia xi exist elementul dim = 1 care precede dij = 1, ceea ce contrazice ipoteza.

3. Drumuri hamiltoniene ntr-un graf 3.1 Cazul grafurilor fr circuite Teorema 1. (Y.V. Chen). Fie G = (X, U) cu X = x1, ..., xn, orientat

i fr circuite. G conine un drum hamiltonian dac i numai dac


n

p( x ) =
i =1 i

n(n 1) . 2

Teoria grafurilor

Demonstraie: Presupunem c n G exist drumul hamiltonian dH = (x i1 , ..., x in ), unde (i1, ..., in) este o permutare a lui (1, ..., n). Rezult c x i1 atinge toate cele n 1 vrfuri care l succed, deci pe linia lui x i1 din D sunt n 1 elemente egale cu 1. Vrful x i2 atinge n 2 vrfuri i pe linia lui x i2 vor fi n 2 elemente egale cu 1, .a.m.d., pentru fiecare vrf urmtor al drumului hamiltonian numrul elementelor egale cu 1 scade cu cte o unitate pn ajungem la x in a crui putere de atingere este zero. Atunci: n(n 1) . 2

p( xi ) = p( xik ) = (n 1) + (n 2) + ... + 1 + 0 =
i =1 k =1

Reciproc, dac

p( x ) =
i =1 i

n(n 1) i matricea triangularizat D are 2

liniile i coloanele ordonate astfel: x1, ..., xn, din observaia 2 deducem c toate cele

n(n 1) elemente egale cu 1 ale lui D se gsesc deasupra 2 n(n 1) poziii. Observaia 3 ne 2

diagonalei principale unde sunt exact

permite determinarea drumului hamiltonian scriind succesiunea de arce corespunztoare primelor elemente egale cu 1 de pe fiecare linie, adic: (x1, x2), (x2, x3), ..., (xn-1, xn) sau dH: (x1, ..., xn).
Teorema 2. Dac ntr-un graf G orientat i fr circuite exist drum

hamiltonian, el este unic. Demonstraie: Presupunem prin absurd c G are dou drumuri
1) 2) i d (H distincte i hamiltoniene d (H

1) = (x1, ..., xi, ..., xj, ... ,xn) d (H


2) = (x1, ..., xj, ..., xi, ... ,xn) d (H

Modele matematice n economie


1) 2) Din d (H rezult c exist un drum de la xi la xj, iar din d (H rezult

c exist un drum de la xj la xi, adic un circuit, ceea ce contrazice ipoteza. Presupunerea fcut este fals, deci drumul hamiltonian n G este unic. Teoremele 1 i 2 ne permit s dm un Algoritm pentru determinarea drumului hamiltonian ntr-un graf orientat, finit (cu n vrfuri) i fr circuite 1. Determinm matricea A (a arcelor); 2. Determinm matricea D (a drumurilor); 3. a) Dac exist dii = 1, graful are circuite, teoremele 1 i 2 nu se aplic, nu tim dac exist drum hamiltonian; b) Dac toate elementele diagonalei principale din D sunt nule, graful nu are circuite, se aplic teoremele 1 i 2. 4. Calculm p(xi), i = 1, n i apoi a)
n

p( x ) . Apare unul din cazurile:


i =1 i

p( x )
i =1 i

n(n 1) ; din teorema 1 rezult c n G nu exist 2

drum hamiltonian; b)

p( x ) =
i =1 i

n(n 1) , atunci din teorema 1 rezult c exist drum 2

hamiltonian n G, iar din teorema 2 rezult c acesta este unic. 5. Determinm drumul hamiltonian scriind vrfurile grafului n ordinea descresctoare a puterii lor de atingere.
Exemplu

Pentru graful precedent am vzut c era fr circuite i p(x1) = 2, p(x2) = 4, p(x3) = 0, p(x4) = 1, p(x5) = 3. Deci

p(x ) = 10. Dar n = 5 i


i =1 i

Teoria grafurilor

n(n 1) 5 4 = = 10, deci teorema 1 spune c exist drum hamiltonian i 2 2 acesta este dH = (x2, x5, x1, x4, x3) i este unic.

3.2 Cazul grafurilor cu circuite


Prezentm n cele ce urmeaz un algoritm, datorat lui Kaufmann, pentru determinarea drumurilor hamiltoniene ntr-un graf cu circuite. Fie G un graf cu n vrfuri, cu circuite. Determinm pentru G
(k ) matricele latine D(k), 1 k n 1, matrici ale cror elemente d ij ,

1 i,j n, reprezint drumurile elementare de la xi la xj, formate din k arce. Deci ultima matrice D(n-1) va conine toate drumurile hamiltoniene din G.
(1) ), 1 i,j n, se construiete astfel: Matricea D(1) = (d ij

xixj dac exist arcul (xi, xj)


(1) d ij =

0 , dac nu exist arcul (xi, xj).


(1) ij

Din D(1) formm matricea D (1) = ( d

),1 i,j n, cu

(1) ij

xj dac exist arcul (xi, xj) = 0 , dac nu exist arcul (xi, xj).

Deci matricea D (1) se obine din D(1) prin tergerea primei litere a secvenei xi xj din orice csu (i, j) i ea conine vrfurile ce pot fi atinse prin arce de la orice vrf al grafului. Urmtoarele matrici D(2), ..., D(n-1) se construiesc prin operaia L (produsul latin), astfel: D(k) = D(k-1) L D (1), k = 2, ..., n - 1

Modele matematice n economie


(k ) i elementul d ij din D(k) este: xi x i1 ... x ik 1 xj dac toate aceste vrfuri sunt

distincte (se vor lua liniile din D(k-1) cu coloanele din D (1), ca la produsul matricelor) sau este 0, dac nu apar k + 1 vrfuri distincte sau se obine zero pentru toate elementele care particip la nmulire.

Exemplu
S se determine drumurile hamiltoniene n graful: x2 x3 x1 x5 x4

Rezolvare
Observm c graful are circuite (altfel am fi determinat matricea D), de exemplu d = (x3, x5, x1, x2). Determinm pe rnd matricele D(1), D (1), D(2), D(3) i D(4). D(1) x1 x2 x3 x4 x5 x1 0 0 0 0 x5 x1 x1 0 0 0 0 x1 x2 x1 x2 0 0 0 0 x2 x2 0 0 0 0 x3 0 x2 x3 0 0 0 x3 0 x3 0 0 0 x4 0 x2 x4 x3 x4 0 x5 x4 x4 0 x4 x4 0 x4 x5 0 0 x3 x5 0 0 x5 0 0 x5 0 0

D (1) x1 x2 x3 x4 x5

Teoria grafurilor D(2)= D(1)L D (1)

x1 x2 x3 x4 x5
D(3)= D(2)L D (1)

x1 0 0 x3x5x1 0 0 x1 0 x2x3x5x1 0 0 0 x1 0 0 0 0 0

x2 0 0 0 0 x5x1x2 x2 0 0 x3x5x1x2 0 0 x2 0 0 0 0 0

x3 x1x2x3 0 0 0 0

x4 x1x2x4 x2x3x4 x3x5x4 0 0

x5 0 x2x3x5 0 0 0 x5 x1x2x3x5 0 0 0 0 x5 0 0 0 0 0

x1 x2 x3 x4 x5
D(4)= D(3)L D (1)

x3 x4 x1x2x3x4 0 0 0 0 0 0 0 x5x1x2x3 x5x1x2x4 x3 0 0 0 0 0 x4 x1x2x3x5x4 0 x3x5x1x2x4 0 x5x1x2x3x4

x1 x2 x3 x4 x5

Din D(4) citim c exist 3 drumuri hamiltoniene i anume:


1) = (x1, x2, x3, x5, x4) d (H
2) d (H = (x3, x5, x1, x2, x4) 3) = (x5, x1, x2, x3, x4) d (H

( 2) S explicm modul n care, de exemplu, s-a gsit elementul d 34 de

pe linia 3 coloana 4 din matricea D(2). S-a considerat linia 3 din D(1) i
(k ) coloana 4 din D (1) i aplicnd definiia lui d ij , s-a obinut singura

succesiune, diferit de zero, (x3, x5, x4). Dac s-ar mai fi gsit i o alt succesiune n csua (3, 4) din D(2), se scriau una sub alta ambele succesiuni i n calculele urmtoare se inea seama de fiecare n parte.

Modele matematice n economie

4. Drum de valoare optim (rut optim) ntr-un graf


Fie G = (X, U) un graf orientat, cu X = x1, ..., xn i U mulimea arcelor sale. Graful G se va numi graf valuat dac exist o funcie v: U , astfel nct oricare ar fi u = (xi, xj) U, v(u) = v(xi, xj) 0, i, j = 1, n . Numrul v(u) se va numi valoarea arcului u. ntr-o problem economic, v(u) poate s nsemne costul sau durata transportului de la xi la xj, distana dintre vrfurile xi i xj etc. Dac d este un drum n graful valuat G, suma valorilor arcelor sale se va numi valoarea drumului d. n cele ce urmeaz vom dori s determinm valoarea minim a drumurilor de la orice vrf al grafului G la un vrf fixat xn. Fie matricea V = (vij), 1 i, j n, cu 0 vij = ,i=j , dac nu exist arcul (xi, xj).
(k )

v(xi, xj), dac exist arcul (xi, xj)

Notm prin min

valoarea minim a drumurilor dintre xi i xn,

drumuri formate din cel mult k arce, iar prin min valoarea minim a drumurilor de la xi la xn, indiferent de numrul arcelor.

Propoziia 3:
n graful G, cu n vrfuri, orientat i valuat, este adevrat relaia
( k +1)
(k )

min

= min (vij + m jn ), i n, k 1.
1 j n

Justificarea acestei propoziii e dat de principiul de optimalitate al lui Bellman, care pentru problema noastr se enun astfel: drumul optim ntr-un graf este format din subdrumuri optime. i cum orice drum de la xi la

Teoria grafurilor

xn format din cel mult k + 1 arce trebuie s fie format dintr-un arc (xi, xj), ij i un drum de la xj la xn format din cel mult k arce, urmeaz c min
(k )

( k +1)

valoarea minim a drumurilor de la xi la xn formate din cel mult k + 1 arce va fi dat de min (vij + m jn ).
1 j n

Propoziia 4:
Dac pentru graful G din propoziia 1 exist k astfel nct
min = min
(k )
(k ) ( k +1)

, 1 i n, atunci:

min = min . Demonstraie: Formulat altfel, propoziia 4 i anume: exist k

astfel nct min = min

(k )

( k +1)

, atunci: min = min

(k )

(k + s)

, oricare ar fi s , putem

aplica inducia matematic dup s *, astfel: pentru s = 1, proprietatea se verific cu relaia din ipotez. Presupunem adevrat proprietatea pentru s oarecare i demonstrm c e adevrat i pentru s + 1. Dar din propoziia 3, avem:
min
( k + s +1) (k + s)

= min (vij + m jn
j

) i cum n presupunerea de inducie

avem c m jn
min

(k + s)

= m jn , rezult
= min (vij + m jn ) = min
j
(k) ( k +1)

(k)

( k + s +1)

= min

(k )

tot din propoziia 3 i ipoteza propoziiei 4. Pe aceste dou propoziii se bazeaz algoritmul Bellman Kalaba de determinare a drumurilor de valoare minim de la orice vrf al grafului xi la vrful xn fixat. Etapele algoritmului sunt: 1. Se construiete matricea V = (vij), 1 i,j n, corespunztoare grafului dat.

Modele matematice n economie

2. Se ataeaz noi linii matricei V notate succesiv prin


min , min , ... care dau valorile minime ale drumurilor formate din
(1) ( 2)

cel mult 1, 2, ... arce de la orice vrf xi (cap de coloan) la xn fixat, astfel: a) linia min
(1)

ale crei elemente sunt valorile minime ale

drumurilor de la xi, i = 1, n , din G la xn, drumuri formate din cel mult un arc, reprezint valorile arcelor (xi, xn), i = 1, n , deci aceast linie va fi transpusa coloanei lui xn din V; b) presupunem completat linia min i trecem la determinarea elementelor liniei min
( k +1) (k )

( k +1)

. Orice element de pe aceast linie se

calculeaz cu relaia din propoziia 3:


min

= min (vij + m jn ), i = 1, n , ceea ce nseamn c vom


1 j n

(k )

aduna respectiv elementele liniei lui xi din V cu cele ale liniei


min i cea mai mic valoare va fi min
(k ) ( k +1)

c) ataarea de noi linii continu pn cnd se obin dou linii consecutive identice, cnd n baza propoziiei 4 algoritmul ia sfrit i ultima linie conine tocmai valorile minime ale drumurilor de la fiecare vrf cap de coloan la xn fixat. 3) Se determin apoi succesiunea de vrfuri prin care trece drumul de valoare minim (ruta optim), de exemplu, de la xi la xn, astfel: adunm respectiv elementele liniei xi cu cele ale ultimei linii
min
( k +1)

i dac cea mai mic valoare corespunde coloanei lui xk,

primul arc al drumului este (xi, xk). Adunm apoi linia lui xk la ultima i dac cea mai mic valoare corespunde coloanei lui xp,

Teoria grafurilor

urmtorul arc al rutei este (xk, xp), .a.m.d. pn ajungem n xn. Drumul cutat va fi: d = (xi, xk, xp, ..., xn) i valoarea sa va fi min
( k +1)

Observaia 1: Cnd n etapa a 3-a suma minim se obine n dreptul

mai multor coloane, atunci exist mai multe drumuri de valoare minim i se urmrete pn la capt fiecare drum n parte.
Observaia 2: Algoritmul Bellman Kalaba poate fi aplicat i pentru

determinarea drumului de valoare maxim de la orice vrf al grafului la unul fixat cu urmtoarele condiii: a) graful s nu aib circuite; b) vij = - , dac i j i nu exist arcul (xi, xj); c) n etapele 2, 3 i observaia 1, sumele minime se nlocuiesc cu sumele maxime, ntruct propoziiile 3 i 4 sunt adevrate i pentru cazul cnd prin min
(k )

nelegem valoarea maxim a

drumurilor de la xi la xn formate din cel mult k arce.


Observaia 3: La determinarea drumului de valoare minim ntr-un

graf neorientat, fiecare muchie [xi, xj] va fi considerat cu arce (xi, xj) i (xj, xi), iar matricea V va fi simetric.
Exemplu: S se determine drumul de valoare minim de la x1 la x6

n graful urmtor: x2
2 6 3 2

x5
1

x1
3

4 1

x3
5

x6

x4

Modele matematice n economie

Rezolvare

Scriem pentru graful dat matricea V = (vij), 1 i, j 6, care va fi o matrice simetric. V x1 x2 x3 x4 x5 x6


mi 6
(1)
( 2)

x1 0 2 4 3

x2 2 0 3 6

x3 4 3 0 1 2

x4 3 1 0 5 5 5 4 4

x5 6 2 0 1 1 1 1 1

x6 5 1 0 0 0 0 0

mi 6 mi 6 mi 6
(1)

8 7 7

7 6 6

3 3 3

( 3) ( 4)

Linia mi 6 se obine prin transpunerea coloanei lui x6. Primul element al liniei mi 6 este m16 i se determin adunnd respectiv elementele liniei x1 din V cu cele ale liniei mi 6 . Cea mai mic sum este elementul cutat, adic m16 = min0 + , 2 + , 4 + , 3 + 5,
+ 1, + 0 = 8.
( 2) (1) ( 2) ( 2)

Elementele urmtoare ale liniei mi 6 se determin n acelai mod, pstrnd fix linia mi 6 dar modificnd pe rnd linia din V cu x2, x3, ..., x6. Pentru linia mi 6 se ia linia mi 6 i se adun pe rnd cu liniile x1, ..., x6 din V, reinnd cea mai mic sum. n mod asemntor procedm pentru linia mi 6 , lund linia mi 6 i adunnd-o pe rnd cu liniile x1, ... , x6. Observm c ultimele dou linii sunt identice i algoritmul ia sfrit.
( 4) ( 3) ( 3) ( 2) (1)

( 2)

Teoria grafurilor

Valoarea minim a drumurilor de la x1 la x6 este dat de elementul m16 = 7. Pentru determinarea succesiunii de vrfuri prin care trece drumul cutat, ce pornete din x1, adunm elementele liniei x1 cu respectiv cele ale ultimei linii adugate, mi 6 . Obinem: min0 + 7; 2 + 6; 4 + 3; 3 + 4, + 1; + 0 = 7 care n afara coloanei lui x1 mai corespunde i coloanelor x3 i x4. Deci drumul cutat nu e unic. Marcm elementele de pe linia lui x1 aflate la intersecia cu coloanele x3 i x4 n mod diferit i continum cutarea drumului dat de un marcaj, de exemplu cel care are primul arc (x1, x3) de valoare 4. Adunm apoi linia lui x3 la ultima i min4+7; 3+6; 0+3; 1+4; 2+1; + 0 = 3 corespunde coloanei lui x5 (n afara lui x3) i marcm elementul 2 de pe linia x3 i coloana x5. Acesta reprezint valoarea arcului (x3, x5), urmtorul din drum. n sfrit adunm linia lui x5 cu ultima linie, mi 6 , cea mai mic sum este 1 i corespunde coloanei lui x6, deci ultimul arc este (x5, x6) i are valoarea 1. Drumul dat de primul marcaj este: d1: x1 x3 x5 x6 de valoare 7. Procednd analog cu al doilea marcaj, vom gsi d2: x1 x4 x3 x5 x6 cu aceeai valoare egal cu 7.
Observaia 4: n matricea V ultima coloan va fi a vrfului ce
3 1 2 1 4 2 1
( 4) ( 4)

( 4)

ncheie drumul cutat.


Observaia 5: Propoziiile 3 i 4 mai pot fi folosite pentru construirea

unui algoritm de determinare a rutelor optime ntre oricare dou vrfuri ale
grafului G considerat.

Modele matematice n economie

Pentru prezentarea acestui algoritm introducem o operaie ntre dou matrici, notat *, astfel: Dac A = (aij) i B = (bij), atunci A * B = C, unde C = (cij), cu cij = min (aik + bkj), () i, j = 1, n , dac se caut ruta de valoare minim.
1 k n

Notm M(k) = ( mij ) i M = ( mij ), i, j = 1, n , k = 1, n 1 .

(k )

Etapele algoritmului sunt:


1) Se construiete matricea V = (vij), i, j = 1, n 2) Se determin, prin operaia de mai sus, matricele: M(2) = V * V, M(3) = M(2) * V, .a.m.d. pn cnd M(k+1) = M(k), cnd n baza propoziiei 4 algoritmul ia sfrit. Atunci M(k+1) = M = ( mij ) i elementele mij sunt valorile minime ale drumurilor de la xi la xj, formate din oricte arce. 3) Pentru a determina vrfurile prin care trece drumul de valoare minim, de exemplu de la xi la xj, transpunem linia lui xi din V peste coloana lui xj din M i efectum sumele perechilor de elemente cutnd suma (sumele) cu valoarea minim egal cu

mij . Dac aceast sum se afl pe linia lui xk, primul arc al
drumului cutat este (xi, xk). Transpunem apoi linia lui xk din V peste coloana lui xj din M i n mod asemntor determinm urmtorul vrf al rutei, .a.m.d., pn ajungem n xj.

Observaia 4.a: Pentru a mri viteza de calcul putem determina


matricele M(K) n urmtoarea ordine: M(2), M(4) = M(2) * M(2), M(8) = M(4) * M(4) .a.m.d. pn cnd ultimele dou vor coincide.

Teoria grafurilor

Observaia 4.b: Dac n etapa a treia suma minim corespunde la


dou sau mai multe vrfuri, ruta optim nu e unic i se cerceteaz fiecare n parte, marcndu-le diferit.

Observaia 4. c: Algoritmul acesta poate fi aplicat i n determinarea


drumului de valoare maxim n graful G cu urmtoarele condiii: - graful s nu aib circuite; - n matricea V, vij = - , cnd nu exist arcul (xi, xj); - cij = max (aik + bkj), i,j = 1, n ;
1 k n

- n etapele 2, 3 i observaia 4.b, sumele minime se nlocuiesc cu sumele maxime.


Exemplu. S se determine valorile minime ale drumurilor dintre

oricare dou vrfuri ale urmtorului graf. x2


7 5

x3
4

x1
5

2 6 1

x4
3

x5
Rezolvare

Matricea V, determinat cu definiia elementelor vij este: V x1 x2 x3 x4 x5 x1 0 x2 7 0 x3 2 0 x4 4 4 0 x5 5 1 3 0

Modele matematice n economie

Determinm matricea M(2) = V * V i obinem: M(2) x1 x2 x3 x4 x5 unde, de exemplu, m15


( 2) ( 2)

x1 0 0

x2 7 0 5

x3 2 0

x4 6 4 0

x5 3 1 3 0

este cea mai mic sum obinut adunnd

elementele liniei lui x1 cu cele ale coloanei lui x5 din V, adic


m15 = min(0 + 5; 7 + ; 2 + 1; 4 + 3; 5 + 0) = 3

Analog vom calcula M(4) = M(2) * M(2) i obinem: M(4) x1 x2 x3 x4 x5 x1 0 0 x2 7 0 5 x3 2 0 x4 6 4 0 x5 3 1 3 0

adic M(4) = M(2) = M i algoritmul se oprete. Pentru ilustrarea procedurii,


m12 = 7 este valoarea minim a drumurilor de la x1 la x2. Aceste drumuri,

obinute aplicnd procedeul din etapa 3, sunt: d1: x1 x2 i d2: x1 x3 x2.


7 2 5

5. Drumul critic

O aplicaie important a rutelor optime o ntlnim n determinarea


drumului critic ntr-un graf.

Teoria grafurilor

S considerm un graf G finit, orientat, valuat i fr circuite, care modeleaz o problem de cercetare dezvoltare (R & D) sau investiional pentru care este necesar un plan de activiti, adic un complex de sarcini limitate n timp i spaiu. O stare oarecare n realizarea proiectului o vom numi eveniment i o vom reprezenta printr-un vrf al grafului; orice poriune de proiect avnd un nceput i un sfrit n evenimente distincte i deci care consum o durat de timp o vom numi activitate i o vom reprezenta printrun arc. Timpul necesar unei activiti reprezentate de un arc este valoarea arcului respectiv i l vom numi timp operativ. Graful mai are un eveniment
de debut vrful x0 i un eveniment final vrful xn.

S presupunem c am stabilit graful unui program i ne-am convins c nu are circuite. Ne ntrebm care este data realizrii ansamblului de activiti, adic durata programului de realizat. Aceast durat nu poate fi inferioar sumei timpilor operativi luai pe drumul cel mai nefavorabil de la x0 la xn, adic ce d ntre aceste dou puncte o sum maxim de timpi operativi. Acest drum (pot exista mai multe) se va numi drum critic. O mai bun nelegere o vom obine pe graful alturat: x2
3 5 10

x1

x3

Evenimentul x3 reprezint realizarea a trei activiti (operaii): (x1, x2), (x1, x3) i (x2, x3). Se vede c vor trebui 10 uniti de timp pentru ca aceste activiti s se realizeze. Lund pentru durata ansamblului de lucrri suma timpilor operatori de pe drumul cel mai nefavorabil de la x0 la xn, ne asigurm ca toate operaiile prevzute s poat fi realizate. Calculul duratei de realizare a lui

Modele matematice n economie

xn revine la cutarea n graf a drumului critic. Vrfurile drumului critic se numesc evenimente critice, iar arcele lui activiti critice. Operaiunile de pe drumul critic nu pot fi amnate. Celelalte evenimente sau activiti necritice, ce pot fi amnate, trebuie analizate ca nu cumva amnarea lor prea mare s duneze programului. n cele ce urmeaz prezentm metoda PERT (program de evaluare i revizuire a obiectivelor) de determinare a drumului critic. Aceasta const din urmtoarele etape: 1) Scriem matricea arcelor A, determinm matricea drumurilor D i ne asigurm c graful nu are circuite; 2) Dac graful nu are circuite, scriem matricea D (triangularizata lui D) i i asociem apoi matricea V (a valorilor arcelor) triangularizat; 3) Determinm matricea M (a valorilor maxime ale drumurilor dintre oricare dou vrfuri ale grafului, deci l vom avea i pe cel de la x0 la xn drumul critic) cu al doilea algoritm din paragraful precedent; 4) Se determin drumul critic (drumul de valoare maxim de la x0 la xn), evenimentele i activitile critice; 5) Se determin rezervele de timp (marjele) pentru toate evenimentele i activitile necritice, dnd prioritate operaiilor cu marja mai mic. Deci trebuie cunoscut pentru fiecare eveniment xi necritic data sa limit de realizare, dat de la depirea creia tot programul va fi ntrziat. Timpul necesar pentru realizarea operaiunilor situate ntre xi i xn se obine cutnd n matricea M valoarea maxim a drumului de la xi la xn, pe care o notm prin v[dmax(xi, xn)]. Astfel ne asigurm ca operaiile ce succed

Teoria grafurilor

lui xi s poat fi realizate. Durata limit cutat (timpul cel mai ntrziat de realizare a lui xi, notat prin t ti va fi dat de:

t ti = v[dmax(x0, xn)] v[dmax(xi, xn)]. Dac notm prin t id - timpul cel mai devreme de realizare a evenimentului xi, el va fi dat de v[dmax(x0, xi)]. Atunci marja evenimentului xi va fi t ti - t id , evident nenegativ. n funcie de valoarea marjei, evenimentele sunt critice (cu marja egal cu zero) sau necritice (cu marja pozitiv). O cercetare asemntoare poate fi fcut i n funcie de activiti. Se asociaz oricrei activiti (xi, xj), i j, urmtoarele momente de timp: 1) t id - timpul cel mai devreme de ncepere a activitii (xi, xj), care este ntocmai v[dmax(x0, xi)]; 2) t tj - timpul cel mai ntrziat de terminare a activitii (xi, xj), care este v[dmax(x0, xn)] v[dmax(xj, xn)]; 3) t ti - timpul cel mai ntrziat de ncepere a activitii (xi, xj) este egal cu t tj - vij (valoarea arcului (xi, xj)); 4) t dj - timpul cel mai devreme de terminare a activitii (xi, xj) este egal cu t id + vij.
Aplicaie

Integrarea Romniei n structurile europene necesit nfptuirea, ntrun sector economic, a unui obiectiv, a crei finalizare este posibil prin

Modele matematice n economie

realizarea ntr-o ordine bine stabilit a unor evenimente, conform urmtorului graf: x1
3 6 5 7

x4
2 10 3 5

x0
4

x2
3 9

x6
4

x5

x3 Considernd cunoscute duratele de parcurgere a fiecrei etape de reform n sptmni valorile arcelor, se cere:
a) care este data cea mai apropiat a nfptuirii obiectivului? b) care este data cea mai apropiat i cea mai ndeprtat a fiecrui

eveniment din planul de nfptuire a obiectivului?


c) s se stabileasc modul de supraveghere a ndeplinirii planului

pentru a se evita sau reduce ntrzierile.


Rezolvare a) Determinm matricea arcelor A

A x0 x1 x2 x3 x4 x5 x6

x0 0 0 0 0 0 0 0

x1 1 0 0 0 0 0 0

x2 1 1 0 1 0 0 0

x3 1 0 0 0 0 0 0

x4 0 1 1 0 0 0 0

x5 0 0 1 1 1 0 0

x6 0 0 1 0 1 1 0

Teoria grafurilor

Determinm matricea drumurilor D ca s vedem dac graful are circuite. Dac nu are, atam lui D coloana puterilor de atingere p(xi), i = 0,6 , pentru a obine matricea triangularizat D. D x0 x1 x2 x3 x4 x5 x6 x0 0 0 0 0 0 0 0 x1 1 0 0 0 0 0 0 x2 1 1 0 1 0 0 0 x3 1 0 0 0 0 0 0 x4 1 1 1 1 0 0 0 x5 1 1 1 1 1 0 0 x6 1 1 1 1 1 1 0 p(xi) 6 4 3 4 2 1 0

Graful nu are circuite i D se obine din D prin schimbarea ordinii ntre x2 i x3, att pe linii ct i pe coloane. D x0 x1 x3 x2 x4 x5 x6 x0 0 0 0 0 0 0 0 x1 1 0 0 0 0 0 0 x3 1 1 1 0 0 0 0 x2 1 0 0 0 0 0 0 x4 1 1 1 1 0 0 0 x5 1 1 1 1 1 0 0 x6 1 1 1 1 1 1 0

Scriem acum matricea V cu ordinea vrfurilor din D: V x0 x1 x3 x2 x4 x5 x6 x0 0 - - - - - - x1 3 0 - - - - - x3 4 - 0 - - - - x2 5 6 3 0 - - - x4 - 7 - 2 0 - - x5 - - 9 7 5 0 - x6 - - - 10 3 4 0

Determinm matricea M(2) = V * V, unde elementele


mij = max (vik + vkj), () i, j = 0,6 .
0 k 6

( 2)

Modele matematice n economie

Obinem: M(2) x0 x1 x3 x2 x4 x5 x6 x0 0 - - - - - - x1 3 0 - - - - - x3 4 - 0 - - - -
( 2)

x2 9 6 3 0 - - -

x4 10 8 5 2 0 - -

x5 13 13 10 7 5 0 -

x6 15 16 13 11 9 4 0

n care, de exemplu, elementul m35 se obine transpunnd linia lui x3 din V pe coloana lui x5; apoi efectum suma coloanelor obinute i reinem cea mai mare valoare. Astfel:
( 2)

m35 = max- + (-), - + (-), 9 + 0, 7 + 3, 5 + 5, 0 + 10, - + 13 = 10.


Apoi calculm M(3) = M(2) * V, M(4) = M(3) * V i observm c M(3) = M(4), deci M(3) = M, unde M este matricea valorilor maxime ale drumurilor dintre oricare dou vrfuri ale grafului, drumuri formate din oricte arce. Obinem: M x0 x1 x3 x2 x4 x5 x6 x0 0 - - - - - - x1 3 0 - - - - - x3 4 - 0 - - - - x2 9 6 3 0 - - - x4 11 8 5 7 0 - - x5 16 13 10 7 5 0 - x6 20 17 14 11 9 4 0

de unde citim v[dmax(x0, x6)] = 20 = m06 Deci obiectivul poate fi nfptuit cel mai devreme n 20 de sptmni.

Teoria grafurilor

b) Pentru determinarea vrfurilor prin care trece drumul critic,

procedm ca n etapa a 3-a a celui de-al doilea algoritm din paragraful 4. Astfel, transpunem linia lui x0 din V peste coloana lui x6 din M, efectum sumele perechilor de elemente, reinnd valoarea maxim egal cu m 06 = 20. Avem: max0 + 20; 3 + 17; 4 + 14; 5 + 11; - +9; -+4; -+0 = 20 Aceast sum s-a gsit pe linia lui x1, deci primul arc al drumului critic este (x0, x1). Apoi transpunem linia lui x1 din V peste coloana lui x6 din M i cea mai mare valoare va corespunde liniei lui x2, urmtorul arc fiind (x1, x2), .a.m.d.. Se gsesc dou drumuri critice; evident au aceeai valoare 20. d1 = x0 x1 x2 x4 x5 x6 d2 = x0 x1 x2 x5 x6 Evenimentele critice sunt: x0, x1, x2, x4, x5, x6. Evenimentul xi x0 x1 x3 x2 x4 x5 x6 t id 0 3 4 9 11 16 20 t ti 0 3 6 9 11 16 20 Marja (t ti -t id ) 0 0 2 0 0 0 0

unde t id = v[dmax(x0, xi)], i = 1,6 , se citesc pe linia lui x0 n M, iar t ti = v[dmax(x0, x6)] v[dmax(xi, x6)] = 20 v[dmax(xi, x6)], unde v[dmax(xi, x6)], i = 0,6 , se citesc pe coloana lui x6 din M. Din tabel rezult c singurul eveniment ce mai poate admite o ntrziere este x3, cu cel mult 2 sptmni.

Modele matematice n economie

c). Activitile critice sunt reprezentate de arcele ce intr n

componena drumurilor critice. Pentru o analiz a posibilelor ntrzieri, organizm calculele n urmtorul tabel:
Activiti t id vij t tj t ti t dj Marja

(x0, x1) (x0, x2) (x0, x3) (x1, x2) (x1, x4) (x3, x2) (x3, x5) (x2, x4) (x2, x5) (x2, x6) (x4, x5) (x4, x6) (x5, x6)

0 0 0 3 3 4 4 9 9 9 11 11 16

3 5 4 6 7 3 9 2 7 10 5 3 4

3 9 6 9 11 9 16 11 16 20 16 20 20

0 4 2 3 4 6 7 9 9 10 11 17 16

3 5 4 9 10 7 13 11 16 19 16 14 20

0 4 2 0 1 2 3 0 0 1 0 6 0

S explicm, de exemplu, cum a fost completat linia activitii


d = v[dmax(x0, x3)] = 4, citit n M linia x0 i coloana x3; (x3, x5). t id = t 3

vij = v35 = 9 din graf sau din V; t tj = t t5 = v[dmax(x0, x6)] v[dmax(x5, x6)] = = 20 4 = 16, primul termen citit pe linia lui x0 i coloana lui x6, iar al doilea termen pe linia lui x5 i coloana 6 din M; t ti = t tj - vij, n cazul nostru t t3 = t t5 - v35 = 16 9 = 7 (adic elementele coloanei t ti se obin scznd din
d d coloana t tj coloana vij); t dj = t id + vij, devine t 5 = t3 + v35 = 4 + 9 = 13

(adic elementele coloanei t dj se obin adunnd respectiv elementele coloanelor t id i vij). Marja este dat de t ti - t id sau t tj - t dj , n cazul nostru
d d t t3 - t 3 = t t5 - t 5 = 7 4 = 16 13 = 3.

Teoria grafurilor

Activitile critice au marja zero, iar celelalte trebuie supravegheate n funcie de mrimea marjei, n ordinea cresctoare a acesteia.

6. Arbori

Dac G este un graf neorientat i [x, y] o muchie a sa, spunem c vrfurile x i y sunt adiacente n graful dat i de asemenea, c vrfurile x i y sunt incidente cu muchia [x, y]. Gradul unui vrf x este numrul muchiilor incidente cu vrful x. Un vrf cu gradul egal cu 1 se numete vrf terminal al grafului G.

Definiie: Un graf neorientat, finit, conex i fr cicluri se numete arbore. Propoziia 5. Dac G este un arbore, atunci el are urmtoarele
proprieti: 1) ntre dou vrfuri oarecare ale lui G exist un lan i numai unul; 2) dac n G se suprim o muchie, G nu mai este arbore; 3) dac n G se introduce o nou muchie, G nu mai este arbore; 4) orice arbore cu n vrfuri, n 2, conine cel puin 2 vrfuri terminale; 5) orice arbore cu n vrfuri are n 1 muchii.
Demonstraie: 1) ntr-adevr, absena lanului nseamn c G nu e conex, iar

existena a dou lanuri implic formarea unui ciclu, situaie exclus prin definiie;
2) Presupunem prin absurd c graful G1 obinut din G prin

suprimarea muchiei [x, y] este conex. Deci exist un lan n G1 de

Modele matematice n economie

extremiti x i y, care mpreun cu muchia suprimat [x, y] formeaz un ciclu n G, fapt ce contrazice definiia arborelui G.

Observaia 1:
Un graf conex n care dac suprimm o muchie oarecare graful obinut devine neconex se cheam graf conex minimal. Deci orice arbore este un graf conex minimal. Reciproca acestei afirmaii este valabil. ntradevr, presupunem prin absurd c graful conex minimal G nu este arbore i conine un ciclu [x, z1, ..., zk, y, x]. Suprimnd muchia [x, y], se obine un nou graf G1 care este conex, deoarece n orice lan dintre dou vrfuri oarecare u i v ale lui G care conine muchia [x, y] putem nlocui aceast muchie prin lanul [x, z1, ..., zk, y] care exist i n G1, obinnd un lan ntre u i v din G1. Deci G1 este conex, ceea ce contrazice faptul c G este graf conex minimal. Rezult c G este fr cicluri, deci G este arbore.
3) fie x i y dou vrfuri neadiacente n G. Din proprietatea 1)

rezult c ntre ele exist un lan de extremiti x i y. Prin adugarea muchiei [x, y] se formeaz un ciclu, deci G nu mai este arbore.

Observaia 2:
Un graf fr cicluri n care dac adugm o muchie oarecare graful va conine un ciclu se numete graf fr cicluri maximal. Deci orice arbore este un graf fr cicluri maximal. Reciproca acestei afirmaii este adevrat. ntr-adevr, fie G un graf fr cicluri maximal. S artm c G este conex. Presupunem prin absurd c G nu este conex, deci exist vrfurile x i y ntre care nu exist un lan. Prin adugarea muchiei [x, y] se formeaz graful G1 care nu poate conine un ciclu pentru c G nu conine cicluri i ntre x i y nu exist nici un lan.

Teoria grafurilor

Apariia lui G1 fr cicluri contrazice ipoteza c G este un graf fr cicluri maximal. Deci G este conex i cum nu are cicluri este arbore.
4) Presupunem prin absurd c exist un arbore G cu n 2 vrfuri

care are cel mult un vrf terminal i fie [x, z1, ..., zp, y] un lan elementar care conine un numr maxim de muchii (de lungime maxim). Cel puin una dintre extremitile lanului are gradul mai mare sau egal cu 2, deoarece am presupus c arborele are cel mult un vrf terminal. Fie aceast extremitate x, deci x mai este adiacent cu un vrf al arborelui G i anume cu unul din vrfurile lanului de lungime maxim considerat. Dar atunci se produce un ciclu i se contrazice definiia arborelui. Presupunerea fcut este fals i proprietatea este demonstrat.
5) Demonstraia se face prin inducie dup n. Pentru n = 2, exist

arbore format din muchia ce unete cele 2 vrfuri. Presupunem c orice arbore cu n vrfuri are n 1 muchii. Fie G un arbore cu n + 1 vrfuri care conform proprietii 4 are cel puin un vrf terminal x. Suprimnd din G vrful x i muchia incident cu x, se obine subgraful G1, cu n vrfuri. Deoarece G nu conine cicluri, rezult c nici G1 nu conine cicluri. S artm c G1 este conex. Fie y i z dou vrfuri oarecare, diferite ntre ele i diferite i de x, ale lui G. Din 1) rezult c ntre y i z exist un singur lan, care nu trece prin x (vrf terminal), deci este un lan de extremiti y i z i n G1. Rezult c G1 este conex, deci este arbore. Dar G1 are n vrfuri i deci aplicnd ipoteza de inducie G1 are n 1 muchii. Dar G conine n plus fa de G1 muchia incident cu x, deci G are n muchii i proprietatea 5 este demonstrat.

Modele matematice n economie

Definiie: Un graf parial G al unui graf G cu proprietatea c G este


arbore se numete arbore parial al lui G.
Teorema 3.

Condiia necesar i suficient ca printre grafurile pariale ale lui G s existe arbori este ca G s fie conex.
Demonstraie:

Condiia este necesar deoarece dac G nu este conex orice graf parial are aceeai proprietate, deci nu poate fi arbore. S artm acum c orice graf conex G conine un arbore parial G. Dac G este un arbore conex minimal, conform observaiei 1, el este arbore, deci G = G. n caz contrar, exist cel puin o muchie [x, y] a lui G care prin suprimare ne conduce la graful G conex. Apoi din G suprimm o alt muchie .a.m.d. pn obinem un graf conex minimal, care va fi arbore parial al lui G.

Observaia 3: Deoarece, dac graful are n vrfuri, el va avea cel mult


C2 n muchii, procedeul de suprimare descris are un numr finit de pai. n afar de unele cazuri particulare, exist mai muli arbori ntr-un graf G neorientat i conex. De aceea, dac definim pe mulimea U a muchiilor, valorile acestora, apare necesitatea de a determina arborele pentru care suma valorilor ataate muchiilor s fie minim. Un astfel de arbore de valoare minim se gsete cu algoritmul lui Kruskal. Vom presupune n cele ce urmeaz, pentru a facilita prezentarea algoritmului c: i) graful G cu n vrfuri este complet, adic oricare ar fi vrfurile sale xi i xj, exist muchia [xi, xj]; ii) valorile ataate muchiilor sunt toate distincte, deci mulimea acestor valori este strict ordonat.

Teoria grafurilor

Algoritmul Kruskal
n condiiile i) i ii) de mai sus, va exista muchia u1 cu valoarea cea mai mic, u2 cu valoarea imediat urmtoare, u3 cu valoarea care urmeaz, dar care nu formeaz un ciclu cu precedentele .a.m.d., eliminnd muchiile care ar forma cicluri cu cele reinute. i cum G are un numr finit de vrfuri i de muchii, va exista un rang k peste care nu se poate trece fr a se forma un ciclu. Deci: f(u1) < f(u2) < f(u3) < ... < f(uk) muchiei ui, i = 1, k . Obinem astfel un graf fr cicluri, maximal, care conform observaiei 2 este un arbore, pentru care, din proprietatea 5, k = n 1.
Teorema 3.

unde

f(ui)

este

valoarea

Arborele G = (X, U), unde U = u1, ..., uk determinat prin algoritmul Kruskal are valoarea minim.
Demonstraie:

Presupunem prin absurd, c exist un arbore G = (X, U), cu U = u1, ..., uk, G G, de valoare minim. Fie ui prima muchie din G (n ordinea cresctoare a valorilor) care nu exist n G. Graful parial format cu muchiile lui G, la care se adaug ui nu este arbore pentru c, n baza proprietii 3, apare un ciclu. Exist deci o muchie uj G i deoarece primele i 1 muchii ale lui G sunt i ale lui G, vom avea f(uj) > f(ui). Dac n G se nlocuiete uj cu ui se obine tot un arbore, numrul de muchii rmne tot k = n 1, cu valoarea total mai mic dect G, ceea ce contrazice ipoteza c G e minim. De aici rezult c G este arborele de valoare minim i c el este unic, cnd toate muchiile sunt de valori distincte.

Modele matematice n economie

Observaia 4: nlturarea restriciilor privitoare la completitudinea


grafului se realizeaz atribuind valoarea + muchiilor care lipsesc. Acestea nu vor intra n componena arborelui cutat, numrul muchiilor rmnnd n 1.

Observaia 5: Dac n graful conex G valorile muchiilor nu sunt


toate distincte i presupunem c: f(ui) = ... = f(ui+p) putem efectua o modificare a valorilor funciei f, astfel: f(ui) f(ui) + 0 f(ui+1) f(ui+1) + 1

f(ui+p) f(ui+p) + p numerele s, s = 0, p , fiind alese astfel nct s nu se afecteze ordinea valorilor acestor muchii fa de celelalte. Cu acestea, ordinea valorilor muchiilor devine strict, n final punndu-se s = 0, s = 0, p . n general, dac exist mai multe muchii cu aceeai valoare, pentru graful G conex, pot exista mai multe posibiliti de alegere a unei muchii de valoare minim care nu formeaz cicluri cu muchiile deja alese, deci pot exista mai muli arbori de valoare minim.
Exemplu:

S se determine arborele minimal (de valoare minim) pentru urmtorul graf.

Teoria grafurilor

x2
35 30

x5 x3
36 65

x1
50

35 40 42 60 50 55 60

x7

x4
Rezolvare

x6

Pentru a pstra o ordine scriem partea de deasupra diagonalei principale din matricea valorilor muchiilor. Se obine: x1 x2 x3 x4 x5 x6 x7 x1 x2 35 x3 35 30 x4 50 42 40 x5 36 60 x6 50 55 x7 65 60 -

Muchia [x2, x3] de lungime minim o reinem n arbore. Apoi exist dou muchii [x1, x2] i [x1, x3] de lungime 35. O alegem, de exemplu, pe [x1, x2] iar [x1, x3] nu poate fi aleas deoarece ar forma ciclu [x1, x2, x3, x1] cu muchiile deja alese. Urmtoarea valoare n ordine cresctoare este 36 i corespunde muchiei [x3, x5] ce poate fi aleas (nu formeaz cicluri), apoi [x3, x4] de valoare 40. Muchia [x2, x4] de valoare 42 nu se alege (formeaz ciclu). Urmtoarea valoare este 50 pentru [x3, x6], se reine, n vreme ce [x1, x4] nu se reine (formeaz ciclu). Dintre muchiile de valoare 60 se reine doar [x6, x7]. S-au reinut astfel 6 muchii, attea ct va avea arborele cutat.

Modele matematice n economie

x2
35 30

x5 x3
36

x1

40 50 60

x7

x4

x6

Arborele cutat are valoarea 251 dat de suma valorilor muchiilor.

Observaia 1: Dac n locul muchiei [x1, x2] am fi ales [x1, x3]


ambele de valoare 35 am fi obinut un alt arbore minimal.

Observaia 2: Algoritmul Kruskal poate fi aplicat i n determinarea


arborelui maximal (de valoare maxim) cu deosebirea c alegerea muchiilor se face n ordinea descresctoare a valorii lor, cu aceeai grij ca orice muchie aleas s nu formeze cicluri cu cele alese anterior.

Observaia 3: Cu ajutorul arborelui minimal putem determina un lan


hamiltonian de valoare ct mai mic, n graful dat, avnd grij ca orice vrf al lanului s aib gradul cel mult 2. n exemplul nostru numai vrful x3 nu ndeplinete aceast condiie. Deci trebuie s facem ca i el s aib gradul 2. Dac renunm la [x3, x6] i introducem [x5, x6], gradul lui x3 va fi 3 n loc de 4. Mai renunm i la [x3, x4] i introducem [x1, x4] i astfel s-a obinut lanul hamiltonian x4 x1 x2 x3 x5 x6 x7 de valoare 266.

Teoria grafurilor

7. Probleme 1. Fie graful G = (X, T), X = x1, x2, x3, x4, x5 i T(x1) = x4;

T(x2) = x1, x5; T(x3) = x1, x2, x4, x5; T(x4) = ; T(x5) = x1, x4. Se cere: a) s se reprezinte geometric graful G; b) s se scrie un drum de lungime 3 din G; c) s se determine matricea drumurilor D; d) s se cerceteze existena circuitelor n G; e) s se cerceteze existena drumurilor hamiltoniene.
Rezolvare a) Reprezentarea geometric este:

x2 x1 x3 x5 x4
b) d = (x3, x2, x1, x4) c) Scriem matricea A apoi determinm, cu algoritmul obinut,

matricea D. A x1 x2 x3 x4 x5 x1 0 1 1 0 1 x2 0 0 1 0 0 x3 0 0 0 0 0 x4 1 0 1 0 1 x5 0 1 1 0 0 D x1 x2 x3 x4 x5 x1 0 1 1 0 1 x2 0 0 1 0 0 x3 0 0 0 0 0 x4 1 1 1 0 1 x5 0 1 1 0 0 p(xi) 1 3 4 0 2

Modele matematice n economie

Pentru a obine, de exemplu, linia lui x2 n D, am preluat elementele egale cu 1 de pe linia lui x2 din A n D. Apoi pentru c avem 1 pe coloana lui x1, adunm boolean linia lui x1 din A la cea a lui x2 i mai apare un 1 pe coloana lui x4. Pentru c avem 1 pe coloana lui x5, adunm boolean linia lui x5 la cea a lui x2 i nu mai obinem alt element egal cu 1. Avem i un 1 pe coloana lui x4, adunm linia lui x4 din A la cea a lui x2 i nu mai obinem alte elemente de 1; completm locurile libere cu zerouri. Repetm raionamentul pentru fiecare linie i obinem matricea D.
d) Pe diagonala principal a matricei D toate elementele sunt egale

cu 0, deci graful nu are circuite.


e) Graful neavnd circuite, aplicm teorema lui Y.V. Chen,

determinnd puterile de atingere ale vrfurilor. Adugm matricei D coloana p(xi) cu valorile: p(x1) = 1, p(x2) = 3, p(x3) = 4, p(x4) = 0, p(x5) = 2. Deoarece n = 5,
5

p( x ) = 10 , iar
i =1 i

n(n 1) 5 4 = 10 , rezult c = 2 2

exist drum hamiltonian pe care l obinem scriind vrfurile grafului n ordinea descresctoare a puterii lor de atingere, adic: dH = (x3, x2, x5, x1, x4).
2. Fie graful G = (X, U), X = x1, x2, x3, x4, x5 i

U = (x1, x3), (x1, x4), (x2, x1), (x2, x5), (x3, x4), (x4, x2), (x4, x5), (x3, x2). Se cere: a) s se reprezinte geometric graful G; b) s se cerceteze dac are circuite; c) s se cerceteze dac are drumuri hamiltoniene.

Teoria grafurilor

Rezolvare a)

x2 x5 x1 x4 x3
b) Fr s mai determinm matricea D se observ c exist circuitul

d = (x2, x1, x4, x2). Deci graful are circuite.


c) Cercetm existena drumurilor hamiltoniene cu algoritmul

Kaufmann deoarece graful are circuite. 0 0 x2x1 0 0 x3x2 0 x4x2 0 0


0 0 x3x2x1 x4x2x1 0 x1x3x2 x1x4x2 0 x3x4x2 0 0

D(1) x1x3 x1x4 0 0 x2x5 0 0 x3x4 0 0 x4x5 0 0 0 0


x1x4x5 0 x3x2x5 x3x4x5 x4x2x5 0 0

x1

D (1) x3 x4
x2 x2 x4

x5 x5

D(2) = D(1) L D (1) 0 x1x3x4 x2x1x3 0 0 0 x2x1x4 0 0 0

D(3) = D(2)L D x1x3x4x2 0 0 0 0 0 0 0 x4x2x1x3 0

(1)

0 x2x1x3x4 x3x2x1x4 0 0

0 x3x4x2x1 0 0

x1x3x2x5 x1x4x2x5 x1x3x4x5 x2x1x4x2 x3x4x2x5 0 0

0 0 0 0 0

0 0 0 0 0

D(4) = D(3)L D (1) 0 0 x1x3x4x2x5 0 0 x2x1x3x4x5 0 0 x3x2x1x4x5 0 0 0 0 0 0

Modele matematice n economie

Matricea D(4) conine drumurile elementare formate din 4 arce, deci ce trec prin 5 vrfuri, adic prin toate vrfurile grafului. Aceste drumuri sunt i hamiltoniene i avem:
1) = (x1, x3, x4, x2, x5) d (H
2) = (x2, x1, x3, x4, x5) d (H 3) = (x3, x2, x1, x4, x5). d (H

3. Un sistem de comunicare a datelor ntre 5 obiective are ca model

graful de mai jos. Posibilitile de comunicare ntre obiective sunt figurate prin arce, iar costul unei comunicri este valoarea arcului. Se cere: a) s se determine comunicrile de cost minim la x5; b) s se determine comunicrile de cost minim ntre oricare dou obiective. x2
3 4 1 6 2 3

1 2 5

x3

x1

1 4

x5

x4

Rezolvare a) Trebuie s determinm rutele de valoare minim de la orice vrf

la vrful x5. Se aplic algoritmul Bellman Kalaba.

Teoria grafurilor

V x1 x2 x3 x4 x5

mi 5 mi 5 mi 5

(1)

x1 0 3 6 5 4 4

x2 4 0 1 3 1 1 1 1

x3 2 0 5 2 2 2 2

x4 0 1 4 4 4 4

x5 6 1 4 0 0 0 0 0

( 2)

mi 5

( 3)

( 4)

b) Aplicm al doilea algoritm de la rute optime i determinm

M(2) = V * V.
V x1 x2 x3 x4 x5 x1 0 3 x2 4 0 1 3 x3 2 0 5 2 x4 0 1 x5 6 1 4 0 V x1 x2 x3 x4 x5 x1 0 3 x2 4 0 1 3 x3 2 0 5 2 x4 0 1 x5 6 1 4 0 M(2) x1 x2 x3 x4 x5 x1 0 3 4 6 x2 3 0 1 6 3 x3 2 3 0 5 2 x4 7 2 0 1 x5 5 1 2 4 0

2) se obine transpunnd linia lui x4 pe unde, de exemplu elementul m (43

coloana lui x3 din V i efectund sumele perechilor de elemente se reine cea


2) = min+2; +; 5+0; 0+5; 4+2 = 5. mai mic valoare. Astfel: m (43

Prin aceeai operaie calculm M(4) = M(2) * M(2) i obinem: M(4) x1 x2 x3 x4 x5 x1 0 3 4 9 6 x2 3 0 1 6 3 x3 2 3 0 5 2 x4 5 2 3 0 1 x5 4 1 2 4 0

= M(5) = M

Matricea M(4) conine valorile minime ale rutelor dintre oricare vrf cap de linie la orice vrf cap de coloan.

Modele matematice n economie

Astfel, cifra 9 de pe linia lui x4 i coloana lui x1 din M(4) reprezint costul minim al comunicrii de la x4 la x1. Pentru a determina i ruta, adunm linia lui x4 (din V) cu respectiv elementele coloanei x1 din M(4). Cea mai mic sum este 5 + 4 = 9 i corespunde liniei lui x3 din M(4), deci (x4, x3) este primul arc al rutei cutate. Apoi transpunem linia lui x3 din V peste coloana lui x1 din M(4), efectum sumele perechilor de elemente i cea mai mic sum este 1 + 3 = 4 ce va corespunde liniei lui x2 din M(4). Arcul (x3, x2) este urmtorul din rut. n sfrit, transpunem linia lui x2 din V peste coloana lui x1 din M(4), adunm cele dou coloane, suma minim este 3 + 0 = 3 de pe linia lui x1 din M(4), deci urmtorul arc este (x2, x1) i am ajuns la destinaie. Ruta cutat va fi: d: x4 x3 x2 x1
5 1 3

i valoarea ei este 5 + 1 + 3 = 9.

4. Fie graful G finit, orientat, valuat. Se cere:

a) s se cerceteze dac are circuite; b) s se cerceteze dac are drumuri hamiltoniene; c) n caz c exist, s se determine drumul de valoare maxim de la x2 la x4. x2
2 9 3 2 8 6 5 7

x5
4

x1

x3

x6

x4
Rezolvare a) Se determin pe rnd matricele A (a arcelor) i D (a drumurilor).

Teoria grafurilor

A x1 x2 x3 x4 x5 x6

x1 0 0 0 0 0 0

x2 1 0 0 0 0 0

x3 1 1 0 0 1 0

x4 1 0 1 0 0 0

x5 0 1 0 0 0 0

x6 0 0 0 1 1 0

D x1 x2 x3 x4 x5 x6

x1 0 0 0 0 0 0

x2 1 0 0 0 0 0

x3 1 1 0 0 1 0

x4 1 1 1 0 1 0

x5 1 1 0 0 0 0

x6 1 1 1 1 1 0

p(xi) 5 4 2 1 3 0

Pe diagonala principal n D toate elementele sunt egale cu zero, deci nu exist circuite.
b) Adugm lui D coloana puterilor de atingere p(xi) i o

determinm pentru fiecare vrf cap de linie:

p( x ) = 15 i cum n = 6;
i =1 i

n(n 1) 6 5 = 15 = 2 2

este ndeplinit

condiia de existen a drumului hamiltonian i acesta este, scriind vrfurile grafului n ordinea descresctoare a puterilor de atingere: dH = (x1, x2, x5, x3, x4, x6).
c)

V x1 x2 x3 x4 x5 x6

mi 4 mi 4 m m mi 4

(1)

x1 0 - - - - - 2 11 19 22 22

x2 2 0 - - - - - 17 20 20 20

x3 3 9 0 - 7 - 8 8 8 8 8

x4 2 - 8 0 - - 0 0 0 0 0

x5 - 5 - - 0 - - - 15 15 15

x6 - - - 6 4 0 - - - - -

( 2) ( 3)

( 4) i4 (5) i4

Modele matematice n economie

Deoarece vrem s ajung ruta n x4, prima linie ce se adaug lui V,

mi 4 va fi transpusa coloanei lui x4. Ultima linie, mi 4 , va da valorile


maxime ale drumurilor de la vrfurile cap de coloan la x4. Astfel valoarea maxim a drumurilor de la x2 la x4 este 20 (elementul m 24 ) i punctele prin care trece ruta optim sunt: x2, x5, x3, x4.
5. Fie graful G, finit, neorientat, valuat. Se cere:
( 5)

(1)

( 5)

a) arborele minimal i valoarea acestuia; b) un lan hamiltonian de valoare ct mai mic; c) arborele maximal i valoarea acestuia. x2
6 10 6 8

x4
9 8

x1

x3
Rezolvare

x5

a) Alegem cele 4 muchii ale grafului (conform proprietii 5) n

ordinea cresctoare a valorii lor cu grij s nu se formeze cicluri i obinem: x2


6

x4
6 7 8

x1

x3

x5

Teoria grafurilor

arborele minimal de valoare suma valorilor muchiilor ce l compun, adic 27.


b) Vrful x3 are gradul 3. Eliberm o muchie, [x3, x5] pentru c are

valoarea cea mai mare i introducem n locul ei [x4, x5]. Se obine: lH = (x1, x2, x3, x5, x4) de valoare 28.
c) Alegem muchiile n ordinea descresctoare a valorii lor, cu grij

s nu apar cicluri. Obinem: x2


10

x4
9 8

x1
8

x3

x5

arborele maximal, care este i lan hamiltonian maximal i are valoarea 35.