NP、NP-Complete、NP-Hardの違いは何ですか?


1107

NPNP-CompleteNP-Hardの違いは何ですか?

私は、ウェブ上の多くのリソースを知っています。私はあなたの説明を読みたいのですが、その理由は、そこにあるものとは異なるかもしれない、または私が知らないことがあるからです。

回答:


1438

技術的な定義を理解するにはかなりの時間がかかるため、直感的な定義を探していると思います。まず、これらの定義を理解するために必要な予備的な概念を覚えておきましょう。

  • 決定の問題はいまたはいいえの答えの問題。

次に、これらの複雑性クラスを定義します。

P

Pは、多項式時間で解くことができるすべての決定問題のセットを表す複雑度クラスです

つまり、問題のインスタンスが与えられた場合、「はい」または「いいえ」という答えは多項式時間で決定できます。

接続されたグラフが与えられた場合、Gその頂点を2色で着色して、エッジが単色にならないようにできますか?

アルゴリズム:任意の頂点から開始し、それを赤に、隣接するものすべてを青に着色して続行します。頂点がなくなるか、エッジに両方の端点が同じ色になるように強いられたときに停止します。


NP

NPは、答えが「はい」であるインスタンスに多項式時間で検証できる証明があるすべての決定問題のセットを表す複雑度クラスです。

つまり、誰かが問題のインスタンスと証明書(証人と呼ばれることもあります)を「はい」と答えた場合、多項式時間でそれが正しいことを確認できます。

整数分解はNPです。これは整数を与えてしまうという問題であるnm整数が存在する、fとは、1 < f < mそのようなことは、f除算はnf小さな因子ですかn)?

答えが「はい」または「いいえ」であるため、これは意思決定の問題です。誰かが私たちに問題のインスタンスを渡す(したがって、整数nとを渡すm)とで整数fを渡し、それが(証明書)の要素である1 < f < mと主張する場合、除算を実行することにより、多項式時間で答えを確認できます。fnn / f


NP-コンプリート

NP-Completeは、X他のNP問題YX多項式時間で削減できるNP のすべての問題のセットを表す複雑度クラスです。

これは直感的には、Yすばやく解決する方法を知っていれば、すぐに解決できることを意味しXます。正確に、Yは、への回答がyesである場合に限り、回答がyes であるというプロパティを使用して、のインスタンスを多項式時間ののインスタンスに変換Xする多項式時間アルゴリズムがある場合、に還元可能です。fyYx = f(y)Xyf(y)

3-SAT。これは、3節の論理和(OR)の結合(AND)、次の形式のステートメントが与えられる問題です。

(x_v11 OR x_v21 OR x_v31) AND 
(x_v12 OR x_v22 OR x_v32) AND 
...                       AND 
(x_v1n OR x_v2n OR x_v3n)

ここで、それぞれx_vijはブール変数または事前定義された有限のリストからの変数の否定です(x_1, x_2, ... x_n)

すべてのNP問題を3-SATに削減できることを示すことができます。これの証明は技術的であり、NPの技術的定義(非決定的チューリングマシンに基づく)を使用する必要があります。これはクックの定理として知られています。

NP完全問題が重要なのは、決定論的多項式時間アルゴリズムがそれらの1つを解くことができる場合、すべてのNP問題は多項式時間で解けることです(1つがすべてを支配する問題)。


NPハード

直感的には、これらは少なくともNP完全問題と同じくらい難しい問題です。NPハード問題はNP にある必要はなく決定問題である必要もないことに注意してください

ここでの正確な定義は、多項式時間で還元できるようなNP完全な問題がある場合、問題XはNP困難であることYYXです。

ただし、NP完全問題は多項式時間で他のNP完全問題に還元できるため、すべてのNP完全問題は多項式時間でNP困難問題に還元できます。次に、多項式時間の1つのNP困難問題の解がある場合、多項式時間のすべてのNP問題の解があります。

停止問題は NP困難な問題です。これは、プログラムPと入力が与えられたIときに停止する問題ですか?これは決定の問題ですが、NPにはありません。すべてのNP完全問題をこの問題に削減できることは明らかです。別の例として、NP完全問題はNP困難です。

