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

I482F 実践的アルゴリズム特論 10 回目:  完全性と多項式時間還元

N/A
N/A
Protected

Academic year: 2021

シェア "I482F 実践的アルゴリズム特論 10 回目:  完全性と多項式時間還元"

Copied!
30
0
0

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

全文

(1)

I482F 実践的アルゴリズム特論 10 回目:  完全性と多項式時間還元

上原隆平 ([email protected])

(2)

計算量のクラス

 集合・問題・言語:

アルファベット Σ (典型的には Σ={0,1} )に対して、全体集合 Σ

*

={ε, 0, 1, 00, 01, 10, 11, 100, 101, 110, 111, 1000, …}

の部分集合のことを言語という。

言語 L に対して、

与えられた任意の

x

に対して

L

に属するかどうか

を決める問題をその言語の認識問題という。

例 12.1 :

L

1

= {0, 10, 100, 110, 1000, 1010, 1100, 1110, …}

L

1

は偶数の自然数の 2 進数表記)

L

2

= {10, 11, 101, 111, 1011, 1101, 10001, …}

L

2

は素数の 2 進数表記)

(3)

プログラミング言語モデル

 ここでは

プログラミング言語は普通の手続き型言語(たとえば C )

変数

代入文

条件判断

(if

)

制御命令

(goto

)

データやプログラムは妥当なコード化がされている

アルファベットは

Σ={0,1}

数値データは

2

進数表現

文字列は

ASCII

コード

(4)

プログラムの実行時間

 あるプログラム P の実行時間は、入力の長さ n に対す る関数 f(n) で測る。ただし

f(n)

入力の長さが高々

n

の任意の入力

x

に対する

P(x)

の計算時間の上界

を与える関数である。

:その長さまでの最悪の入力を考える。

:過大評価している場合もある

n の増加に対して非減少な単調関数としてよい。

(5)

計算量のクラス

 代表的な(=この授業で出てくる)クラス

定義

12.3:

クラス



集合

L

がクラス



に入る

以下を満たすプログラム

P

と多項式

f

と多項式

q

が存在

:

任意の

x ∈ Σ

* に対して

xL

ならば∃

w ∈ Σ

*

(|w| ≦ q(|x|))

に対して

P(x,w)

L

の認識問題を

f(|x|)

時間で解く

xL

ならばそのような

w

は存在しない 定義

12.1:

クラス

言語

L がクラスに入る

以下を満たすプログラム

P

と多項式

f

が存在

:

任意の

x ∈ Σ

* に対して

P(x)

L

の認識問題を

f(|x|)

時間で解く 定義

12.2:

クラス



言語

L

がクラス



に入る

以下を満たすプログラム

P

と指数関数

f

が存在

:

任意の

x ∈ Σ

* に対して

P(x)

L の認識問題を f(|x|)

時間で解く

クラスの中の最上位の 問題は「手に負えない」

(6)

計算量のクラス

 代表的な(=この授業で出てくる)クラス

定義

12.3:

クラス



集合

L

がクラス



に入る

以下を満たすプログラム

P

と多項式

f

と多項式

q

が存在

:

任意の

x ∈ Σ

* に対して

xL

ならば∃

w ∈ Σ

*

(|w| ≦ q(|x|))

に対して

P(x,w)

L

の認識問題を

f(|x|)

時間で解く

x∈L

ならばそのような

w は存在しない

*:| | (| |)

q

w w q x w

    

クラス



とは「入力サイズの多項式長の証拠が与えられたとき,

これが問題の条件を満たすかどうかを多項式時間で判定できる」

という性質をもつクラス

補足:

=Nondeterministic Polynomial

補注:各

x ∈ Σ

* に対して,上記を満たす

w

x

∈ Σ

*

x

の(多項式長の)証拠という.

以下では,

と略記.

(7)

 問題の例

 ハミルトン閉路問題( DHAM )

入力:有向グラフ

D

(頂点は

1

n

で番号付けされているとする)

出力:すべての頂点をちょうど一度づつ訪れる閉路はあるか?

12.2

1

2 3 4

5

頂点を訪れる順序は

1

n

の順列

<1,2,3,4,5>:

ハミルトン閉路

<1,2,3,5,4>:

ハミルトン閉路ではない

<1,4,3,2,5>:

