1/4
中野 慎太郎最小遅延パス問題に対する近似アルゴリズムの研究
A Study of Approximation Algorithms for the Minimum Latency Path Problem
情報工学専攻 中 野 慎 太 郎
NAKANO Shintaro
概要 無向グラフにおいて, 与えられた始点から終点 まで, 与えられた点数以上の点を通るようなパスで長 さ最小のものを求める問題を最小遅延パス問題という.
本研究では,この問題に対し
Chaudhuri, Godfrey, Rao and Talwar [1]
が2003
年に提案した近似アルゴリズム を 実装し, 計算機実験を通してその近似性能を評価す る. さらに,近似性能や計算時間などの観点から2
つの 改善手法を提案し,各々の実験的性能評価を行った.1
序論メトリック空間上の無向グラフにおいて,各点におけ
る遅延
(latency)
を最小にするようなパスを求める問題を最小遅延パス問題
(Minimum Latency Path prob-
lem, MLP)
という. この問題はNP-困難で,
一般的なグラフに対しては
MaxSNP-困難であることがそれぞ
れ証明されている. また,類似の問題として巡回修理工 問題(Traveling Repairman Problem, TRP),
スクール バスドライバー問題(school-bus driver problem),
配 達人問題(delivery man problem)
が挙げられ,現実的 な問題への応用も模索されている.この問題に対して, Chauduri, Godfrey, Rao and Tal-
war [1]
は2003
年に同期的プライマルデュアル法(syn- chronized primal-dual algorithm)
を用いた近似アルゴ リズムを提案した. その内容はMLP
に対するラグラ ンジュ緩和問題(Lagrangian relaxation)
を解いていく というものである. そこで本研究ではそのアルゴリズ ムを実装し, 計算機実験を通してその近似性能を評価 した. さらに,近似性能や計算時間などの観点からより 効率的なアルゴリズムを目指し, 2つの改善手法を提案 し,各々について実験的性能評価を行った.2
問題定義重みつき無向グラフ
G = (V, E, c)
に対してパスP = (v
1, ..., v n )
を考える.V
は点集合,E
は辺集合,c
はコストをそれぞれ表している. パスP
における点v i ∈ P
の遅延(latency) l v
i,P
とは,点v i
に到達するま でのパスP
のコスト, すなわちl v
i,P = c((v
1, ..., v i ))
と表すことができる. MLP の目的は, グラフG
にお いて, 各ノードの遅延の総和が最小になるようなパス を求めることである. 本稿で扱う問題は,k-
パス問題(k-path problem)
と呼ばれるものであり,始点s
から 終点t
まで, 少なくともk
個以上のノードを通るパス のうち,最短のものを求める問題である.図
1
はC++クラスライブラリ LEDA
を用いて100
個の点, 200個の辺を入力として与えたときの様子を図 示したものである. なお,始点
s
は緑色,終点t
は赤色でそれぞれ表現されている.
図
1
のようなグラフに対して,例としてk = 50
とし た場合には図2
のようなパスが出力される. この場合 は74
個の点を通るようなパスが出力されている. なお,s, t
を除いて, 辺が奇数本の点, すなわち, 次数が奇数 の点においては, 接続する辺のうちちょうど1
本がパ スによって2
回辿られるものとする.図
1
入力例 図2
出力例3 Chaudhuri
らのアルゴリズム[1]
3.1
線形緩和問題Chaudhuri
らのアルゴリズムは,s
からt
までのk-
パス問題に対する線形緩和問題とその双対問題を用い ている. 以下に線形緩和問題(主問題)
を記す.min ∑
e
∈E
c e x e (1)
s.t. ∑
e
∈δ(S)
x e ≥ 2x v ∀ S ⊆ V \{ s, t } , ∀ v ∈ S
∑
e
∈δ(U)
x e ≥ 1 ∀ U ⊆ V : t ∈ U, s 6∈ U
∑
v
∈V
\{s,t
}x v ≥ k − 2
0 ≤ x v ≤ 1 ∀ v ∈ V \{ s, t } x e ≥ 0 ∀ e ∈ E
x e
は辺e
がパスに含まれるなら1,
そうでなければ0
をとる変数で,x v
はパス上のs, t
を除く(k − 2)
個以 上の点で1,
それ以外では0
をとる変数を表している.δ(S)
は一方の端点のみが点集合S
に含まれるような辺 の集合を示している.2/4
中野 慎太郎主問題
(1)
に対する双対問題を以下に記す.max (k − 2)p − ∑
v
∈V
\{s,t
}p v + ∑
U
:t∈U,s
6∈U
y t,U (2)
s.t. 2 ∑
S
3v
y v,S + p v ≥ p ∀ v 6 = t
∑
S:e
∈δ(S)
∑
v
∈S
y v,S
+ ∑
U:t
∈U,e
∈δ(U)
y t,U ≤ c e ∀ e ∈ E
p v ≤ 0 ∀ v ∈ V
y v,S ≥ 0 ∀ S ⊆ V \{ s, t } , ∀ v ∈ S y t,U ≥ 0 ∀ U ⊆ V \{ s } : t ∈ U 3.2
アルゴリズム入力としてグラフ
G = (V, E),
始点s ∈ V ,
終点t ∈ V
及びパラメータλ
が与えられる. アルゴリズム は2
つのフェイズ, 反復を繰り返し辺を追加していき 木を求めるGrowth Phase
と木から余分な辺を除去す るDelete Phase
より構成されている.Growth Phase
アルゴリズムにおいて, グラフは活性集合
(active component)
か 不活性集合(inactive component),
ど ちらかに分割されるものとする. 各点v
は非負の予算(budget) b v
を持ち,v
が含まれる集合の成長に寄与す る. 正の予算を持つ点を含み, かつs
を含まない集合, もしくはt
を含む集合が活性集合となり, すべての点 が予算0,
もしくはs
を含む集合が不活性となる. 初期 状態においては,各点はそれぞれ集合を構成しており,s
は予算0, t
は予算∞ ,
その他すべての点は予算λ
を それぞれ持つ. なお,変数y v,S
は各点v
が集合S
に含 まれているときに,どれだけ「支払った」かを表してお り,その初期値は0
である.以下にアルゴリズムを記す.
1.
小さな値²
と各活性集合S
から点v S
を選ぶ.2. ²
だけすべての点のλ
を減らす.²
だけ各v S
に対応するy v,S
を増やす.このとき,
²
は以下の1
か2
どちらかを満たすよう に選ばれるものとする.1. b v
S= 0
となるように²
を選ぶ. なお,b v
S= 0
と なったときは, 他のb v > 0
の点v ∈ S
が選ばれ る. そのような点がなければS
は不活性となる.2. y v,S
が辺e ∈ E
に「支払う」ことで集合C
1とC
2が併合できるように²
を選ぶ. このとき併合 した集合にs
が含まれるなら不活性となる.Growth Phase
は以上の操作を繰り返し, 各段階で選ばれた辺を記憶しておき, すべての集合が不活性と なった時点で終了する.
Delete Phase
Growth Phase
により得られたs
を含む集合をT
と する. 得られたT
は木となっている. ここで, GrowthPhase
の中で不活性集合を形成したことのあるすべての部分木
S ⊆ T \{ s }
を除去する. 除去することで得ら れた木T k
λ とy v,S
を返して終了する.4
提案手法(1)
Chauduri
らのアルゴリズムはs
とt
以外のすべての点に対して一律に同じ予算
λ
を与えている. そこで,λ
を一律ではなく, 距離などの条件を与えて変化させる ことにより,解の改善及び計算時間の短縮化を図った.λ
を一律に与えるのではなく,各辺のコストを距離とし て考え,始点s
と終点t
双方からある距離d
以上の点を「遠い」点と呼び,その集合を
V F
と定義する. また,s, t
双方からd
以内の点集合を「近い」と呼びV N
と書く ことにする. 与えられた点集合をV N
とV F
に分割し, それぞれに異なる予算λ
を与えることにする.5
実験的性能評価(1)
実験にあたって, 本研究では配送計画問題
(Vehicle Routing Problem, VRP)
に対する著名な例題である,Solomon
のベンチマーク1を入力データとして用いた.顧客が密集している配置の
C
タイプ,ランダムな配置 のR
タイプの2
タイプの例題をそれぞれ入力とした 実験を行った. 図3
はC
タイプの問題“C101”
の入力 を,図4
はR
タイプの問題“R101”
の入力をそれぞれ(x, y)
座標上に示したものである.0 10 20 30 40 50 60 70 80 90
0 20 40 60 80 100
x座標 座y
標
図
3 C101
0 10 20 30 40 50 60 70 80 90
0 20 40 60 80
x座標 y
座 標
図
4 R101 V N
とV F
へのλ
の与え方に差異をつけ,それぞれの 集合の個数を変化させ実験を行い, パスの長さ及び計 算時間の計測を行った.V N
の個数,V F
の個数はそれぞれ個数の比率が約1 : 1, 2 : 8, 8 : 2
となるようにs
とt
からの距離を与え た. また, 点の予算は入力λ
に対し,V N , V F
の点そ れぞれに定数倍したものを組合せることにする. 表1
は各データタイプとその番号を示している. 例として“n*1.25 f/1.75”
であればV N
に予算λ × 1.25, V F
に予 算λ ÷ 1.75
をそれぞれ与えることになる.図
5,
図6
にそれぞれC101, R101
に対して距離d
を 変化させ,V N , V F
の個数比を変化させたときの各デー タタイプに対するパスの長さの変化を示している.始点・終点に「近い」
V N
に多く予算を与えることに よってV N
に属する点ばかりで構成された,短いパスが 得られるものと期待していたが, 必要以上に多くの点 を取り込みすぎる結果となった. これは,アルゴリズム の各段階において, 与えられたλ
に対して所望のk
を 得ることができなかった場合にはλ
の値を増やして繰 り返すという操作が原因だと考えられる.| V N | : | V F |
の比率を約(1)2 : 8, (2)1 : 1, (3)8 : 2
ととり実験を行ってきたが,実際には同じ反復回数(同
1
M. M. Solomon http://w.cba.neu.edu/ msolomon/home.htm
3/4
中野 慎太郎じ
λ)
で得られた木の長さを比較してみるとその長さ は(1)<(2)<(3)
という順序になっていることがわか る. 表2
は, R101においてデータ(22)
を適用した際 に,λ = 3
によって得られた解のパスの長さを比較した ものである.これらの結果から,得られた木の点数をできるだけ抑 えることが解の改善に繋がることになると考えられる.
表
1
データタイプ番号 データタイプ 番号 データタイプ
1 n*1.0 f/1.0 12 f*1.0 n/1.75 2 n*1.25 f/1.25 13 f*1.0 n/2.0 3 n*1.5 f/1.5 14 f*1.25 n/1.25 4 n*1.75 f/1.75 15 f*1.5 n/1.5 5 n*2.0 f/2.0 16 f*1.75 n/1.75 6 n*1.25 f*1.0 17 f*2.0 n/2.0 7 n*1.5 f*1.0 18 n*1.0 f*0 8 n*1.75 f*1.0 19 n*1.25 f*0 9 n*2.0 f*1.0 20 n*1.5 f*0 10 f*1.0 n/1.25 21 n*1.75 f*0 11 f*1.0 n/1.5 22 n*2.0 f*0
0 500 1000 1500 2000 2500
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 データ番号
パス の長 さ
d=10 d=30 d=50
図
5
実験結果: C101表
2 R101:
データ(22)
の同じ反復回数での比較d
パスの点数 パスの長さ20 43 888.370339
30 50 1024.328474
40 70 1362.730144
6
提案手法(2)
入力
R101
に対して,d = 20
と設定した場合のデー タ(9)
に対してアルゴリズムを適用したとき,λ = 3
か ら開始した場合,λ = 4.5
となったときに71
個の点数 をもつパスが得られて解が返された.λ
は各反復で0.5
ずつ増加させているため, アルゴリズムは4
個のλ
に ついて計算を行ったことになる. その各反復ごとで求 められたパスの点数とパスの長さを比較したものが表3
となっている.0 200 400 600 800 1000 1200 1400 1600 1800 2000
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 データ番号
パス の長 さ
d=20 d=30 d=40
図
6
実験結果: R101このような前章の実験結果でみられた,最終的な解の 木の点数が多くなってしまうようなデータについては,
k
が得られる直前のλ
による解(表 3
の例ではλ = 4
のとき)は,k
に近い点数の木を得ることができている 場合が多い.表
3 R101:
データ(9) (d = 20)
の異なるλ
での比較λ
パスの点数 パスの長さ3 43 881.053313
3.5 43 881.053313
4 44 883.19111
4.5 71 1402.599017
このような入力データに対して, 解の点数を極力抑 えるために,その直前の反復で得られた解を利用する.
具体的な流れは以下のようになる. まず,アルゴリズム の各段階で
1
つ前のλ
によって得られた木T
0を記憶 しておく. そして,アルゴリズムの反復が終了した際に 木T
0に,点数がk
になるまでT
0に含まれる点に付随 する辺のうち,T
0を構成しない辺の中から長さが短い 辺を選択し,T
0に追加していく. こうして得られたT
0 のコストを求め,本来のλ
により得られた木のコスト と比較し, コストのより低い方を解として返してアル ゴリズムを終了する.表
3
の例ではλ = 4
に対する解が記憶されており,これに
50 − 44 = 6
個の点を追加し,そうしてできた木のコストを
λ = 4.5
によって得られた木と比較すると いった流れになる.7
実験的性能評価(2)
7.1 C101
に対する実験結果図
7
は, C101に対して実験を行ったときの,d
の変 化とパスの長さの関係を表したグラフである.d
を10, 30, 50
としたいずれの場合にも,解を改善す ることができたのはデータ(1), (10)〜(13)
のみであり, 得られたパスはいずれも同じものとなった.改善することのできなかったデータタイプは, いず れも最初に入力した
λ
によって解がすぐに得られてい ることがその原因と考えられる.4/4
中野 慎太郎0 500 1000 1500 2000 2500
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 データ番号
パス の長
さ d=10
d=30 d=50 提案(2)
図
7 C101: d
の変化とパスの長さの関係7.2 R101
に対する実験結果図
8,
図9,
図10
は, それぞれd = 20, 30, 40
の場合 における, 各データタイプについての提案手法(1)
と(2)
のパスの長さを比較したグラフである.R101
に対しては, C101を入力としたときとは逆に,V N
に多く予算を与えたときのみ,いずれのd
において も提案手法(1)
による解からの改善ができていること がわかる.d = 20, d = 30
の場合は, いずれもデータ(2)
と(6)
以外はデータ(1)
よりも短いパスが得られて いる. 一方,d = 40
では, パスの長さを改善すること のできたデータ数は減少した. しかし,V N
とV F
に与 える予算の差を大きく設定した場合にはパスの長さは さらに短いものとなっている. これは当初の狙い通り,V N
の個数の比率を多く,予算も多く与えることで多く のV N
の点を取り込み,V F
への辺は減らすということ に成功しているからである.8
結論提案手法
(1)
ではChaudhuri
らの手法をすべての場合で改善することはできず,求めたパスの点数が多くな りすぎてしまうことが原因でパスの長さが長くなって しまうケースもあった. 一方,提案手法
(2)
は入力デー タに依存してしまうという側面はあるものの, R101の ようなランダムな入力に対してはV N
の個数を多くと0 200 400 600 800 1000 1200 1400 1600 1800 2000
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 データ番号
パス の長 さ
提案(1) 提案(2)
図
8 R101: d = 20
でのパスの長さの変化0 200 400 600 800 1000 1200 1400 1600 1800 2000
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 データ番号
パス の長 さ
提案(1) 提案(2)
図
9 R101: d = 30
でのパスの長さの変化0 200 400 600 800 1000 1200 1400 1600 1800 2000
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 データ番号
パス の長 さ
提案(1) 提案(2)
図
10 R101: d = 40
でのパスの長さの変化り, さらに予算を多く与えることでパスの長さを大幅 に短くすることができた.
今後の課題としては, どのような入力に対しても良 質な解を求めることのできるアルゴリズムの提案, 大 規模なデータに対しても適用するための計算時間の大 幅改善などが挙げられる.
謝辞
本研究を進めるにあたり,適切なご指導・ご指摘を 頂きました浅野孝夫教授に心から感謝致します.
参考文献