私のお気に入りのNP完全問題はマインスイーパ問題です。


P = NP

これはコンピュータサイエンスで最も有名な問題であり、数理科学で最も重要な未解決の問題の1つです。実際、Clay Instituteは問題の解決のために100万ドルを提供しています(ClayのWebサイトでのStephen Cookの記事は非常に優れています)。

PがNPのサブセットであることは明らかです。未解決の問題は、NP問題に決定論的多項式時間解があるかどうかです。彼らはそうではないと信じています。P = NP問題の最新(および重要性)に関する優れた最近の記事は次のとおりです。P対NP問題のステータス

この問題に関する最良の本は、GaleyとJohnsonによるComputers and Intractabilityです。


32
@Paul Fisher:SATが多項式時間の停止問題に還元可能であることを示します。次のアルゴリズムについて考えてみましょう。変数に対する命題Iを入力として与え、変数への可能なnすべての2^n割り当てを試み、命題が満たされている場合は停止し、そうでない場合は無限ループに入ります。このアルゴリズムは、I満足できる場合にのみ停止することがわかります。したがって、停止問題を解くための多項式時間アルゴリズムがあれば、多項式時間でSATを解くことができます。したがって、停止の問題はNP困難です。
ジェイソン

6
@ジェイソン-決定可能な問題をそのような方法で決定できない問題に還元することはできません。決定可能問題は、決定可能であると見なされるために、明確な「はい」または「いいえ」の回答をもたらす必要があります。任意の答えはループに解決策を投げる可能性があるため、停止問題には明確な「はい」または「今」という答えはありません。
rjzii 2009

11
@Rob:はい、できます。削減可能の定義では、問題を解決可能にするために削減する必要はありません。これは、多元削減またはチューリング削減のいずれにも当てはまります。
ジェイソン

5
@ロブ:ええと、さて、あなたがこれを続けたいなら。まず、「決定可能」は「決定問題」と同義ではありません。「決定可能」とは、概して、答えを決定するための「効果的な方法」があることを意味します。「有効な方法」には、もちろん技術的な定義があります。さらに、「決定可能」は「計算可能関数」という用語で定義することもできます。したがって、停止の問題は決定の問題です(「このプログラムは停止しますか?」ははい/いいえの質問です)が、それは決定不可能です。停止問題のインスタンスが停止するかどうかを判断する効果的な方法はありません。
ジェイソン

21
停止問題をNP困難問題の「古典的な例」として使用することは正しくありません。これは「太平洋は海水水族館の典型的な例です」と言っているようなものです。
マイケル

261

私は周りを見回して、多くの長い説明を見てきました。要約するのに役立つかもしれない小さなチャートはここにあります:

難易度が上から下に増加することに注意してください。すべてのNPはNP-Completeに、すべてのNP-CompleteはNP-HardにすべてP(多項式)時間で削減できます

P時間でより困難なクラスの問題を解決できる場合、それは、P時間ですべての簡単な問題を解決する方法を見つけたことを意味します(たとえば、NP完全問題をP時間)。

____________________________________________________________
| 問題の種類| P時間で検証可能| P時間で解ける| 難易度の増加
___________________________________________________________ | |
| P | はい| はい| |
| NP | はい| はいまたはいいえ* | |
| NP-コンプリート| はい| 不明| |
| NP-ハード| はいまたはいいえ** | 不明*** | |
____________________________________________________________ V

YesまたはNoエントリのメモ:

  • * PでもあるNP問題は、P時間で解決できます。
  • ** NP-CompleteでもあるNP-Hard問題は、P時間で検証可能です。
  • *** NP-Completeの問題(すべてNP-hardのサブセットを形成する)である可能性があります。NPの残りの部分はハードではありません。

また、この図は、これらすべてのタイプが互いにどのように対応しているかを確認するのに非常に役立つこともわかりました(図の左半分に注意を向けてください)。


君の答えに疑いがある。別の質問で質問しましたが、ここに投稿するように依頼されました。ここで私を助けてくれませんか?stackoverflow.com/questions/21005651/...
スリカンス