ハミルトン閉路ではない

スターリングの近似式: ! 2

n n

n n

  e

 

全部で約

n!

2

nlog n 通りなので、素朴に全部試すと指数時間かかる。

プログラム

P

[

入力

]

グラフ

D

1

n

の順列

p [

出力

] p

の順に

D

の頂点を訪れて

ハミルトン閉路になっていれば

Yes

、そうでなければ

No

プログラム

P

|D|, |p|

に対する多項式時間アルゴリズム

D ∈ DHAM

ならば、∃

p

が「

D

の証拠」の条件を満たす

D ∈ DHAM

ならば、どんな

p

も「

D

の証拠」の条件を満たすことはできない

(8)

 集合であることの意味とは …?

 (とても)直観的な意味:与えられた問題が …

解答を教えてもらえると、自分で多項式時間で確かめられる

自分で解答を見つけるのは指数時間かかりそうに見える

(本当に指数時間かかるかどうかは

100

万ドルの賞金問題)

 もう少し形式的には

ミレニアム問題

≠予想

多項式時間プログラム

P

を用いて,

xL ?

を次のように判定できる.

for each do

if P(x, w)=“yes” then accept end-if end-for;

reject;

|) (|x

w  

q

長さがq(|x|)以下の文字列をすべて列挙して調べれば,

Yes

No

かを判定できる.

ただ,そのような文字列は約

2

q(|x|) 個(指数関数)存在することに注意.

「計算機で解きたい問題」

としては自然な状況

上記の計算方式で認識できる集合を



集合と考えてよい.

ここから

 ⊆  ⊆ 

という包含関係もわかる。

(9)

 問題の例

・箱詰め問題

(BIN)

入力:自然数の組

< a

1

, a

2

, … , a

n

, b, k>

質問:添字の集合

U={1, ... , n}

U

1

, ... , U

k

k

個に分割し,

j

とすることは可能か?

・命題論理式充足性問題

(SAT)

入力:

n

変数の命題論理式

F

質問:

F

を真にする

True/False

の割り当てがあるか?

b a

Uj

i i

頂点被覆

S:

どの辺

(u,v)

u, v の一方は

S

に含まれる

・ナップサック問題

(KNAP)

入力:自然数の組

< a

1

, a

2

, … , a

n

, b >

質問: となる添字の集合

S ⊆ {1, ... , n}

があるか?

・頂点被覆問題

(VC)

入力:無向グラフ

G

と自然数

k

の組

<G, k>

質問:Gにk頂点の頂点被覆が存在するか?

b

S

a

i i

(10)

多項式時間還元可能性

定義

12.4:

AB を任意の集合とする.

(1) 関数 h: AB: 多項式時間還元 (polynomial-time reduction) (a) h は 

から 

への全域的関数

(b)

(c) h は多項式時間計算可能.

(2) A から B への多項式時間還元が存在するとき,

AB へ多項式時間還元可能という (polynomial time reducible).

このとき,次のように書く:

] )

