ぜみなーる
- 4. Single-Source Shortest Path Problem
Single-Source Shortest Path Problem
単一始点最短経路問題
あるグラフ G = ( V, E ) に対して,
ある節点 t と s ∈{ V - t }との最短経路を導出する問題
3
- 5. 単一始点最短経路問題の例
t=5
1 2 3 4
10 8
5
6
11 9 7
P(1) P(s) :5節点 s から t までの最短経路
= ( 1, )
P(10) = ( 10, 11, 9, 5 ) for every vertices…
4
- 6. Permutation Graph ( 1 )
V π : Permutation function
1 1
π(V) = { 4, 5, 7,
2 2
1, 3, 6, 2}
3 3
4 4
対応する番号間に
5 5
線が引かれる.
6 6
7 7
5
- 10. LINK を構築するための準備 (2)
lv(u) = max({ u } ∪ { u | (u, v) ∈ E})
lp(u) = π-1 (max ({π(u)} ∪ {π(v) | (u, v) ∈ E})
V π
1 1 lv(6) = 7
2 2
lp(6) = 3
3 3
4 4
5 5 lv(6) = 7’
6 6
lp(6’) = 3
7 7
9
- 11. LINK の構築方法 (1)
ある任意の節点 t から LINK を構築
例:t=6
V π 1. 6 と 6’ を同一化.
1 1 link(6) = nil.
2 2
3 3 6
4 4
5 5
6 6
7 7
10
- 13. LINK の構築方法 (3)
例:t=6
3. u ∈ V - t - { v | (v, t) ∈ E}
link(u) = lv(u) .
V π u ∈ { 1, 2, 4, 5}.
1 1
lv(1) = lv(2) = lv(5) = 7’
2 2 lv(4) = 4’
6
3 3
4 4 7’ 7 3 3’
5 5
6 6 1 2 5
7 7
12
- 14. LINK の構築方法 (4)
例:t=6
4. u’ ∈ V’ - t’ - { v’ | (v’, t’) ∈ E’}
link(u’) = lp(u’) .
V’ π u ∈ { 1’, 2’, 4’, 5’}.
1’ 1’
lp(1’) = 1, lp(2’) = 2,
2’ 2’ lp(4’) = lp(5’) = 3
6
3’ 3’
4’ 4’ 7’ 7 3 3’
5’ 5’
6’ 6’ 1 2 5 4’ 5’
7’ 7’
1’ 2’ 4
13
- 16. SSSP の実行例 (1)
例:t=6
V π 1 2
1 1
2 2
3 3
4 4 4 5 7
5 5
6 6
7 7 3 6
Step 1.
lv(u), lp(u), 1 ≦ u ≦ n の導出.
u 1 2 3 4 5 6 7
lv(u) 7 7 7 4 7 7 7
lp(u) 1 2 3 3 3 3 3
15
- 17. SSSP の実行例 (2)
例:t=6
V π V’ π
1 1 1’ 1’ 1 2 1’ 2’
2 2 2’ 2’
3 3 3’ 3’ 4 5 7 4’ 5’ 7’
4 4 4’ 4’
5 5 5’ 5’
3 6 3’ 6’
6 6 6’ 6’
7 7 7’ 7’
Step 2.
G の複製 G’ を生成し,lv, lp を修正.
u 1 2 3 4 5 6 7
lv(u) 7’
7 7’
7 7’
7 4’
4 7’
7 7’
7 7’
7
lp(u’)
lp(u) 1 2 3 3 3 3 3
16
- 19. SSSP の実行例 (2)
例:t=6
6
7’ 7 3 3’
1 2 5 4’ 5’
1’ 2’ 4
Step 4.
s ∈V - {t} に対して,Q(s) と Q(s’) を計算.
短いものを P(s) とする.
s=1
Q(1) = ( 1, 7’, 6 ), Q(1’) = ( 1’, 1, 7’, 6 )
P(1) = Q(1) = ( 1, 7’, 6 )
18
- 20. SSSP の実行例 (3)
例:t=6
Step 4. 6
7’ 7 3 3’
1 2 5 4’ 5’
1’ 2’ 4
s 1 2 3 4 5 7
Q(s) (1, 7’, 6) (2, 7’, 6) (3, 6) (4, 4’, 3, 6) (5, 7’, 6) (7, 6)
Q(s’) (1’, 1, 7’, 6) (2’, 2, 7’, 6) (3’, 6) (4’, 3, 6) (5’, 3, 6) (7’, 6)
P(s) (1, 7’, 6) (2, 7’, 6) (3, 6) (4’, 3, 6) (5, 7’, 6), (7, 6)
(5’, 3, 6)
19
- 21. 計算量の解析
Step 1. lp, lv の導出.: O(n)
Step 2. G の複製.: O(n)
Step 3. LINK の構築.: O(n)
深さ優先探索などの
Step 4. 最短経路 P(s) の導出. : O(n) 走査アルゴリズム[2].
計算量:O(n)
[2] Chen, C. Y., Das, S. K.,
全体の計算量 : O(n) ``Parallel algorithms for level-order traversals of general trees'',
J. Combin. Inform. System Sci 14 2--3, pp.135--162, 1989.
20
- 22. 考察と応用
Permutation Graph に限定することにより,仕事
量 O(n) で単一始点最短経路問題を解くことが可
能となった.
all-pairs shortest path problem
全対最短経路問題.
全ての節点対に対して,最短経路を導出する.
計算量 : O(n2)
21