10.PとNP完全問題との境界 10 PとNP完全問題との境界

10 PとNP完全問題との境界
10.PとNP完全問題との境界
1
10-1.2SAT
3SATがNP完全であることを見てきたが
3SATがNP完全であることを見てきたが、
ここでは2SATがPに属することを見ていく。
名称:2SAT(2充足可能性問題、
2SATisfiability problem)
インスタンス:2CNF論理式 f (x 1, x 2 ,
, xn )
問: f = 1 となる x 1, , x n への0,1の
割り当てが存在するか?
変数の個数
自体には
制限が無い
制限
無
ことに注意
2
例
f = (x 1 + x 2 )(x 1 + x 3 )(x 2 + x 4 )(x 4 + x 5 )(x 5 + x 1 )
この2CNFが充足可能かどうか調べる。
と仮定する
先ず、x 1 = 0 と仮定する。
このとき、節にはリテラルが2つしかないので、
このとき
節にはリテラルが2つしかないので
f を充足させるためには、x 1 を含む節に対して、
x 1 以外の変数
以外の変数への割り当てが決まってしまう。
の割り当て 決ま てしまう。
このことが連続で引き起こされる。
x1 = 0 → x 2 = 0 → x 4 = 1 → x 5 = 1 → x1 = 1
この例では、この連鎖によって、矛盾が導ける。
したがって、 x 1 ≠ 0
である。
3
したがって、 x 1 ≠ 0
同様に x 1 = 1
である。
と仮定する。
このとき、次のように連鎖を導ける。
x1 = 1 → x 3 = 1
このときには、さらに、与えられた関数を簡単化できる。
f = (x 1 + x 2 )(x 1 + x 3 )(x 2 + x 4 )(x 4 + x 5 )(x 5 + x 1 )
f ' = (x 2 + x 4 )(x 4 + x 5 )
このとき、 f が充足可能であるための必要十分条件は、
このとき
が充足可能であるための必要十分条件は
f 'が充足可能であることに注意する。
4
この例の方針にしたがって、
多項式時間アルゴリズムが得られる。
インスタンス: f = C 1 iC 2 i
iC m
f (x 1,
, xn )
C i = (p + q )
p, q ∈ {x 1,
, x n , x 1,
ここで、入力サイズは、
ここで
入力サイズは O(n + m )
, xn }
である
である。
L2SAT = {f | f は充足可能な2CNF} とする。
このとき、
L2SAT ∈ P
5
証明
具体的にに多項式時間アルゴリズムを示す。
アルゴリズム2SAT
1.変数
変数x 1 に対して0または1を割り当て、
に対して0または を割り当て
割り当ての連鎖を求める。
2.1.の連鎖で矛盾が生じた場合には、
をその割り当てを採用しない。
3.1.の割り当てで矛盾が生じない場合には、
関数 f を簡単化した関数 f ' を作成し、
を作成し
f ' に対して再帰的にアルゴリズムを適用する。
6
ここkで、アルゴリズム2SATが最悪でも
多項式時間で動作することを示す。
まず、ステップ1の連鎖は
まず
ステップ1の連鎖はO(m )時間で求めることができる。
時間で求めることができる
各変数に対して、 連鎖を求めることは、
高々2回(肯定の割り当てか、否定の割り当て)
しか行わない。
さらに、一度連鎖に入った節は、簡単化され、
さらに
度連鎖に入 た節は 簡単化され
関数f ' には含まれない。
以上より、高々
高 O(mn ) 時間で充足可能かどうか
を調べることができる。(なお、ここでは、多項式時間
を示しただけである 現在知られている最速のアルゴリズム
を示しただけである。現在知られている最速のアルゴリズム
ではない。)
∴ L2SAT ∈ P
QED
7
以上より、次のような状態であることがわかる。
NP-hard
SAT
3SAT
NP-complete
2SAT
NP
P
このように、問題を注意深く観察しないと、
このように
問題を注意深く観察しないと
Pの問題か、NP完全の問題かは区別できない。
8
練習
次の2CNFが充足可能かどうかを調べよ。
f = (x 1 + x 2 )(x 2 + x 3 )(x 2 + x 4 )(x 4 + x 5 )(x 3 + x 4 )
(x 1 + x 3 )(x 4 + x 5 )(x 3 + x 6 )(x 4 + x 6 )(x 5 + x 6 )
9
10-2.2次元マッチング
次のような問題を考える。
あるパーティには、n人の男性と、n人の女性が招待されて
いる このパーティにおいて
いる。このパ
ティにおいて、ダンスを踊るために、
ダンスを踊るために
男と女のペアを作りたい。
しかし、全ての男女が組みを作れるわけではなく、
組を作ることができる男女間の情報だけがわかっている
ものとする。
このときに 同時に 組のペアをつくることが可能か?
このときに、同時にn組のペアをつくることが可能か?
10
先ほどの問題は、グラフの問題として定式化できる。
名称:2次元マッチング
インスタンス:
A = {a1, a2 ,
, an },
} B = {b1, b2 ,
, bn },
} M ⊆ A×B
問い:完全マッチングがあるか?
11
肯定のインスタンス
a1
b1
a2
b2
a3
b3
a4
b4
a5
b5
12
否定のインスタンス
a1
b1
a2
b2
a3
b3
a4
b4
a5
b5
13
L2DM = {M | M
Mは完全マッチングが存在する
は完全マッチングが存在する2部グラフ}
とする。
このとき、
L2DM ∈ P
証明
次のようなアルゴリズムを考える。
次
うなア
リ
を考 る。
まず、辺を適当に選択して、マッチングを構成していく。
この選択を可能な限り行なう
この選択を可能な限り行なう。
ここで、選択した辺の両方の点がこれまでに選択した辺に
接続している場合を考えよう。
接続している場合を考えよう
14
a
a’
b
c
bb’
d
d
d’
e
e’
f
f’
c’
このとき、このような状況になっているはずである。
このとき
このような状況にな ているはずである
つまり、fに接続している辺はすべて、既にマッチングの
辺が接続している。
15
a
a’
b
c
bb’
d
d
d’
e
e’
f
f’
c’
このときは、マッチングの辺と、マッチしていない辺を交互に
このときは
マ チングの辺と マ チしていない辺を交互に
辿って、マッチしていない点まで辿る。
16
a
a’’
b
c
b’
d
d’
d
dd’
e
e’
e
e’
f
f’
f
f’
a
a’
b
c
bb’
d
c’
必要部分だけを抜き出すと上図左のようになる。
このとのようなマッチと非マッチの辺を辿った道を
のとのような
チと非
チの辺を辿 た道を
交互道という。交互道において、マッチと非マッチを
交換することができる このように交換(スイッチ)しても
交換することができる。このように交換(スイッチ)しても、
マッチングの条件を満足していることに注意する。
c’
17
非マッチの点から初めて非マッチの点で終わる交互道は、
スイッチすることによって、
スイッチすることによって
マッチの辺を1本増加させることができる。
スイッチ不可能のな例
a
a’
b
c
b’
d
d’
e
ee’
f
f’
c’
このような場合非マッチの点から初めて交互道を辿ると、
交互道の始点側からなる部集合の点集合(青点)が、
交互道の逆の部集合の点集合(赤点)より
18
必ず個数が多くなる。
つまり、このような交互道の選択ステップが失敗するならば、
完全マッチングが存在しないことがわかる。
グ
以上より、次のような多項式時間アルゴリズムが得られる。
以上より
次のような多項式時間アルゴリズムが得られる
アルゴリズム2DM
1.各辺
各辺 e ∈ M を含む極大な交互道を
見つける。(必要ならスイッチを行う。)
2.1.の交互道を取り除いて、再帰的にマッチングを
見つける。
このアルゴリズムの厳密な解析は行わないが、
最悪 O(mn )時間で動作することが知られている。
(現在知られている最も高速なアルゴリズムの計算量は、
O( nm ) 時間である。)
QED
19
練習
次の例に対して、交互道を延長することによって、
マッチングがあるかどうかを決定せよ。
グがあるかどうかを決定
a1
b1
a2
b2
a33
b3
a44
b4
a5
b5
a6
b
b6
20
10-3.3次元マッチング
2次元マッチングに対しては、多項式時間アルゴリズム
2次元マッチングに対しては
多項式時間アルゴリズム
が存在した。しかし、自然な拡張である3次元マッチング
はNP完全であることが示せる。
名称:3次元マッチング
名称
次
グ
インスタンス:
A = {a1, a2 ,
, an }, B = {b1, b2 ,
, bn },C = {c1, c2 ,
, cn }
M ⊆ A × B ×C
問い:完全3次元マッチングがあるか?
すなわち、M中の互いに素な部分集合で、
A、B、Cの要素を全て網羅できるか?
21
L3DM = {M | M
Mは3
は3DMが存在するインスタンス}
とする。
このとき、
L3DM ∈ NP − complete
l t
証明
まず
まず、
L3DM ∈ NP
を示す
を示す。
m ∈ M を非決定的に選択することによって、
3DMの受理を決定できる。したがって、
L3DM ∈ NP
である。(あるいは、3DMになっているかどうかの
検証は容易に多項式時間で行えるから L3DM ∈ NP である。)
である )
22
ここでは、3SATを多項式時間で3DMに帰着できることを
ここでは
3SATを多項式時間で3DMに帰着できることを
示す。
すなわち、
すなわち
3SAT
3DM
と問題を変換できることを示す。
、
具体例 対
帰着法(変換法)
ここでは、3SATの具体例に対して帰着法(変換法)
を示すにとどめる。
この例から容易に一般の3SATのインスタンスを
3DMに帰着できることがわかる。
に帰着 きる とがわかる
3SATのインスタンスを
f = (x + y + z )(x + z + w )(y + z + w )(x + z + w )(y + z + w )
とする。
23
まず、A,B,Cを次のように定める。
A={ , , ,・・・}}
B={ , , ,・・・}
C={ , , ,・・・}
次に、各変数
に対して次のような構造を持つように、
3DMのインスタンスを作成する。この例では、項が5つあるので
肯定と否定で10角形を構成する。
x5
x1 x
1
x5
x2
x4
x4
x3
x3
x2
24
各節は下図のように構成する。
(x + y + z )
(x + z + w )
25
3SATが充足可能であるときにかつ、そのときに限り、
この構成が3DMを持つことを示す.
先ず、3DMがあると仮定する。このときに、充足可能である
ことを示す。
10角形中のBやCの要素をいずれかのマッチングが網羅
するためには 変数は偶数番目だけすべて選ぶか
するためには、変数は偶数番目だけすべて選ぶか
あるいは奇数番目だけをすべて選ぶしかない。
偶数番目を選んだときには肯定の変数が自由でなくなり、
(節への割り当てが不可能)、
奇数番目を選んだときには否定の変数が自由でなくなる。
したが て
したがって、
変数 x i の偶数番目をマッチングで選んだら、
x i に0を割り当てると考える。
逆に、奇数番目をマッチングで選んだら、
xi
に1を割り当てると考える。
26
節に対応するマッチングにより、Aの要素をいずれかの変数で
網羅しなければならない この選択によって
網羅しなければならない。この選択によって、
変数における自由な頂点が一意に決定することに注意する。
3DMのインスタンスの構成から、3DMが存在するときには、
のイン タン の構成から、
が存在するときには、
3SATが充足可能であることがわかる。
次に充足可能であるならば、3DMが存在することを示す。
全ての節を1にする割り当てが存在する。この割り当てに
したがって、10角形の奇数番目か偶数版目かを選ぶことができる。
、 角形 奇数番目 偶数版目 を選ぶ
きる。
このとき、BとCの要素はすべて網羅されている。したがって、
残っている要素はAの要素だけである。
残 た要素は あらかじめ必要分
残った要素は、あらかじめ必要分のMの要素をすべてのAに対応
要素をすべ
に対応
させておくことにより、すべてのAをマッチさせることができる。
((一種のガベージコレクションを行えばよい
種のガベージコレクションを行えばよい。))
QED
27
以上より、次のような状態であることがわかる。
NP-hard
3DM
NP-complete
2DM
NP
P
一見似たような問題でも計算量が全く異なる。
見似たような問題でも計算量が全く異なる
このような問題の組をいくつか示す。(証明なしで)
28
10-4.PとNP完全
Pの問題解決手法を組み合わせることで
Pの問題解決手法を組み合わせることで、
多項式時間アルゴリズムが得られることもある。
また、NP完全の問題を帰着できて、NP困難であることが
証明できることもある。
これらは、計算機科学の主要な研究テーマである。
NP完全
部分問題を表す
矢印
未解決
( と 完全の境界)
(PとNP完全の境界)
多項式時間アルゴリズム
29
似ているクラスPの問題とNP完全の問題1
P
名称:2点間の最短路
インスタンス:
辺重みつきグラフ
G=(V,E)と
2点 a,b ∈V
さらに 正定数B
さらに、正定数B
問い:
点aから点bまで結ぶ
単純な路で長さがB以下
のものがあるか?
NP完全
名称:2点間の最長路
インスタンス:
辺重みつきグラフ
G=(V,E)と
2点 a,b ∈V
さらに、正定数B
問い:
点aから点bまで結ぶ
単純な路で長さがB以上
のものがあるか?
30
a
a
b
b
a
a
b
b
31
似ているクラスPの問題とNP完全の問題2
P
名称:辺被覆
インスタンス:
グラフG=(V,E)と
さらに、正定数K
NP完全
名称:点被覆
インスタンス:
グラフG=(V,E)と
さら
さらに、正定数K
定数
問い:
E ' ⊆ E かつ E ' ≤ K
V ' ⊆ V かつ V ' ≤ K
で、全ての点は
で
全ての点は e ∈ E ' の
いずれかの辺に
接続している。
で、全ての辺は
で
全ての辺は v ∈ V ' の
いずれかの点に
接続している。
32
33
似ているクラスPの問題とNP完全の問題3
NP完全
P
名称:0-1ナップザック
名称:実数ナップザック
インスタンス:
集合U = {u1, , un } と、
s(ui )
サイズ関数
ズ
価値関数v(ui ) 。
また 正定数B 正定数K
また、正定数B、正定数K
問い:
に対して
1 ≤ i ≤ n に対して、
インスタンス:
集合U = {u1, , un } と、
サイズ関数
ズ関数 s(ui )
価値関数v(ui ) 。
また 正定数B 正定数K
また、正定数B、正定数K
問い:
に対して
1 ≤ i ≤ n に対して、
αi ∈ [0,1] が存在して、
x i ∈ {0,1} が存在して、
n
n
∑ α s(u ) ≤ B かつ
∑ x s(u ) ≤ B かつ
∑ α v(u ) ≥ K
∑ x v(u ) ≥ K
i
i
i =1
n
i
i
i =1
とできるか?
i
i
i =1
n
i
i
i =1
とできるか?
34
B
B
35