( [

* x A h x B

x     

P

A

m

B

P

A

m

B

とすると多項式時間の範囲内では,「

A

の難しさ」

B

の難しさ」

直観的な意味:

B

を解くプログラムがあれば それで

A

を解くことができる

(11)

多項式時間還元の基本性質

定理

:12.1 A

mP

B

のとき,

(1) B ∈   A ∈ .

(2) B ∈   A ∈ .

(3) B ∈   A ∈ .

12.3:

ONE

{1}

と定義するとき,クラス

のすべての集合

L

について

L

Pm

ONE

が成り立つ.

(∵)

h(x) 1, x ∈ L

のとき

0,

その他のとき

 {

と定義すると,

(a) h

から

への全域的関数.

(b)

(c) hは多項式時間計算可能(L∈ x∈Lの判定も多項式時間内)

ONE]

) ( [

*   

x L h x

x

(12)

多項式時間還元における同値関係

定理

12.2: A, B, C:

任意の集合

(1)

(2)

P m

P P P

m m m

A A

A B B C A C

    

P P P

m m m

P m

ABABBA

定義12.5:

は同値関係

(13)

多項式時間還元性のもとで同値な問題群

命題論理式の充足可能性問題の間の関係

2SAT

(命題論理式充足性問題:二和積形式)

3SAT

(命題論理式充足性問題:三和積形式)

SAT

(命題論理式充足性問題)

ExSAT

(拡張命題論理式充足性問題)

2SAT 

mP

3SAT

同様に,

3SAT SAT ExSAT

2SAT 3SAT SAT ExSAT

P P

m m

P P P

m m m

 

  

よってここで

ExSAT 

Pm

3SAT

が示せれば,

3SAT 

Pm

SAT 

Pm

ExSAT

となる.

高々k自明

ちょうどk

同じリテラルを使ってよいなら簡単。

だめなら考えてみよう!

(14)

ExSAT

から

3SAT

への還元

3 3

2 2

1 3

2 1

1

( x , x , x ) [[ x x ] [ x x ]] x

E      

]]

[ [

]]

[ [

) ,

,

(

1 2 3 1 1 2 3 2 3 4

1

x x x U U U x U U U

F        

]]

[ [

]]

[

[ U

3

x

1

x

2

U

4

x

2

x

3

F

1の構成方法:E1の計算木をボトムアップで計算する方法を模倣 このとき,

[E

1が充足可能

] [F

1が充足可能

]

F

1は三和積形式に直しやすい形になっている.

x

1

x

2

x

3

(1) (2)

(3) (4)

1 2 3

2 3 4

3 1 2

4 2 3

(1)

(2) [ ]

(3) [ ]

(4)

V V x

V V V

V x x

V x x

  

 

 

 

F

1を構成するために,Vi

U

iとし,Viの定義式を で結ぶ

(15)

F

1 の構成方法より,

(1)

U

i の値を

V

i

(x

1

, x

2

, x

3

)

としない限り,

F

1は真にはならない.

(2)

U

iの値を

V

i

(x

1

, x

2

, x

3

)

としたとき,

F

1

E

1

上の性質が成り立つことは,帰納法を用いるなどして証明可能.

証明は省略.

三和積形式への変換

次の関係を使って展開する:

a     b a b

1 2 3 1 2 3 1 2 2

1 2 3 1 2 2

1 2 3 1 2 1 2

1 2 3 1

[ ] [ ] [ [ ]]

[ ] [ [ ]]

[ ] [ ] [ ]

[ ] [

U U x U U x U U x

U U x U U x

U U x U U U x

U U x U U

            

        

         

       

2

  U

2

] [  U

1

  x

2

x

2

]

他も同様に展開して整理すると、三和積形式に変形できる.

よって,すべて三和積形式に変形できることがわかる.

ExSAT

から

3SAT

への還元

( ) ( ) ( ) ( )

a   b a    b b a       a b b a

例:

(16)

多項式時間還元性に基づく困難性・完全性

 困難性と完全性の定義と基本的な性質

定義

12.5:

計算量クラス

に対し,集合

A

が次の条件を満たすとき,

A

は( の下で)

-

困難という.

(a) ∀ L ∈  [L A]

P

m

P

m

12.4

クラス



の完全集合の例

3SAT, SAT, ExSAT, DHAM, KNAP, BIN, VC

など 定義

12.6:

計算量クラス

に対し,

-

困難集合

A

A ∈ 

を満たすとき,

A

は(

mPの下で)

-

完全という.

クラス

のどの問題 と比べても同程度

には難しい

クラス

の中で もっとも難しい

(17)

多項式時間還元性に基づく困難性・完全性

 困難性と完全性の定義と基本的な性質

定理

12.3:

任意の

-

困難集合(含:

-

完全集合)Aに対し,

(1) A ∈    ⊆ 

対偶は

   A

(2) A ∈    ⊆ 

対偶は

   A 

(3) A ∈    ⊆ 

対偶は

   A 

 

 

証明:

(1) Bを任意の集合とすると,Aは-

困難だから,

B

mP

A

一方,A∈

の仮定より,B

∈  (2), (3), (4)

も同様

定理

12.3

の意味(クラス



A

-

完全集合とする.

定理

12.3(1)

の対偶より,

≠  A

よって

-

完全集合は

≠

である限り,

多項式時間では認識できない.





現実的な時間で解ける問題



完全問題 問題のサイズが

大きくなると手に 負えない問題

(18)

多項式時間還元性に基づく困難性・完全性

 困難性と完全性の定義と基本的な性質

定理

12.4: A:

任意の

-

完全集合 すべての集合

B

に対し,

(1) A B B

-

困難.

(2) A B B ∈   B

-

完全.

P

m

P

m

証明:

すなわち,

B

-

困難.

P P P

m m m

LA  A BLB

[ mP ]

L L A

  

[ Pm ]

L L B

  

したがって,

定理

12.2(2)

より,

定義

12.5

より,

完全集合が1つでも 見つかれば、そこから

芋づる式に困難性や 完全性を示すことができる。

完全集合第1号

Cook

の定理:

3SAT

NP

完全集合

(証明:

Turing Machine

の計算プロセスを すべて論理式で記述しなおす

!!

(19)

多項式時間還元性に基づく困難性・完全性

 困難性と完全性の証明方法

()完全性の証明方法

(I) 定義通りに[すべてのL]について示す

(II)

すでに完全であることがわかっている問題を利用する

(I)

の例

: Cook

の定理

(SAT

TM

を模倣

)

(II)

の例

:

世の中の



完全性の証明のほとんど

DHAM

は一般のグラフ上で



完全

DHAM

は平面グラフに限定しても



完全

DHAM

は「頂点の次数=

3

」に限定しても



完全

DHAM

2

部グラフに限定しても



完全

基本的には

1.

多項式時間で動く標準プログラムを考えて

2.

プログラムの動作を命題論理式で模倣する

とても大変

(

手間がかかる

) 3SAT

などは、

形式が一様なので 扱いやすい

(20)

多項式時間還元性に基づく困難性・完全性

 困難性と完全性の証明

定理

12.5:

以下にあげる集合はすべて

-

完全

(1) 3SAT, SAT (ExSAT

からの還元)

(2) DHAM, VC (3SAT

からの還元)

(3) KNAP, BIN (3SAT

からの還元と

KNAP BIN) 

Pm

(II) 

完全性がわかっている問題からの多項式時間還元

: 1. 3SAT VC

2. DHAM 

mP頂点の次数が高々

5

に制限された

DHAM

P

m

Vertex Cover:

すべての辺の、少なくとも一方の頂点を含む集合

Hamiltonian cycle:

すべての頂点を一度ずつ通る閉路

おまけ

: DHAM

は次数高々

3

でも完全。

高々

2

だと多項式時間で計算可能。

(21)

定理

12.5(2) : VC



完全問題

P

m

[

証明

] VC ∈ 

なので、

3SAT VC

であることを示せばよい。

論理式

F(x

1

,x

2

,…,x

n

)

が与えられたとする。

F

から以下の条件を満たすグラフと自然数の組

<G, k>

多項式時間で構成できることを示す:

F

1

にする割当が存在する⇔

G

がサイズ

k

の頂点被覆を持つ

G

の構成

(F

n

変数

m

項とする

):

1. F

の各変数

x

i に対し、頂点

x

i+

,x

i-と、辺

(x

i+

,x

i-

)

を加える

2. F

の各項

C

j

=(l

i1

l

i2

l

i3

)

に対し、頂点

l

i1

, l

i2

, l

i3 と辺

(l

i1

,l

i2

), (l

i2

,l

i3

), (l

i3

,l

i1

)

を加える

3.

項Cjのリテラル

l

i1

x

i のときは辺

(l

i1

,x

i+

)

を、¬xi のときは辺

(l

i1

,x

i-

)

を加える。

4. k = n+2m

(22)

F

1

にする割当が存在する⇔

G

がサイズ

k

の頂点被覆を持つ

G

の構成

(F

n

変数

m

項とする

):

1. F

の各変数

x

i に対し、頂点

x

i+

,x

i-と、辺

(x

i+

,x

i-

)

を加える

2. Fの各項C

j

=(l

i1

∨l

i2

∨l

i3

)

に対し、頂点

l

i1

, l

i2

, l

i3 と辺

(l

i1

,l

i2

), (l

i2

,l

i3

), (l

i3

,l

i1

)

を加える

3.

C

jのリテラル

l

i1

x

i のときは辺

(l

i1

,x

i+

)

を、¬

x

i のときは辺

(l

i1

,x

i-

)

を加える。

4. k = n+2m

: F(x

1

,x

2

,x

3

,x

4

) = (x

1

x

2

x

3

) ∧ (

x

1

x

3

x

4

) ∧ (x

1

∨¬ x

3

x

4

) x

1+

x

1-

x

2+

x

2-

x

3+

x

3-

x

4+

x

4-

x

1

x

2

x

3

x

1

x

3

x

4

x

1

x

3

x

4

G k = 4+2

×

3=10

(23)

F

1

にする割当が存在する⇔

G

がサイズ

k

の頂点被覆を持つ

G

の構成は、与えられた

F

から

F

のサイズに対する多項式時間で可能 。したがって以 下を示せばよい

:

: F(x

1

,x

2

,x

3

,x

4

) = (x

1

x

2

x

3

) ∧ (

x

1

x

3

x

4

) ∧ (x

1

∨¬ x

3

x

4

) x

1+

x

1-

x

2+

x

2-

x

3+

x

3-

x

4+

x

4-

x

1

x

2

x

3

x

1

x

3

x

4

x

1

x

3

x

4

G k = 4+2

×

3=10

G

の構成から任意の頂点被覆

S

x

i+

,x

i-のどちらかを含む

C

j

3

頂点中、最低

2

つ含む よって

|S| ≧ n+2m = k

である。

観察

:

(24)

F

1

にする割当が存在する⇒

G

がサイズ

k

の頂点被覆を持つ

: F(x

1

,x

2

,x

3

,x

4

) = (x

1

x

2

x

3

) ∧ (

x

1

x

3

x

4

) ∧ (x

1

∨¬ x

3

x

4

) x

1+

x

1-

x

2+

x

2-

x

3+

x

3-

x

4+

x

4-

x

1

x

2

x

3

x

1

x

3

x

4

x

1

x

3

x

4

G k = 4+2

×

3=10

1.

それぞれの変数

x

i

x

i

=1

なら

x

i+

S

に入れる

x

i

=0

なら

x

i-

S

に入れる

2.

それぞれの項

C

j

=(l

i1

,l

i2

,l

i3

)

は充足されているので、

最低

1

つのリテラル

(l

i1

)

については変数との間の辺

(l

i1

,x

i1

)

x

i1 によって被覆されている。したがって、それ以外の 二つのリテラル

(l

i2

,l

i3

)

S

に入れる。

観察 より、

S

はサイズ

k

の頂点被覆になる。

(25)

G

がサイズ

k

の頂点被覆を持つ⇒

F

1

にする割当が存在する

: F(x

1

,x

2

,x

3

,x

4

) = (x

1

x

2

x

3

) ∧ (

x

1

x

3

x

4

) ∧ (x

1

∨¬ x

3

x

4

) x

1+

x

1-

x

2+

x

2-

x

3+

x

3-

x

4+

x

4-

x

1

x

2

x

3

x

1

x

3

x

4

x

1

x

3

x

4

G k = 4+2

×

3=10

1.

2.

さらに各変数

x

iについては

x

i+

x

i-の一方しか、

各項

C

jについてはちょうど

2

つの頂点しか

S

に含むことができない。

観察 より、被覆Sは項から

2m個、変数からn個の頂点を含む。

x

i+

S

に含まれるなら

x

i

=1

x

i-がSに含まれるなら

x

i

=0

という割当は

F

を充足する。

3.

よって各項CjはSに含まれないリテラルliを含むが、

これに付随する辺は他方が被覆されていなければならない。

QED.

(26)

充足できない例

:

F(x

1

,x

2

,x

3

) = (x

1

x

1

x

1

) ∧ (

x

1

∨¬ x

2

∨¬ x

2

) ∧ (x

2

x

3

x

3

)

∧ (

¬x1

∨x

2

∨¬x

3

)

x

1+

x

1-

x

2+

x

2-

x

3+

x

3-

x

1

x

1

x

1

x

1

x

2

¬x2

x

2

x

3

x

3

G

k = 3+2

×

4=11

x

1

x

2

x

3

充足できない

F

では、どのリテラルも頂点でカバーされていない 項が必ず存在する。この項のリテラルは

3

つとも

Vertex Cover

入れざるを得ない。よって

Vertex Cover

のサイズは

k+1

以上になる。

(27)

定理

12.6:

次数高々

5

の有向グラフ上の

DHAM



完全問題

P

m

[

証明

] (

上記の問題を

DHAM

5と略記する

)

DHAM

5



に属するのは、

DHAM



属することから自明。したがって完全性を示せばよい。

DHAM DHAM

≦5を示す。

次数

:

頂点に付随する 辺の本数

v

v

アイデア

:

次数

14

の頂点

v(

)

(

入ってくる辺集合

)

(

出ていく辺集合

)

を右図

`gadget’

で置き換える

左図で

v

1

度だけ通る 閉路と右図で

v

1

度だ け通る閉路は対応する。

v

v

(28)

定理

12.6:

次数高々

5

の有向グラフ上の

DHAM



完全問題

v d

i

d

o アイデア

:

[

証明

(

概要

)]

与えられたグラフ

G

の次数が

6

以上のそれぞれの頂点に入る辺と 出る辺を上記の

gadget

で置き換える。

v d

i

2 di

  

  1 2 2

di

 

  

2

高さ

: O(log d

i

)

個数

: O(d

i

)

1.

元のグラフ

G

n

頂点

m

辺であったなら、

gadget

で置き換えたあとのグラフ

G’

O(n+m)

頂点

O(m)

辺となる。したがって上記の還元は

G

の大きさの多項式時間 で可能。

2.

また

G’

のすべての頂点は次数はたかだか

5

である。

3. G

がハミルトン閉路をもつ⇔

G’

がハミルトン閉路を持つ

QED.

ポイント

:

各閉路は上から下

各頂点は次数≦

5

(29)

Addition (

おまけ

)

• R. Uehara, S. Iwata:

Generalized Hi-Q is NP-complete,

The Transactions of the IEICE, E73, p.270-273, 1990.

• P. Zhang, H. Sheng, R. Uehara:

A Double Classification Tree Search Algorithm for Index SNP Selection, BMC Bioinformatics, 5:89, 2004.

• R. Uehara, S. Teramoto:

Computational Complexity of a Pop-up Book, 4

th

International Conference on Origami in Science, Mathematics, and Education, 2006.

•E. Demaine, M. Demaine, R. Uehara, T. UNO, Y. UNO:

UNO is hard, even for a single player,

Theoretical Computer Science, accepted, 2013.

『ゲームとパズルの計算量』 ロバート・

A

・ハーン,

エリック・

D

・ドメイン著,上原隆平訳, 近代科学社,

2011

8

.

多くの「難しく」て「自然」な問題は

多項式時間で解けるか、さもなくば

• NP

困難

(30)

参考文献

  完全性にまつわる話は「計算量の理論」と呼ばれる 分野

 JAIST の講義では I216 「計算の理論と離散数学」の中の 1/2 くらいで扱っている

「計算理論の基礎」シプサ著、太田・田中・阿部・植田・藤岡・

渡辺訳、共立出版

「オートマトン・言語理論・計算論」ホップクロフト・ウルマン・モ トワニ著、野崎・町田・高橋・山崎訳、サイエンス社

「計算可能性・計算の複雑さ入門」渡辺治著、近代科学社

参照

関連したドキュメント

A lemma of considerable generality is proved from which one can obtain inequali- ties of Popoviciu’s type involving norms in a Banach space and Gram determinants.. Key words

○本時のねらい これまでの学習を基に、ユニットテーマについて話し合い、自分の考えをまとめる 学習活動 時間 主な発問、予想される生徒の姿

Moreover, it is important to note that the spinodal decomposition and the subsequent coarsening process are not only accelerated by temperature (as, in general, diffusion always is)

Yang, Complete blow-up for degenerate semilinear parabolic equations, Journal of Computational and Applied Mathematics 113 (2000), no.. Xie, Blow-up for degenerate parabolic

de la CAL, Using stochastic processes for studying Bernstein-type operators, Proceedings of the Second International Conference in Functional Analysis and Approximation The-

[3] JI-CHANG KUANG, Applied Inequalities, 2nd edition, Hunan Education Press, Changsha, China, 1993J. FINK, Classical and New Inequalities in Analysis, Kluwer Academic

Tomonari KITAHARA and Shinji MIZUNO (TIT) 単体法と強多項式アルゴリズム July 21–23, 2015 5 / 53..

実習と共に教材教具論のような実践的分野の重要性は高い。教材開発という実践的な形で、教員養