• 検索結果がありません。

アルゴリズム入門(7)

N/A
N/A
Protected

Academic year: 2021

シェア "アルゴリズム入門(7)"

Copied!
33
0
0

読み込み中.... (全文を見る)

全文

(1)

宮崎修一

京都大学 学術情報メディアセンター

アルゴリズム入門( 7 )

(問題の複雑さ)

(2)

2

ある問題が、「これだけの計算量で解ける」というのを示すのは、

比較的簡単。(実際にアルゴリズムを設計すれば良い。)

ある問題が、「これだけの計算量では解けない」ことを示すのは、

難しい。(「どんなアルゴリズムでも駄目だ」ということを証明する 必要がある。)

問題の難しさ

今の所、問題の難しさを示す研究は、成功していない。

問題の難しさを示すために、「ある問題が難しいとすると、

この問題も難しい」という論法が使われている。

(3)

3

A:既に難しいことが分かっている問題。

B:難しいことを示したい問題。

問題の難しさを示す手法(還元、リダクション)

問題A 問題B

還元

問題Aを問題Bに変換している(ただし、答が保存されるように)

つまり、Bを解くことにより、Aを解くことが出来る。

(4)

4

i

具体例

A:論理式の充足可能性問題(SAT) 難しいことが分かっている。

B:最小頂点被覆問題(VC) 難しいことを示したい。

SAT

入力:和積形論理式

f = (x

1

+x

2

+x

3

) (x

1

+x

8

) … (x

3

+x

6

+x

7

+x

12

)

出力:

x , x , …, x

0/1

を割り当てて、

f =1

と出来るか?

YES/NO?

x

1 2 n

i

x

i の否定

x

i

=1

ならば

x =0

x

i

=1 x

i

=0

ならば

(x

1

+x

2

+x

3

) x

1

x

2

x

3 の少なくとも

1

つが

1

すべて

0

=1

=0

(5)

5

x =1

f = (x

1

+x

2

) (x

1

+x

3

) (x +x ) (x

1

+x

3

)

だと

f =1

にできる。

1

1 2

x

2

=1 x

3

=0

f = (x

1

+x

2

) (x

1

+x

2

) (x +x ) (x

1

+x

2

)

だと、どうやっても

f =1

にできない。

1 2

SATの例

(6)

6

最小頂点被覆問題(判定問題版)

グラフ

G

と整数

K

が与えられて、

G

は頂点数

K

以下の頂点被覆を持つか? YES/NO?」

を問う。

K

=4

YES

頂点の集合

C

で、どの枝も端点の どちらかが

C

に属する。

(7)

7

リダクションの概要

元の問題で

f =1

とできる

K

個以下の頂点で被覆できる

SAT VC

f (G, K)

YES/NO YES/NO

高速(多項式時間)

高速(多項式時間)

?のところが高速ならば、全体としてSATに対する高速な アルゴリズムが作れたことになる。

YES NO

YES NO

⇔ ⇔

つまり、

VC

に対する高速なアルゴリズムが存在すれば、

SAT

に対する高速な アルゴリズムも存在することになる。

逆に言えば、

SAT

を解く高速なアルゴリズムが存在しないならば、

VC

を解く高速なアルゴリズムも存在しない。

(8)

8

リダクションの概要

元の問題で

f =1

とできる

K

個以下の頂点で被覆できる

SAT VC

f (G, K)

YES/NO YES/NO

高速(多項式時間)

高速(多項式時間)

ポイント:

f

を解いて、

YES

NO

か分かった後で

(G, K)

を作るのは 簡単にできる。

しかし、

SAT

は難しい問題なので、

f

を解くだけで指数時間かかる。

f

を解かずに、答えが分からないまま「表面的な」変換だけで、

YES/NO

を保存させることが出来るのがミソ。

YES NO

YES NO

⇔ ⇔

(9)

9

リダクションの方法

f= (x

1

+x

2

+ x

3

) (x

1

+ x

5

) (x

2

+x

3

+ x

4

+x

6

) … (x

8

+ x

9

+x

12

)

c

1

c

2

c

3

c

m

x

1

x

1

x

2

x

2

x

