公開鍵暗号2: np困難性
DESCRIPTION
実験数学3 講義スライドTRANSCRIPT
実験数学 3(大阪大学理学部数学科 3年・4年)
第 2回: NP困難性
鈴木 譲
大阪大学
2013年 4月 18日
あらまし
P とNP
SATから 3SATへの多項式時間還元
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 = ◁
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
↓
▷
▷
▷
多項式時間で解く
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が存在
言語の認識
Σ1,Σ0 ⊆ {0, 1}∗, Σ1 ∩ Σ0 = ϕΣ := Σ1 ∪ Σ0
言語Σの認識
TMのアルゴリズムが入力 σ ∈ Σに対し、yes(σ ∈ Σ1)または no(σ ∈ Σ0) で停止
例: Σ = {0, 1}∗
1. σ ∈ {0, 1}∗の中の 1の個数が偶数か否か
2. σ ∈ {0, 1}∗を 2進数表記とみたときに、素数であるか否か
決定問題と符号化
Π1,Π0: Π1 ∩ Π0 = ϕ, 可算集合Π := Π1 ∪ Π0 (各要素を事例とよぶ)
φ : Π → Σ ⊆ {0, 1}∗ (単射, 符号化とよぶ)φ(Π1) ⊆ Σ1, φ(Π0) ⊆ Σ0
決定問題Πの解決
TMのアルゴリズムがI ∈ Πに対し、yes(φ(I ) ∈ Σ1)または no(φ(I ) ∈ Σ0) で停止
決定問題の例: 充足可能性問題 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|: 節の大きさ、要素数)
節集合 節を要素とする集合
事例: 有限集合 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 が存在しない。
符号化の例
Ψ := {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ビットが入力の長さ
PとNP
決定性 TM (DTM) 1個の TMのみを適用非決定性 TM (NDTM) 任意個の TMを適用
(1個の TMで si ∈ halt, yes, noになるまで)
PDTMのアルゴリズムで、多項式時間で解ける決定問題の集合
NPNTMのアルゴリズムで、多項式時間で解ける決定問題の集合
▶ P ⊆ NP▶ P = NP であることが強く予想されている
多項式時間還元性
Π,Π′: 決定問題φ : Π → {0, 1}∗: Πにおける符号化φ′ : Π′ → {0, 1}∗: Π′における符号化
ΠはΠ′に多項式時間で還元 (Π ∝ Π′)
▶ f (φ(Π1)) ⊆ φ′(Π′1)
▶ f (φ(Π0)) ⊆ φ′(Π′0)
なる f : φ(Π) → φ′(Π′)を多項式時間で解く (haltで停止)
入力が σ ∈ φ(Π)であれば、
1. f : σ 7→ f (σ)で、時間 TA(σ) ≤ |σ|kA
2. f の出力長 |f (σ)|は、|σ|+ TA(σ)を超えない。
(◁を右に移動させるのに 1ステップ以上要する)
Π ∝ Π′,Π′ ∝ Π′′ =⇒ Π ∝ Π′′
証明: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 (σ)は、入力長 |σ|の多項式時間
Π ∝ Π′,Π′ ∈ P =⇒ Π ∈ P
C : 言語 φ(Π)を多項式時間で認識するアルゴリズム
1. 言語の認識で、時間 TC (f (σ)) ≤ |f (σ)|kC
2. 全体でも、T (σ) := TA(σ) + TC (f (σ)) ≤ |σ|kA + (|σ|+ |σ|kA)kC
3. T (σ)は、入力長 |σ|の多項式時間
NP完全性
NP完全な決定問題任意の Π ∈ NP に対して Π ∝ Π′となる決定問題 Π′ ∈ NP
ΠがNP 完全, Π′がNP, Π ∝ Π′ =⇒ Π′がNP 完全
Π ∈ NP完全を示せば、Π ∈ Pの強い証拠になるΠ ∈ NP 完全, Π ∈ P なる Πが存在 =⇒ P = NP (予想と矛盾)
Cookの定理
SATは、NP 完全問題である。
(証明略)
NP困難性
NP 完全 決定問題に対して定義
NP 困難 決定問題ではなくともよいが、その問題が決定性
TMで多項式時間で解かれると、P = NP を意味する問題
例:
事例: 有限集合 U, U 上の節集合 C
質問: t(C ) = T となる t : U → {T ,F}が存在するとき、その 1個を出力せよ
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}}
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の事例が計算