計算可能性 計算可能性の理論 可解(solvable) 問題Aを解くアルゴリズムが存在するとき、 Aは可解であるという。 非可解(unsolvable) 問題Aを解くアルゴリズムが存在しないとき、 Aは非可解であるという。 1 非 可 解 プログラムの停止問題は非可解 入力: プログラムP、データx 出力: 計算が有限ステップで停止するならば Yes, そうでなければ No 計算可能性 計算可能性の理論 可解(solvable) 問題Aを解くアルゴリズムが存在するとき、 Aは可解であるという。 非可解(unsolvable) 問題Aを解くアルゴリズムが存在しないとき、 Aは非可解であるという。 3 複雑さのクラスP クラスP 多項式時間で解ける問題のクラス 例 • • • • • ソート グラフの最短経路 平面グラフの判定 最小木 ... 4 計算量 多項式オーダー ある定数kを用いて、O(nk)で書けるという意味である。 線形オーダー O(n)と書けるという意味である。 5 計算の複雑さ なぜ、多項式時間か? データがn個の問題を解くのに2種類のアルゴリズムがある。 アルゴリズムAは2n回の演算を用いて問題を解く アルゴリズムBが1000n5回の演算を用いて問題を解く もし、1秒に1億回の演算をする計算機を使うと、 この問題を解くのにかかる時間は データ A B 10 20 30 40 50 60 70 80 90 10万分の1秒 100分の1秒 11秒 3時間 130日 371年 37万年 4億年 4千億年 1秒 32秒 4分 17分 52分 2時間 5時間 9時間 16時間 6 決定性計算 deterministic computation start 停止 7 非決定性計算 nondeterministic computation start 選択 停止 8 複雑さのクラスNP nondeterministic polynomial クラスNP 決定問題Aに対し、非決定性アルゴリズムが存在して、 規模nの問題例について、それがyesの解をもつ 場合にはnの多項式オーダー長でyesを与えるものが 少なくとも一つ存在するならば AはクラスNPに属する. 例 • • • • 3SAT問題 最大独立点集合問題 ハミルトン閉路 ... 9 複雑さのクラスPとNP 簡単 クラスP 多項式時間で解けば クラスNP 例挙された解が条件を満たすかどうかの判定が 多項式時間で可能でありさえすれば 10 複雑さのクラスPとNP 簡単 最小全域木問題 クラスP 多項式時間で解けば クラスNP 例挙された解が条件を満たすかどうかの判定が 多項式時間で可能でありさえすれば 11 Satisfiability Problem(SAT) SAT リテラルx1 , x1 , x2 , x2 , … , xn , xn から作られたリテラルの和の節 C1,C2, …,Cmが与えられたとき、全ての節を1にするような変数へ の0,1の割り当てがあるかどうか判定せよ。 例 例 C1 = x1 + x2 + x3 C2 = x2 + x3 C3 = x3 + x4 C1 = x1 C2 = x1 x1=1, x2=0, x3=0, x4=1 x1=1 x1=0 C1 =1 C2 =1 C3 =1 C1 =1, C2 =0 C1 =0, C2 =1 12 複雑さのクラスPとNP 簡単 クラスP SAT問題 多項式時間で解けば クラスNP 例挙された解が条件を満たすかどうかの判定が 多項式時間で可能でありさえすれば 13 問題間の帰着 問題Aの任意の問題例Xに対し、問題Bの問題例f(X)を 構成でき、AにおけるXの答(yesあるいはno)とBにおける f(X)の答が一致するとき、AはBに帰着可能である。 ただし、f は多項式時間で計算できる場合には、 多項式的に帰着可能という。 14 NP困難とNP完全(P50,93,138) クラスNPの任意の問題Aがある問題Bに多項式的に帰着 可能であれば、BはNP困難(NP-hard)であるという。 さらに、このB自身がNPに属していれば、 BはNP完全(NP-complete)であるという。 15 未解決問題:P=NP ? もしNP完全に属する問題の一つが、多項式時間で解けたら、 クラスNPに属する問題は全て多項式時間で解ける。 即ち、P=NP。 NP 1971年以来世界中の研究者がトライしても、 未解決なので、P=NPだと予想されている。 NP完全 P 16 NP完全問題の例 現在、数千(もしくは、さらに多くの)NP完全問題が 知られている。 例 SAT 3SAT Clique Vertex-cover Vertex-coloring Edge-coloring Subset-sum 17 Satisfiability Problem(SAT) 最初にNP完全であることが証明された問題 S.A. Cook 1971年 SAT リテラルx1 , x1 , x2 , x2 , … , xn , xn から作られたリテラルの和の節 C1,C2, …,Cmが与えられたとき、全ての節を1にするような変数へ の0,1の割り当てがあるかどうか判定せよ。 例 例 C1 = x1 + x2 + x3 C2 = x2 + x3 C3 = x3 + x4 C1 = x1 C2 = x1 x1=1, x2=0, x3=0, x4=1 x1=1 x1=0 C1 =1 C2 =1 C3 =1 C1 =1, C2 =0 C1 =0, C2 =1 18 NP完全の証明 知られたNP完全の問題 多項式時間の帰着 証明したい問題 19 NP完全の証明 演習問題1 Clique 問題がNP完全であることを証明せよ。 Clique問題 グラフが与えられたとき、サイズkのclique(完全部分グラフ)を 持つかどうか判定せよ。 演習問題1 NP完全の証明 Clique 問題がNP完全であることを証明せよ。 証明: Clique問題がNPに属するのは自明です。 演習問題1 N P 完 全 の 証 明 Clique 問題がNP完全であることを証明せよ。 証明: Clique問題がNPに属するのは自明です。 3SAT問題がClique問題に多項式時間帰着可能であること を示せばいい。 知られたNP完全の問題 3SAT問題 多項式時間の帰着 証明したい問題 Clique問題 N P 完 全 の 証 明 3SATのインスタンス 例 Clique問題 サイズ3のclique? C1 = x1 + x2 + x3 C2 = x1 + x2 + x3 C3 = x2 + x3 + x4 x1 x1 x2 x2 x3 x3 =1, xx22=1, =0, xx33=0, =0, xx44=* =1 xx11=*, C1 =1 C2 =1 C3 =1 Yes x2 x3 Yes x4 Q.E.D 演習問題2 NP完全の証明 ハミルトングラフ問題がNP完全であることを証明せよ。 グラフGにすべての点を通る閉路Zがあるとき、Gはハミ ルトングラフ(Hamiltonian graph)といい、Zをハミルト ン閉路という。 出発点 24 N P 完 全 の 証 明 演習問題2 ハミルトングラフ問題がNP完全であることを証明せよ。 証明: ハミルトングラフ問題がNPに属するのは自明です。 3SAT問題がハミルトングラフ問題に多項式時間帰着可能である ことを示せばいい。 知られたNP完全の問題 3SAT問題 多項式時間の帰着 証明したい問題 ハミルトングラフ 問題 N P 完 全 の 証 明 部品 例 B A x1 x2 C1 = x1 + x2 + x3 C2 = x1 + x2 + x3 C3 = x1 + x2 + x3 x3 N P 完 全 の 証 明 部品 例 B A x1 ハミルトン閉路 x2 C1 = x1 + x2 + x3 C2 = x1 + x2 + x3 C3 = x1 + x2 + x3 x3 x1 =1 x2 =1 x3 =1 Q.E.D
© Copyright 2024 ExpyDoc