Documente Academic
Documente Profesional
Documente Cultură
Capitol 1 - Teoria Grafurilor (Curs 1-2)
Capitol 1 - Teoria Grafurilor (Curs 1-2)
CAPITOLUL 1
TEORIA GRAFURILOR.
OPTIMIZRI N REELE DE TRANSPORT I DISTRIBUIE
ntr-o mare varietate de contexte se pune problema deplasrii unei cantiti Q ce poate fi materie,
energie, informaie, etc. din unele locuri numite surse n alte locuri numite destinaii, aceast deplasare
realizndu-se pe anumite rute de legtur. Unitile indivizibile ale cantitii Q care se deplaseaz de-a lungul
rutelor se vor numi uniti de flux.
Pentru Cercetarea Operaional, problema enunat va prezenta interes numai dac respect
urmtoarele ipoteze:
a) cel puin o surs poate aproviziona mai multe destinaii i cel puin o destinaie poate primi uniti
de flux de la mai multe surse.
Rutele de legtur pot avea i alte puncte comune n afara surselor i destinaiilor, numite puncte
intermediare sau de tranzit. Nu sunt excluse legturile directe ntre surse sau ntre destinaii. n principiu,
orice rut poate fi parcurs n ambele sensuri, dar pot exista i rute cu sens unic.
C1 50 300 1
c11 2
100 F1 c12
c13
C2 3
120
c21
c22 100
300 F2 c23
C3 4 5
230
: surs (furnizor) 400 200
: destinaie (consumator)
a) b)
Figura 1.1.
Ipoteza a) va fi ntotdeauna presupus n timp ce ipotezele b) i c) pot fiina separat sau simultan.
1) n prezena ipotezei c) i absena condiiei b) se pune problema deplasrii cantitii de flux Q de la
surse la destinaii la un cost total minim. Dac sursele sunt n legtur direct cu destinaiile obinem
problema clasic de transport, care va face obiectul Capitolului 4 al cursului. Cazul general, n care exis i
puncte intermediare, este cunoscut sub numele de problema transferului i el nu face obiectul cursului de
fa. n cazul particular al unei singure surse s, al unei singure destinaii t i a unei singure uniti de flux se
Capitolul 1 Teoria grafurilor. Optimizri n reele de transport i distribuie 2
obine problema drumului de cost minim de la s la t, problem de care ne vom ocupa n seciunea 1.4 a
acestui capitol.
2) n prezena ipotezei b) i absena ipotezei c) se pune problema dac reeaua, ale crei rute sunt
capacitate, este capabil s permit acoperirea integral a cererilor n punctele de destinaie. Pentru aceasta,
se va rezolva problema determinrii volumului maxim Q* de uniti de flux ce pot fi deplasate de la surse la
destinaii. Dac Q* < Q vor exista destinaii a cror cerere este acoperit doar n parte i atunci se ridic
problema mririi capacitii de transfer a reelei. Am descris succint problema fluxului maxim, problem ce
va fi abordat n cadrul cursului de Cercetri Operaionale din anul 2.
3) n prezena simultan a ipotezelor b) i c) se pune problema satisfacerii cererilor n punctele de
destinaie la un cost de transport minim. Ca i n cazul precedent vom avea n vedere o problem modificat:
vom determina mai nti cantitatea maxim de flux ce poate fi deplasat de la surse la destinaii i apoi modul
de organizare al deplasrii astfel nct costul operaiei s fie minim. Aceasta este problema fluxului (maxim)
de cost minim, problem abordat, de asemenea, n cadrul cursului de Cercetri Operaionale din anul 2.
n seciunile urmtoare vom trata dou probleme de optimizare n reele de transport: problema
determinrii unui arbore maximal (de acoperire) de valoare (cost) minim i problema drumului de cost
minim de la s la t .
n seciunea 1.1 am vizualizat elementele unei reele de transport printr-un desen compus din puncte
i arce care unesc unele din aceste puncte (vezi figura 1.1). Un asemenea desen constituie forma uzual de
prezentare a unui concept deosebit de important, att n sine ct i pentru studiul unei impresionante varieti
de probleme din cele mai diverse domenii, domeniul economic fiind prioritar.
Am socotit deci necesar s includem aici cteva elemente privitoare la conceptul de graf, cci despre
el este vorba. Aceste elemente vor fi foarte utile pentru nelegerea consideraiilor teoretice dezvoltate n
legtur cu rezolvarea problemei de transport i de asemenea constituie cadrul natural de abordare i a
celorlalte probleme amintite n clasificarea dat n seciunea precedent.
Un graf este un cuplu G = (V, E) format dintr-o mulime nevid V, ale crei elemente se numesc
vrfuri sau noduri i o mulime E de elemente, zise muchii, cu proprietatea c fiecrei muchii e E i sunt
asociate dou noduri x, y V, nu neaprat distincte, numite extremitile muchiei e. Un subgraf al grafului G
= (V, E) este un graf G = (V, E) n care V V, E E i orice muchie e E are aceleai extremiti att
n G ct i n G.
Dup cum se vede, definiia general nu exclude existena muchiilor cu o singur extremitate (aceste
muchii se numesc bucle), nici existena mai multor muchii cu aceleai extremiti (figura 1.2.a)
x u
a) t b)
Figura 1.2. z v
Graful G se va numi simplu dac nu are bucle i oricare dou noduri sunt extremiti pentru cel mult o
muchie. Vom spune c G este finit dac vrfurile i muchiile sale sunt n numr finit.
n continuare, vom avea n vedere n exclusivitate grafuri finite i simple aa cum este cel reprezentat
grafic n figura 1.2.b).
Fie e = x, y o muchie a grafului G = (V, E); extremitile sale pot fi ordonate n dou moduri: ( x, y)
i (y, x). Cele dou perechi se numesc rute orientate sau arce generate de muchia subiacent e; spunem c
arcul (x, y) are extremitatea iniial x i extremitatea final y i c (y, x) este arcul opus lui (x, y). A orienta
Capitolul 1 Teoria grafurilor. Optimizri n reele de transport i distribuie 3
muchia x, y nseamn a alege unul din arcele (x, y) sau (y, x); dac a fost ales arcul (x, y) vom spune c
(x, y) este un arc permis i c arcul (y, x) este blocat. Dac o asemenea alegere nu a fost fcut vom spune c
muchia x, y este neorientat. n acest caz, convenim ca ambele arce (x, y) i (y, x), generate de muchia
x, y, s fie considerate permise. n fine, a da o orientare n graful G nseamn a orienta unele din muchiile
sale; orientarea poate fi total sau parial dup cum toate muchiile grafului au fost orientate sau numai o
parte din ele. Este clar c n acelai graf G pot fi date mai multe orientri; dac G are m muchii, atunci exist
2m orientri totale diferite ale acestuia!
Un graf orientat (parial orientat, neorientat) este un graf n care s-a dat o orientare total (o
orientare parial, respectiv nu s-a dat nici o orientare); de exemplu, graful din figura 1.1. a) este (total)
orientat iar cel din figura 1.1.b) numai parial. Graful din figura 1.2.b) este neorientat.
n unele situaii este util s se pun n eviden arcele permise ale unui graf (parial) orientat;
realizarea grafic, intuitiv a acestei operaii este fcut n figura 1.3.
x y x y
z t z t
Figura 1.3.
Se constat uor c dac G este (total) neorientat, numrul arcelor permise este de dou ori mai mare dect
numrul muchiilor din G.
n continuare vom introduce o serie de noiuni frecvent utilizate n teoria grafurilor. Unele din ele se
refer la muchii i de aceea se numesc generic concepte neorientate altele se refer la rutele orientate
permise, drept care se mai numesc i concepte orientate. Vom considera un graf (finit, simplu) G = (V,E), n
care (eventual) s-a dat o orientare pe unele din muchii (posibil pe toate).
Un lan n graful G este o succesiune de noduri = (x0, x1, ... , xp-1, xp) cu proprietatea c x0, x1, x1,
x2, ..., xp-1, xp sunt muchii n G. Vom spune c x0 i xp sunt extremitile lanului i c trece prin
nodurile intermediare x1, ... , xp-1. Lanul se zice simplu dac nu trece de dou ori prin acelai nod. Prin
definiie lungimea lanului este dat de numrul muchiilor componente. Astfel, lanurile de lungime unu se
identific cu muchiile grafului G; un lan de lungime doi este constituit din dou muchii adiacente (au o
extremitate n comun).
Un ciclu este un lan ale crui extremiti coincid.
n figura 1.2.b) succesiunile de noduri = (x, y, t, u, v) i = (x, z, y, t, z, v) sunt lanuri: este un
lan simplu de lungime 4 n timp ce are lungimea 5 i nu este simplu. Succesiunea = (x, y, t, u, x) este un
ciclu de lungime 4.
Un drum n graful G este o succesiune de noduri = (x0, x1, ... , xp -1, xp) cu proprietatea c (x0, x1), (x1,
x2), ..., (xp -1, xp) sunt arce permise. Nodul x0 este extremitatea iniial a drumului iar xp extremitatea final.
Un circuit este un drum ale crui extremiti coincid. Este clar c orice drum este un lan, reciproca nefiind
adevrat ntotdeauna. n figura 1.3, = (z, t, x) este un drum de lungime 2 iar = (x, y, t, x) este un circuit
de lungime 3; n acelai graf, = (z, x, y) este un lan care nu este un drum deoarece arcul (z, x) este blocat.
Graful G = (V,E) se zice conex dac oricare dou Graful G G2
noduri ale sale sunt extremitile unui lan. Dac G nu este
conex, exist partiiile V = V1V2 .... Vs i G3
E = E1E2....Es astfel nct G1 = (V1,E1) , G2 = (V2,E2) , ..., G1
Gs = (Vs,Es) sunt grafuri conexe. Subgrafurile G 1, G2,...., Gs se
numesc componentele conexe ale grafului G. Graful din figura
1.3 este conex (ca i cele din figurile anterioare); graful din
figura 1.4 are trei componente conexe.
Figura 1.4.
Capitolul 1 Teoria grafurilor. Optimizri n reele de transport i distribuie 4
Graful G = (V,E) se numete bipartit dac mulimea nodurilor sale poate fi descompus n dou
submulimi nevide i disjuncte S i T, astfel nct orice muchie din G are o extremitate n S i cealalt n T.
Este clar c graful asociat unei probleme clasice de transport este bipartit (figura 1.1.a), nodurile
care reprezint furnizorii formnd mulimea S iar nodurile corespunztoare consumatorilor alctuind
mulimea T.
Adiacen i inciden. Fie G = (V, E) un graf i xi, xj V. Nodurile xi i xj sunt noduri adiacente
dac exist o muchie e = [xi, xj] care le unete. Dac e = [xi, xj], muchia e i nodul xi sau muchia e i nodul
xj sunt incidente. Dou muchii e1 i e2 ale grafului sunt muchii adiacente dac sunt incidente n acelai nod
(au o extremitate n comun).
Gradul unui nod x V, notat cu d(x) reprezint numrul de muchii din graful G incidente cu
nodul x (care au o extremitate n x). Un nod izolat are gradul 0. Dac V = n i E = m atunci pentru
n
orice (m, n) graf (un graf cu n noduri i m muchii) se verific relaia: d xi 2 m . Aceast relaie
i 1
rezult din faptul c fiecare muchie este incident n dou noduri.
Un lan elementar care trece prin toate nodurile unui graf este un lan hamiltonian. Un lan
hamiltonian ale crui extremiti coincid se numete ciclu hamiltonian.
Un lan simplu care parcurge odat i numai o dat toate muchiile grafului este un lan eulerian.
Un lan eulerian ale crui extremiti coincid se numete ciclu eulerian.
Conceptele anterioare se aplic i n cazul grafurilor n care s-a dat o orientare a muchiilor, ele
genernd noiunile de drum/circuit hamiltonian, respectiv drum/circuit eulerian.
Fie G = (V, E) un graf neorientat, cu mulimea nodurilor V = x1, x2,, xn. Notm cu E(x)
mulimea muchiilor incidente ntr-un nod x, cu numrul elementelor E(x). Un nod se numete
suspendat (sau nod frunz) dac exist o singur muchie incident n x (altfel spus E(x) = 1). Un nod x
este izolat dac nu exist nici o muchie incident n x ( E(x) = 0 ).
Un arbore este un graf neorientat, conex i fr cicluri (figura 1.6.).
Propoziia 1.11 Un arbore H = (V, E), V = n, E = m are urmtoarele proprieti
echivalente:
1) H este conex i fr cicluri;
2) H este fr cicluri i are n 1 muchii;
3) H este conex i are n 1 muchii;
4) H este fr cicluri i dac se unesc printr-o muchie dou noduri neadiacente, se creeaz un
ciclu i numai unul (figura 1.7);
5) H este conex i dac i se suprim o muchie se creeaz dou componente conexe (orice
muchie din H este o punte ntre dou noduri), graful se disconecteaz (figura 1.8);
6) Orice pereche de noduri este legat printr-un lan i numai unul.
1
Pentru demonstraiile teoremelor, lemelor i propoziiilor acestui capitol a se vedea: Ciobanu Gh., Nica V., Musta
Floare, Mrcine Virginia, Mitru D., Cercetri Operaionale. Optimizri n reele. Teorie i aplicaii economice,
Editura MatrixRom, Bucureti, 2002
Capitolul 1 Teoria grafurilor. Optimizri n reele de transport i distribuie 5
*
adaug
* *
**
** **
Figura 1.6.
Figura 1.7
scoate
Figura 1.8
Un arbore H ntr-un graf G este un subgraf care - de sine stttor - este un arbore. H se zice maximal
dac conine toate nodurile grafului G (figura 1.9).
Figura 1.9.
1.3.1. Arbori de acoperire
Fie G = (V, E) un graf neorientat. Un arbore H = (V, Y) se spune c este un arbore care acoper
graful G dac Y E. Dac V = n i Y = n 1 arborele de acoperire este numit maximal.
Teorema 1.1 ntr-un graf G = (V, E) exist un graf parial H care este un arbore de acoperire dac i
numai dac G este conex.
S considerm un graf G = (V, E) conex. O muchie e E este valorizat dac i se asociaz o valoare
nenegativ v(e) 0. Aceste valori pot reprezenta costuri, lungimi, profituri ale legturilor definite prin
muchiile grafului. Un graf G este valorizat dac toate muchiile sale sunt valorizate. Graful G fiind un graf
conex, conform teoremei 1.1, conine un arbore de acoperire H = (V, Y), Y E, ca un graf parial al su.
Capitolul 1 Teoria grafurilor. Optimizri n reele de transport i distribuie 6
Valoarea unui arbore H = (V, Y) coninut n graful G = (V, E), Y E este, prin definiie, suma
valorilor muchiilor sale:
v(H) = v e . (1.1)
eY
Problema extremal pe care dorim s o rezolvm este problema arborelui de valoare minim: s se
determine un arbore de acoperire maximal H * = (V, Y*) coninut ntr-un graf G = (V, E), Y* E de
valoare minim:
v(H*) = min
H
v(H) (1.2)
v(H*) = max
H
v(H)
Dac valorile muchiilor grafului G = (V, E) nu sunt distincte, adic, dac de exemplu, v(e1) = v(e2) =
v(e3) = ... , considerm:
v/(e1) = v(e1) +
v/(e2) = v(e2) + 2
v/(e3) = v(e3) + 3
........
unde este o valoare pozitiv foarte mic, astfel nct s nu schimbe ordinea de mrime a muchiilor. Prin
aceasta se introduce o ordine strict ntre muchii i putem avea situaia din teorema 1.2 de formare a arborelui
H = (V, Y). n finalul construciei (n soluia optim) se ia = 0.
n situaia n care valorile muchiilor grafului nu sunt distincte, problema nu admite, n general,
soluie unic. Pentru determinarea tuturor soluiilor, se va alege la fiecare etap k numai o muchie dintre cele
cu valori egale i se verific pentru fiecare dintre acestea dac formeaz ciclu cu muchiile deja alese n
etapele 1,2, , k-1.
Dac graful G = (V, E) nu este complet, se atribuie muchiilor ce lipsesc valoarea sau valori foarte
mari. Aceste muchii nu vor intra n mulimea Y a muchiilor arborelui H.
Capitolul 1 Teoria grafurilor. Optimizri n reele de transport i distribuie 7
Procedeul de construcie efectiv a unui arbore care acoper un graf dat G este prezentat n cele ce
urmeaz:
Etapa de iniializare:
Din mulimea muchiilor E se alege o muchie e1 cu valoarea v(e1) cea mai mic. Dac exist mai multe
muchii cu aceeai valoare se alege una dintre acestea. Fie Y mulimea muchiilor alese. Iniial Y = {e1} i |
Y| = 1.
Etapa iterativ:
Din mulimea muchiilor neselectate E Y se alege o muchie ei cu valoarea v(ei) cea mai mic, pentru care
Y ei nu conine un ciclu. Se ia Y ei Y i |Y| + 1 |Y|.
STOP: Etapa iterativ se oprete atunci cnd sunt alese n-1 muchii. H = (V, Y) este arborele de acoperire de
valoare minim.
Arborele de valoare minim H = (V, Y) este determinat de muchiile alese. n cazul n care exist mai
multe muchii de valori egale, arborele de valoare minim nu este, n general, unic. Este preferabil, n
aceste situaii, s fie determinai toi arborii de valoare minim i dintre acetia un manager (decident) s
l aleag pe cel mai convenabil corespunztor unui alt criteriu economic.
Algoritmul Kruskal este foarte simplu. El intr n categoria algoritmilor de tip "greedy" (lacom) deoarece
la fiecare pas al algoritmului se alege cea mai bun variant. Totui, acest algoritm din tiina
managementului produce ntotdeauna soluia optim.
Algoritmul Kruskal poate fi utilizat i pentru determinarea arborilor de acoperire de valoare maxim,
prin nlocuirea, n algoritm: "se alege muchia cu valoarea cea mai mic" cu "se alege muchia cu
valoarea cea mai mare".
ntr-un ora se studiaz posibilitatea ca principalele instituii s fie conectate ntr-un sistem printr-o
reea de telecomunicaii. Schema tuturor legturilor posibile, precum i costul executrii acestor legturi ntre
ase dintre instituiile oraului sunt indicate n graful din figura 1.10. Valorile indicate pe arce reprezint
costurile (n uniti monetare) asociate realizrii legturilor dintre instituii. S se determine modul n care vor
fi interconectate cele ase instituii astfel nct costul realizrii sistemului de telecomunicaii s fie minim.
B 6
D
7 5 4
A 7 F
4
3 6
5 E
C
Figura 1.10
Rezolvare:
Pentru rezolvarea acestei probleme se aplic algoritmul Kruskal. Muchia cu cel mai mic cost este
[A,C] cu v[A, C] = 3 u.m.. Aceasta este prima alegere. n continuare, pot fi alese muchiile [D, E] i [D, F],
fiecare avnd costul de 4 u.m.. Pentru c fiecare din aceste muchii nu formeaz ciclu cu muchia [ A, C] i nici
1)
J. B. Kruskal, On the Shortest Spanning Subtree of a Graph and the Traveling Salesman Problem, Proceedings of the
American Mathematical Society 7, 48-50, 1956.
Capitolul 1 Teoria grafurilor. Optimizri n reele de transport i distribuie 8
toate cele trei muchii nu formeaz ciclu, se alege a doua oar i a treia oar cte una din muchiile [ D, E] i
[D,F]. Muchiile [A, D] i [C, E] cu costul v[A, D] = v[C, E] = 5 u.m. pot fi alese, n continuare. Se alege una
din muchii, cealalt formeaz un ciclu. Deci, pot exista dou variante conform figurilor 1.11.a) i 1.11.b) prin
alegerea fie a muchiei [A, D] fie a muchiei [C, E].
6 6
B D B D
5 4 4
A F A 4 F
4
3 3
5
C E C E
a) H1 b) H2
Figura 1.11
Urmtoarea alegere este fie muchia [E, F] fie muchia [B, D] ambele avnd costul v[E, F] = v[B, D] =
6 u.m.. Dar, muchia [E, F] formeaz ciclu n ambii arbori pariali mpreun cu muchiile [D, E] i [D, F]. n
acest caz, se alege muchia [B, D] n ambii arbori pariali.
Rezult dou soluii optime, deci doi arbori de valoare minim prezentai n figura 1.11, cu v(H1) =
v(H2) = 22. Alegerea ntre aceti arbori va avea n vedere i alte considerente economice pe lng costul
instalrii sistemului de telecomunicaii.
Prefectura judeului X i-a fixat ca obiectiv modernizarea reelei drumurilor care leag localitile
judeului conform grafului din figura 1.12. Pe fiecare muchie este nscris valoarea numeric n uniti
monetare [u.m.] a costului modernizrii tronsonului respectiv. n prima etap se caut s se modernizeze
numai unele drumuri astfel nct fiecare localitate s fie conectat la cel puin un drum modernizat i costul
ntregii operaii de modernizare (parial) s fie minim.
2 3
5
5 1 6 7
3
8 3 3 4
1 6 8
10 2 10 8 7
4 2 7
Figura 1.12
Rezolvarea problemei se reduce la determinarea unui arbore maximal de valoare minim. TEM:
Aplicai algoritmul Kruskal pentru determinarea variantei optime de modernizare a drumurilor.
1.3.3. Arborescene
Dac n este numrul nodurilor, atunci numrul arcelor unei arborescene este m = n 1. Prin urmare,
arborescena este un arbore cu orientare unic pe muchii, n care se pun n eviden drumuri de la nodul
Capitolul 1 Teoria grafurilor. Optimizri n reele de transport i distribuie 9
rdcin la toate celelalte noduri. Dac G = (X, U) este un graf orientat i conex, printre grafurile pariale
exist arborescene ale grafului dat.
Arborele genealogic este un exemplu de arborescen, nodurile fr descendeni fiind noduri frunz.
CURSUL 2
v() = v u . (1.3)
u
cu proprietatea c pentru orice 1 i q 1, extremitatea final a unui arc ui coincide cu extremitatea iniial
a arcului ui+1. Altfel spus, de-a lungul drumului arcele componente sunt orientate n acelai sens, de la nodul
iniial al arcului u1 ctre nodul final al arcului uq. Numrul arcelor componente definete lungimea l() a
drumului . Drumurile de lungime 1 se identific cu arcele permise ale grafului.
Dac u1 = (x0, x1), u2 = (x1, x2), ..., uq = (xq-1, xq) sunt arcele date prin extremitile lor, atunci un drum
poate fi definit i prin succesiunea de noduri:
= (x0, x1, x2, ..., xq)
Nodul x0 este extremitatea de start a drumului iar nodul xq extremitatea final. Dac extremitile
sale coincid (x0 = xq) atunci drumul este un circuit.
Un drum este elementar dac nodurile sale sunt distincte (drumul trece o singur dat prin fiecare nod
al su). Un drum este simplu dac arcele sale sunt distincte (drumul trece o singur dat prin fiecare arc al
su). Evident, orice drum elementar este i simplu. Reciproca nu este, n general, adevrat. Mulimea
drumurilor elementare dintr-un graf finit este finit. Un drum dintr-un graf G este inclus n drumul ' (
') dac toate arcele drumului sunt arce i ale drumului '. Evident, v() v(').
O problem extremal ntr-un graf orientat G = (V, U) const n determinarea unui drum elementar
(sau a drumurilor elementare), ntre dou noduri date, de valoare minim (sau de valoare maxim).
Fie s i t dou noduri oarecare ale grafului G. Notm cu G*(s, t) un subgraf al grafului G format din
mulimea drumurilor din graful considerat G = (V, U) ntre nodurile s i t, n care sunt incluse i drumurile de
lungime 1. Problema drumurilor de valoare minim ntre nodurile s i t se definete ca problema determinrii
drumului * de la nodul s la nodul t n graful G*(s, t), de valoare minim:
Dac se consider drumurile de valoare minim de la un nod s la oricare alt nod al grafului G,
mulimea acestor drumuri formeaz un graf parial orientat n G, numit graful drumurilor de valoare minim
cu originea n nodul s i este notat G*(s) sau simplu G*. Problema pus n acest fel cuprinde i problema
determinrii drumurilor de valoare minim de la nodul s la un alt nod oarecare t. ntr-adevr, dac n G*(s)
figureaz i nodul t, atunci n acest graf vom gsi i drumurile de valoare minim de la s la t.
Dac lum n considerare numai drumurile elementare de la s la t, deoarece mulimea acestora este
finit, atunci exist, ntotdeauna, un drum de la s la t de valoare minim. Aceste drumuri elementare sunt
identificate greoi, motiv pentru care drumurile de valoare minim se determin considernd, n graf, toate
drumurile elementare sau neelementare ntre cele dou noduri.
Este posibil ca problema (1.4) s nu admit soluii optime (de exemplu n cazul existenei circuitelor
de valoare negativ). n acest caz, exist o infinitate de drumuri de la s la t a cror mulime de valori poate fi
nemrginit inferior.
Propoziia 1.3 Problema drumurilor de valoare minim cu originea n nodul s admite soluii n
graful G = (V, U) dac i numai dac graful G*(s) nu conine nici un circuit cu valoare strict negativ.
Demonstraie: Fie s un nod al grafului G. Vom presupune c n graful G*(s) exist un circuit c = (x =
x0, xi, xj, ..., xk, x) de valoare strict negativ v(c) = < 0. Deoarece x X exist un drum de la s la x i fie
valoarea acestuia. Prin prelungirea drumului cu circuitul c, noul drum c are valoarea + . De
asemenea, c c are valoarea + 2. Prin recuren, prelungirea drumului cu de k ori circuitul c, duce
la drumul , k , are valoarea + k. Prin urmare, lim k .
c c ... c
k ori k
Un circuit n graful G de valoare strict negativ este numit circuit absorbant. Deoarece problemele de
determinare a drumurilor de valoare minim ntre nodurile date se rezolv considernd toate drumurile
posibile, nu numai cele elementare, vom presupune verificat urmtoarea condiie: n graful G nu exist
circuite de valoare strict negativ.
Determinarea drumului de valoare minim poate avea loc ntr-un graf n care valorile sau ponderile
arcelor sunt nenegative. n grafuri n care exist arce cu ponderi negative, sunt necesare eforturi mai mari
pentru rezolvare; n acest caz se va presupune ndeplinit condiia: nu exist circuite de valoare strict
negativ (absorbante).
Observaie. Similar, problema drumurilor de valoare maxim ntr-un graf G cu nodul de pornire s
admite soluie dac i numai dac graful G*(s) nu conine nici un circuit de valoare strict pozitiv.
Dac i ' sunt drumuri elementare n G avnd aceleai extremiti, atunci drumurile pot fi
comparabile: fie v(') v(), fie v() v().
n cazul n care exist drumuri de la s la t, evaluarea i compararea acestora, conform afirmaiei
anterioare, se poate limita la drumurile elementare cu aceleai extremiti. Numrul drumurilor elementare
fiind finit unul dintre ele va fi drumul de la s la t de valoare minim.
Dac graful G nu este conex i nodurile s i t nu fac parte din aceeai component conex (figura
1.13.a) sau orientrile pe arce nu permit atingerea nodului t din nodul s (figura 1.13.b), exist posibilitatea ca
n graful G s nu existe drumuri de la s la t.
Capitolul 1 Teoria grafurilor. Optimizri n reele de transport i distribuie 11
s
t
Figura 1.13.a
s
t
Figura 1.13.b
n acest context vom spune c nodul i este atins din nodul s dac exist un drum de la s la i format din
arce permise. Ne ocupm de rezolvarea problemei determinrii drumului de valoare minim de la s la toate
celelalte noduri ale grafului, P s , i a cazului su particular P s, t - determinarea drumului de valoare
minim de la s la t, n ipoteza: toate valorile arcelor permise sunt nenegative: v u 0 ; u U .
1. Preliminarii
1) Fiecrui nod i V i s-a asociat o variabil d i numit n continuare eticheta nodului i. Prin
definiie d s 0 . n oricare moment al aplicrii algoritmului variabilei d i reine valoarea unui drum de
la s la i gsit de algoritm pn n acel moment. Dac algoritmul nu a gsit nc un drum de la s la i variabila
d i are valoarea +. La finalul aplicrii metodei, eticheta indic valoarea celui mai scurt drum de la
nodul s la nodul i. Pe parcursul aplicrii algoritmului etichetele se corecteaz n sensul micorrii valorilor
lor. n momentul n care o etichet d i atinge valoarea minim ea devine permanent.
Metodele de rezolvare a problemei determinrii drumului de valoare minim ntre dou noduri ale
unui graf sunt procedee de etichetare care se mpart n dou clase:
metode cu etichetare permanent (la fiecare iteraie se identific un nod a crui etichet se
permanentizeaz valoarea ei nu se va mai modifica pn la finalul rezolvrii); i
metode cu etichetare temporar (etichetele tuturor nodurilor au valori temporare care devin
permanente doar la finalul rezolvrii).
Metodele aparinnd primei clase se aplic numai grafurilor cu valori (costuri) nenegative ale
muchiilor, n timp ce metodele aparinnd celei de a doua clase se aplic grafurilor cu valori (costuri)
negative ale muchiilor. Algoritmul Dijkstra aparine primei clase.
2) Fiecrui nod i V diferit de s i se asociaz o alt variabil PRED i numit indicator de
preceden cu urmtoarea semnificaie: n oricare moment al aplicrii algoritmului, PRED i conine ultimul
2)
Dijkstra, E.W. A Note on two Problems in Connection with Graphs, Numerische Math. 1, 269-271, 1959
Capitolul 1 Teoria grafurilor. Optimizri n reele de transport i distribuie 12
nod dinaintea lui i pe drumul de la s la i gsit de algoritm pn n acel moment. Atta timp ct un asemenea
drum nu a fost gsit d i , indicatorul PRED i nu este definit el fiind o locaie vid (PRED(i) = ).
3) Iniializm o list P n care vom include toate nodurile i V pentru care algoritmul a gsit un
drum de valoare minim de la i la s (lista nodurilor cu eticheta declarat permanent). La start P se reduce la
nodul de plecare s.
4) Iniializm o list T n care vom include toate nodurile j V care sunt vecine cu noduri din lista
P: un nod j este vecin cu i dac arcul i, j este permis. T este lista nodurilor cu eticheta declarat
temporar.
Nodurile cu etichet permanent din lista P se selecteaz din lista T a nodurilor candidate. Corectarea
unei etichete se face dup urmtoarea schem echivalent (figura 1.14).
i
d i
v i, j
d j
s
j
Figura 1.14
2. Algoritmul Dijkstra
START: Iniializm:
P s ;
T i V / exist arcul permis s, i U ;
d s 0 ; d i v s, i pentru i T si d i n rest;
PRED i s pentru i T i PRED j nedefinit n rest.
ITERAIE:
Pas 1: Dac lista T e vid, STOP: algoritmul a gsit toate nodurile ce pot fi atinse din s de-a lungul
unor drumuri de valoare minim, toate nodurile sunt n lista P i valorile minime ale drumurilor de la s la
aceste noduri sunt indicate de etichetele corespunztoare. Identificarea drumului de valoare minim se face cu
ajutorul indicatorului de preceden, din aproape n aproape, de la t (sau de la fiecare nod al grafului) ctre s.
Dac T se trece la pasul 2.
Pas 2: Se selecteaz nodul i T cu proprietatea: d i min d i , i T
Se transfer nodul i din lista T n lista P ( i devine nod cu eticheta permanent). Drumul de la s la
i gsit pn n momentul selectrii este un drum de valoare minim. Se adaug la lista T toate nodurile
j V s care nu figurau n aceast list, noduri adiacente lui i pentru care exist arcul i , j U .
Capitolul 1 Teoria grafurilor. Optimizri n reele de transport i distribuie 13
- Dac
d i v i , j d j
se fac actualizrile:
d j d i v i , j i
PRED j i
dup care se trece la examinarea altui nod din lista T vecin cu i .
Dup examinarea tuturor vecinilor lui i din T se revine la Pasul 1 n cadrul unei noi iteraii.
STOP: Algoritmul se termin n urmtoarele situaii:
La Pasul 1: dac lista T e vid, T ;
La Pasul 2: Dac ne intereseaz numai drumul de valoare minim de la s la un nod t algoritmul
descris se termin n momentul n care nodul selectat este t : i = t.
NOT:
1) Dac algoritmul se termin la Pasul 1 i d(t) = +, n graful G NU exist nici un drum de la s
la t (vezi situaiile din figura 1.13).
2) Aplicarea Algoritmului Dijkstra nu rezolv doar problema gsirii drumului de valoare minim
de la s la t ci a TUTUROR drumurilor de valoare minim de la s la toate celelalte noduri
ale grafului G.
Exemplul 1.3. Aplicai metoda DISKTRA pentru a determina drumurile de valoare minim de la
nodul s la nodurile ce pot fi atinse din s n graful din figura 1.15.
3
x y
4 2
8
s 1
3 w
2
3
z t
Figura 1.15
Fiecrei muchii i este asociat un cost valabil n ambele sensuri de parcurgere pe muchiile
neorientate.
Rezolvare: Valorile iniiale i intermediare ale variabilelor d i i PRED(i) sunt date n tabelul 1.
START: Iniializm:
Listele P s , T x, y, z
d s 0 ; d x 4, d y 8, d z 3; d i n rest;
PRED i s pentru i T i PRED j nedefinit n rest.
Iteraia 1: Se calculeaz min d i , i T min 4, 8, 3 3 i z
Transferm z din lista T n lista P: P s, z i includem n lista T nodul t care este vecin cu
i z : T x, y , t .
Examinm toi vecinii lui i z din lista T: exist un singur vecin, nodul t. Deoarece
d z v z, t 3 3 6 d t actualizm d t 6 i PRED t z (valorile actualizate se
trec n tabelul 1 n linia ITERAIA 1, celelalte valori nu se modific).
Iteraia 2: Se calculeaz min d i , i T min 4, 8, 6 4 i x
Capitolul 1 Teoria grafurilor. Optimizri n reele de transport i distribuie 14
Actualizm listele P i T: P s, z , x , T y , t
Observm c vecinii lui i x cu etichet nepermanent, adic y i t sunt deja n lista T.
Trecem la corectarea dac este cazul a etichetelor d y i d t :
d x v x, y 4 3 7 8 d y actualizm: d y 7 i PRED y x
d x v x, t 4 1 5 6 d t actualizm d t 5 i PRED t x .
Celelalte etichete i indicatori de preceden rmn neschimbai.
Iteraia 3: Calculm min d i , i T 7, 5 5 i t .
Actualizm P s, z , x, t ; T y .
i t nu are vecini cu etichet nepermanent, nici n T, nici n afara lui T.
n aceast iteraie nu are loc nici o corectare de indicatori.
Iteraia 4: i y
P s, z , x, t , y ; T
i y nu are nici un vecin cu etichet nepermanent.
STOP, pentru c T .
Tabelul 1
ITERAIA d(s) d(x) PRED(x) d(y) PRED d(z) PRED d(t) PRED d(w) PRED (w)
(y) (z) (t)
START 0* 4 s 8 s 3 s + - + -
ITERAIA 1 - 4 s 8 s 3* s 6 z + -
ITERAIA 2 - 4* s 7 x - - 5 x + -
ITERAIA 3 - - - 7 x - - 5* x + -
ITERAIA 4 - - - 7* x - - - - + -
STOP 0 4* s 7 x 3 s 5 x + -
z t
d(z) = 3 d(t) = 5
PRED(z) = s PRED(t) = x
Figura 1.16
Aa cum se observ, dei graful din figura 1.15 este conex, datorit orientrilor existente pe muchii,
nodul w nu poate fi atins din s (nu se gsete n lista P). Lungimile drumurilor de valoare minim de la s la
toate celelalte noduri ale grafului sunt date de etichetele fiecrui nod (de exemplu, valoarea celui mai scurt
drum de la s la y este 7 i el trece prin nodul x PRED(y) = x iar PRED(x) = s).
Exemplul 1.4. TEM: Aplicai metoda DISKTRA pentru a determina drumurile de valoare minim
de la nodul s la nodurile ce pot fi atinse de s din grafurile din figura 1.17, 1.18 i 1.19.
Capitolul 1 Teoria grafurilor. Optimizri n reele de transport i distribuie 15
2
1 3
5 4
s 1 2
4
4
8
2
Figura 1.17
40 6
45 4 65
2 sosire
50 8
10
60 5 70
50
plecare 40
1 50 120 7
3
Figura 1.18
s 4 2 3 3
6 5 2 1
1 4 4 5 9
0
3 7 2 4
6 5 7 6 8
Figura 1.19
Observaie final: Una dintre metodele de determinare a drumurilor de valoare minim n grafuri cu
costuri negative asociate muchiilor este Metoda Ford. Ea aparine clasei metodelor cu etichetare temporar i
poate fi lecturat n: Ciobanu Gh., Nica V., Floare Musta, Virginia Mrcine, Mitru D., Cercetri
Operaionale. Optimizri n reele. Teorie i aplicaii economice, Editura MatrixRom, Bucureti, 2002.