3

x

3

x

4

x

4

x

5

x

5

x

n

x

n

K=n+(c

1

-1)+(c

2

-1)+…+(c

m

-1)

(10)

10

元の問題で

f =1

とできる

K

個以下の頂点で被覆できる

どちらか1個選ばなければいけない。

全部で

n

K=n+(c

1

-1)+(c

2

-1)+…+(c

m

-1) x

1

x

1

x

2

x

2

x

3

x

3

x

4

x

4

x

5

x

5

x

n

x

n

f= (x

1

+x

2

+ x

3

) (x

1

+ x

5

) (x

2

+x

3

+ x

4

+x

6

) … (x

8

+ x

9

+x

12

)

c

1

c

2

c

3

c

m

(11)

11

c

1

-1個選ばなければならない

c

2

-1個選ばなければならない

c

m

-1個選ばなければならない

K=n+(c

1

-1)+(c

2

-1)+…+(c

m

-1) x

1

x

1

x

2

x

2

x

3

x

3

x

4

x

4

x

5

x

5

x

n

x

n

f= (x

1

+x

2

+ x

3

) (x

1

+ x

5

) (x

2

+x

3

+ x

4

+x

6

) … (x

8

+ x

9

+x

12

)

c

1

c

2

c

3

c

m

元の問題で

f =1

とできる

K

個以下の頂点で被覆できる

(12)

12

この内部の枝はカバーできた。

2

つの間を繋ぐ枝をどうカバーするか

x

1

x

1

x

2

x

2

x

3

x

3

x

4

x

4

x

5

x

5

x

n

x

n

K=n+(c

1

-1)+(c

2

-1)+…+(c

m

-1)

f= (x

1

+x

2

+ x

3

) (x

1

+ x

5

) (x

2

+x

3

+ x

4

+x

6

) … (x

8

+ x

9

+x

12

)

(13)

13

このうち、

3

頂点は選べるので、間の枝のうち、

3

本は自動的にカバーできる

x

2

x

2

x

3

x

3

x

4

x

4

x

5

x

5

これだけが残るので、

上でうまくカバー してくれると嬉しい

(14)

14

内部の枝はカバーできた。

2

つの間を繋ぐ枝をどうカバーするか

x

1

=1 x

2

=1 x

3

=0

1 1

x

1

x

1

x

2

x

2

x

3

x

3

x

4

x

4

x

5

x

5

x

n

x

n

K=n+(c

1

-1)+(c

2

-1)+…+(c

m

-1)

f= (x

1

+x

2

+ x

3

) (x

1

+ x

5

) (x

2

+x

3

+ x

4

+x

6

) … (x

8

+ x

9

+x

12

)

(15)

15

困るのは

x

1

=0 x

2

=1 x

3

=0

0 0 0

x

1

x

1

x

2

x

2

x

3

x

3

x

4

x

4

x

5

x

5

x

n

x

n

K=n+(c

1

-1)+(c

2

-1)+…+(c

m

-1)

f= (x

1

+x

2

+ x

3

) (x

1

+ x

5

) (x

2

+x

3

+ x

4

+x

6

) … (x

8

+ x

9

+x

12

)

(16)

16

SAT

VC

も、「難しい問題」として知られている。

そういう問題が「

NP

完全問題」。

多項式時間アルゴリズムが存在しないだろうと 思われている(が、まだ証明はされていない)。

グラフに関する

NP

完全問題は、

VC

以外にも数限りなくある。

k-

クリーク問題

k-

独立頂点集合問題

3

彩色問題

・ハミルトン閉路問題

(17)

17

P

NP

SAT

