公開鍵暗号2: np困難性

18
実験数学 3 (大阪大学理学部数学科 3 年・4 ) 2 : NP 困難性 鈴木 譲 大阪大学 2013 4 18

Upload: joe-suzuki

Post on 20-Jun-2015

202 views

Category:

Documents


0 download

DESCRIPTION

実験数学3 講義スライド

TRANSCRIPT

Page 1: 公開鍵暗号2: NP困難性

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

第 2回: NP困難性

鈴木 譲

大阪大学

2013年 4月 18日

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

あらまし

P とNP

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

Page 3: 公開鍵暗号2: NP困難性

Turing Machine (TM)

S : 有限集合A : (S ∪ {start})× {0, 1, ▷, ◁} →(S ∪ {halt, yes, no})× {0, 1, ▷, ◁} × {−1, 0, 1}

{xi}Ti=0, mi ≥ 2,

xi = (x(1)i = ▷, x

(2)i ∈ {0, 1}, · · · , x (mi−1)

i ∈ {0, 1}, xmii = ◁)

1. x0 = (x(1)0 , · · · , x (m0)

0 ) [入力], s0 = start, k0 = 1

2. A(si , x(ki )i ) = (t, y , d), t ∈ {halt, yes, no}

=⇒ si+1 := t, x(ki )i+1 := y , ki+1 := ki + d

3. xT = (x(1)T , · · · , x (mT )

T ) [出力], sT ∈ {yes, np, halt}

Aの仮定:

{x(ki )i = ▷ =⇒ y = ▷, d = −1

x(ki )i = ◁, y = ◁ =⇒ x

(ki+1)i+1 = ◁

Page 4: 公開鍵暗号2: NP困難性

s0 = start

si

si+1 = t

sT ∈ {yes,no, halt}

x(mi+1−1)i+1

x(mi−1)i

x(ki−1)i+1 x

(ki )i+1x

(ki+1)i+1

= y

x(ki )i

x(2)i+1

x(2)i

x(2)0

x(mT−1)Tx

(2)T

▷ ◁

◁x(m0)−10

↓ ↓ ↓d = −1 d = 0 d = 1

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

多項式時間で解く

f : {0, 1}∗ → {0, 1}∗ (haltで終了して、xT を出力)f : {0, 1}∗ → {0, 1} (yes, noで終了)

Aはアルゴリズム

任意の入力 x0 ∈ {▷} × {0, 1}∗ × {◁}について、T < ∞

σ: x0 ∈ {▷} × {0, 1}∗ × {◁}の両端の ▷, ◁を除いた列TA: アルゴリズムが Aのときの σ ∈ {0, 1}∗ 7→ T ∈ N入力長が n := |σ|のときのアルゴリズム Aの実行時間 Tn,A:

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

TA(σ)

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

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

Page 6: 公開鍵暗号2: NP困難性

言語の認識

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

言語Σの認識

TMのアルゴリズムが入力 σ ∈ Σに対し、yes(σ ∈ Σ1)または no(σ ∈ Σ0) で停止

例: Σ = {0, 1}∗

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

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

Page 7: 公開鍵暗号2: NP困難性

決定問題と符号化

Π1,Π0: Π1 ∩ Π0 = ϕ, 可算集合Π := Π1 ∪ Π0 (各要素を事例とよぶ) 

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

決定問題Πの解決

TMのアルゴリズムがI ∈ Πに対し、yes(φ(I ) ∈ Σ1)または no(φ(I ) ∈ Σ0) で停止

Page 8: 公開鍵暗号2: NP困難性

決定問題の例: 充足可能性問題 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|: 節の大きさ、要素数)

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

Page 9: 公開鍵暗号2: NP困難性

事例: 有限集合 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 が存在しない。

Page 10: 公開鍵暗号2: NP困難性

符号化の例

Ψ := {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ビットが入力の長さ

Page 11: 公開鍵暗号2: NP困難性

PとNP

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

(1個の TMで si ∈ halt, yes, noになるまで)

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

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

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

Page 12: 公開鍵暗号2: NP困難性

多項式時間還元性

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

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

▶ f (φ(Π1)) ⊆ φ′(Π′1)

▶ f (φ(Π0)) ⊆ φ′(Π′0)

なる f : φ(Π) → φ′(Π′)を多項式時間で解く (haltで停止)

 

入力が σ ∈ φ(Π)であれば、

1. f : σ 7→ f (σ)で、時間 TA(σ) ≤ |σ|kA

2. f の出力長 |f (σ)|は、|σ|+ TA(σ)を超えない。

(◁を右に移動させるのに 1ステップ以上要する)

Page 13: 公開鍵暗号2: NP困難性

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

証明:f ′ : f (φ(Π)) 7→ φ′′(Π′′) 多項式時間還元B: f ′のアルゴリズム

1. f ′ : f (σ) 7→ f ′(f (σ))で、時間 TB(f (σ)) ≤ |f (σ)|kB

2. 全体でも、T (σ) := TA(σ) + TB(f (σ)) ≤ |σ|kA + (|σ|+ |σ|kA)kB

3. T (σ)は、入力長 |σ|の多項式時間

Page 14: 公開鍵暗号2: NP困難性

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

C : 言語 φ(Π)を多項式時間で認識するアルゴリズム

1. 言語の認識で、時間 TC (f (σ)) ≤ |f (σ)|kC

2. 全体でも、T (σ) := TA(σ) + TC (f (σ)) ≤ |σ|kA + (|σ|+ |σ|kA)kC

3. T (σ)は、入力長 |σ|の多項式時間

Page 15: 公開鍵暗号2: NP困難性

NP完全性

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

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

Π ∈ NP完全を示せば、Π ∈ Pの強い証拠になるΠ ∈ NP 完全, Π ∈ P なる Πが存在 =⇒ P = NP (予想と矛盾)

Cookの定理

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

(証明略)

Page 16: 公開鍵暗号2: NP困難性

NP困難性

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

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

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

例:

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

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

Page 17: 公開鍵暗号2: NP困難性

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−5j , zk−3, y

k−4j }, {yk−4

j , zk−2, yk−3j },

{yk−3j , zk−1, zk}}

Page 18: 公開鍵暗号2: NP困難性

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

1. k = 1では、{y1j , y2j }の {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 ′ : U ′ → {T ,F}が C ′を充足させれば、t ′の定義域 U ′をU に制限して、C を充足させる t : U → {T ,F}が得られる。 

SATの事例 U,C がmnの多項式の長さで記述でき、決定的 TMを用いて,その長さの多項式の時間で 3SATの事例が計算