Documente Academic
Documente Profesional
Documente Cultură
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 .
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.
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
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,
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)
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.
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
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
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
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
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
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
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 )
i =1 i
drum hamiltonian; b)
p( x ) =
i =1 i
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
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.
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
),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
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
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
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)
x1 x2 x3 x4 x5
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.
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:
(k )
( k +1)
(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
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.
cel mult 1, 2, ... arce de la orice vrf xi (cap de coloan) la xn fixat, astfel: a) linia min
(1)
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)
(k )
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)
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)
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 )
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
Rezolvare
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)
unui algoritm de determinare a rutelor optime ntre oricare dou vrfuri ale
grafului G considerat.
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
(k )
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.
Teoria grafurilor
x3
4
x1
5
2 6 1
x4
3
x5
Rezolvare
x1 0 0
x2 7 0 5
x3 2 0
x4 6 4 0
x5 3 1 3 0
5. Drumul critic
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
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
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
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
( 2)
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)
de unde citim v[dmax(x0, x6)] = 20 = m06 Deci obiectivul poate fi nfptuit cel mai devreme n 20 de sptmni.
Teoria grafurilor
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.
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
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
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.
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.
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.
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:
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.
x2
35 30
x5 x3
36
x1
40 50 60
x7
x4
x6
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
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
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
x1
D (1) x3 x4
x2 x2 x4
x5 x5
(1)
0 x2x1x3x4 x3x2x1x4 0 0
0 x3x4x2x1 0 0
0 0 0 0 0
0 0 0 0 0
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
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
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)
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
= M(5) = M
Matricea M(4) conine valorile minime ale rutelor dintre oricare vrf cap de linie la orice vrf cap de coloan.
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.
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
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
(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
x4
6 7 8
x1
x3
x5
Teoria grafurilor
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
x4
9 8
x1
8
x3
x5
arborele maximal, care este i lan hamiltonian maximal i are valoarea 35.