Sunteți pe pagina 1din 15

CURSUL 1

CAPITOLUL 1 TEORIA GRAFURILOR. OPTIMIZ RI N REELE DE TRANSPORT I DISTRIBU IE


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

C1

50

300

100

F1

c12 c13 c21 c22

C2

120

3
100

300

F2

c23

C3

230

4
400

5
200

: surs (furnizor) : destinaie (consumator)

a)
Figura 1.1.

b)

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

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 y t z
a) Figura 1.2. b)

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

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.

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 lan uri: 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
G1

G2

Graful G = (V,E) se zice conex dac oricare dou noduri ale sale sunt extremitile unui lan. Dac G nu este conex, exist partiiile V = V1V2 .... Vs i E = E1 E2....Es astfel nct G1 = (V1,E1) , G2 = (V2,E2) , ..., Gs = (Vs,Es) sunt grafuri conexe. Subgrafurile G1, 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.

G3

Figura 1.4.

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

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

b c

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

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

adaug
**

**

F ig u r a 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).

Arbore nemaximal n G Figura 1.9.

Arbore maximal n G

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

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

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 v(H)
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 v(H)
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(ei ) v(ej) oricare ar fi ei, 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. Procedeul de construcie efectiv a unui arbore care acoper un graf dat G este prezentat n cele ce urmeaz:

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

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 7 A 3 C 5 E 5 7 4 6 6 D 4 F

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

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.

1)

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

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].
B 5 A 3 C a) H1 4 E 6 D 4 F A 3 C 5 b) H2 4 E B 6 D 4 F

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 5 1 8
10

3 6 3
10

5 3 6 8 7 4 7 7 8

1 3 2 4

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

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

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 lucr ri 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)

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

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

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

10

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 o c are valoarea + . De asemenea, o c o c are valoarea + 2 . Prin recuren, prelungirea drumului cu de k ori circuitul c, duce la drumul o c o4 c2 o ... o c , k , are valoarea + k. Prin urmare, lim ( + k ) = . 1 4 3
k ori

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

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 Dijkstra) 1. Preliminarii 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 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) = ).
)

1) Fiecrui nod i V i s-a asociat o variabil d (i ) numit n continuare eticheta nodului i. Prin

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

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

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

d (i )

v(i, j )

Figura 1.14

d ( j)

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

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

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

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. 4 8 s 3 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} 1 2 x 3 y 2 w

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

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

14

Iteraia 2: Se calculeaz min{d (i ), i T } = min{4, 8, 6} = 4 i = x 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 ) : 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}.

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 .

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 START ITERAIA 1 ITERAIA 2 ITERAIA 3 ITERAIA 4 STOP d(s) d(x) PRED(x) d(y) PRED (y) d(z) PRED (z) d(t) PRED (t) d(w) PRED (w)

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

+ + + + + +

Drumurile de valoare minim se construiesc cu ajutorul indicelui de preceden i sunt vizualizate n figura 1.16.
d(x) = 4 PRED(x) = s d(y) = 7 PRED(y) = x

d(s) = 0

4 s 3 z

x 1

y
d(w) = + PRED(w) =

d(z) = 3 PRED(z) = s

d(t) = 5 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

5
s

4 1 4
2

2
4

8 Figura 1.17

45
2

40 10
5

65
8

50 70 50 120
7

sosire

60 plecare 40
1

50
3

Figura 1.18 s 6 1 3 6 5 4 7 7 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. 4 5 4 2 6 2 2 5 4 8 3 3

1
9