アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム...

60
宮崎修一 京都大学 学術情報メディアセンター アルゴリズム入門(8(近似アルゴリズム)

Upload: others

Post on 10-Feb-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

宮崎修一京都大学 学術情報メディアセンター

アルゴリズム入門(8)(近似アルゴリズム)

Page 2: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

2

近似アルゴリズムとは?

効率よく解ける問題(多項式時間アルゴリズムが存在する問題)ソーティング、最短経路問題、最小全域木問題、…

効率よく解けそうにない問題(NP困難問題)最小頂点被覆問題、MAX SAT、MAX CUT、…

本質的に問題が難しいのだが、何とか対応したい→ 幾つかのアプローチ

(平均時間計算量、指数時間アルゴリズム、確率アルゴリズム、近似アルゴリズム)

Page 3: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

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

Page 4: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

4

近似アルゴリズム

・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。

近似アルゴリズムの良さ例えば最小化問題

「アルゴリズムAの近似度が r である(Aは r-近似アルゴリズムである)」

どんな入力に対しても、アルゴリズムAの出す解のコストは最適解のコストのr 倍以内である。

※ 近似度rは1以上。小さいほど良い。最適は1。

Page 5: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

5

最小頂点被覆問題

7個の頂点4個の頂点

枝:道路頂点:交差点

交差点にガードマンを配置して、全ての道を警備したい。できるだけ少ないガードマンで済ませるには、どこに配置したら良いか?

ちなみに、3個では無理。問題:なぜ?

問題:最適は?

最小頂点被覆問題はNP困難。(多項式時間アルゴリズムが存在しそうにない)

Page 6: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

6

頂点被覆問題に対する 近似度2のアルゴリズム

2 -2 log N

log log N[Monien & Speckenmeyer 1985]

2 -Θ( )log N

1[Karakostas 2004]

問題:どうしてこれは近似度2?

Page 7: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

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

Page 8: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

8

MAX CUT

入力:グラフG

出力:Gの頂点集合の2分割間にある枝数が出来るだけ多くなるように

4本5本

MAX CUTもNP困難問題

Page 9: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

9

MAX CUTに対する局所探索法

近傍:=1頂点だけを反対側のグループへ移す

適当な初期解から出発して、解のサイズが改善される近傍がある限り、その近傍に移り続ける。これ以上移動できなくなったら、今の解を出力する。

Page 10: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

10

アルゴリズムが終了した時の性質

どの頂点も、自分のグループへの枝数≦相手のグループへの枝数。さもなければ、その頂点を移動させたら、さらに良い解が得られる。

Page 11: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

11

A B

両端がA内にある枝数:AAE ,

両端がB内にある枝数:BBE ,

間にまたがる枝数: BAE ,

全ての枝数: E

BABBAA EEEE ,,, ++=

Page 12: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

12

A B

v

とするとへの枝数、への枝数から頂点 v

B

v

A eBeAv

v

B

v

A

v

B

v

A

eeBv

eeAv

ならば

ならば

Page 13: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

13

A B

v

とするとへの枝数、への枝数から頂点 v

B

v

A eBeAv

v

B

v

A

v

B

v

A

eeBv

eeAv

ならば

ならば

Page 14: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

14

A B

v

.2 ,, BAAA

v

B

v

A

EE

eevA

を足し合わせるとについて、の全ての頂点

v

B

v

A

v

B

v

A

eeBv

eeAv

ならば

ならば

Page 15: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

15

A B

v

.2 ,, BABB

v

A

v

B

EE

eevB

を足し合わせるとについて、の全ての頂点

v

B

v

A

v

B

v

A

eeBv

eeAv

ならば

ならば

Page 16: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

16

.22 ,,,,,,, BABBAABABBBAAA EEEEEEE + より、と

.

.2

,

,,,,,

E

EE

EEEEEEE

BA

BABABABBAA

−++=

一方、最適解

つまり、

なので、

よって、このアルゴリズムは2-近似アルゴリズム。

Page 17: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

17

MAX CUTに対する貪欲アルゴリズム

A B

Step 1:

頂点を適当に選びA、Bどちらかに適当に入れる

Page 18: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

18

MAX CUTに対する貪欲アルゴリズム

A B

Step 1:

頂点を適当に選びA、Bどちらかに適当に入れる

Page 19: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

19

MAX CUTに対する貪欲アルゴリズム

A B

Step 2以降:

頂点を適当に選び、これまで既に入っている頂点とのカットがより大きくなる方に入れる。

Page 20: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

20

MAX CUTに対する貪欲アルゴリズム

A B

Step 2以降:

頂点を適当に選び、これまで既に入っている頂点とのカットがより大きくなる方に入れる。

Page 21: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

21

MAX CUTに対する貪欲アルゴリズム

A B

Step 2以降:

頂点を適当に選び、これまで既に入っている頂点とのカットがより大きくなる方に入れる。

Page 22: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

22

MAX CUTに対する貪欲アルゴリズム

A B

Step 2以降:

頂点を適当に選び、これまで既に入っている頂点とのカットがより大きくなる方に入れる。

Page 23: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

23

MAX CUTに対する貪欲アルゴリズム

A B

Step 2以降:

頂点を適当に選び、これまで既に入っている頂点とのカットがより大きくなる方に入れる。

Page 24: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

24

MAX CUTに対する貪欲アルゴリズム

A B

Step 2以降:

頂点を適当に選び、これまで既に入っている頂点とのカットがより大きくなる方に入れる。

Page 25: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

25

MAX CUTに対する貪欲アルゴリズム

A B

Step 2以降:

頂点を適当に選び、これまで既に入っている頂点とのカットがより大きくなる方に入れる。

Page 26: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

26

近似度の解析

A B

Page 27: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

27

近似度の解析

A B

左へ入れた場合

利得

Page 28: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

28

近似度の解析

A B

Page 29: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

29

近似度の解析

A B

右へ入れた場合

利得

Page 30: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

30

近似度の解析

A B

アルゴリズムは、この2つのうち、大きい方(小さくない方)の利得を得るように動く。(このうち、半分は得る。)

Page 31: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

31

近似度の解析

A B

この部分を、全部の頂点について足し合わせたら、ちょうど全ての枝

アルゴリズムは、全枝の半分はカットする。

(前と同じ議論で)近似度2

MAX CUTの現在最良の近似度は 1.138…

Page 32: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

32

巡回セールスマン問題京都駅から出発して、観光して、京都駅に戻って来たい。同じところは2度通らない。できるだけ短い経路で回る。

Page 33: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

33

応用:コンビニの配送計画自動販売機のジュース補給配送計画集積回路(VLSI)の配線ロボットのアームの動き最適化

TSPLIB

様々なベンチマーク集合に対する、解法競争が行われているhttp://comopt.ifi.uni-heidelberg.de/software/TSPLIB95/

Page 34: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

34

TSPLIBのベンチマークの1つ日本の9847都市

Page 35: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

35

その最適解

Page 36: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

36

アメリカ13509都市

Page 37: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

37

Page 38: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

38

きっちり定式化すると入力: 完全グラフG=(V, E)、各枝𝑒 ∈ 𝐸に対して、長さ𝑐(𝑒)。

(頂点は観光スポットに対応。枝の長さは移動距離に対応)出力: Gの各頂点を1度ずつ通る閉路。

ただし、使われた枝の長さの合計が最小となるもの。(同じ頂点を2度通ってはいけないことに注意)

Page 39: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

39

単純なアルゴリズム:頂点数をnとする。それぞれの回り方(n!通りの順列)に対して、総距離を計算し、

最も短い経路を出力する。↓

確かに最適解が得られるが、n!時間かかる。(n! > 2 )

実際、NP困難であることが証明されている。↓

近似アルゴリズム・距離空間が三角不等式を満たす場合の

2-近似アルゴリズム。1.5-近似アルゴリズム。・ユークリッド平面の場合(例えば先程の京都市の例)は、

近似度が限りなく1に近いアルゴリズム(PTAS)が知られている。

n

Page 40: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

40

2-近似アルゴリズムステップ1:最小全域木を求める。(そのコストをTとする。)

(巡回セールスマンの最適解のコストをOPTとすると、T<OPT。)

問題:なぜ?

Page 41: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

41

2-近似アルゴリズムステップ2:最小全域木沿いにツアーを組む。

(同じ枝を2度なぞる。)

このツアーの長さをPとすると、P=2T。

Page 42: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

42

2-近似アルゴリズムステップ3:同じところを2度通らないように飛ばす。

このツアーの長さをLとすると、L≦P。(三角不等式より)

Page 43: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

43

2-近似アルゴリズムステップ4:得られたツアーを出力する。

近似度の解析L≦P=2T<2OPT

Page 44: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

44

1.5-近似アルゴリズムステップ1までは一緒。

T<OPT

Page 45: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

45

1.5-近似アルゴリズムステップ2:奇数次数の頂点を選ぶ。(偶数個ある。)

問題:なぜ?

Page 46: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

46

1.5-近似アルゴリズムステップ3:緑の頂点間の最小重みマッチングを求める。

(枝の長さの総和が最小のもの)

元あった枝と合わせて、全ての頂点の次数が偶数。

Page 47: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

47

1.5-近似アルゴリズムステップ4:オイラー回路を求める。

青のツアー長=T+

Page 48: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

48

1.5-近似アルゴリズムステップ5:先程のオイラー回路で、2度目の頂点を飛ばす。

得られた緑のツアーを出力する。

緑のツアー長

青のツアー長

T<OPT

の全長≦0.5OPT

を言う。

青のツアー長=T+

Page 49: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

49

奇数次数(緑)の頂点だけのツアーで最短のものを考えよう。

水色のツアー長≦OPT

(例えば、OPTのツアーで、赤色頂点を飛ばせば良い)

Page 50: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

50

そのツアー上の、1つとびの枝集合、2組。

の全長+ の全長= のツアー長

Page 51: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

の全長と の全長のうち短い方を とする。

の全長≦1/2 の全長

51

そのツアー上の、1つとびの枝集合、2組。

Page 52: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

の全長≦ の全長≦ 1/2 の全長≦ 1/2 OPT

の枝集合はマッチング

52

の枝集合は最小マッチング

そのツアー上の、1つとびの枝集合、2組。

示したかったこと

Page 53: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

53

では、「○○よりも良い近似度の多項式時間近似アルゴリズムは存在しない」というのは、どういう風に示すのか?

判定問題の時と同様に、「リダクション(還元)」を使う。

前の例は、判定問題(Yes/Noを答える)から判定問題へのリダクションだった。

今回は、判定問題から最適化問題(最適値を答える)へのリダクションであるところが違う。

近似アルゴリズムの限界

Page 54: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

54

グラフのハミルトン閉路各頂点を、ちょうど1度ずつ通る閉路

1

26

7

9

83

4

5

10

11

13

14

12

与えられたグラフがハミルトン閉路を持つか否かを問う問題(ハミルトン閉路問題)はNP完全

Page 55: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

55

ハミルトン閉路問題(判定問題)から巡回セールスマン問題(最適化問題)へリダクションをする。

ハミルトン閉路問題の入力グラフG

巡回セールスマン問題の入力グラフH

Hの作り方Hの頂点集合はGと同じHは完全グラフGで枝のある所 → Hでは枝の重み(長さ)1

Gで枝のない所 → Hでは枝の重みn+1

Page 56: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

56

G H

重み1

重み6

Page 57: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

57

GがYESの例題(Gにハミルトン閉路がある)→ Hは重み1の枝だけを使って一周することができる。→ 総距離nで一周できる。→ 最適の1.8倍悪い解でも1.8n以下で収まる。

GがNOの例題(Gにハミルトン閉路がない)→ Hを一周するどんな経路も、重みn+1の枝を使う。→ 総距離は少なくとも(n-1)+(n+1)=2n。→ 最適解は2n以上。

Page 58: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

58

ハミルトン閉路問題 巡回セールスマン問題

入力 G 入力 H

Aの答

巡回セールスマン問題に1.8-近似アルゴリズムAが存在したとする。Aを使ってGを解くことを考える。

A

YES

≦ 1.8n

最適値はn

NO 最適値は≧2n

≧ 2n

Aの答を見ればGがYESかNOか分かる→ハミルトン閉路問題が解けてしまう

対偶を取ると、ハミルトン閉路問題が難しいならば巡回セールスマン問題に1.8-近似アルゴリズムは存在しない。

Page 59: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

59

最適値はn

最適値は≧2n

このnと2nのギャップが、近似度の下限を与えた。

YES

NO

より大きなギャップを作る還元を設計することで、近似度のより大きな下限が言える。

ポイントは

この2つが重ならないこと。

≦ 1.8n

≧ 2n

YES

NO

Aの答Aの答

→→

1.8n 2nn

Page 60: アルゴリズム入門(8shuichi/algintro/alg-8s.pdf4 近似アルゴリズム ・指数時間かかるのは困る。多項式時間で解が欲しい。・代わりに、解の質をあきらめる(最適解でなくてよい)。・でも、できるだけ良い解が欲しい。近似アルゴリズムの良さ

60

問題:最初の方で巡回セールスマン問題に対する1.5-近似アルゴリズムを見たが、1.8-近似アルゴリズムが存在しないことが示せてしまった。これは矛盾ではないのか?