Sunteți pe pagina 1din 6

CAPITOLUL 4

TEORIA GRAFURILOR.
OPTIMIZRI N REELE DE TRANSPORT I DISTRIBUIE
EXEMPLE NUMERICE
3.1. Arbori maximali de valoare minim: Algoritmul Kruskal 1)
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 E V se alege o muchie ei cu valoarea v(ei ) cea mai mic, pentru care V ei nu
conine un ciclu. Se ia Y ei Y i |Y| + 1 |Y|.
Etapa iterativ se repet pn 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, acesta 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 3.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 3.1. 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.
6

B
7

4
7

4
6

3
C

Figura 3.1

Soluie:
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
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.
1

[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 3.2.a) i 3.2.b) prin alegerea fie a muchiei
[A, D] fie a muchiei [C, E].
6

B
7

4
F

b) H2

a) H1
Figura 3.2

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

B
7

4
F

6
C

4
7

b) H2

a) H1
Figura 3.3

Rezult dou soluii optime, deci doi arbori de valoare minim prezentai n figura 3.3, 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 3.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 4.6. Pe fiecare muchie este nscris valoarea numeric n 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

Figura 3.4

Rezolvarea problemei se reduce la determinarea unui arbore de valoare minim. TEM: Aplicai
algoritmul Kruskal pentru determinarea variantei optime de modernizare a drumurilor.

3.2 Problema drumului de valoare minim (Shortest Path Problem).


Algoritmul lui Dijkstra
Toate procedurile cunnoscute de cutare a drumurilor de valoare minim rezolv problema P(s).
Unele sunt capabile s rezolve i cazul mai general n care ponderile arcelor premise pot fi i negative.Pentru
cazul mai simplu al ponderilor nenegative n totalitate, algoritmul lui DIJKSTRA (citete Deikstra), 1959, pare a
fi cel mai adecvat.
Prezentarea algoritmului necesit cteva pregtiri.
1) Pe parcursul derulrii procedurii, nodurile grafului G se impart n dou categorii:
Noduri cercetate: un nod i se consider cercetat n momentul n care algoritmul a gsit un drum de
valoare minim de la nodul de plecare s la nodul i;
Noduri necercetate .
La start, singurul nod cercetat este nodul de plecare s; toate celelalte noduri sunt declarate necercetate.
2) S considerm un nod cercetat i. Dintre toate nodurile j necercetate i vecine cu i (adic exist arcul
permis (i,j) ) reinem pe acela pentru care valoarea c(i, j ) este cea mai mic. Nodul reinut se declar nod
candidat asociat nodului cercetat i. (candidat la... dobndirea calitii de nod cercetat!) Este posibil ca pentru
acelai nod cercetat s existe mai muli candidai sau s nu existe nici unul dup cum este posibil ca acelai nod
necercetat s candideze din partea mai multor noduri cercetate!

i
Drum de valoare
minim de la s la i

Arc permis cu cea


mai mic valoare

j
Figura 3.5

n figura 3.5 este vizualizat un nod cercetat i mpreun cu un candidat al su j. Nodul i fiind presupus
cercetat, aceasta nseamn c, n etapele anterioare, algoritmul a gsit un drum de valoare minim de la s la i.
Acest drum, completat cu arcul (i,j), reprezint un drum de la nodul s la nodul (necercetat) j pe care l vom numi
drumul asociat candidatului j i a crui valoare este c( ) c(i, j ) .
Ca urmare a faptului c un nod necercetat poate s candideze din partea mai multor noduri cercetate este
posibil ca el s aibe mai multe drumuri asociate!
Cu aceste pregtiri putem trece la prezentarea algoritmului lui Dijkstra.
Start: Nodul de plecare se declar nod cercetat i toate celelalte noduri din graf se declar necercetare.
Pasul iterativ: Pentru fiecare nod cercetat i se identific candidatul sau candidaii asociai lui i i se
calculeaz valorile drumurilor asociate acestor candidai. Nodul candidat j al crui drum asociat are cea mai
mic valoare va fi declarat nod cercetat. Teoria ne asigur c drumul asociat lui j este un drum de valoare
minim de la s la j. Se reia pasul iterativ.
Algoritmul se oprete n momentul n care:
Nu mai exist noduri candidate:
sau
Nodul de destinaie t a fost declarat nod cercetat.
Exemplul 3.3:
n graful din figura 3.6 valorile numerice nscrise pe muchii reprezint distane. Se cere determinarea
celui mai scurt drum de la nodul O la nodul T. Atenie: absena orientrilor vrea s nsemne c orice muchie
3

poate fi parcurs n ambele sensuri (deci graful are 11 muchii i 22 arce permise). Aplicm algoritmul lui
Dijkstra.
Soluie:
Start Nodul de plecare O este declarat cercetat; celelalte ase noduri ale grafului sunt declarate
necercetate.
Iteraia 1
Singurul nod cercetat O are trei vecini A,B,C dintre care, cel mai apropiat, este A. Nodul A va fi unicul
candidat asociat nodului cercetat O. Declarm cercetat nodul A; drumul cel mai scurt de la O la A se reduce la
arcul OA. Reinem arcul OA pentru graful G* (O) al drumurilor de valoare minim cu origina n O.

D
1

