【えぬぴーかんぜんもんだい】

NP完全問題 とは?

💡 「全パターン試すしかない?」と思わせる、計算の壁
📌 このページのポイント
P vs NP の関係(P≠NPの場合) NP P ソート 最短経路 線形計画 NP完全 巡回セールスマン ナップサック 充足可能性 境界 ※ P≠NP なら P と NP完全 は重ならない
P vs NP の関係図(P≠NPと仮定した場合)
ひよこ ひよこ

NP完全問題って、どれくらい難しいの?

ペンギン先生 ペンギン先生

たとえば10個の都市を回る最短ルートを探すとき、全パターンは約18万通り。でも都市が50個になると、パターン数は宇宙の原子の数より多くなるんだ。こういう「数が増えると爆発的に大変になる問題」がNP完全問題だよ

ひよこ ひよこ

じゃあコンピュータでも解けないの?

ペンギン先生 ペンギン先生

小さいサイズなら解けるけど、大きくなると現実的な時間では解けないんだ。だから実際には「だいたい良い答え」を見つける近似アルゴリズムを使うことが多いよ

ひよこ ひよこ

NP完全問題どうしに何か関係はあるの?

ペンギン先生 ペンギン先生

実はすべてのNP完全問題は互いに変換できるんだ。だから1つでも高速に解ける方法が見つかれば、全部まとめて解けるようになる。逆に言えば「どれか1つでも無理なら全部無理」なんだよ

ひよこ ひよこ

P≠NP問題ってよく聞くけど、それと関係あるの?

ペンギン先生 ペンギン先生

大ありだよ。「Pクラスの問題=効率よく解ける問題」と「NPクラスの問題=答えの検証だけ速い問題」が本当に違うのかどうかが未証明なんだ。もしP=NPなら暗号が崩壊するし、P≠NPならNP完全問題に高速解法は絶対にないと確定する。コンピュータサイエンス最大の未解決問題だね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「NP完全問題」って出てきたら「効率よく解く方法がまだ見つかっていない超難しい計算問題」と思えればだいたいOK!
📖 おまけ:英語の意味
「NP-Complete Problem」 = 非決定性多項式時間完全問題
💬 NPは「Nondeterministic Polynomial time」の略で、「答えが合ってるか確認するだけなら速い」という意味だよ。Completeは「最も難しい部類」を表しているんだ
← 用語集にもどる