NP完全問題が多項式時間で解けるかどうかは不明です。また、NP完全問題はNP困難であるため、一部のNP困難問題は多項式時間で検証可能であり、一部は多項式時間で解決可能でもあります。
FalkHüffner、2014年

この表は正しくなく、自己矛盾しています。まだ証明されていないNP!= Pと仮定しても、正しくありません。たとえば、NP-HardクラスにはNP-Complete問題が含まれます。したがって、表では、NP完全問題は多項式時間で同時に検証可能であり、多項式時間で検証不可能であると主張しています。
マイケル

3
@FalkHüffnerおかげで、テーブルが更新されました(ベン図からの変換でエラーが発生しました)。
ジョンソンウォン

1
@PeterRaevesすべてのNP完全問題は、定義上、NP困難です:NP完全=(NPおよびNP困難)。逆は真実ではありません。NP完全ではない問題がNPハードにあります(停止問題など)。「NP(多項式時間では解けない)」-それはNPの意味ではありません。NPは「非決定論的多項式」です。Pのすべての問題はNPにもあります。その逆が真実であるかどうかはよく知られていません。
ジムバルター2015年

73

これは、尋ねられた質問に対する非常に非公式な回答です。

3233は、1より大きい他の2つの数値の積として書くことができますか?ケーニヒスベルク7つの橋すべての周りの小道を2度橋をとらずに歩く方法はありますか?これらは、共通の特徴を共有する質問の例です。答えを効率的に決定する方法は明らかではないかもしれませんが、答えが「はい」の場合、証明を確認するための短くて迅速な方法があります。最初のケースでは、51の自明でない因数分解です。2つ目は、橋を歩くためのルートです(制約に適合)。

決定問題は、 yesまたは一つのパラメータのみが異なるがない答えとの集まりです。問題を言うCOMPOSITE = {"Is ncomposite":nis integer}またはEULERPATH = {"グラフにGオイラーパスがあるか?":G有限グラフです}。

現在、いくつかの決定問題は、明らかではないにしても、効率的なアルゴリズムに役立ちます。オイラーは、250年以上前に「ケーニヒスベルクの7つの橋」のような問題の効率的なアルゴリズムを発見しました。

一方、多くの意思決定問題では、答えを得る方法は明らかではありませんが、追加の情報がわかっている場合は、答えが正しいことを証明する方法については明らかです。COMPOSITEは次のようなものです。トライアル除算は明白なアルゴリズムであり、低速です。10桁の数値を因数分解するには、100,000の可能な除数のようなものを試す必要があります。しかし、たとえば、61が3233の約数であると誰かが言った場合、単純な長い除算は、それらが正しいことを確認する効率的な方法です。

複雑度クラスNPは、「はい」の答えが短く、証明をすばやくチェックできる決定問題のクラスです。COMPOSITEのように。重要な点の1つは、この定義は問題の難しさについて何も述べていないということです。意思決定の問題を解決する正しい効率的な方法がある場合は、ソリューションのステップを書き留めるだけで十分です。

アルゴリズムの研究は続いており、新しい賢いアルゴリズムが常に作成されています。今日効率的に解決する方法がわからないかもしれない問題が、明日は効率的な(明らかではないにしても)解決策になるかもしれません。実際、コンポジットの効率的なソリューションを見つけるのに2002年まで研究者が必要でした!これらすべての進歩により、本当に不思議に思う必要があります。これは、短い証明が単なる幻想であるということですか?おそらく、効率的な証明に役立つすべての意思決定問題には、効率的な解決策があるのでしょうか。 誰も知らない

おそらく、この分野への最大の貢献は、特異なクラスのNP問題の発見であった。計算のために回路モデルをいじってみると、Stephen Cookは、他のすべてのNP問題と同じかそれ以上に難しいと思われるNP多様性の決定問題を発見しました。ブール充足可能性問題の効率的なソリューションは、NPの他の問題に対する効率的なソリューションを作成するために使用できます。その後すぐに、リチャード・カープは、他の多くの決定問題が同じ目的に役立つ可能性があることを示しました。これらの問題は、ある意味ではNPで「最も難しい」問題であり、NP 完全問題として知られるようになりました。

