NP困難・NP完全とは?問題の『難しさ』を表すクラス

公開: 更新: カテゴリ: テクノロジ系

30秒で結論

NP困難・NP完全とは(全体像)

これらは、「その問題はどれくらい難しいか」を分類する考え方(計算複雑性の理論)。難しさを段階で表す。

まず3つの言葉を押さえる。

よくある誤解が「NP=解けない」。正しくは、NPは「答えの確認が速い」問題のことで、解けないわけではない(ただし、解くのに時間がかかる場合がある)。つまり、NPは「解けない」ではなく「答えを見せられれば正しいか速く確かめられる」問題、というわけだね。


詳しく:クラスの関係と代表例だけ覚えれば戦える

ここが記事の心臓部。まずはクラスの意味

難しさのクラス

クラス意味
P速く解ける(手早く答えが出る)
NP答えを見せられれば、正しいか速く確認できる
NP完全NPの中でいちばん難しいグループ
NP困難NP完全と同等以上に難しい(NPの外も含む)

押さえるのは2点。1つはNP完全とNP困難の違いNP困難はNP完全と同等以上に難しい範囲で、NP完全より広い(NPに入らないものも含む)。「NP完全=NP困難」ではない。

もう1つは、NP完全のグループは深くつながっていること。そのうちのどれか1つでも速く解ける方法が見つかれば、グループ全部が速く解ける——という関係がある。

代表的なNP完全・NP困難の問題

問題内容
巡回セールスマン問題(TSP)すべての都市を最短で1周する順番を求める
ナップサック問題容量制限のなかで価値を最大にする選び方

これらの問題は、規模が大きくなると現実的な時間では正確に解けないことがある。そこで実務では、近似アルゴリズム(完璧ではないが、そこそこ良い答えを速く出す方法)で対応する。

なお、「P=NPか?(速く確認できる問題は、速く解けるのか)」は、まだ答えの出ていない有名な未解決問題だ。

わかりやすく言い換えると

要するに、これは「問題の手ごわさのランク分け」だ。

P … すぐ解けるやさしい問題(計算がすぐ終わる)

NP … 解くのは大変でも、答えを見せられれば「正しい」とすぐ確認できる問題(ジグソーパズルは作るのは大変でも、完成品が正しいかは一目で分かる)

NP完全 … NPの中でいちばん手ごわいグループ。1つ攻略できれば全部攻略できる、という運命共同体

巡回セールスマンのように大きくなると正確には解けない問題は、近似で「だいたい良い答え」を出して実務をこなす、というわけだね。


試験のツボ

🔴 一番出る:NPの意味

①NP=「解けない」ではなく「答えの確認が速い」問題

②P=速く解ける、NP完全=NPでいちばん難しいグループ

🔴 次に出る:NP完全とNP困難の違い

①NP困難はNP完全と同等以上に難しい(NP完全より広い)

②NP完全はどれか1つ速く解ければ、グループ全部が速く解ける

🟡 押さえると安定:代表例と実務対応

①巡回セールスマン問題・ナップサック問題が代表

②大きな問題は近似アルゴリズムで対応する


よくある間違い

「NPとは『解けない問題』のことである」→ ✗  NPは「答えの確認が速い問題」。解けないわけではない(解くのに時間がかかる場合はある)。

「NP完全とNP困難はまったく同じものである」→ ✗  NP困難はNP完全と同等以上に難しく、NP完全より広い(NPの外も含む)。

「巡回セールスマン問題は、規模が大きくても必ず一瞬で正確に解ける」→ ✗  規模が大きいと正確には解きにくく、近似アルゴリズムで対応する。


試験での出題パターン

実際の問題でたしかめてみよう。

オリジナル問題1(NPの意味)

📝 オリジナル問題 1 NPの意味

NPに関する次の記述のうち、正しいものはどれか。

  1. NPとは、どんな方法を使っても絶対に解くことができない問題のことである
  2. NPとは、答えを見せられても正しいか確認できない問題のことである
  3. NPとは、つねに一瞬で速く解けることが保証された問題のことである
  4. NPとは、答えを見せられれば正しいか速く確認できる問題のことである
オーエスペン
オーエスペン 解答・解説

解答は 4 だよ。

NPは「答えを見せられれば、正しいか速く確認できる」問題なんだ。「解けない」わけではなくて、確認が速い、というのがポイントだよ。

選択肢1は「絶対に解けない」が誤り。選択肢2は「確認できない」が誤り。選択肢3は「つねに一瞬で解ける」が誤り(それはPに近い)だよ。

選択肢判定理由
1解けないわけではない
2確認が速いのがNP
3速く解けるのはP
4答えの確認が速い問題

オリジナル問題2(NP完全とNP困難)

📝 オリジナル問題 2 NP完全とNP困難の違い

NP完全とNP困難の関係に関する次の記述のうち、正しいものはどれか。

  1. NP完全とNP困難はまったく同じもので、区別する必要はないものである
  2. NP困難はNP完全と同等以上に難しく、NP完全より広い範囲を指している
  3. NP困難はNP完全より簡単で、すべて速く解けることが分かっているものだ
  4. NP完全はNP困難より広く、NPの外の問題もすべて含んでいるものである
オーエスペン
オーエスペン 解答・解説

解答は 2 だよ。

NP困難はNP完全と同等以上に難しく、NP完全より広い範囲(NPの外も含む)を指すんだ。「NP完全=NP困難」ではない、というところがポイントだよ。

選択肢1は「まったく同じ」が誤り。選択肢3は「NP困難のほうが簡単」が誤り。選択肢4はNP完全とNP困難の広さが逆だよ。

選択肢判定理由
1別の概念
2NP困難はNP完全以上で広い
3NP困難のほうが難しい
4広いのはNP困難

オリジナル問題3(代表例と対応)

📝 オリジナル問題 3 代表例と実務対応

NP完全・NP困難の代表例と対応に関する次の記述のうち、正しいものはどれか。

  1. 巡回セールスマン問題は規模が大きくても、必ず一瞬で正確に解けるものだ
  2. NP困難な問題は実務では一切扱われず、研究の中だけに存在するものである
  3. 巡回セールスマン問題などは大きいと解きにくく、近似アルゴリズムで対応する
  4. NP完全・NP困難の問題は、近似アルゴリズムでは決して扱えないものである
オーエスペン
オーエスペン 解答・解説

解答は 3 だよ。

巡回セールスマン問題などは規模が大きいと正確には解きにくく、近似アルゴリズム(そこそこ良い答えを速く出す方法)で対応するんだ。実務ではこれが現実的だよ。

選択肢1は「一瞬で正確に解ける」が誤り。選択肢2は「実務で扱われない」が誤り。選択肢4は「近似で扱えない」が逆だよ。

選択肢判定理由
1大きいと正確には解きにくい
2実務で近似により扱う
3大きい問題は近似で対応
4近似アルゴリズムで対応する

まとめ

押さえどころ

次に学ぶ


執筆: SikakuQuest編集部

勉強は、クエストになった。

資格の勉強を、冒険に変えるRPG学習アプリ

App Storeで見る