公開鍵暗号(5): np困難性

19
あらまし P NP SAT から 3SAT への多項式時間還元 実験数学 3 (大阪大学理学部数学科 3 年・4 ) 5 : NP 困難性 鈴木 譲 大阪大学 2014 5 29 2014 6 12 (改訂版) 1 / 19 実験数学 3, (大阪大学理学部数学科 3 年・4 ), 5 : NP 困難性

Upload: joe-suzuki

Post on 04-Jul-2015

143 views

Category:

Internet


1 download

DESCRIPTION

実験数学3 (大阪大学理学部数学科 3年・4年) 鈴木 譲 2014年5月29日

TRANSCRIPT

Page 1: 公開鍵暗号(5): NP困難性

.

.

あらまし

.

.

P と NP

.

.

SAT から 3SAT への多項式時間還元

実験数学 3(大阪大学理学部数学科 3年・4年)

第 5回: NP困難性

鈴木 譲

大阪大学

2014年 5月 29日2014年 6月 12日 (改訂版)

.

.

.

.

1 / 19

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 5 回: NP 困難性

Page 2: 公開鍵暗号(5): NP困難性

.

.

あらまし

.

.

P と NP

.

.

SAT から 3SAT への多項式時間還元

あらまし

.

..

1 P とNP

.

..

2 SATから 3SATへの多項式時間還元

.

.

.

.

2 / 19

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 5 回: NP 困難性

.

Page 3: 公開鍵暗号(5): NP困難性

.

.

あらまし

.

.

P と NP

.

.

SAT から 3SAT への多項式時間還元

Turing Machine (TM)

N := {1, 2, · · · }S := 少なくとも start, halt を要素に含む有限集合U := {▷} × {0, 1}∗ × {◁}V := {▷, ◁, 0, 1}

.

(st , kt , xt) ∈ S × N× U, xt = (x(1)t , · · · , x (mt)

t ), t = 1, · · · ,T

.

.

.

. ..

.

.

s0 := start, k0 := 1, x0 ∈ U から、

A : S × V → S × V × {−1, 0, 1}

(st , x(kt)t ) 7→ (st+1, x

(kt)t+1 , kt+1 − kt)

によって生成。T は、st = halt となる最初の t。

.

.

.

.

3 / 19

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 5 回: NP 困難性

.

Page 4: 公開鍵暗号(5): NP困難性

.

.

あらまし

.

.

P と NP

.

.

SAT から 3SAT への多項式時間還元

s0 = start

st

st+1

sT := halt

x(mt+1−1)t+1

x(mt−1)t

x(kt−1)t+1 x

(kt)t+1 x

(kt+1)t+1

x(kt)t

x(2)t+1

x(2)t

x(2)0

x(mT−1)Tx

(2)T

▷ ◁

◁x(m0)−10

↓ ↓ ↓kt+1 − kt = −1 0 1

.

.

.

.

4 / 19

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 5 回: NP 困難性

.

Page 5: 公開鍵暗号(5): NP困難性

.

.

あらまし

.

.

P と NP

.

.

SAT から 3SAT への多項式時間還元

x0 ∈ U: 入力データxT ∈ U: 出力データA: アルゴリズム: 以下を仮定

.

.

.

1 kt = 1(ヘッドが左端)でも、x(1)t = ▷は変更されない

.

.

.

2 kt = mt(ヘッドが右端)を変更する場合、

mt+1 := mt + 1, x(mt+1)t+1 := ◁

.

.

.

3 有限の T が存在

st ∈ S : 状態kt ∈ N: テープのヘッド位置

.

.

.

.

5 / 19

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 5 回: NP 困難性

.

Page 6: 公開鍵暗号(5): NP困難性

.

.

あらまし

.

.

P と NP

.

.

SAT から 3SAT への多項式時間還元

多項式時間で解く

η : U → {0, 1}∗ (U の要素の両端をのぞいたもの)

f : {0, 1}∗ → {0, 1}∗ , η(x0) 7→ η(xT )

(mT = 3のときは、f : {0, 1}∗ → {0, 1}となる)TA: アルゴリズムが Aのときの σ := η(x0) ∈ {0, 1}∗ 7→ T ∈ N

Tn,A := maxσ∈{0,1}n

TA(σ)

(入力長が n := |σ|のときのアルゴリズム Aの実行時間)

.