もちろん、NPは決定問題の1つのクラスにすぎません。多くの問題は、このように自然に記述されていません:「Nの因数を見つける」、「すべての頂点を訪問するグラフGの最短経路を見つける」、「次のブール式を真にする変数割り当てのセットを与える」。そのような問題のいくつかは「NP内」であると非公式に話すかもしれませんが、技術的にはそれほど意味がありません。それらは決定の問題ではありません。これらの問題の一部は、NP完全問題と同じ種類の能力さえ持っている可能性があります。これらの(非決定)問題に対する効率的な解決策は、任意のNP問題に対する効率的な解決策に直接つながります。このような問題はNP-hardと呼ばれます。


67

P(多項式時間):名前自体が示すように、これらは多項式時間で解決できる問題です。

NP(非決定論的多項式時間):これらは、多項式時間で検証できる決定問題です。つまり、特定の問題に多項式時間解があると私が主張する場合、あなたはそれを証明するように頼みます。次に、多項式時間で簡単に検証できる証明を提供します。この種の問題はNP問題と呼ばれます。ここでは、この問題の多項式時間解があるかどうかについては触れていません。しかし、我々は多項式時間で与えられた問題の解を検証することについて話している。

NP-Hard:これらは少なくともNPで最も難しい問題と同じくらい難しいです。これらの問題を多項式時間で解決できれば、存在する可能性のあるNP問題をすべて解決できます。これらの問題は必ずしもNPの問題ではないことに注意してください。つまり、多項式時間におけるこれらの問題の解決策を検証する場合と検証しない場合があります。

NP-Complete:これらはNPとNP-Hardの両方の問題です。つまり、これらの問題を解決できれば、他のNP問題を解決でき、これらの問題の解決策を多項式時間で検証できます。


それで、どこかから定義をコピーすることを決めたのですか?
Arun Satyarth 2017

1
答えは理にかなっています!
コンスタンティン

2
@ArunSatyarthどこから?
意味の重要性

3
ベストアンサーは短いので、十分な用語を使用し、人間の通常の文章を使用し(可能な限り正解にしようとするのは難しいことではありません)、驚くべきことに、Nが表すものを記述する唯一の回答です。
意味の問題

62

他の優れた回答に加えて、NP、NP-Complete、およびNP-Hardの違いを示すために人々が使用する一般的なスキーマを以下に示します

ここに画像の説明を入力してください


1
NP-Completeにはない問題がNP-Hardに存在することが証明されていますか?この画像が示唆しているからです。ありがとうございました。
ヒルダーVitor Lima Pereira

9
@VitorLimaはい、たとえばEXPSPACE完全な問題はNP困難ですが、NP 完全ではないことが証明されています。
フランクダーノンコート、2014

2
はい、ありがとうございます。私はそれについて話しているいくつかの参考文献を見つけました。たとえば、これは次のとおり
Vitor Lima Pereira

47

専門知識を使わずにP対NPなどを説明する最も簡単な方法は、「単語の問題」と「多肢選択問題」を比較することです。

「単語の問題」を解決しようとするときは、最初から解決策を見つけなければなりません。「多肢選択問題」を解決しようとするときは、「言葉の問題」と同じように解決するか、与えられた各回答をプラグインして、適合する回答候補を選択するという選択肢があります。

「多肢選択問題」の方が対応する「単語問題」よりもはるかに簡単である場合がよくあります。候補の回答を置き換えて適合するかどうかを確認するのに、最初から正しい回答を見つけるよりもはるかに少ない労力で済みます。

ここで、多項式時間が「簡単」にかかる努力に同意すると、クラスPは「簡単な単語問題」で構成され、クラスNPは「簡単な多肢選択問題」で構成されます。

P対NPの本質は問題です。「単語の問題ほど簡単ではない、簡単に選択できる問題はありますか?」つまり、特定の回答の有効性を確認するのは簡単ですが、その回答を最初から見つけるのが難しい問題はありますか?

