公開鍵暗号(5): np困難性
DESCRIPTION
実験数学3 (大阪大学理学部数学科 3年・4年) 鈴木 譲 2014年5月29日TRANSCRIPT
.
.
あらまし
.
.
P と NP
.
.
SAT から 3SAT への多項式時間還元
実験数学 3(大阪大学理学部数学科 3年・4年)
第 5回: NP困難性
鈴木 譲
大阪大学
2014年 5月 29日2014年 6月 12日 (改訂版)
.
.
.
.
1 / 19
.
実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 5 回: NP 困難性
.
.
あらまし
.
.
P と NP
.
.
SAT から 3SAT への多項式時間還元
あらまし
.
..
1 P とNP
.
..
2 SATから 3SATへの多項式時間還元
.
.
.
.
2 / 19
.
実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 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 困難性
.
.
.
あらまし
.
.
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 困難性
.
.
.
あらまし
.
.
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 困難性
.
.
.
あらまし
.
.
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 困難性
.
.
.
あらまし
.
.
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 困難性
.
.
.
あらまし
.
.
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 困難性
.
.
.
あらまし
.
.
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 困難性
.
.
.
あらまし
.
.
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 困難性
.
.
.
あらまし
.
.
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 困難性
.
.
.
あらまし
.
.
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 困難性
.
.
.
あらまし
.
.
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 困難性
.
.
.
あらまし
.
.
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 困難性
.
.
.
あらまし
.
.
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 困難性 .
.
.
あらまし
.
.
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 困難性 .
.
.
あらまし
.
.
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 困難性 .
.
.
あらまし
.
.
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 困難性 .
.
.
あらまし
.
.
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 困難性 .