アルゴリズム Aが多項式時間で解ける

.

.

.

. ..

.

.

有限個の nを除いて、Tn,A ≤ nk となる k ∈ Nが存在

.

.

.

.

6 / 19

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 5 回: NP 困難性

.

Page 7: 公開鍵暗号(5): NP困難性

.

.

あらまし

.

.

P と NP

.

.

SAT から 3SAT への多項式時間還元

言語の認識

Σ1,Σ0 ⊆ {0, 1}∗, Σ1 ∩ Σ0 = ϕ, Σ := Σ1 ∪ Σ0

.

言語 Σの認識 f : Σ → {0, 1}

.

.

.

. ..

.

.

TMのアルゴリズムが入力 σ ∈ Σに対し、1(σ ∈ Σ1)または 0(σ ∈ Σ0) を出力して halt

例: Σ = {0, 1}∗

.

.

.

1 σ ∈ {0, 1}∗ の中の 1の個数が偶数か否か

.

.

.

2 σ ∈ {0, 1}∗ を 2進数表記とみたときに、素数であるか否か

.

.

.

.

7 / 19

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 5 回: NP 困難性

.

Page 8: 公開鍵暗号(5): NP困難性

.

.

あらまし

.

.

P と NP

.

.

SAT から 3SAT への多項式時間還元

決定問題と符号化

Π1,Π0: Π1 ∩ Π0 = ϕ, 可算集合Π := Π1 ∪ Π0 (Πを決定問題、その各要素を事例とよぶ) 

φ : Π → Σ ⊆ {0, 1}∗ (全単射, 符号化とよぶ)φ(Π1) = Σ1, φ(Π0) = Σ0

.

符号化 φで、決定問題 Πが言語 Σの認識に帰着

.

.

.

. ..

.

.

TMのアルゴリズムが入力 σ ∈ Σに対し、1(σ ∈ Σ1)または 0(σ ∈ Σ0) を出力して halt

.

.

.

.

8 / 19

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 5 回: NP 困難性

.

Page 9: 公開鍵暗号(5): NP困難性

.

.

あらまし

.

.

P と NP

.

.

SAT から 3SAT への多項式時間還元

決定問題の例: 充足可能性問題 SAT

.

..

1 有限集合 U = {u1, u2, · · · , un}に対して、

t : U → {T ,F}

.

..

2 t(ui ) = F ⇐⇒ t(ui ) = T なる U = {u1, u2, · · · , un}に対し、

t : U ∪ U → {T ,F}

.

.

.

3 c ⊆ U ∪ U に対して、

t(c) = T ⇐⇒ t(z) = T for ∃z ∈ c

.

.

.

4 U 上の節集合 C に対して、

t(C ) = T ⇐⇒ t(c) = T for ∀c ∈ C

リテラル U ∪ U の要素

節 U ∪ U の部分集合 c (|c|: 節の大きさ、要素数)

節集合 節を要素とする集合

.

.

.

.

9 / 19

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 5 回: NP 困難性

.

Page 10: 公開鍵暗号(5): NP困難性

.

.

あらまし

.

.

P と NP

.

.

SAT から 3SAT への多項式時間還元

事例: 有限集合 U, U 上の節集合 C質問:  t(C ) = T となる t : U → {T ,F}が存在するか。 

.

.

.

1 U = {u1, u2}, C = {{u1, u2}, {u1, u2}} 「存在する」t(u1) = t(u2) = T なる t に対して t(C ) = T。

.

.

.

2 U = {u1, u2}, C = {{u1, u2}, {u1, u2}, {u1}} 「存在しない」t(C ) = T なる t が存在しない。

.

.

.

.

10 / 19

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 5 回: NP 困難性

.

Page 11: 公開鍵暗号(5): NP困難性

.

.

あらまし

.

.

P と NP

.

.

SAT から 3SAT への多項式時間還元

符号化の例

Ψ := {0, 1,−, [, ], (, ), , }

.

..

1 x ∈ Z: 非負の数は 2進、負の数は前に −。

.

. . 2 [x ]: で数値ではなく、識別のための記号。

.

..

3 (x1, · · · , xm): x1, · · · , xm からなる列。

Ψの要素 0 1 − [ ] ( ) ,

2進列 000 001 010 011 100 101 110 111

.

.

.

1 U = {u1, u2}, C = {{u1, u2}, {u1, u2}}:

(([1],[10]),(([1],[-10]),([-1],[10])))

を 2進列に直した 41× 3 = 123ビットが入力の長さ

.

.

.

2 U = {u1, u2}, C = {{u1, u2}, {u1, u2}, {u1}}:

([1],[10]),(([1],[10]),([1],[-10]),([-1]))

を 2進列に直した 48× 3 = 144ビットが入力の長さ

.

.

.

.

11 / 19

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 5 回: NP 困難性

.

Page 12: 公開鍵暗号(5): NP困難性

.

.

あらまし

.

.

P と NP

.

.

SAT から 3SAT への多項式時間還元

PとNP

決定性 TM (DTM) 1個の TMのみを適用非決定性 TM (NDTM) 任意個の TMを適用 (並列演算)

(いずれかの TMで st = halt になるまで)

.

P

.

.

.

. ..

.

.

DTMのアルゴリズムで、多項式時間で解ける決定問題の集合

.

NP

.

.

.

. ..

.

.

NTMのアルゴリズムで、多項式時間で解ける決定問題の集合

P ⊆ NP

P = NP であることが強く予想されている

.

.

.

.

12 / 19

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 5 回: NP 困難性

.

Page 13: 公開鍵暗号(5): NP困難性

.

.

あらまし

.

.

P と NP

.

.

SAT から 3SAT への多項式時間還元

多項式時間還元性

Π,Π′: 決定問題φ : Π → {0, 1}∗: Πにおける符号化φ′ : Π′ → {0, 1}∗: Π′における符号化Σ0 := φ(Π0), Σ1 := φ(Π1), Σ

′0 := φ′(Π′

0), Σ′1 := φ(Π′

1),

.

Πは Π′に多項式時間で還元 (Π ∝ Π′)

.

.

.

. ..

.

.

任意の σ ∈ Σについて、

σ ∈ Σ1 ⇐⇒ f (σ) ∈ Σ′1

なる f : Σ → Σ′を、多項式時間で解けるアルゴリズム Aが存在

.

.

.

.

13 / 19

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 5 回: NP 困難性

.

Page 14: 公開鍵暗号(5): NP困難性

.

.

あらまし

.

.

P と NP

.

.

SAT から 3SAT への多項式時間還元

Π ∝ Π′,Π′ ∝ Π′′ =⇒ Π ∝ Π′′

証明:f : f (Σ) → Σ′, f ′ : f (Σ′) → Σ′′を多項式時間で解くアルゴリズムをそれぞれ A,B とおくと、

.

.

.

1 σ 7→ f (σ)を、TA(σ) ≤ |σ|kA の時間で解けるような kA が存在

.

.

.

2 f (σ) 7→ f ′(f (σ))を、TB(f (σ)) ≤ |f (σ)|kB の時間で解けるようなkB が存在

.

.

.

3 B の入力長、すなわち Aの出力長 |f (σ)|は、|σ|+ TA(σ)を超えない。(◁を右に移動させるのに 1ステップ以上要する)

.

.

.

4 全体として、入力長 n = |σ|の多項式時間: n ≥ 2,k = (kA + 1)(kB + 1)について

T (σ) := TA(σ) + TB(f (σ)) ≤ nkA + (n + nkA)kB ≤ nk

.

.

.

.

14 / 19

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 5 回: NP 困難性

.

Page 15: 公開鍵暗号(5): NP困難性

.

.

あらまし

.

.

P と NP

.

.

SAT から 3SAT への多項式時間還元

Π ∝ Π′,Π′ ∈ P =⇒ Π ∈ P

f : f (Σ) → Σ′を多項式時間で解くアルゴリズムを A、言語 Σ′を多項式時間で認識するアルゴリズムを C とすると、

.

..

1 多項式時間還元で、TA(σ) = |σ|kA

.

.

.

2 言語の認識は、多項式時間で完了するので、TC (f (σ)) ≤ |f (σ)|kC

.

.

.

3 C の入力長、すなわち Aの出力長 |f (σ)|は、|σ|+ TA(σ)を超えない。(◁を右に移動させるのに 1ステップ以上要する)

.

.

.

4 全体として、入力長 n = |σ|の多項式時間: n ≥ 2,k = (kA + 1)(kC + 1)について

T (σ) := TA(σ) + TC (f (σ)) ≤ nkA + (n + nkA)kC ≤ nk

.

.

