データ構造とアルゴリズム
第十三回 (2012年
1月17日)
NP-完全性、帰着可能性
http://www.sw.it.aoyama.ac.jp/2011/DA/lecture13.html
Martin J. Dürst
© 2009-12 Martin
J. Dürst 青山学院大学
今日の予定
- これからの予定
- 前回の復習
- NP-完全性、帰着可能性
これからの予定
- 1月20日 (金): 14回目の授業
- 1月27日 (金曜日1限、9:30-10:55): 期末試験
今回の目的
- 「簡単な問題」とそうでない問題を見分ける
- 視野の拡大、アルゴリズムの「宇宙」の展望
NP 問題
- 前回の問題例 1-3 の変形は全て NP 問題
- NP 問題の特徴:
答えが「真」の場合、証拠があればすぐ (多項式時間で)
確認可能
- NP の由来:
Nondeterministic Polynomial 非決定性多項式時間
同時に何台も計算機が使えれば多項式時間で解ける
- P の問題は場合によって微妙な変更で
NP になる
例:
グラフ内の二頂点間の一番短い経路と一番長い経路
- NP 問題は数多く存在
- P ⊆ NP
- P = NP ?
- P ≠ NP ?
決定問題
(decision problem)
- 結果は真か偽しかない問題
- 他の問題の「置き換え」ができる
最適化問題: k 以上 (や以下) で可能かどうか
- 決定問題が元の問題より複雑になる可能性がない
- 決定問題が理論的に扱いやすい
- NP 問題は定義上決定問題
- NP 問題に置き換えられる問題は「NP 困難」(NP-hard)
という
NP 内の問題の比較
帰着
(reduction)
- 概要: ある問題 A を別の問題 B に置き換えて解ける
(ことを証明する)
- A の入力 ⇒ (変換) ⇒ B のアルゴリズム ⇒ (変換) ⇒ A
の出力
- 変換は二つとも多項式時間で行う
- A が B に帰着可能の場合、A ≦P B
と書く
- 即ち、A が B より簡単か同じ難しさ
- 実例: 3-SAT を独立集合に帰着
NP 完全性
- 全ての NP 問題を帰着できる NP 問題は NP
完全問題という
- 殆どの NP 問題は NP
完全であるが、そうではない問題もありそう
計算複雑性理論
(computational complexity theory)
- 目的: 計算問題の根本的な分類
- 分類の要素:
- 計算量 (時間)
- メモリ量
- 回路の形
- 並列処理など
参考: Complexity Zoo
ポストの対応問題
(Post's correspondence problem; Emil Post, 1946)
- 二つ以上の文字を使う言語で、二つの単語集 W
= {w1, w2, ...
wn} と V =
{v1, v2, ...
vn} が与えられている
- 問題: W の単語と V
の単語を同じように選んだ場合、同じ文が作れるかどうか
(単語の重複可)
- 可能な例: W = {aa, b}, V = {a, aba}
正解例: aa-b-aa = a-aba-a
- 不可能な例: W = {ccd, cd, c}, V = {cc, ddc,
d}
理由:
どの単語をとっても、文の最後の文字が必ず違う
- この問題のためのアルゴリズムが存在しない
- 存在しないことの証明はある
まとめ
- 多項式時間で (いまだに) 解けない問題が存在
- その多くは NP 完全 (又は NP 困難) 問題
- 難しい問題を早めに見分けるのが大事
- NP 完全の問題より解きにくい問題もある