Documente Academic
Documente Profesional
Documente Cultură
3 3 3
(x
1
; x
3
) 2 1
2 2 2
(x
1
; x
4
) 3 1
3 3 3
(x
2
; x
3
) 1 0 -1 -1 -1
(x
2
; x
5
) 3 0 1
3 3
(x
2
; x
6
) 2 0 1
0 0
(x
3
; x
4
) 2 0 1 1 1
(x
3
; x
6
) 1 0 1
1 1
(x
3
; x
7
) 4 0 1
4 4
(x
4
; x
7
) 3 0 1
3 3
(x
5
; x
8
) 2 0 0 1
0
(x
6
; x
5
) 5 0 0 3 3
(x
6
; x
8
) 3 0 0 1
3
(x
7
; x
5
) 5 0 0 0 0
(x
7
; x
8
) 1 0 0 1
0
Tabelul 3.2
Nr.iter. a
1
a
2
a
3
a
4
a
5
a
6
a
7
a
8
0 0 1 1 1 1 1 1 1
1 0 3 2 3 1 1 1 1
2 0 3 2 3 6 3 6 1
3 0 3 2 3 6 3 6 6
Pasul 3 Se calculeaz a diferentele a
(2)
j
a
(2)
i
si se compar a cu v
ji
iar n cazul cnd
a
(2)
j
a
(2)
i
> v
ij
se calculeaz a a
(3)
j
= a
(2)
i
+v
ij
. Se constat a c a diferentele a
(2)
8
a
(2)
5
; a
(2)
8
a
(2)
6
; a
(2)
8
a
(2)
7
sunt mai mari dect valorile arcelor corespunz atoare.
Le-am notat cu asterisc (coloana 5 tabelul 3.1). Pentru micsorarea lui a
8
exist a
8
Cercet ari Operationale Seminarul 1
trei variante:
8
>
>
<
>
>
:
a
(3)
8
= a
(2)
5
+ v
58
= 6 + 2 = 8
a
(3)
8
= a
(2)
6
+ v
86
= 3 + 3 = 6
a
(3)
8
= a
(2)
7
+ v
78
= 6 + 1 = 7
Se alege valoarea cea mai mic a, adic a v
(3)
8
= 6. Celelalte valori a
(3)
j
se mentin
nemodicate (vezi tabelul 3.2 iteratia 3).
Tabelul 3.2
Nr.iter. a
1
a
2
a
3
a
4
a
5
a
6
a
7
a
8
0 0 1 1 1 1 1 1 1
1 0 3 2 3 1 1 1 1
2 0 3 2 3 6 3 6 1
3 0 3 2 3 6 3 6 6
Pasul 4 Se calculeaz a a
(3)
j
a
(3)
i
constatndu-se c a nu mai exist a diferente pentru
care a
(3)
j
a
(3)
i
> v
ij
prin urmare valorile actuale a
(3)
j
nu mai pot micsorate.
Rezult a c a valoarea minim a a drumului care uneste pe x
1
cu x
8
este egal a cu 6 .
Etapa a III-a Pentru stabilirea succesiunii de vrfuri care formeaz a drumul
de valoare minim a se retin vrfurile adiacente pentru care n ultima coloan a a
tabelului 3.1 s-au obtinut:
a
(3)
j
a
(3)
i
= v
ij
(3.5)
Vom parcurge graful de la x
8
spre x
1
. Pentru a ajunge n x
8
drumul trebuie s a
foloseasc a un arc cu vrful nal x
8
. Alegem acele arce cu extremitatea nal a n x
8
pentru care are loc (3.5) a
(3)
8
a
(3)
6
= 3 = v
68
. nseamn a c a drumul foloseste arcul
(x
6
; x
8
). C aut am acum un arc cu vrful nal x
6
pentru care diferentele ultimelor
marcaje este egal a cu valoarea sa: a
(3)
6
a
(3)
3
= v
36
. Prin urmare drumul foloseste
arcul (x
3
; x
6
). Arcul cu vrful nal x
3
pentru care este adev arat a relatia (3.5)
este (x
1
; x
3
) deoarece a
(3)
3
a
(3)
1
= 2 = v
13
. n consecint a drumul de valoare
minim a ntre x
1
si x
8
este: = (x
1
; x
3
; x
6
; x
8
).
9
Determinarea drumului de valoare optim a
1.2 Algoritmul lui Dijkstra
Exemplul 1.2.1 Sa se stabileasca drumul de valoare minima ntre vrfurile x
1
si x
9
din graful de mai jos:
Figura 3.3
Solutie: Algoritmul are urm atorii pasi:
Pasul 1 Atribuim vrfului initial valoarea zero: w(x
1
) = 0:
Pasul 2 Se construieste multimea A format a din vrful initial: A = fx
1
g :
Pasul 3 Se analizeaz a vrfurile din afara multimii A. Exist a vrfuri n care se
poate ajunge prin arce directe din A:Acestea sunt fx
2
; x
5
; x
6
g 6 = ?:
3.1. Se calculeaz a pentru toate acestea:
w(x
2
) = minfw(x
1
) + v (x
1
; x
2
)g = 0 + 4 = 4
w(x
5
) = minfw(x
1
) + v (x
1
; x
5
)g = 0 + 5 = 5
w(x
6
) = minfw(x
1
) + v (x
1
; x
6
)g = 0 + 3 = 3
si se adaug a la multimea A doar cel pentru care se obtine valoarea minim a, adic a
x
6
apoi se trece la pasul 4.
Pasul 4 Se analizeaz a multimea A = fx
1
; x
6
g.
4.1. Deoarece x
9
= 2 A, se reia algoritmul de la pasul 3.
Pasul 3 Se analizeaz a vrfurile din afara multimii A. Exist a vrfuri n care se
poate ajunge prin arce directe din A:Acestea sunt fx
2
; x
5
; x
7
g 6 = ?:
Pentru etapele algoritmului Dijkstra studiaz a Cursul 2
10
Cercet ari Operationale Seminarul 1
3.1. Se calculeaz a pentru toate acestea:
w(x
2
) = minfw(x
1
) + v (x
1
; x
2
) ; w(x
6
) + v (x
6
; x
2
)g
= minf0 + 4; 3 + 8g = 4
w(x
5
) = minfw(x
1
) + v (x
1
; x
5
)g = 0 + 5 = 5
w(x
7
) = minfw(x
6
) + v (x
6
; x
7
)g = 3 + 5 = 8
minfw(x
2
) ; w(x
5
) ; w(x
7
)g = 4
si se adaug a la multimea A doar cel pentru care se obtine valoarea minim a, adic a
x
2
apoi se trece la pasul 4.
Pasul 4 Se analizeaz a multimea A = fx
1
; x
2
; x
6
g.
4.2. Deoarece x
9
= 2 A, se reia algoritmul de la pasul 3.
Pasul 3 Se analizeaz a vrfurile din afara multimii A. Exist a vrfuri n care se
poate ajunge prin arce directe din A:Acestea sunt fx
3
; x
4
; x
5
; x
7
g 6 = ?:
3.1. Se calculeaz a pentru toate acestea:
w(x
3
) = minfw(x
2
) + v (x
2
; x
3
)g = minf4 + 7g = 11
w(x
4
) = minfw(x
2
) + v (x
2
; x
4
)g = minf2 + 9g = 11
w(x
5
) = minfw(x
1
) + v (x
1
; x
5
)g = minf0 + 5g = 5
w(x
7
) = minfw(x
6
) + v (x
6
; x
7
)g = minf3 + 5g = 8
minfw(x
3
) ; w(x
4
) ; w(x
5
) ; w(x
7
)g = 5
si se adaug a la multimea A doar cel pentru care se obtine valoarea minim a, adic a
x
5
apoi se trece la pasul 4.
Pasul 4 Se analizeaz a multimea A = fx
1
; x
2
; x
5
; x
6
g.
4.2. Deoarece x
9
= 2 A, se reia algoritmul de la pasul 3.
Pasul 3 Se analizeaz a vrfurile din afara multimii A. Exist a vrfuri n care se
poate ajunge prin arce directe din A:Acestea sunt fx
3
; x
4
; x
7
; x
8
g 6 = ?:
3.1. Se calculeaz a pentru toate acestea:
w(x
3
) = minfw(x
2
) + v (x
2
; x
3
) ; w(x
5
) + v (x
5
; x
3
)g
= minf4 + 7; 5 + 2g = 7
w(x
4
) = minfw(x
2
) + v (x
2
; x
4
) ; w(x
5
) + v (x
5
; x
4
)g
= minf4 + 9; 5 + 7g = 12
w(x
7
) = minfw(x
5
) + v (x
5
; x
7
) ; w(x
6
) + v (x
6
; x
7
)g
= minf5 + 2; 3 + 5g = 7
w(x
8
) = minfw(x
5
) + v (x
5
; x
8
)g = minf5 + 9g = 14
11
Determinarea drumului de valoare optim a
minfw(x
3
) ; w(x
4
) ; w(x
7
) ; w(x
8
)g = w(x
3
) = w(x
7
) = 7
si se adaug a la multimea A doar cel pentru care se obtine valoarea minim a, adic a
x
3
si x
7
apoi se trece la pasul 4.
Pasul 4 Se analizeaz a multimea A = fx
1
; x
2
; x
3
; x
5
; x
6
; x
7
g.
4.2. Deoarece x
9
= 2 A, se reia algoritmul de la pasul 3.
Pasul 3 Se analizeaz a vrfurile din afara multimii A. Exist a vrfuri n care se
poate ajunge prin arce directe din A:Acestea sunt fx
4
; x
8
; x
9
g 6 = ?:
3.1. Se calculeaz a pentru toate acestea:
w(x
4
) = minfw(x
2
) + v (x
2
; x
4
) ; w(x
3
) + v (x
3
; x
4
) ; w(x
5
) + v (x
5
; x
4
)g
= minf4 + 9; 7 + 3; 5 + 7g = 10
w(x
8
) = minfw(x
5
) + v (x
5
; x
8
) ; w(x
7
) + v (x
7
; x
8
)g
= minf5 + 9; 7 + 6g = 13
w(x
9
) = minfw(x
3
) + v (x
3
; x
9
) ; w(x
7
) + v (x
7
; x
9
)g
= minf7 + 9; 7 + 8g = 15
minfw(x
4
) ; w(x
8
) ; w(x
9
)g = w(x
4
) = 10
si se adaug a la multimea A doar cel pentru care se obtine valoarea minim a, adic a
x
4
si apoi se trece la pasul 4.
Pasul 4 Se analizeaz a multimea A = fx
1
; x
2
; x
3
; x
4
; x
5
; x
6
; x
7
g.
4.2. Deoarece x
9
= 2 A, se reia algoritmul de la pasul 3.
Pasul 3 Se analizeaz a vrfurile din afara multimii A. Exist a vrfuri n care se
poate ajunge prin arce directe din A:Acestea sunt fx
8
; x
9
g 6 = ?:
3.1. Se calculeaz a pentru toate acestea:
w(x
8
) = minfw(x
5
) + v (x
5
; x
8
) ; w(x
7
) + v (x
7
; x
8
)g
= minf5 + 9; 7 + 6g = 13
w(x
9
) = minfw(x
3
) + v (x
3
; x
9
) ; w(x
4
) + v (x
4
; x
9
) ; w(x
7
) + v (x
7
; x
9
)g
= minf7 + 9; 10 + 3; 7 + 8g = 13
minfw(x
8
) ; w(x
9
)g = w(x
8
) = w(x
9
) = 13
si se adaug a la multimea A cele pentru care se obtine valoarea minim a, adic a x
4
si apoi se trece la pasul 4.
Pasul 4 Se analizeaz a multimea A = fx
1
; x
2
; x
3
; x
4
; x
5
; x
6
; x
7
; x
8
; x
9
g.
4.1. Deoarece x
9
2 A atunci valoarea sa reprezint a valoarea drumului optim de
12
Cercet ari Operationale Seminarul 1
la x
1
la x
9
: Pentru g asirea acestui drum se porneste de la vrful nal spre cel
initial si se g asesc vrfurile:
w(x
9
) = w(x
4
) + v (x
4
; x
9
)
w(x
4
) = w(x
3
) + v (x
3
; x
4
)
w(x
3
) = w(x
5
) + v (x
5
; x
3
)
w(x
5
) = w(x
1
) + v (x
1
; x
5
)
Deci vrfurile fx
1
; x
5
; x
3
; x
4
; x
9
g formeaz a drumul c autat.
13
Index
Algoritmul
Dijkstra, 10
Ford, 6
14