.

.

15 / 19

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 5 回: NP 困難性 .

Page 16: 公開鍵暗号(5): NP困難性

.

.

あらまし

.

.

P と NP

.

.

SAT から 3SAT への多項式時間還元

NP完全性

.

NP 完全な決定問題

.

.

.

. ..

.

.

任意の Π ∈ NP に対して Π ∝ Π′となる決定問題 Π′ ∈ NP

ΠがNP 完全, Π′がNP, Π ∝ Π′ =⇒ Π′がNP 完全

.

ΠがNP 完全であることを示せば、Π ∈ P の強い証拠

.

.

.

. ..

.

.

ΠがNP 完全, Π ∈ P なる Πが存在 =⇒ P = NP (予想と矛盾)

.

Cookの定理

.

.

.

. ..

.

.

SATは、NP 完全問題である。

(証明略)

.

.

.

.

16 / 19

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 5 回: NP 困難性 .

Page 17: 公開鍵暗号(5): NP困難性

.

.

あらまし

.

.

P と NP

.

.

SAT から 3SAT への多項式時間還元

NP困難性

NP 完全 決定問題に対して定義

NP 困難 決定問題ではなくともよいが、その問題が決定性

TMで多項式時間で解かれると、P = NP を意味する問題

例:

事例: 有限集合 U, U 上の節集合 C

質問:  t(C ) = T となる t : U → {T ,F}が存在するとき、その 1個を出力せよ

.

.

.

.

17 / 19

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 5 回: NP 困難性 .

Page 18: 公開鍵暗号(5): NP困難性

.

.

あらまし

.

.

P と NP

.

.

SAT から 3SAT への多項式時間還元

3-充足可能性問題 3SAT

事例: 有限集合 U, U 上の大きさ 3の節からなる節集合 C質問:  t(C ) = T となる t : U → {T ,F}が存在するか。

.

3SATは、NP 完全である。

.

.

.

. ..

.

.

SAT ∝ 3SAT

U = {u1, · · · , un}, C = {c1, · · · , cm}: SATの任意の事例C と C ′の充足可能性が一致するように 3SATの事例U ′ := U ∪ (∪m

j=1U′j ), C

′ := ∪mj=1C

′j , cj = {z1, · · · , zk}

k U ′j C ′

j

1 {y1j , y2j } {{z1, y1j , y2j }, {z1, y1j , yj2}, {z1, yj1, y2j }, {z1, yj1, yj2}}2 {y1j } {{z1, z2, y1j }, {z1, z2, y1j }}3 ϕ {cj}≥ 4 {y ij |1 ≤ i {{z1, z2, y1j }, {y1j , z3, y2j }, {y2j , z4, y3j }, · · · ,

≤ k − 3} {yk−4j , zk−2, y

k−3j }, {yk−3

j , zk−1, zk}}

.

.

.

.

18 / 19

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 5 回: NP 困難性 .

Page 19: 公開鍵暗号(5): NP困難性

.

.

あらまし

.

.

P と NP

.

.

SAT から 3SAT への多項式時間還元

t が C を充足していれば、以下のように t ′が C ′を充足:

.

..

1 k = 1では、{y1j , y

2j }の {T ,F}は任意。

.

..

2 k = 2では、{y1j }の {T ,F}は任意。

.

. . 3 k ≥ 4では、t(z1) = F , · · · , t(zl−1) = F , t(zl) = T として、

l = 1, 2: t ′(y ij ) = F (1 ≤ i ≤ k − 3)

3 ≤ l ≤ k − 2: t ′(y ij ) =

{T (1 ≤ i ≤ l − 2)F (l − 1 ≤ i ≤ k − 3)

l = k − 1, k: t ′(y ij ) = T (1 ≤ i ≤ k − 3)

t が cj を充足していなければ、k = 1, 2, 3では、C ′j が充足されな

い。k ≥ 4では、t(z1) = t(z2) = F より、t(y1j ) = T。また、

t(y1j ) = t(z3) = F より、t(y2j ) = T。同様に、

t(y3j ) = · · · = t(yk−3j ) = T が必要。しかし、このとき、

t({yj k−3, zk−1, zk}) = F となる。 

(SATの事例の符号長の多項式時間で 3SATの事例を生成するアルゴリズムが存在する証明は省略)

.

.

.

.

19 / 19

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 5 回: NP 困難性 .