Figura 3.6
Iteraia 2 Avem dou noduri cercetate O i A.
Vecinii necercetai ai lui O sunt nodurile B i C; deoarece este mai apropiat de O, nodul C este nodul
candidat asociat n aceast iteraie nodului O.Drumul asociat lui C se reduce la arcul OC i are
valoarea 4.
Vecinii necercetai ai lui A sunt B i D; candidat va fi nodul mai apropiat B. Drumul asociat nodului
B se obine prelungind drumul de valoare minim de la O la A gsit la iteraia 1 cu arcul AB ;
lungimea drumului este egal cu 2 + 2 = 4.
Avem dou noduri candidate C i B ale cror drumuri asociate au aceeai lungime 4. Le declarm pe
amndou ca fiind noduri cercetate. Conform teoriei ,drumurile asociate sunt cele mai scurte
drumuri ctre ele.
Iteraia 3 n acest moment nodurile O, A, B i C sunt cercetate.
Nodul O nu mai are vecini necercetai.
Nodul A are un singur vecin necercetat, nodul D, care va fi i candidatul su. Drumul asociat are
lungimea 2 + 2 = 4 iar ultimul su arc component este AD.
Vecinii necercetai ai lui B sunt D i E; candidatul lui B va fi nodul mai apropiat E. Drumul minim
pn la B are lungimea 4 (iteraia 2) astfel c drumul asociat candidatului E va avea lungimea 4 +
3 = 7 (s-a adugat lungimea ultimului arc BE).
E va candida i din partea lui C ca unic vecin necercetat i ca urmare va avea un al doilea drum
asociat, obinut prelungind drumul minim pn la C (n fapt, arcul OC) cu arcul CE. Lungimea
noului drum este 4 + 4 = 8.
Comparm lungimile drumurilor asociate construite. Cel mai scurt se termin n E, nainte de a
ajunge n E trece prin B i are lungimea 7. n consecin declarm E nod cercetat i reinem arcul BE
ca ultim arc pe drumul cel mai scurt ctre E.
4

Iteraia 4
La acest stadiu al derulrii algoritmului sunt declarate cercetate nodurile O,A,B,C i E.Sunt cunoscute
valorile minimale ale drumurilor da la O ctre A,B,C i E. Sunt reinute deasemenea ultimele arce ale
drumurilor minimale; dup cum vom vedea cunoatera acestor arce va fi suficient pentru reconstituirea
drumurilor minimale din O ctre orice alt nod al grafului!
D este singurul nod candidat, asociat ns la numai puin de trei noduri deja cercetate A,B i E.Este clar c D va
fi urmtorul nod declarat cercetat; rmne s stabilim lungimea drumului minimal de la O la D i ultimul su arc!
Algoritmul ia n considerare trei drumuri de la O la D:
- drumul minim de la O la A, prelungit cu arcul AD; lungime: 2 + 7 = 9;
- drumul minim de la O la B, prelungit cu arcul BD; lungime: 4 + 4 = 8;
- drumul minim de la O la E, prelungit cu arcul ED; lungime: 7 + 1 = 8;
n concluzie, cele mai scurte drumuri de la O la D au lungimea 8 i nainte de a ajunge n D trec, fie prin B fie
prin E!
Iteraia 5 Nodul T candideaz:
- o dat din partea lui D - drumul asociat va avea lungimea 8 + 5 = 13;
- alt dat din partea lui E - drumul asociat va avea lungimea 7 + 7 = 14.
Prin urmare, cel mai scurt drum de la O la T va avea lungimea 13 iar ultimul su arc va fi DT.
Deoarece am atins nodul T algoritmul se oprete.n cazul de fa toate nodurile grafului au fost
cercetate aa nct algoritmul a gsit i toate drumurile minimale cu origina n O!
Consideraiile de mai sus au fost sintetizate n tabelul 3.1
2

1
E

Figura 3.7
Determinarea efectiv a nodurilor prin care trece drumul cel mai scurt de la O la T sau la oricare alt nod
se face din aproape n aproape de la sfrit ctre nceputul drumului folosind arcele reinute pe parcurs.
Exist dou drumuri optime indicate n figura 3.7:
n fapt, algoritmul a determinat drumurile de valoare minim de la O la toate celelalte noduri vezi
figura 3.8.
A

Figura 3.8
5

Iteraia

1
2
3

Noduri
Noduri
cercetate cu (necercetate)
vecini
candidate
necercetai
O
A
O
C
A
B
A
D
B
E
C
E
A
D
B
D
E
D
D
T
E
T

Tabelul 3.1
Care nod Valoarea minim a Ultimul arc pe
a fost
drumului ctre drumul de valoare
declarat
nodul declarat
minim
cercetat
cercetat
A
2
OA
C
4
OC
B
4
AB

Valoarea
drumului
asociat
2
4
2+2=4
2+7=9
4+3=7
4+4=8
2+7=9
4+4=8
7+1=8
8+5=13
7+7=14

BE

D
D
T

8
8
13

BD
ED
DT

Exemplul 3.4 - TEM:


1 ) Utiliznd algoritmul lui Dijkstra determinai cele mai scurte drumuri de la nodul A la

celelalte noduri ale grafului din figura 3.9


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

3
7

I
2

10

Figura 3.9

Exemplul 3.5 - TEM:

1. n reeaua din figura 3.10, valorile


numerice nscrise pe muchii reprezint
costuri de deplasare valabile n ambele
sensuri de parcurgere. Aplicai riguros
algoritmul
lui
Dijkstra
pentru
determinarea drumului de la nodul O la
nodul T cu cel mai mic cost.

A
2

8
1

5
6

B
7
E

F
Figura 3.10
6