Upload
vanminh
View
224
Download
0
Embed Size (px)
Citation preview
Przykªad przebiegualgorytmu Dijkstry
Autor projektu: dr Andrzej Mróz (UMK)
Projekt pn. �Wzmocnienie potencjaªu dydaktycznego UMK w Toruniu w dziedzinachmatematyczno-przyrodniczych� realizowany w ramach Poddziaªania 4.1.1 Programu Operacyjnego
Kapitaª Ludzki
1 / 3Projekt wspóª�nansowany ze ±rodków Unii Europejskiej w ramach Europejskiego Funduszu Spoªecznego
N
Algorytm - przebieg dla s = 1
Dijkstra(G, w, s)begin
Initialize(G, s);Q := V(G);while Q <> ∅ do
begin
u := ExtractMin(Q);for ka»dy v ∈ Adj[u] do
Relax(u, v, w);end
end;
Relax(u, v, w)begin
if d[v] > d[u] + w(u,v) thenbegin
d[v] := d[u] + w(u,v);π[v] := u
end
end;
-10�
5
?
7
?
20@@@R
10
-2
-4,5
����6
wg1 wg wgwg wg wg
s
2 3
4 5 6
g1g4 g5
g2g6g3
w π[w ] d [w ]1 ∞ 02 ∞ ∞3 ∞ ∞4 ∞ ∞5 ∞ ∞6 ∞ ∞
Q: 1 2 3 4 5 6
u v d [v ] d [u] w(u, v)
1 2 ∞ > 0 + 101 4 ∞ > 0 + 71 5 ∞ > 0 + 104 5 10 > 7 + 25 3 ∞ > 9 + 65 6 ∞ > 9 + 4, 52 1 0 < 10 + 52 5 9 < 10 + 206 −3 −
2 / 3Projekt wspóª�nansowany ze ±rodków Unii Europejskiej w ramach Europejskiego Funduszu Spoªecznego
N
Algorytm - przebieg dla s = 1
Dijkstra(G, w, s)begin
Initialize(G, s);Q := V(G);while Q <> ∅ do
begin
u := ExtractMin(Q);for ka»dy v ∈ Adj[u] do
Relax(u, v, w);end
end;
Relax(u, v, w)begin
if d[v] > d[u] + w(u,v) thenbegin
d[v] := d[u] + w(u,v);π[v] := u
end
end;
-10�
5
?
7
?
20@@@R
10
-2
-4,5
����6
wg1 wg wgwg wg wg
s
2 3
4 5 6
wg1g4 g5
g2g6g3
w π[w ] d [w ]1 ∞ 02 ∞ ∞3 ∞ ∞4 ∞ ∞5 ∞ ∞6 ∞ ∞
Q: 2 3 4 5 6
u v d [v ] d [u] w(u, v)1
2 ∞ > 0 + 101 4 ∞ > 0 + 71 5 ∞ > 0 + 104 5 10 > 7 + 25 3 ∞ > 9 + 65 6 ∞ > 9 + 4, 52 1 0 < 10 + 52 5 9 < 10 + 206 −3 −
2 / 3Projekt wspóª�nansowany ze ±rodków Unii Europejskiej w ramach Europejskiego Funduszu Spoªecznego
N
Algorytm - przebieg dla s = 1
Dijkstra(G, w, s)begin
Initialize(G, s);Q := V(G);while Q <> ∅ do
begin
u := ExtractMin(Q);for ka»dy v ∈ Adj[u] do
Relax(u, v, w);end
end;
Relax(u, v, w)begin
if d[v] > d[u] + w(u,v) thenbegin
d[v] := d[u] + w(u,v);π[v] := u
end
end;
--10�
5
?
7
?
20@@@R
10
-2
-4,5
����6
wg1 wg wgwg wg wg
s
2 3
4 5 6
wg1g4 g5
g2g6g3
w π[w ] d [w ]1 ∞ 02 ∞ ∞3 ∞ ∞4 ∞ ∞5 ∞ ∞6 ∞ ∞
Q: 2 3 4 5 6
u v d [v ] d [u] w(u, v)1 2 ∞ > 0 + 10
1 4 ∞ > 0 + 71 5 ∞ > 0 + 104 5 10 > 7 + 25 3 ∞ > 9 + 65 6 ∞ > 9 + 4, 52 1 0 < 10 + 52 5 9 < 10 + 206 −3 −
2 / 3Projekt wspóª�nansowany ze ±rodków Unii Europejskiej w ramach Europejskiego Funduszu Spoªecznego
N
Algorytm - przebieg dla s = 1
Dijkstra(G, w, s)begin
Initialize(G, s);Q := V(G);while Q <> ∅ do
begin
u := ExtractMin(Q);for ka»dy v ∈ Adj[u] do
Relax(u, v, w);end
end;
Relax(u, v, w)begin
if d[v] > d[u] + w(u,v) thenbegin
d[v] := d[u] + w(u,v);π[v] := u
end
end;
--10�
5
?
7
?
20@@@R
10
-2
-4,5
����6
wg1 wg wgwg wg wg
s
2 3
4 5 6
wg1g4 g5
g2g6g3
w π[w ] d [w ]1 ∞ 02 1 103 ∞ ∞4 ∞ ∞5 ∞ ∞6 ∞ ∞
Q: 2 3 4 5 6
u v d [v ] d [u] w(u, v)1 2 ∞ > 0 + 10
1 4 ∞ > 0 + 71 5 ∞ > 0 + 104 5 10 > 7 + 25 3 ∞ > 9 + 65 6 ∞ > 9 + 4, 52 1 0 < 10 + 52 5 9 < 10 + 206 −3 −
2 / 3Projekt wspóª�nansowany ze ±rodków Unii Europejskiej w ramach Europejskiego Funduszu Spoªecznego
N
Algorytm - przebieg dla s = 1
Dijkstra(G, w, s)begin
Initialize(G, s);Q := V(G);while Q <> ∅ do
begin
u := ExtractMin(Q);for ka»dy v ∈ Adj[u] do
Relax(u, v, w);end
end;
Relax(u, v, w)begin
if d[v] > d[u] + w(u,v) thenbegin
d[v] := d[u] + w(u,v);π[v] := u
end
end;
-10�
5
??
7
?
20@@@R
10
-2
-4,5
����6
wg1 wg wgwg wg wg
s
2 3
4 5 6
wg1g4 g5
g2g6g3
w π[w ] d [w ]1 ∞ 02 1 103 ∞ ∞4 ∞ ∞5 ∞ ∞6 ∞ ∞
Q: 2 3 4 5 6
u v d [v ] d [u] w(u, v)1 2 ∞ > 0 + 101 4 ∞ > 0 + 7
1 5 ∞ > 0 + 104 5 10 > 7 + 25 3 ∞ > 9 + 65 6 ∞ > 9 + 4, 52 1 0 < 10 + 52 5 9 < 10 + 206 −3 −
2 / 3Projekt wspóª�nansowany ze ±rodków Unii Europejskiej w ramach Europejskiego Funduszu Spoªecznego
N
Algorytm - przebieg dla s = 1
Dijkstra(G, w, s)begin
Initialize(G, s);Q := V(G);while Q <> ∅ do
begin
u := ExtractMin(Q);for ka»dy v ∈ Adj[u] do
Relax(u, v, w);end
end;
Relax(u, v, w)begin
if d[v] > d[u] + w(u,v) thenbegin
d[v] := d[u] + w(u,v);π[v] := u
end
end;
-10�
5
??
7
?
20@@@R
10
-2
-4,5
����6
wg1 wg wgwg wg wg
s
2 3
4 5 6
wg1g4 g5
g2g6g3
w π[w ] d [w ]1 ∞ 02 1 103 ∞ ∞4 1 75 ∞ ∞6 ∞ ∞
Q: 2 3 4 5 6
u v d [v ] d [u] w(u, v)1 2 ∞ > 0 + 101 4 ∞ > 0 + 7
1 5 ∞ > 0 + 104 5 10 > 7 + 25 3 ∞ > 9 + 65 6 ∞ > 9 + 4, 52 1 0 < 10 + 52 5 9 < 10 + 206 −3 −
2 / 3Projekt wspóª�nansowany ze ±rodków Unii Europejskiej w ramach Europejskiego Funduszu Spoªecznego
N
Algorytm - przebieg dla s = 1
Dijkstra(G, w, s)begin
Initialize(G, s);Q := V(G);while Q <> ∅ do
begin
u := ExtractMin(Q);for ka»dy v ∈ Adj[u] do
Relax(u, v, w);end
end;
Relax(u, v, w)begin
if d[v] > d[u] + w(u,v) thenbegin
d[v] := d[u] + w(u,v);π[v] := u
end
end;
-10�
5
?
7
?
20@@@R
@@@R
10
-2
-4,5
����6
wg1 wg wgwg wg wg
s
2 3
4 5 6
wg1g4 g5
g2g6g3
w π[w ] d [w ]1 ∞ 02 1 103 ∞ ∞4 1 75 ∞ ∞6 ∞ ∞
Q: 2 3 4 5 6
u v d [v ] d [u] w(u, v)1 2 ∞ > 0 + 101 4 ∞ > 0 + 71 5 ∞ > 0 + 10
4 5 10 > 7 + 25 3 ∞ > 9 + 65 6 ∞ > 9 + 4, 52 1 0 < 10 + 52 5 9 < 10 + 206 −3 −
2 / 3Projekt wspóª�nansowany ze ±rodków Unii Europejskiej w ramach Europejskiego Funduszu Spoªecznego
N
Algorytm - przebieg dla s = 1
Dijkstra(G, w, s)begin
Initialize(G, s);Q := V(G);while Q <> ∅ do
begin
u := ExtractMin(Q);for ka»dy v ∈ Adj[u] do
Relax(u, v, w);end
end;
Relax(u, v, w)begin
if d[v] > d[u] + w(u,v) thenbegin
d[v] := d[u] + w(u,v);π[v] := u
end
end;
-10�
5
?
7
?
20@@@R
@@@R
10
-2
-4,5
����6
wg1 wg wgwg wg wg
s
2 3
4 5 6
wg1g4 g5
g2g6g3
w π[w ] d [w ]1 ∞ 02 1 103 ∞ ∞4 1 75 1 106 ∞ ∞
Q: 2 3 4 5 6
u v d [v ] d [u] w(u, v)1 2 ∞ > 0 + 101 4 ∞ > 0 + 71 5 ∞ > 0 + 10
4 5 10 > 7 + 25 3 ∞ > 9 + 65 6 ∞ > 9 + 4, 52 1 0 < 10 + 52 5 9 < 10 + 206 −3 −
2 / 3Projekt wspóª�nansowany ze ±rodków Unii Europejskiej w ramach Europejskiego Funduszu Spoªecznego
N
Algorytm - przebieg dla s = 1
Dijkstra(G, w, s)begin
Initialize(G, s);Q := V(G);while Q <> ∅ do
begin
u := ExtractMin(Q);for ka»dy v ∈ Adj[u] do
Relax(u, v, w);end
end;
Relax(u, v, w)begin
if d[v] > d[u] + w(u,v) thenbegin
d[v] := d[u] + w(u,v);π[v] := u
end
end;
-10�
5
?
7
?
20@@@R
10
-2
-4,5
����6
wg1 wg wgwg wg wg
s
2 3
4 5 6
wg1wg4 g5
g2g6g3
w π[w ] d [w ]1 ∞ 02 1 103 ∞ ∞4 1 75 1 106 ∞ ∞
Q: 2 3 5 6
u v d [v ] d [u] w(u, v)1 2 ∞ > 0 + 101 4 ∞ > 0 + 71 5 ∞ > 0 + 104
5 10 > 7 + 25 3 ∞ > 9 + 65 6 ∞ > 9 + 4, 52 1 0 < 10 + 52 5 9 < 10 + 206 −3 −
2 / 3Projekt wspóª�nansowany ze ±rodków Unii Europejskiej w ramach Europejskiego Funduszu Spoªecznego
N
Algorytm - przebieg dla s = 1
Dijkstra(G, w, s)begin
Initialize(G, s);Q := V(G);while Q <> ∅ do
begin
u := ExtractMin(Q);for ka»dy v ∈ Adj[u] do
Relax(u, v, w);end
end;
Relax(u, v, w)begin
if d[v] > d[u] + w(u,v) thenbegin
d[v] := d[u] + w(u,v);π[v] := u
end
end;
-10�
5
?
7
?
20@@@R
10
--2
-4,5
����6
wg1 wg wgwg wg wg
s
2 3
4 5 6
wg1wg4 g5
g2g6g3
w π[w ] d [w ]1 ∞ 02 1 103 ∞ ∞4 1 75 1 106 ∞ ∞
Q: 2 3 5 6
u v d [v ] d [u] w(u, v)1 2 ∞ > 0 + 101 4 ∞ > 0 + 71 5 ∞ > 0 + 104 5 10 > 7 + 2
5 3 ∞ > 9 + 65 6 ∞ > 9 + 4, 52 1 0 < 10 + 52 5 9 < 10 + 206 −3 −
2 / 3Projekt wspóª�nansowany ze ±rodków Unii Europejskiej w ramach Europejskiego Funduszu Spoªecznego
N
Algorytm - przebieg dla s = 1
Dijkstra(G, w, s)begin
Initialize(G, s);Q := V(G);while Q <> ∅ do
begin
u := ExtractMin(Q);for ka»dy v ∈ Adj[u] do
Relax(u, v, w);end
end;
Relax(u, v, w)begin
if d[v] > d[u] + w(u,v) thenbegin
d[v] := d[u] + w(u,v);π[v] := u
end
end;
-10�
5
?
7
?
20@@@R
10
--2
-4,5
����6
wg1 wg wgwg wg wg
s
2 3
4 5 6
wg1wg4 g5
g2g6g3
w π[w ] d [w ]1 ∞ 02 1 103 ∞ ∞4 1 75 4 96 ∞ ∞
Q: 2 3 5 6
u v d [v ] d [u] w(u, v)1 2 ∞ > 0 + 101 4 ∞ > 0 + 71 5 ∞ > 0 + 104 5 10 > 7 + 2
5 3 ∞ > 9 + 65 6 ∞ > 9 + 4, 52 1 0 < 10 + 52 5 9 < 10 + 206 −3 −
2 / 3Projekt wspóª�nansowany ze ±rodków Unii Europejskiej w ramach Europejskiego Funduszu Spoªecznego
N
Algorytm - przebieg dla s = 1
Dijkstra(G, w, s)begin
Initialize(G, s);Q := V(G);while Q <> ∅ do
begin
u := ExtractMin(Q);for ka»dy v ∈ Adj[u] do
Relax(u, v, w);end
end;
Relax(u, v, w)begin
if d[v] > d[u] + w(u,v) thenbegin
d[v] := d[u] + w(u,v);π[v] := u
end
end;
-10�
5
?
7
?
20@@@R
10
-2
-4,5
����6
wg1 wg wgwg wg wg
s
2 3
4 5 6
wg1wg4 wg5
g2g6g3
w π[w ] d [w ]1 ∞ 02 1 103 ∞ ∞4 1 75 4 96 ∞ ∞
Q: 2 3 6
u v d [v ] d [u] w(u, v)1 2 ∞ > 0 + 101 4 ∞ > 0 + 71 5 ∞ > 0 + 104 5 10 > 7 + 25
3 ∞ > 9 + 65 6 ∞ > 9 + 4, 52 1 0 < 10 + 52 5 9 < 10 + 206 −3 −
2 / 3Projekt wspóª�nansowany ze ±rodków Unii Europejskiej w ramach Europejskiego Funduszu Spoªecznego
N
Algorytm - przebieg dla s = 1
Dijkstra(G, w, s)begin
Initialize(G, s);Q := V(G);while Q <> ∅ do
begin
u := ExtractMin(Q);for ka»dy v ∈ Adj[u] do
Relax(u, v, w);end
end;
Relax(u, v, w)begin
if d[v] > d[u] + w(u,v) thenbegin
d[v] := d[u] + w(u,v);π[v] := u
end
end;
-10�
5
?
7
?
20@@@R
10
-2
-4,5
����
����6
wg1 wg wgwg wg wg
s
2 3
4 5 6
wg1wg4 wg5
g2g6g3
w π[w ] d [w ]1 ∞ 02 1 103 ∞ ∞4 1 75 4 96 ∞ ∞
Q: 2 3 6
u v d [v ] d [u] w(u, v)1 2 ∞ > 0 + 101 4 ∞ > 0 + 71 5 ∞ > 0 + 104 5 10 > 7 + 25 3 ∞ > 9 + 6
5 6 ∞ > 9 + 4, 52 1 0 < 10 + 52 5 9 < 10 + 206 −3 −
2 / 3Projekt wspóª�nansowany ze ±rodków Unii Europejskiej w ramach Europejskiego Funduszu Spoªecznego
N
Algorytm - przebieg dla s = 1
Dijkstra(G, w, s)begin
Initialize(G, s);Q := V(G);while Q <> ∅ do
begin
u := ExtractMin(Q);for ka»dy v ∈ Adj[u] do
Relax(u, v, w);end
end;
Relax(u, v, w)begin
if d[v] > d[u] + w(u,v) thenbegin
d[v] := d[u] + w(u,v);π[v] := u
end
end;
-10�
5
?
7
?
20@@@R
10
-2
-4,5
����
����6
wg1 wg wgwg wg wg
s
2 3
4 5 6
wg1wg4 wg5
g2g6g3
w π[w ] d [w ]1 ∞ 02 1 103 5 154 1 75 4 96 ∞ ∞
Q: 2 3 6
u v d [v ] d [u] w(u, v)1 2 ∞ > 0 + 101 4 ∞ > 0 + 71 5 ∞ > 0 + 104 5 10 > 7 + 25 3 ∞ > 9 + 6
5 6 ∞ > 9 + 4, 52 1 0 < 10 + 52 5 9 < 10 + 206 −3 −
2 / 3Projekt wspóª�nansowany ze ±rodków Unii Europejskiej w ramach Europejskiego Funduszu Spoªecznego
N
Algorytm - przebieg dla s = 1
Dijkstra(G, w, s)begin
Initialize(G, s);Q := V(G);while Q <> ∅ do
begin
u := ExtractMin(Q);for ka»dy v ∈ Adj[u] do
Relax(u, v, w);end
end;
Relax(u, v, w)begin
if d[v] > d[u] + w(u,v) thenbegin
d[v] := d[u] + w(u,v);π[v] := u
end
end;
-10�
5
?
7
?
20@@@R
10
-2
--4,5
����6
wg1 wg wgwg wg wg
s
2 3
4 5 6
wg1wg4 wg5
g2g6g3
w π[w ] d [w ]1 ∞ 02 1 103 5 154 1 75 4 96 ∞ ∞
Q: 2 3 6
u v d [v ] d [u] w(u, v)1 2 ∞ > 0 + 101 4 ∞ > 0 + 71 5 ∞ > 0 + 104 5 10 > 7 + 25 3 ∞ > 9 + 65 6 ∞ > 9 + 4, 5
2 1 0 < 10 + 52 5 9 < 10 + 206 −3 −
2 / 3Projekt wspóª�nansowany ze ±rodków Unii Europejskiej w ramach Europejskiego Funduszu Spoªecznego
N
Algorytm - przebieg dla s = 1
Dijkstra(G, w, s)begin
Initialize(G, s);Q := V(G);while Q <> ∅ do
begin
u := ExtractMin(Q);for ka»dy v ∈ Adj[u] do
Relax(u, v, w);end
end;
Relax(u, v, w)begin
if d[v] > d[u] + w(u,v) thenbegin
d[v] := d[u] + w(u,v);π[v] := u
end
end;
-10�
5
?
7
?
20@@@R
10
-2
--4,5
����6
wg1 wg wgwg wg wg
s
2 3
4 5 6
wg1wg4 wg5
g2g6g3
w π[w ] d [w ]1 ∞ 02 1 103 5 154 1 75 4 96 5 13, 5
Q: 2 3 6
u v d [v ] d [u] w(u, v)1 2 ∞ > 0 + 101 4 ∞ > 0 + 71 5 ∞ > 0 + 104 5 10 > 7 + 25 3 ∞ > 9 + 65 6 ∞ > 9 + 4, 5
2 1 0 < 10 + 52 5 9 < 10 + 206 −3 −
2 / 3Projekt wspóª�nansowany ze ±rodków Unii Europejskiej w ramach Europejskiego Funduszu Spoªecznego
N
Algorytm - przebieg dla s = 1
Dijkstra(G, w, s)begin
Initialize(G, s);Q := V(G);while Q <> ∅ do
begin
u := ExtractMin(Q);for ka»dy v ∈ Adj[u] do
Relax(u, v, w);end
end;
Relax(u, v, w)begin
if d[v] > d[u] + w(u,v) thenbegin
d[v] := d[u] + w(u,v);π[v] := u
end
end;
-10�
5
?
7
?
20@@@R
10
-2
-4,5
����6
wg1 wg wgwg wg wg
s
2 3
4 5 6
wg1wg4 wg5
wg2g6g3
w π[w ] d [w ]1 ∞ 02 1 103 5 154 1 75 4 96 5 13, 5
Q: 3 6
u v d [v ] d [u] w(u, v)1 2 ∞ > 0 + 101 4 ∞ > 0 + 71 5 ∞ > 0 + 104 5 10 > 7 + 25 3 ∞ > 9 + 65 6 ∞ > 9 + 4, 52
1 0 < 10 + 52 5 9 < 10 + 206 −3 −
2 / 3Projekt wspóª�nansowany ze ±rodków Unii Europejskiej w ramach Europejskiego Funduszu Spoªecznego
N
Algorytm - przebieg dla s = 1
Dijkstra(G, w, s)begin
Initialize(G, s);Q := V(G);while Q <> ∅ do
begin
u := ExtractMin(Q);for ka»dy v ∈ Adj[u] do
Relax(u, v, w);end
end;
Relax(u, v, w)begin
if d[v] > d[u] + w(u,v) thenbegin
d[v] := d[u] + w(u,v);π[v] := u
end
end;
-10��
5
?
7
?
20@@@R
10
-2
-4,5
����6
wg1 wg wgwg wg wg
s
2 3
4 5 6
wg1wg4 wg5
wg2g6g3
w π[w ] d [w ]1 ∞ 02 1 103 5 154 1 75 4 96 5 13, 5
Q: 3 6
u v d [v ] d [u] w(u, v)1 2 ∞ > 0 + 101 4 ∞ > 0 + 71 5 ∞ > 0 + 104 5 10 > 7 + 25 3 ∞ > 9 + 65 6 ∞ > 9 + 4, 52 1 0 < 10 + 5
2 5 9 < 10 + 206 −3 −
2 / 3Projekt wspóª�nansowany ze ±rodków Unii Europejskiej w ramach Europejskiego Funduszu Spoªecznego
N
Algorytm - przebieg dla s = 1
Dijkstra(G, w, s)begin
Initialize(G, s);Q := V(G);while Q <> ∅ do
begin
u := ExtractMin(Q);for ka»dy v ∈ Adj[u] do
Relax(u, v, w);end
end;
Relax(u, v, w)begin
if d[v] > d[u] + w(u,v) thenbegin
d[v] := d[u] + w(u,v);π[v] := u
end
end;
-10�
5
?
7
??
20@@@R
10
-2
-4,5
����6
wg1 wg wgwg wg wg
s
2 3
4 5 6
wg1wg4 wg5
wg2g6g3
w π[w ] d [w ]1 ∞ 02 1 103 5 154 1 75 4 96 5 13, 5
Q: 3 6
u v d [v ] d [u] w(u, v)1 2 ∞ > 0 + 101 4 ∞ > 0 + 71 5 ∞ > 0 + 104 5 10 > 7 + 25 3 ∞ > 9 + 65 6 ∞ > 9 + 4, 52 1 0 < 10 + 52 5 9 < 10 + 20
6 −3 −
2 / 3Projekt wspóª�nansowany ze ±rodków Unii Europejskiej w ramach Europejskiego Funduszu Spoªecznego
N
Algorytm - przebieg dla s = 1
Dijkstra(G, w, s)begin
Initialize(G, s);Q := V(G);while Q <> ∅ do
begin
u := ExtractMin(Q);for ka»dy v ∈ Adj[u] do
Relax(u, v, w);end
end;
Relax(u, v, w)begin
if d[v] > d[u] + w(u,v) thenbegin
d[v] := d[u] + w(u,v);π[v] := u
end
end;
-10�
5
?
7
?
20@@@R
10
-2
-4,5
����6
wg1 wg wgwg wg wg
s
2 3
4 5 6
wg1wg4 wg5
wg2wg6g3
w π[w ] d [w ]1 ∞ 02 1 103 5 154 1 75 4 96 5 13, 5
Q: 3
u v d [v ] d [u] w(u, v)1 2 ∞ > 0 + 101 4 ∞ > 0 + 71 5 ∞ > 0 + 104 5 10 > 7 + 25 3 ∞ > 9 + 65 6 ∞ > 9 + 4, 52 1 0 < 10 + 52 5 9 < 10 + 206 −
3 −
2 / 3Projekt wspóª�nansowany ze ±rodków Unii Europejskiej w ramach Europejskiego Funduszu Spoªecznego
N
Algorytm - przebieg dla s = 1
Dijkstra(G, w, s)begin
Initialize(G, s);Q := V(G);while Q <> ∅ do
begin
u := ExtractMin(Q);for ka»dy v ∈ Adj[u] do
Relax(u, v, w);end
end;
Relax(u, v, w)begin
if d[v] > d[u] + w(u,v) thenbegin
d[v] := d[u] + w(u,v);π[v] := u
end
end;
-10�
5
?
7
?
20@@@R
10
-2
-4,5
����6
wg1 wg wgwg wg wg
s
2 3
4 5 6
wg1wg4 wg5
wg2wg6wg3
w π[w ] d [w ]1 ∞ 02 1 103 5 154 1 75 4 96 5 13, 5
Q:
u v d [v ] d [u] w(u, v)1 2 ∞ > 0 + 101 4 ∞ > 0 + 71 5 ∞ > 0 + 104 5 10 > 7 + 25 3 ∞ > 9 + 65 6 ∞ > 9 + 4, 52 1 0 < 10 + 52 5 9 < 10 + 206 −3 −
2 / 3Projekt wspóª�nansowany ze ±rodków Unii Europejskiej w ramach Europejskiego Funduszu Spoªecznego
N
Algorytm - wyniki-10
�5
?
7
?
20@@@R
10
-2
-4,5
����6
wg1 wg wgwg wg wg
s
2 3
4 5 6
wg1wg4 wg5
wg2wg6wg3
w π[w ] d [w ]1 ∞ 02 1 103 5 154 1 75 4 96 5 13, 5
Po zako«czeniu dziaªania algorytmu
w wektorze π s¡ zakodowane najkrótsze drogi z s = 1 doposzczególnych wierzchoªków (poprzez system poprzedników),
w wektorze d s¡ zakodowane ich dªugo±ci.
I tak np. najkrótsza droga z 1 do 3 to: 1 → 4 → 5 → 3, o dª. 15.
Dokªadniejsze omówienie algorytmu � patrz wykªad.
3 / 3Projekt wspóª�nansowany ze ±rodków Unii Europejskiej w ramach Europejskiego Funduszu Spoªecznego
N
Algorytm - wyniki-10
�5
??
7
?
20@@@R
10
--2
-4,5
����
����6
wg1 wg wgwg wg wg
s
2 3
4 5 6
wg1wg4 wg5
wg2wg6wg3
w π[w ] d [w ]1 ∞ 02 1 103 5 154 1 75 4 96 5 13, 5
Po zako«czeniu dziaªania algorytmu
w wektorze π s¡ zakodowane najkrótsze drogi z s = 1 doposzczególnych wierzchoªków (poprzez system poprzedników),
w wektorze d s¡ zakodowane ich dªugo±ci.
I tak np. najkrótsza droga z 1 do 3 to: 1 → 4 → 5 → 3, o dª. 15.
Dokªadniejsze omówienie algorytmu � patrz wykªad.
3 / 3Projekt wspóª�nansowany ze ±rodków Unii Europejskiej w ramach Europejskiego Funduszu Spoªecznego
N