(入力:論理式

f

f

の全部の項を

1

にする変数割り当てがある?

YES? NO?

・最小頂点被覆問題(入力:グラフ

G

と整数

k

k

個の頂点を選んで、

G

のすべての枝をカバーできる?

YES? NO?

・最短経路問題(入力:重み付グラフ

G

2

頂点

s

t

、整数

k

s

から

t

まで、長さ

k

以下のルートがある?

YES? NO?

・最小全域木問題(入力:重み付グラフ

G

、整数

k

G

から枝を選んで、重みの合計が

k

以下の木を作れる?

YES? NO?

ここでは、答えが

YES

NO

を判定する判定問題だけを考える。

(18)

つまり、これら

4

つの問題は、全て

NP

に入る。 18

NP: Yes

の入力に「答が

Yes

である証拠」が与えられたら、

確かに

Yes

であることを多項式時間で検証できる。

また、

No

の入力に「答が

Yes

である証拠」が与えられても、

騙されない。

SAT

変数への

0/1

割り当てが与えられたら、それが全ての項を 充足するか否かを、多項式時間で検証できる。

・最小頂点被覆問題

頂点集合が与えられたら、それが

k

個以下で、かつ、

正しい被覆になっているか否かを、多項式時間で検証できる。

・最短経路問題

s

から

t

へのルートが与えられたら、その長さが

k

以下であるか 否かを、多項式時間で検証できる。

・最小全域木問題

木が与えられたら、それが全域木で、その重みが

k

以下であるか否かを、

多項式時間で検証できる。

(19)

19

P:

「答が

Yes

である証拠」が与えられなくとも、

Yes

であることを

(自力で)多項式時間で検証できる。

・最短経路問題

ダイクストラのアルゴリズムで最適解を求めて、それを

k

と比較すれば、

多項式時間で

YES

NO

か分かる。

・最小全域木問題

クラスカルのアルゴリズムで最適解を求めて、それを

k

と比較すれば、

多項式時間で

YES

NO

か分かる。

つまり、これら

2

つの問題は、

P

に入る。

SAT

VC

P

に入るかどうかは不明

(20)

20

P

NP

の部分集合

NP

P

多項式時間アルゴリズムを持つ 問題の集合(易しい問題の集合)

・最短経路問題

・最小全域木問題 など

答を多項式時間で検証できる 問題の集合

SAT

・最小頂点被覆問題 など

P=NP

P≠NP

かは まだ分かっていない。

(多くの人が

P≠NP

だろうと 思っている。)

(21)

21

有名な未解決問題

21

世紀の

7

大未解決問題の

1

つ)

NP P

P≠NP

予想

・「

NP

P

は異なる、つまり、

NP

に入るが

P

に入らない問題が 存在する」という予想。

・「与えられた答が正しい答であるかどうかの検証は簡単だが、

自分で答を見つけるのは難しい問題は存在する。」という 意味も持つ。

(22)

22

(23)

23

SAT VC

f (G, K)

YES/NO YES/NO

多項式時間

多項式時間

NP

完全性は、

P vs NP

問題を解く有力な手掛かり

SAT

から

VC

へのリダクション(前出)

これは、

VC

を解くアルゴリズムをサブルーチン(部品)として 使って、

SAT

を解くアルゴリズムを構築していると解釈できる。

「?」の部分が多項式時間⇒全体が多項式時間

VC

P

に入る⇒

SAT

P

に入る

(24)

24

問題

A

NP

完全であるとは、

(1) A

自身が

NP

に入る。

(2) NP

のどの問題からも

A

にリダクション出来る。

世の中のたくさんの(何千、何万という)実用的な問題が、

NP

完全問題であるということが知られている。

A

定義の意味は、次のスライドで。

(25)

25

好きな

NP

完全問題

A

を選ぶ。

A

P

に入ることを示せば、

P=NP

を示したことになる。

リダクションの性質から、

NP

問題全てが

P

に入る。

A

なぜ

NP

完全性が、

P vs NP

問題に関係している?

A

P

に入らないことを示せば、

P≠NP

を示せたことになる。

A

NP

に入るのに

P

に入らないから。

つまり、

NP

は無数の問題を含んでいるが、

P vs NP

問題を考える上では、何でも良いから ある

1

つの

NP

完全問題が多項式時間で

解けるか否かに集中すれば良い。

(26)

26

A B C

A

に対する入力

I

から

B

に対する入力

I’

を作る

R

1

R

2

R

1

B

に対する入力

I’

から

C

に対する入力

I’’

を作る

R

2

R

R

R

R

を使って、

A

に対する入力

I

から

C

に対する入力

I’’

を作る。1 2

問題

A

NP

完全であるのを示すとき、

(1)

を示すのは難しくないが、

(2)

は難しそうに思える。(

NP

の問題は無限にあるから。)

しかし、リダクションは推移的である。すなわち、

A

から

B

にリダクション出来て、

B

から

C

にリダクション出来れば、

A

から

C

にリダクション出来たことになる。

(27)

27

ある問題

X

NP

完全だということを示せたとしよう。

X

すると、問題

A

に対して

(2)

を示すには、

X

から

A

へのリダクション を見つけさえすれば良い。

なぜなら、前ページの議論より、全ての問題から(

X

を経由して)

A

にリダクションできることになるから。

A

最初に

NP

完全だということが示されたのが

SAT

それ以降は、

SAT

から芋づる式にリダクションして得られた。

(28)

28

3

彩色問題の

NP

完全性の証明

(1) NP

に入ることは明らか。与えられた

3

彩色に対して、

どの枝を見ても、その両端の色が異なっていることを チェックするのは、多項式時間で出来る。

(2)

任意の

NP

問題からリダクション出来ることについて。

既に

NP

完全であることが分かっている

3SAT

から リダクションする。

f= (x

1

+x

2

+ x

3

) (x

1

+ x

5

+ x

2

) (x

3

+ x

4

+x

6

) … (x

8

+ x

9

+x

12

) SAT

の特殊なもの。各項に現れるリテラルの 数がちょうど

3

のもの。

3

3

3

3

(29)

29

x

1

x

2

x

n

x

n

x

2

x

1

f= (x

1

+x

2

+ x

3

) (x

1

+ x

5

+ x

2

) (x

3

+ x

4

+x

6

) … (x

8

+ x

9

+x

12

) x

3

全ての項に対して同じように作る

v

0

v

1

(30)

30

x

1

x

2

x

n

x

n

x

2

x

1

2 0 1 1

1

0

0 0

1 1

x

i

x

i

0

1

でしか塗れない

x

i

0

x

i

1

か、またはその逆しかない。

前者を

x

i

=0

、後者を

x

i

=1

と解釈する。

v

1

v

0

(31)

31

項に対応する部分

0 0 0

0

変数部分が全部

0

ならば

ここには

0

を使わざるを 得ない

0 1 0

0

変数部分に

1

つでも

1

があれば

ここを

1

で塗れる

(他の

6

つの場合も

正しいことを確かめよ)

1 1

2

2

0

(32)

32

3SAT

の入力

f

YES

全部の項を

1

とする変数割り当てに従って、変数頂点を

0

1

塗る。

それぞれの項に対応する部分グラフを

0, 1, 2

で塗る。

(どの項も、

1

となる変数が少なくとも

1

つあるので、

正しく塗れる。)

→ 3

彩色問題の入力

G

YES

3

彩色問題の入力

G

YES

全ての頂点を

0, 1, 2

で正しく塗れる。

→ v

0

v

1

になるように、色を入れ替える。

各項に対応する部分グラフの一番左にある

3

頂点のうち、

少なくとも

1

つは色

1

で塗られている。

変数頂点の色(

0

または

1

)に従って、

f

の変数の

0/1

割り当てを 決めると、各項少なくとも

1

つは

1

となる変数を含む。

→ 3SAT

の入力

f

YES

0 1

(33)

33

参照

関連したドキュメント

高圧の場合、平均 3.81 円/kWh であり、送配電設備関連のコストダウン等により、それぞれ 0.29 円/kWh(12.95%)

はありますが、これまでの 40 人から 35

つまり、p 型の語が p 型の語を修飾するという関係になっている。しかし、p 型の語同士の Merge

○金本圭一朗氏

人の生涯を助ける。だからすべてこれを「貨物」という。また貨幣というのは、三種類の銭があ

巣造りから雛が生まれるころの大事な時 期は、深い雪に被われて人が入っていけ

親子で美容院にい くことが念願の夢 だった母。スタッフ とのふれあいや、心 遣いが嬉しくて、涙 が溢れて止まらな

これからはしっかりかもうと 思います。かむことは、そこ まで大事じゃないと思って いたけど、毒消し効果があ