NP完全問題

提供: testwiki
ナビゲーションに移動 検索に移動

NP完全(な)問題(エヌピーかんぜん(な)もんだい、テンプレート:Lang-en-short)とは、(1) クラスNPテンプレート:Lang-en-short)に属する決定問題(言語)で、かつ (2) クラスNPに属する任意の問題から多項式時間還元(帰着)可能なもののことである。条件 (2) を満たす場合は、問題の定義が条件 (1) を満たさない場合にも、NP困難な問題とよびその計算量的な困難性を特徴づけている。多項式時間還元の推移性から、クラスNPに属する問題で、ある一つのNP完全問題から多項式時間還元可能なものも、またNP完全である。現在発見されているNP完全問題の証明の多くはこの推移性によって充足可能性問題などから導かれている。充足可能性問題がNP完全であることは1971年スティーブン・クックによって証明され[1]、R. M. カープの定義した多項式時間還元[2]によって多くの計算量的に困難な問題が NP 完全であることが示された。

NP困難との違い

NP困難 (テンプレート:Lang-en-short) は「NP完全な問題と比べ、同等またはそれ以上に難しい」という意味である。一方、NP完全はあくまでNPに属する問題で、NP困難である問題は必ずしもNPに属さなくてもよいという違いがある。

一般にNP完全とNP困難は極めて混同されやすく、特にアルゴリズムを扱う本などでは、NP完全と表記しながらもNP困難の説明をしていたり、本来はNP困難ではあってもNP完全ではない問題を「NP完全の例」として挙げる物が多々ある。

これは定義をよく理解せずに議論していることが主な理由だが、多くのNP完全な問題は、組合せ最適化問題の問題例にコスト/ゲインの閾値を与えた決定問題として定義されていることも一因であろう。

NP完全な問題の例

以下の問題は、NP完全である。NP完全な問題はすべて同じ難しさというわけではなく、最適化問題に直したときに問題によって近似可能性が大きく異なることがある。

充足可能性問題
変数の集合X={x1,,xn}上のクローズC1,,Ckの集合が与えられる。これらすべてを充足する変数への真偽割り当ては存在するか?という問題。英語表記の最初の三文字をとってSATともいう。クローズの長さを3に制限した3-SATもNP完全であることが知られている。ある問題がNP完全であることを示そうとするとき、リダクションによく使われる問題である。[3]
頂点被覆問題
点カバー問題ともいう。グラフGと整数kが与えられる。このときGにサイズが高々kの点カバーが存在するか?という問題。この問題の最適化版(できるだけ少ない頂点数の点カバーを求める)は2-近似アルゴリズムを持ち、この近似比はP≠NPとユニークゲーム問題のNP困難性を仮定すれば最善である。[4]
ハミルトン閉路問題
有向グラフGが与えられる。このときGハミルトン閉路が存在するか?という問題。この問題の最適化版(できるだけ最大次数が小さな全点木を求める)は、最小次数全点木問題と呼ばれる。
部分集合和問題
部分和問題ともいう。整数w1,,wnと目標値Wが与えられる。このとき{w1,,wn}の部分集合Uであって合計がちょうどWとなるものは存在するか?という問題。
巡回セールスマン問題
英語の頭文字をとってTSPともいう。n個の点をもつ完全グラフGと、Gの任意の辺eに対する非負の重みweと上限Dが与えられる。このとき重みの総和が高々DであるようなGのハミルトン閉路は存在するか?という問題。この問題の最適化版(できるだけ重みが小さなハミルトン路を求める)は、P=NPでない限りいかなる定数近似アルゴリズムも持たないことが知られている。辺重みが三角不等式を満たしているような特別な場合には、1.5-近似アルゴリズム(Christofidesのアルゴリズム)が知られている。[5]
ナップサック問題
品物の集合J={j1,,jn}とその価値pj(jJ)と重みwj(jJ)とナップサックの容量Wと要求量Dが与えられる。Jの部分集合Uはそのなかの品物の重みの総和がW以下であるとき許容できると言われる。このとき、許容できる集合Uであって、そのなかの品物の価値の総和がD以上になるようなものは存在するか?という問題。この問題の最適化版(できるだけ価値が大きな許容できる部分集合を求める)は、多項式時間近似スキーム(PTAS)を持つ。つまり任意の正の数0<ϵ1に対して、(1ϵ)-近似アルゴリズムが存在する。[6]
点彩色問題
グラフGと3以上の上界kが与えられる。このとき、Gはk-点彩色を持つか?という問題。k=2のときはこれはグラフが二部グラフかどうか決定する問題と同じになる。
時間割問題
時間枠数、講義リスト、受講生リストが与えられたときに、学生が受講する講義がぶつからないように講義の時間割を組む問題[7]
そのほか
テトリスをはじめとした様々なパズルゲーム[8]もNP困難であることが知られている。

脚注

テンプレート:Reflist

参考文献

  • J.Kleinberg・E.Tardos『アルゴリズムデザイン』浅野孝夫ほか訳, 共立出版, 2008
  • David P.Williamson・Daivid B.Shmoys『近似アルゴリズムデザイン』浅野孝夫訳, 共立出版, 2015

テンプレート:複雑性クラス

  1. (Stephen Cook (1971). "The Complexity of Theorem Proving Procedures". Proceedings of the third annual ACM symposium on Theory of computing. pp. 151–158.)
  2. (Richard M. Karp (1972). "Reducibility Among Combinatorial Problems" (PDF). In R. E. Miller and J. W. Thatcher (editors). Complexity of Computer Computations. New York: Plenum. pp. 85–103.)
  3. J.Kleinberg・E.Tardos『アルゴリズムデザイン』浅野孝夫ほか訳, 共立出版, 2008, 455ページ
  4. David P.Williamson・Daivid B.Shmoys『近似アルゴリズムデザイン』浅野孝夫訳, 共立出版, 2015,21ページ
  5. David P.Williamson・Daivid B.Shmoys『近似アルゴリズムデザイン』浅野孝夫訳, 共立出版, 2015, 43ページ
  6. David P.Williamson・Daivid B.Shmoys『近似アルゴリズムデザイン』浅野孝夫訳, 共立出版, 2015,67ページ
  7. テンプレート:Cite book
  8. テンプレート:Citationテンプレート:Citationテンプレート:Citationテンプレート:Citation