NPが何であるかを直感的に理解したところで、直感に挑戦する必要があります。ある意味ですべてが最も難しい「複数選択問題」があることがわかります。「すべてが最も難しい」問題の1つに対する解決策が見つかれば、ALLに対する解決策を見つけることができます。 NP問題!クックがこれを40年前に発見したとき、それは完全な驚きでした。これらの「最も難しい」問題はNPハードとして知られています。それらのうちの1つに対する「単語の問題の解決策」を見つけた場合、すべての「簡単な多肢選択問題」に対する「単語の問題の解決策」が自動的に見つかります。

最後に、NP完全問題は、同時にNPとNPが難しい問題です。私たちの類推に従って、それらは同時に「多肢選択問題として容易」であり、「それらすべての中で最も難しい問題として」です。


18

NP完全問題は、NPハードであり、複雑度クラスNPにある問題です。したがって、特定の問題がNP完全であることを示すには、問題がNPにあることと、NP困難であることを示す必要があります。

NP複雑度クラスにある問題は、多項式時間で非決定的に解決でき、NPの問題の考えられる解決策(つまり、証明書)は、多項式時間の正確さを検証できます。

k-クリーク問題の非決定的な解決策の例は次のようなものです。

1)グラフからランダムにk個のノードを選択する

2)これらのkノードがクリークを形成していることを確認します。

上記の戦略は入力グラフのサイズが多項式であるため、kクリーク問題はNPにあります。

多項式時間で決定論的に解けるすべての問題もNPであることに注意してください。

問題がNP困難であることを示すには、通常、他のNP困難な問題から多項式時間マッピングを使用した問題への削減が含まれます。http//en.wikipedia.org/wiki/Reduction_(complexity)


この回答に間違っているものは見られませんが、それが受け入れられた理由はわかりません。それは、OPが要求していたことに対して実際には多くを提供しません。これらの問題の標準的な説明と実際に違いはなく、これらのクラスでこれらの問題が発生する原因についての明確な説明はありません。反対票を投じる価値はありませんが、回答を受け入れる価値はありません。
、サンジャシント

18

もっと簡潔に答えられると思います。関連する質問に答えましたし、そこから私の答えをコピーします

しかし、最初に、NP困難問題は、多項式時間解が存在することを証明できない問題です。一部の「問題P」のNP硬さは、通常、すでに証明済みのNPハード問題を多項式時間で「問題P」に変換することによって証明されます。

残りの質問に答えるには、まず、どのNPハード問題もNP完全であるかを理解する必要があります。NPハード問題が集合NPに属する場合、それはNP完全です。セットNPに属するには、問題が

(i)決定問題、
(ii)問題の解の数は有限でなければならず、各解は多項式の長さでなければなりません。
(iii)多項式の長さの解が与えられると、問題はイエス/ノーです

これで、集合NPに属さず、解決が難しい多くのNP困難な問題が存在する可能性があることが簡単にわかります。直感的な例として、実際のスケジュールを見つける必要がある巡回セールスマンの最適化バージョンは、長さ<= kのスケジュールが存在するかどうかを判断する必要がある巡回セールスマンの決定バージョンよりも困難です。


5

この特定の質問には本当にいい答えがあるので、私自身の説明を書く意味はありません。そのため、計算の複雑さのさまざまなクラスについて、優れたリソースで貢献していきます。

計算の複雑さはPとNPのみに関するものだと考える人のために、さまざまな計算の複雑さの問題に関する最も包括的なリソースを示します。OPから尋ねられた問題とは別に、約500の異なるクラスの計算問題と、適切な説明、およびそのクラスを説明する基本的な研究論文のリストがリストされています。


3

私が理解しているように、np-hard問題はnp-complete問題よりも「難しく」ありません。実際、定義により、すべてのnp完全問題は次のとおりです。

  1. NPで
  2. np-hard

ここに画像の説明を入力してください

-はじめに。アルゴリズム(3編)、Cormen、Leiserson、Rivest、およびStein著、1069ページ


3
あなたの理解は間違っています。NP-completeの定義は正しいですが、最初のステートメントには関係ありません。NP-hardのすべての問題は、少なくとも NP-completeの問題と同じくらい困難です。いくつか(例えば、無限に難しいHalting Problemやen.wikipedia.org/wiki/EXPSPACEなど)は証明が難しいほど証明できます。
ジムバルター2015年

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.