P対NPとは、コンピュータや数学に携わる人たちが興味を持つ基本的かつ深い問いです。簡単に言うと「コンピュータですぐに答えを確認できる問題は、コンピュータですぐに解けるのか?」という問いです。ここでの「すぐに」は計算量理論での標準尺度である多項式時間(入力長に対して多項式で表される時間)を意味します。
直感的な区別は次のとおりです。P(Polynomial time)は、決定問題を決定性チューリングマシンで多項式時間内に解ける問題の集合で、実務上「効率的に解ける(簡単な)」と考えられます。一方、NP(Nondeterministic Polynomial time)は、ある候補解(証明や証拠)が与えられれば決定性チューリングマシンで多項式時間内にその候補を検証できる問題の集合です。言い換えれば、NPの問題は「解けるかどうかの答え(はい)を短い証明で素早くチェックできる」問題群です。NPはまた、非決定性チューリングマシンで多項式時間内に「解を見つけられる」クラスとも等価です。
定義(もう少し厳密に)
P:入力サイズ n に対して、ある決定性アルゴリズムが多項式時間(例えば n, n^2, n^3 など)で解を出せる問題の集合。
NP:もし答えが「はい」のときに、その主張を示す多項式長の証明(証拠)を用いて決定性アルゴリズムが多項式時間で検証できる決定問題の集合。等価な別定義として、非決定性チューリングマシンが多項式時間で解ける問題の集合でもあります。
歴史と重要な発展
1956年、クルト・ゲーデルは、ジョン・フォン・ノイマンに宛てた手紙の中で、あるNPに属すると見られる問題を一次時間または二次時間で解くことができるかどうかを問いかけています。1971年、スティーブン・クックは“The complexity of theorem proving procedures(定理証明手続きの複雑さ)”という論文でP対NP問題の正確な定式化を与え、さらに充実した研究の出発点を作りました(同時期にロシアのレヴィンも独立に同様の結果を示しました)。これに続き、1972年にリチャード・カープが多くの組合せ最適化問題が互いに多項式時間還元可能であることを示し、NP完全性(NP-complete)という概念が確立されました(Cook–Levin 定理と合わせて、NP完全問題の理論が確立)。
NP完全とNP困難(NP-hard)の意味
NP完全(NP-complete)とは、(1) 問題がNPに属し、かつ (2) 任意のNPの問題が多項式時間でその問題に還元できるものを指します。NP完全な問題を多項式時間で解ければ、すべてのNP問題を多項式時間で解けることになり、すなわち P = NP が示されます。NP困難(NP-hard)は還元関係の片側のみ(少なくともNPのすべてを還元できる)が成り立つ問題群で、必ずしもNPに含まれないことがあります。
代表的なNP完全問題の例
- SAT(充足可能性問題):ブール式に対して、式を真にする変数割当が存在するか?(最初にNP完全性が示された問題の一つ)
- 3-SAT、Clique(最大クリーク問題)、Vertex Cover(頂点被覆)、Hamiltonian Cycle(ハミルトン閉路問題)
- Subset Sum(部分和問題)、Knapsack(ナップサック問題)の決定版、グラフ彩色問題など
- 旅行セールスマン問題(TSP)の決定版は一般にNP困難/NP完全に分類される形式があります(制約による)
P = NP が真なら、何が起きるか?
もし P = NP が示されれば、今日「難しい」とされる多くの問題が効率的に(多項式時間で)解けるようになります。これにより組合せ最適化、証明探索、機械学習、ソフトウェア検証などに大きな影響が出ます。一方で、暗号学の基盤の多く(例えば RSA などの公開鍵暗号)は特定の計算問題の困難性に依存しているため、P = NP が示されれば多くの暗号は脅かされる可能性があります。ただし、実用的な観点からは「多項式時間」が必ずしも現実的に高速であるとは限らない(高次多項式や定数係数が問題となる)ため、P = NP の証明がただちに広範な実用的影響を与えるとは限りません。
P ≠ NP が真なら?
もし P ≠ NP であれば、検証は簡単だが一般に高速に解けない問題が存在することが正式に示されます。これは計算の限界を明確にし、暗号や複雑性理論の直感を裏付ける結果になります。
現在の状況と研究の課題
今日までP対NP問題は未解決のままで、計算理論の最大の難問の一つと見なされています。Clay Mathematics Instituteが選んだ7つのミレニアム賞問題の一つであり、正解者には100万ドルの賞金が設定されています。
研究面ではいくつかの部分的結果や障壁が示されています。たとえば相対化に関する結果(Baker–Gill–Solovay)は、ある種の証明技法がこの問題を解けないことを示唆し、また Razborov–Rudich の「自然証明」障壁は別種の手法の限界を示しています。さらに、円周率の計算や IP = PSPACE、PCP定理、近似困難性(approximation hardness)など、関連分野で重要な進展が相次いでいますが、P対NPそのものの決着には至っていません。
実務とアルゴリズムへの影響
たとえP≠NPであっても、多くの実用問題には工夫したアルゴリズム(メタヒューリスティクス、近似アルゴリズム、パラメータ化計算量、確率的アルゴリズム、特殊ケース向けの多項式アルゴリズムなど)が存在し、実用上は十分に扱えることが多いです。計算複雑性理論は、どの問題でそうしたアプローチが有効かを理論的に導く手がかりも与えています。
まとめと参考的見解
P対NP問題は、解の検証の容易さと解の探索の容易さが一致するかを問う、計算機科学の中心的な未解決問題です。多くの研究者は経験的・直感的にP≠NP(すなわち一部の問題は本質的に難しい)と考えていますが、厳密な証明はいまだ存在しません。問題の解決は理論・実務の双方に深い影響を与えるため、今後も盛んに研究され続けるテーマです。