Sunteți pe pagina 1din 15

CURSUL 1

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.

O clasificare a problemelor de transport i distribuie

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.

Ansamblul surselor, destinaiilor, al punctelor intermediare i al rutelor de legtur se va numi reea


de transport; el se identific cu un graf neorientat sau parial orientat ca n figura 1.1.
b) Unele rute de legtur pot avea limitri superioare i / sau inferioare pentru volumul unitilor de
flux ce se deplaseaz ntr-un sens sau altul. Aceste limitri poart numele de capaciti (inferioare, respectiv
superioare). n continuare, vom avea n vedere numai cazul n care toate capacitile inferioare sunt egale cu
zero, capacitile superioare fiind exprimate prin numere pozitive.
c) Exist un cost al deplasrii unei uniti de flux de la un punct al reelei la altul, cost care poate fi
exprimat n bani, timp sau distan. Sunt situaii n care acest cost poate semnifica profitul obinut de pe
urma deplasrii. Pe aceeai rut, costurile i capacitile pot fi diferite n funcie de sensul de parcurgere al
rutei.

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 .

1.2 Concepte utilizate n teoria grafurilor

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.

Calitatea unui graf de a fi bipartit nu depinde de modul S T


particular de reprezentare aa cum arat exemplul din figura a b a b
1.5. O caracterizare complet a grafurilor bipartite este oferit
de urmtoarea teorem:
c d d c
Teorema Knig: Un graf este bipartit dac i numai
dac nu conine cicluri de lungime impar (altfel spus, orice Figura 1.5.
ciclu al su are un numr par de muchii).

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.

1.3. Arbori maximali de valoare minim

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).

G Arbore nemaximal n G Arbore maximal n G

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)

unde v(H) este valoarea unui arbore determinat cu relaia (1.1).


Problema determinrii unui arbore de valoare minim const n determinarea unui arbore maximal H*
care acoper graful dat G astfel nct acesta s fie:
(1) conex (fiecare nod s fie conectat cu oricare alt nod);
(2) fr legturi redundante (un singur lan este suficient pentru a conecta un nod cu oricare alt nod);
(3) de valoare minim (avnd n vedere valorile asociate muchiilor).
Similar, se definete problema arborelui de valoare maxim, care const n determinarea unui arbore H* care
acoper graful dat G i care verific proprietile (1) i (2), de mai sus, iar proprietatea (3) este nlocuit cu:

v(H*) = max
H
v(H)

unde v(H) este valoarea unui arbore determinat de relaia (1.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;
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.
Teorema 1.2 (Berge) Dac graful G = (V, E) este un graf conex i complet i dac valorile asociate
muchiilor sunt toate distincte v(e i) v(ej) oricare ar fi e i, ej E cu i j atunci problema determinrii
arborelui de acoperire de valoare minim admite o soluie i numai una (arborele este unic determinat).

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:

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.

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.

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.
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

Fie G = (X, U) un graf orientat.


Un nod xk X se numete rdcin n graful G dac pentru oricare xi X, xi xk exist n G un drum
de la xk la xi.
Arborescena este un graf orientat, finit i fr circuite, n care:
exist un nod i numai unul numit rdcin care nu este extremitatea terminal a nici unui arc;
oricare nod diferit de nodul rdcin este extremitatea terminal a unui singur arc.

Propoziia 1.2 Orice arborescen este un arbore.

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

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 v i, j v i, 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() = v u . (1.3)
u

Din noiunile introductive tim c un drum este o succesiune de arce permise:

= (u1, u2, ..., uq) , ui 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:

v(*) = min{v() G*(s, t)}. (1.4)


Capitolul 1 Teoria grafurilor. Optimizri n reele de transport i distribuie 10

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

n concluzie, nu exist un drum de valoare minim n mulimea drumurilor de la s la x i problema nu


are soluie.
Reciproc, dac G*(s) nu are circuite de valoare strict negativ atunci pentru orice x X exist un
drum de la s la x i deci i un drum elementar E de la s la x, inclus n . ntruct graful nu admite circuite
de valoare strict negativ, prin eliminarea circuitelor suplimentare ale drumului fa de E avem v(E)
v(), prin urmare minorantul va fi atins ntr-un drum elementar.
Pentru c mulimea drumurilor elementare este finit minimul acesteia este efectiv atins ntr-un
element al acesteia i problema are soluii, n sensul c exist drumuri de valoare minim.

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.4.2. Metoda Dijkstra2)

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

Referitor la un arc permis i, j U cu valoarea v i, j 0 presupunem c algoritmul a gsit un


drum de la s la i a crui valoare e reinut n eticheta d i i un drum de la s la j a crui valoare se
gsete n locaia d j . Figura 1.14 pune n eviden cele dou drumuri de la s la j.
- drumul i, j de valoare d i v i, j ;
- ,,vechiul drum de valoare d j .
Dac d i v i, 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 v i, j i actualizarea indicatorului de
preceden PRED (j): PRED (j) = i.
Cu aceste pregtiri trecem la prezentarea algoritmului Dijkstra.

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

Pas 3: Pentru fiecare nod j T , vecin cu i se compar d j cu suma d (i* ) v i , j (vezi


figura 1.14 cu i schimbat n i ).
- Dac d i v i , j d j se trece la examinarea altui nod din T vecin cu i ;

- 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 + -

Drumurile de valoare minim se construiesc cu ajutorul indicelui de preceden i sunt vizualizate n


figura 1.16.
d(x) = 4 d(y) = 7
PRED(x) = s PRED(y) = x
3
x y
4
d(s) = 0 d(w) = +
s 1 PRED(w) =
w
3

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.

S-ar putea să vă placă și