アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム...
TRANSCRIPT
宮崎修一京都大学 学術情報メディアセンター
アルゴリズム入門(8)(近似アルゴリズム)
2
近似アルゴリズムとは?
効率よく解ける問題(多項式時間アルゴリズムが存在する問題)ソーティング、最短経路問題、最小全域木問題、…
効率よく解けそうにない問題(NP困難問題)最小頂点被覆問題、MAX SAT、MAX CUT、…
本質的に問題が難しいのだが、何とか対応したい→ 幾つかのアプローチ
(平均時間計算量、指数時間アルゴリズム、確率アルゴリズム、近似アルゴリズム)
3
指数時間アルゴリズム
・最適解(正しい解)を得たい。・指数時間かかることは仕方ない。・しかし、指数時間の中でも、できるだけ高速であって欲しい。
(例) 3SAT (3CNF式の充足可能性問題)
[Rolf,05]32216.1
Tamaki,04][Iwama,)3227.1(3238.1
[Rolf,03]3280.1]Schuler,03[Baumer,3290.1
al.,02]et r [Hofmeiste3302.1
,99][Schoening334.1
al.,98]et [Paturi362.1
er,79]Speckenmey[Monien,618.1
n
nn
n
n
n
n
n
n・・・
[Iwama, Takai, Seto, Tamaki,10]32113.1n
[Hertli, Moser, Scheder , 10]32065.1n
[Hertli,11]30704.1n
4
近似アルゴリズム
・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。
近似アルゴリズムの良さ例えば最小化問題
「アルゴリズムAの近似度が r である(Aは r-近似アルゴリズムである)」
どんな入力に対しても、アルゴリズムAの出す解のコストは最適解のコストのr 倍以内である。
※ 近似度rは1以上。小さいほど良い。最適は1。
⇔
5
最小頂点被覆問題
7個の頂点4個の頂点
枝:道路頂点:交差点
交差点にガードマンを配置して、全ての道を警備したい。できるだけ少ないガードマンで済ませるには、どこに配置したら良いか?
ちなみに、3個では無理。問題:なぜ?
問題:最適は?
最小頂点被覆問題はNP困難。(多項式時間アルゴリズムが存在しそうにない)
6
頂点被覆問題に対する 近似度2のアルゴリズム
2 -2 log N
log log N[Monien & Speckenmeyer 1985]
2 -Θ( )log N
1[Karakostas 2004]
√
問題:どうしてこれは近似度2?
7
近似アルゴリズムに対するアプローチ
上限の研究・ 問題に対する、c-近似アルゴリズムを開発する。・ cの値を小さくしていく方向。
下限の研究・ (P≠NPの仮定の下で)、問題がc-近似アルゴリズムを
持たないことを示す。・ cの値を大きくしていく方向。
例:MAX 3SAT
・上限: 8/7-近似アルゴリズムは存在する・下限: P≠NPならば、(8/7-ε)-近似アルゴリズムは存在しない
(ε:任意の正定数) [Hastad 1997]
ちなみに、最小頂点被覆問題は、
・上限:
・下限: 10√ -21≒1.362 [Dinur, Safra 2002]
2 -Θ( )log N
1[Karakostas 2004]
√
5
8
MAX CUT
入力:グラフG
出力:Gの頂点集合の2分割間にある枝数が出来るだけ多くなるように
例
4本5本
MAX CUTもNP困難問題
9
MAX CUTに対する局所探索法
近傍:=1頂点だけを反対側のグループへ移す
適当な初期解から出発して、解のサイズが改善される近傍がある限り、その近傍に移り続ける。これ以上移動できなくなったら、今の解を出力する。
10
アルゴリズムが終了した時の性質
どの頂点も、自分のグループへの枝数≦相手のグループへの枝数。さもなければ、その頂点を移動させたら、さらに良い解が得られる。
11
A B
両端がA内にある枝数:AAE ,
両端がB内にある枝数:BBE ,
間にまたがる枝数: BAE ,
全ての枝数: E
BABBAA EEEE ,,, ++=
12
A B
v
とするとへの枝数、への枝数から頂点 v
B
v
A eBeAv
v
B
v
A
v
B
v
A
eeBv
eeAv
ならば
ならば
13
A B
v
とするとへの枝数、への枝数から頂点 v
B
v
A eBeAv
v
B
v
A
v
B
v
A
eeBv
eeAv
ならば
ならば
14
A B
v
.2 ,, BAAA
v
B
v
A
EE
eevA
を足し合わせるとについて、の全ての頂点
v
B
v
A
v
B
v
A
eeBv
eeAv
ならば
ならば
15
A B
v
.2 ,, BABB
v
A
v
B
EE
eevB
を足し合わせるとについて、の全ての頂点
v
B
v
A
v
B
v
A
eeBv
eeAv
ならば
ならば
16
.22 ,,,,,,, BABBAABABBBAAA EEEEEEE + より、と
.
.2
,
,,,,,
E
EE
EEEEEEE
BA
BABABABBAA
−++=
一方、最適解
つまり、
なので、
よって、このアルゴリズムは2-近似アルゴリズム。
17
MAX CUTに対する貪欲アルゴリズム
A B
Step 1:
頂点を適当に選びA、Bどちらかに適当に入れる
18
MAX CUTに対する貪欲アルゴリズム
A B
Step 1:
頂点を適当に選びA、Bどちらかに適当に入れる
19
MAX CUTに対する貪欲アルゴリズム
A B
Step 2以降:
頂点を適当に選び、これまで既に入っている頂点とのカットがより大きくなる方に入れる。
20
MAX CUTに対する貪欲アルゴリズム
A B
Step 2以降:
頂点を適当に選び、これまで既に入っている頂点とのカットがより大きくなる方に入れる。
21
MAX CUTに対する貪欲アルゴリズム
A B
Step 2以降:
頂点を適当に選び、これまで既に入っている頂点とのカットがより大きくなる方に入れる。
22
MAX CUTに対する貪欲アルゴリズム
A B
Step 2以降:
頂点を適当に選び、これまで既に入っている頂点とのカットがより大きくなる方に入れる。
23
MAX CUTに対する貪欲アルゴリズム
A B
Step 2以降:
頂点を適当に選び、これまで既に入っている頂点とのカットがより大きくなる方に入れる。
24
MAX CUTに対する貪欲アルゴリズム
A B
Step 2以降:
頂点を適当に選び、これまで既に入っている頂点とのカットがより大きくなる方に入れる。
25
MAX CUTに対する貪欲アルゴリズム
A B
Step 2以降:
頂点を適当に選び、これまで既に入っている頂点とのカットがより大きくなる方に入れる。
26
近似度の解析
A B
27
近似度の解析
A B
左へ入れた場合
利得
28
近似度の解析
A B
29
近似度の解析
A B
右へ入れた場合
利得
30
近似度の解析
A B
アルゴリズムは、この2つのうち、大きい方(小さくない方)の利得を得るように動く。(このうち、半分は得る。)
31
近似度の解析
A B
この部分を、全部の頂点について足し合わせたら、ちょうど全ての枝
アルゴリズムは、全枝の半分はカットする。
(前と同じ議論で)近似度2
MAX CUTの現在最良の近似度は 1.138…
32
巡回セールスマン問題京都駅から出発して、観光して、京都駅に戻って来たい。同じところは2度通らない。できるだけ短い経路で回る。
33
応用:コンビニの配送計画自動販売機のジュース補給配送計画集積回路(VLSI)の配線ロボットのアームの動き最適化
TSPLIB
様々なベンチマーク集合に対する、解法競争が行われているhttp://comopt.ifi.uni-heidelberg.de/software/TSPLIB95/
34
TSPLIBのベンチマークの1つ日本の9847都市
35
その最適解
36
アメリカ13509都市
37
38
きっちり定式化すると入力: 完全グラフG=(V, E)、各枝𝑒 ∈ 𝐸に対して、長さ𝑐(𝑒)。
(頂点は観光スポットに対応。枝の長さは移動距離に対応)出力: Gの各頂点を1度ずつ通る閉路。
ただし、使われた枝の長さの合計が最小となるもの。(同じ頂点を2度通ってはいけないことに注意)
39
単純なアルゴリズム:頂点数をnとする。それぞれの回り方(n!通りの順列)に対して、総距離を計算し、
最も短い経路を出力する。↓
確かに最適解が得られるが、n!時間かかる。(n! > 2 )
実際、NP困難であることが証明されている。↓
近似アルゴリズム・距離空間が三角不等式を満たす場合の
2-近似アルゴリズム。1.5-近似アルゴリズム。・ユークリッド平面の場合(例えば先程の京都市の例)は、
近似度が限りなく1に近いアルゴリズム(PTAS)が知られている。
n
40
2-近似アルゴリズムステップ1:最小全域木を求める。(そのコストをTとする。)
(巡回セールスマンの最適解のコストをOPTとすると、T<OPT。)
問題:なぜ?
41
2-近似アルゴリズムステップ2:最小全域木沿いにツアーを組む。
(同じ枝を2度なぞる。)
このツアーの長さをPとすると、P=2T。
42
2-近似アルゴリズムステップ3:同じところを2度通らないように飛ばす。
このツアーの長さをLとすると、L≦P。(三角不等式より)
43
2-近似アルゴリズムステップ4:得られたツアーを出力する。
近似度の解析L≦P=2T<2OPT
44
1.5-近似アルゴリズムステップ1までは一緒。
T<OPT
45
1.5-近似アルゴリズムステップ2:奇数次数の頂点を選ぶ。(偶数個ある。)
問題:なぜ?
46
1.5-近似アルゴリズムステップ3:緑の頂点間の最小重みマッチングを求める。
(枝の長さの総和が最小のもの)
元あった枝と合わせて、全ての頂点の次数が偶数。
47
1.5-近似アルゴリズムステップ4:オイラー回路を求める。
青のツアー長=T+
48
1.5-近似アルゴリズムステップ5:先程のオイラー回路で、2度目の頂点を飛ばす。
得られた緑のツアーを出力する。
緑のツアー長
青のツアー長
≦
T<OPT
の全長≦0.5OPT
を言う。
青のツアー長=T+
49
奇数次数(緑)の頂点だけのツアーで最短のものを考えよう。
水色のツアー長≦OPT
(例えば、OPTのツアーで、赤色頂点を飛ばせば良い)
50
そのツアー上の、1つとびの枝集合、2組。
の全長+ の全長= のツアー長
の全長と の全長のうち短い方を とする。
の全長≦1/2 の全長
51
そのツアー上の、1つとびの枝集合、2組。
の全長≦ の全長≦ 1/2 の全長≦ 1/2 OPT
の枝集合はマッチング
52
の枝集合は最小マッチング
そのツアー上の、1つとびの枝集合、2組。
示したかったこと
53
では、「○○よりも良い近似度の多項式時間近似アルゴリズムは存在しない」というのは、どういう風に示すのか?
判定問題の時と同様に、「リダクション(還元)」を使う。
前の例は、判定問題(Yes/Noを答える)から判定問題へのリダクションだった。
今回は、判定問題から最適化問題(最適値を答える)へのリダクションであるところが違う。
近似アルゴリズムの限界
54
グラフのハミルトン閉路各頂点を、ちょうど1度ずつ通る閉路
1
26
7
9
83
4
5
10
11
13
14
12
与えられたグラフがハミルトン閉路を持つか否かを問う問題(ハミルトン閉路問題)はNP完全
55
ハミルトン閉路問題(判定問題)から巡回セールスマン問題(最適化問題)へリダクションをする。
ハミルトン閉路問題の入力グラフG
巡回セールスマン問題の入力グラフH
Hの作り方Hの頂点集合はGと同じHは完全グラフGで枝のある所 → Hでは枝の重み(長さ)1
Gで枝のない所 → Hでは枝の重みn+1
56
例
G H
重み1
重み6
57
GがYESの例題(Gにハミルトン閉路がある)→ Hは重み1の枝だけを使って一周することができる。→ 総距離nで一周できる。→ 最適の1.8倍悪い解でも1.8n以下で収まる。
GがNOの例題(Gにハミルトン閉路がない)→ Hを一周するどんな経路も、重みn+1の枝を使う。→ 総距離は少なくとも(n-1)+(n+1)=2n。→ 最適解は2n以上。
58
ハミルトン閉路問題 巡回セールスマン問題
入力 G 入力 H
Aの答
巡回セールスマン問題に1.8-近似アルゴリズムAが存在したとする。Aを使ってGを解くことを考える。
A
YES
≦ 1.8n
最適値はn
NO 最適値は≧2n
≧ 2n
Aの答を見ればGがYESかNOか分かる→ハミルトン閉路問題が解けてしまう
対偶を取ると、ハミルトン閉路問題が難しいならば巡回セールスマン問題に1.8-近似アルゴリズムは存在しない。
59
最適値はn
最適値は≧2n
このnと2nのギャップが、近似度の下限を与えた。
YES
NO
より大きなギャップを作る還元を設計することで、近似度のより大きな下限が言える。
ポイントは
この2つが重ならないこと。
≦ 1.8n
≧ 2n
YES
NO
Aの答Aの答
→→
1.8n 2nn
60
問題:最初の方で巡回セールスマン問題に対する1.5-近似アルゴリズムを見たが、1.8-近似アルゴリズムが存在しないことが示せてしまった。これは矛盾ではないのか?