P≠NPノート
今回のタネ本
● 今度こそわかるP≠NP予想
○ 前回があったのか?
○ とても読みやすかったです。
○ 数式というか論理式は飛ばしました。
○ 詳細はこの本を読んでください。貸します。
○ その他関連Wikipediaを参考にしました。
P≠NP予想とは
● 速く解ける問題の集合(P)と、証拠があれば速く解ける問題
の集合(NP)が、多分きっと恐らく同じではない(≠)だろう、と
いう予想。
● NP完全と呼ばれる問題の速い解き方が分かるか、逆に速く
解けないことが証明できれば、100万ドルもらえます。
NP完全問題の実例
● ぷよぷよ
● テトリス
こういった、現実世界に大きく関わる組み合わせ最適
化問題がNP完全問題です。
● 他には、
○ 論理式が真になれるか確かめる充足可能性問題(SAT)
○ ナップサック問題など
登場人物紹介
● 問題
○ ビット列からビット列に変換する関数
○ 1か0(yesかno)だけを返す問題は決定問題という。
● 問題例(入力)
○ 問題の具体的な入力値。サイズは任意。
● 計算機
○ アルゴリズムに沿って入力を処理し、結果を出す。
「計算の速さ」とは何か
● そもそも時間とは?
○ アルゴリズムを実行するための計算のステップ数
○ 加減算・代入など
● 「速い」アルゴリズムとは?
○ 入力のサイズが増えても、計算ステップ数がそれほど増えないアルゴリズ
ム。
計算時間を比べる
● O記法(オーダー記法)で計算時間を表す。
○ O(1)、O(n)、O(nk
)、O(2n
)、O(2n^k
)...
○ それぞれ、入力サイズnによって計算時間がどう増えるかを表している。
○ O(1)であれば、入力サイズに関係なく決まった時間で計算できる。
○ O(n)であれば、入力サイズが2倍になると2倍時間が掛かる。
Pとは
● 多項式時間で計算できるアルゴリズムが見つかっている問
題
○ 普通の計算機(決定性チューリングマシン)でね!
● 多項式時間とは、つまりO(nk
)
○ これ(nk
)が計算機科学の多項式です。定数無視、一番大きい指数の項だけ
注目。
○ O(1)やO(n)も含まれる。
NPとは
● Pじゃない問題……ではありませんでした。
○ 解くのはどうか知らないけど、解答らしきもの(証拠)があれば、それを多項式
時間(O(nk
))で検算できる決定問題。
● PもNPに含まれます。
○ Pは多項式時間で解けるし、多項式時間で検算もできる。
○ 多項式時間で検算できるからNP。
NP困難とNP完全
● この2つは違いました。
○ NP困難とは、NP以上(≦)に難しいこと
○ NP完全とは、NP困難でかつNP(証拠があれば多項式時間で決定可能)で
あること
● PはNPなのだから、NP完全でかつPのものもあったりするん
だろうか……。
● もしそれがあればP=NP
P≠NP予想
● PとNPに差があるという予想。
○ NPだがPでない(多項式時間では解けない)問題があるだろう、という予想。
○ NPとPは曖昧な関係。
■ 「あなた、NP完全だって言ってたじゃない! P君とはどういう関係な
の!?」「実は俺、Pと……」
■ そうこともあり得る。
NP完全問題の性質
● いろいろ種類があるけれど、どれも多項式時間で別のNP完
全問題に還元可能
○ つまり、NP完全問題がどれか1つ多項式時間で解ければまとめて解決。
● テトリスやぷよぷよでもOK!
○ この場合、充足可能性問題やハミルトン閉路問題をぷよぷよに還元して解く
ことになります。
P≠NP予想周辺の話題
● 乱択アルゴリズム
○ 2/3くらい当たる多項式時間アルゴリズムがあれば、多項式時間のオーダー
でほぼ答えが出せる。
○ こういったアルゴリズムがある問題を、PやNPと同じようにBPPと呼ぶ。
○ 現実的に応用範囲が広そう。ただ、多くの研究者はBPP=Pだと思っているら
しい……。
NP以上に難しい方々
● E
○ O(2n
)掛かる
● EXP
○ O(2n^k
)掛かる(指数が多項式)
● 決定不能
○ チューリングマシン停止問題(永遠に掛かる)
NPのもうひとつの定義
● 非決定性チューリングマシンで多項式時間に解ける問題
● 非決定性チューリングマシンとは、状態遷移の時になぜか良
くわからないけど自然と解ける方向に向かうスゴイマシン。
● そんな状態遷移で大丈夫か?
○ 大丈夫だ、問題ない。(決定性)
○ いちばん良い状態を頼む。(非決定性)
NP完全性を感じたい
● 時間があれば部分和問題とか……。
● マシン停止。発熱。
● 気温や冷却の観点から、本当は冬にやるのがオススメです。
● D言語で書きました。
個人的な疑問ノート
● 岩淵さんがつぶやいていたコラッツ予想が気になる。
○ 1以上の自然数nについて、nが偶数なら1 / 2、奇数なら3n + 1、を繰り返す
と1になる。
● 逆から考えると、1からある数Nに向かう経路が存在するかを
問う決定問題
● 部分和問題に近い?
● 幾何学的にも考えられそう
● こちらは解ければ500ドル

P≠npノート