Professional Documents
Culture Documents
CAPITOLUL 1
TEORIA GRAFURILOR.
OPTIMIZRI N REELE DE TRANSPORT I DISTRIBUIE
1.1. Modelarea problemelor 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.
100 F1
C1
50
C2
120
300
c12
c13
c21
c22
300 F2
100
c23
C3
230
: surs (furnizor)
: destinaie (consumator)
400
200
b)
a)
Figura 1.1.
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 .
u
y
t
z
a)
v
b)
Figura 1.2.
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
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.
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
G2
G3
G1
Figura 1.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.
S
T
Calitatea unui graf de a fi bipartit nu depinde de modul
particular de reprezentare aa cum arat exemplul din figura
1.5.
Figura 1.5.
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).
Figura 1.6.
**
adaug
**
**
Figura 1.7
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
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).
Arbore nemaximal n G
Arbore maximal n G
Figura 1.9.
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, timpi de parcurgere, lungimi, profituri ale legturilor
definite prin muchiile grafului. Un graf G este valorizat dac toate muchiile sale sunt valorizate.
Valoarea unui arbore H = (V, Y) coninut n graful G = (V, E), Y E este, prin definiie, suma
valorilor muchiilor sale:
v(H) = ve .
(1.1)
eY
Problema extremal pe care dorim s o rezolvm este problema arborelui de valoare minim: s se
determine un arbore de maximal H* = (V, Y*) coninut ntr-un graf G = (V, E), Y* E de valoare minim:
v(H*) = min v(H)
H
(1.2)
cu valori egale i se verific pentru fiecare dintre acestea dac formeaz ciclu cu muchiile deja alese n
etapele 1,2, , k-1.
n activitatea economic, de multe ori apare problema determinrii unor arbori de valoare optim
(minim sau maxim), ntruct exist procese economice sau activiti economice care pot fi reprezentate cu
ajutorul unui arbore n condiii convenabile. Aceast problem are importan practic n trasarea reelelor de
comunicaii i a reelelor de distribuie, n general, n studiul reelelor de transport:
aprovizionarea cu ap potabil sau cu energie electric sau termic a unor puncte de consum de la un
punct central;
conectarea printr-o reea de drumuri a unor puncte de interes economic sau turistic;
evoluii posibile ale unui sistem pornind de la o stare iniial;
construirea unei reele telefonice radiale, a unei reele de televiziune sau internet de la un punct central;
schemele bloc ale programelor pentru calculatoare;
studiul circuitelor electrice n electrotehnic, etc.
Procedeul de construcie efectiv a unui arbore care acoper un graf dat G este prezentat n cele ce
urmeaz:
1.3.2. Algoritmul Kruskal1)
Fie G = (V, E) un graf conex cu n = V i cu muchiile valorizate v(e) 0, e E.
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".
Exemplul 1.1: Problema sistemului de comunicaii
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.
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.
B
7
4
6
3
5
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
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
B
5
D
4
3
5
E
b) H2
a) H1
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.
Exemplul 1.2: Problema modernizrii reelei de drumuri
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.
3
2
5
1
10
10
2
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.
CURSUL 2
1.4. Drumuri de valoare minim
1.4.1. Problema drumului de valoare minim
Fie G = (V, E) un graf finit (orientat, neorientat sau parial orientat).
Dac e E este o muchie cu extremitile xi i xj atunci aceast muchie are o orientare permis prin
arcele (xi, xj) i (xj, xi). n acest mod, un graf neorientat este tratat ca graf orientat G = (V, U). n continuare, ne
referim numai la grafuri orientate finite.
Dac arcul u este dat prin extremitile sale u = (xi, xj), cu xi, xj V, valoarea arcului va fi dat prin
notaiile v(xi, xj) sau vij. Dac u este o muchie n graful G = (V, E) atunci v(u) = v(xi, xj) = v(xj, xi), deci pe
ambele sensuri arcele au aceeai valoare. Pe o muchie neorientat i, j putem avea ns i vi, j vi, j .
Valorile asociate arcelor pot reprezenta n practic distanele ntre dou localiti, costurile executrii unei
lucrri pe tronsoanele respective, costurile trecerii unei linii de fabricaie de la un produs la altul, timpii de
execuie ai unor activiti, msura siguranei transmisiunii unui semnal, etc.
Pentru un drum ntre nodul xi X i nodul xj X, precizat prin specificarea arcelor componente, se
definete valoarea drumului ca fiind suma valorilor arcelor componente:
v() =
vu .
(1.3)
(1.4)
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. 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).
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.
s
t
Figura 1.13.a
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, Ps , i a cazului su particular Ps, t - determinarea drumului de valoare
minim de la s la t, n ipoteza: toate valorile arcelor permise sunt nenegative: vu 0 ; u U .
1.4.2. Metoda Dijkstra)
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
)
Dijkstra, E.W. A Note on two Problems in Connection with Graphs, Numerische Math. 1, 269-271, 1959
10
preceden cu urmtoarea semnificaie: n oricare moment al aplicrii algoritmului, PRED i conine ultimul
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).
d i
vi, j
s
j
d j
Figura 1.14
Dac d i vi, j d j atunci primul drum are o valoare mai mic i ca urmare va fi reinut de
algoritm ca fiind cel mai bun drum de la s la j gsit pn n acest moment. Memorarea acestui nou drum se
face prin corectarea etichetei d j care ia valoarea d j d i vi, j i actualizarea indicatorului de
preceden PRED (j): PRED (j) = i.
Cu aceste pregtiri trecem la prezentarea algoritmului Dijkstra.
2. Algoritmul Dijkstra
START: Iniializm:
Lista nodurilor cu eticheta permanent: P s;
11
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 mind 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 .
Pas 3: Pentru fiecare nod j T , vecin cu i se compar d j cu suma d (i* ) v i , j (vezi figura
Dac d i vi , j d j se fac actualizrile:
d j d i v i , j i
PRED j i
2
8
1
w
3
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.
12
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 vz, 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 mind i , i T min4, 8, 6 4 i x
Actualizm listele P i T: P s, z, x, T y, t
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
(y)
d(z)
PRED
(z)
d(t)
PRED
(t)
d(w)
PRED (w)
START
ITERAIA 1
ITERAIA 2
ITERAIA 3
ITERAIA 4
STOP
0*
0
4
4
4*
4*
s
s
s
s
8
8
7
7
7*
7
s
s
x
x
x
x
3
3*
3
s
s
s
+
6
5
5*
5
z
x
x
x
+
+
+
+
+
+
d(y) = 7
PRED(y) = x
d(s) = 0
w
3
z
d(z) = 3
PRED(z) = s
t
d(t) = 5
PRED(t) = x
Figura 1.16
d(w) = +
PRED(w) =
13
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. Probleme propuse ca TEM:
C
A
2
8
1
5
6
B
7
E
Figura 1.17
2.
i) Utiliznd algoritmul lui Dijkstra determinai cele mai scurte drumuri de la nodul A la celelalte noduri
ale grafului din figura 1.18.
ii) Ce modificri intervin n graful G*(A) al drumurilor de lungime minim dac muchiile {I, G} i {D,
J} nu pot fi parcurse dect de la I la G, respectiv de la D la J?
8
B
7
5
3
7
10
E
6
Figura 1.18
3. Aplicai metoda DISKTRA pentru a determina drumurile de valoare minim de la nodul s la nodurile ce
pot fi atinse de s din graful din figura 1.19.
4
3
s
3
2
5
6
1
0
4
3
6
7
5
1
9
5
4
2
7
Figura 1.19