P対NP対NP完全対NPハードを理解しよう


38

私はこれらの分類とそれらが存在する理由を理解しようとしています。私の理解は正しいですか?そうでない場合、何ですか?

  1. Pは多項式の複雑さ、またはなどの非負の実数の場合です。問題がPに属する場合、多項式時間でゼロから解決できるアルゴリズムが少なくとも1つ存在します。たとえば、分割する場合、各ステップでループしてチェックすることにより、整数が素数であるかどうかを常に把握できます。O(nk)kO(1), O(n1/2), O(n2), O(n3)n2 <= k <= sqrt(n)kn

  2. NPは非決定的な多項式の複雑さです。非決定論的であることの意味を私は本当に知りません。多項式時間で検証するのは簡単ですが、答えがわからない場合はゼロから解決する多項式時間である場合とそうでない場合があります。それは以来かもしれ多項式時間で解けること、すべてのP上の問題もNPの問題です。NPの例として整数因数分解が引用されていますが、試行的因数分解にはO(sqrt(n))時間がかかるため、個人的にはなぜPでないのか理解できません。

  3. NP-Complete私はまったく理解していませんが、この例として巡回セールスマン問題が引用されています。しかし、私の意見では、TSPの問題は単にNPである可能性があります。なぜなら、前もってパスが与えられているかどうかを確認するようなものが必要だからです。O(2n n2) time to solve, but O(n)

  4. NP-Hardは未知のものでいっぱいだと思います。検証が難しく、解決が難しい。



私はまだそのリンクを見ていません、いいえ。読み直します、ありがとう
中野

1
そのCS.SEの答えは非常にwe敬の念を抱かせますが、これらの用語が何を意味するのかについて、あまり詳細に説明しなくても、非常に簡潔で誤解を招く説明を与えることは可能だと思います。@Nakanoは、より短い「ポイントまで」答えに興味があるでしょうか、それともCS.SE投稿はあなたの問題を解決しますか?
Ixrec

@MichaelT私はそのリンクを読んで、それが本当に冗長で、いくつかの点であまり明確ではないことがわかりました。答えよりも質問のほうが多いように感じます。
中野

1
「非決定論的」とは、「コンピューターが毎回正しい選択を選択することを与えられた」と解釈できます。
トールビョーンラヴンアンダーセン

回答:


39

PとNPについては基本的に正しいが、NPハードおよびNPコンプリートについてはそうではない。

まず、問題の4つの複雑度クラスの非常に簡潔な定義を以下に示します。

  • Pは、決定論的チューリングマシンによって多項式時間で解くことができる決定問題のクラスです。

  • NPは、非決定的チューリングマシンによって多項式時間で解くことができる決定問題のクラスです。同様に、決定論的チューリングマシンによって多項式時間で検証できる問題のクラスです。

  • NPハードは、NPのすべての問題を決定論的チューリングマシンによって多項式時間に減らすことができる決定問題のクラスです。

  • NP完全は、NPハードとNPの共通部分です。同様に、NP完全はNPの決定問題のクラスであり、NPのすべての問題は、決定論的チューリングマシンによって多項式時間で削減できます。

そして、これらの4つのクラス間の関係を示すウィキペディアのオイラー図があります(PがNPと等しくないと仮定):

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

あなたが最も不慣れまたは混乱していると思う部分は、問題Xから問題Yへの「多項式時間の削減」の概念です。XからYへの削減は、いくつかのアルゴリズムを使用してX問題Yを解決する他のアルゴリズムB。この削減は、B以外のAのすべての部分が多項式時間の複雑さを持つ場合、「多項式時間削減」と呼ばれます。些細な例として、配列内の最小要素を見つける問題は、配列を並べ替えてから並べ替えられた配列の最初の要素を返すことができるため、並べ替えの問題に一定時間還元できます。

NP困難な定義について見落としがちなことの1つは、NP問題からNPハード問題への縮小が行われますが、必ずしもその逆ではないことです。これは、NP困難な問題がNPまたははるかに複雑なクラス(オイラー図からわかるように)にあるか、決定可能な問題ではないことを意味します。このため、人々は非公式にこのことを説明しようとするときに、「NP-hardは少なくともNPと同じくらい難しい」というようなことをよく言うのです。

Wikipediaが説明しているように、停止する問題は、NPには明らかにないNP困難な問題の良い例です。

停止する問題がNP困難であることを証明するのは簡単ですが、NP完全ではありません。たとえば、ブール充足可能性の問題は、すべての真理値の割り当てを試行するチューリングマシンの記述に変換することで停止問題に還元でき、式を満たすものが見つかると停止し、そうでなければ無限ループに入ります。また、NPのすべての問題は有限数の操作で決定できるので、停止の問題はNPにないことも簡単にわかりますが、停止の問題は一般に決定できません。


3
@Nakano直観的には、ある問題が他の問題の副問題になっているという意味での「削減」です。これらの削減の一部は、「サブ問題」の不適切な選択によって複雑さを軽減するのではなく、複雑さを増すという事実は、実際のコードではこれらの削減を決して使用しないことを意味します。正直に言うと、NP-hardは奇妙でひどくおもしろくないクラスだと思います。それを無視して、NP完全を他のすべてのNP問題が縮小する一連のNP問題として考えることは、より実り多いかもしれません。
Ixrec

1
@Nakano stackoverflow.com/questions/12637582/...私は短い答えは、人々がNPは整数の因数分解について話すとき、彼らは通常、あなたが一般的とnはあなたのビッグOの証明をやって起動され約本当に巨大な整数を、話しているということであると信じて「関数に渡した整数の数」ではなく、「整数がメモリ内で占めるビット数」。
Ixrec

1
@Nakano私がリンクしたSOの質問と私のコメントがあなたのためにその問題を解決するのに十分でなかったら、この整数因数分解の事について具体的に新しい質問をする価値があるでしょう。
Ixrec

2
@Nakano:big-O表記では、nは入力の値ではなく、入力のサイズ(要素、バイト、数字などの数)の尺度です。
バートヴァンインゲンシェナウ

2
@Nakano簡単な答えは、あなたは大丈夫だということです。これが、時間の複雑さの分析行うとき、常にnの意味を指定する必要がある理由です。nが「入力のサイズ」であるという主張は、nを定義するために通常どのように選択するかの簡潔な要約にすぎません。big-O表記法や時間の複雑さの厳密な定義の一部ではありません。nが入力のである場合、整数因数分解はO(sqrt(n))と言うのは正しいと思います。nがサイズを意味する複雑さは、実際にはnが値を意味するものよりも実際にはるかに有用であるという結果になります。
Ixrec

7

整数因子分解はNPの例として引用されますが、試行因子分解にはO(sqrt(n))時間かかるため、個人的にはなぜPでないのかわかりません。

複雑度クラスの目的で、nは入力の長さです。あなたが要因の整数にしたいのであればknないですkけどlog k、ビット(または何でも)の数は、それが番号を書き留めに時間がかかります。したがって、整数分解はO(sqrt(k))あなたの言うとおりですが、これはそうです。O(sqrt(2n))O(2(n/2))

NP-Hardは未知のものでいっぱいだと思います。検証が難しく、解決が難しい。

いいえ。NP-Hardは、単に問題を解決するのがどれほど難しいかということです。

NP-Hard問題は、少なくともNPで最も難しい問題です。NP-Hard問題の多項式時間アルゴリズムがあれば、そのアルゴリズムをNPの任意の問題に適応させることができるため、それらが少なくともそれほど難しいことはわかっています。

NP-Completeまったくわかりません

NP完全とは、問題がNPとNPハードの両方であることを意味します。これは、ソリューションを迅速に検証できる(NP)ことを意味しますが、NPで最も困難な問題(NP-Hard)と少なくとも同じくらい困難です。

非決定論的であることの意味を私は本当に知りません。

非決定論は、NPの代替定義です。非決定論的なチューリングマシンは、いつでも効果的に自分自身を複製することができ、複製ごとに異なる実行パスを使用します。この定義の下で、NPは、自由に複製できるよりも、コンピューターによって多項式時間で解決できる問題の集合です。これは、多項式時間で検証できる問題のセットとまったく同じであることがわかります。


それで、$ O(n ^ k)$時間アルゴリズムがNP問題になる可能性はありますか?
中野

k定数の実数ですか?はい。すべてのP問題はNP問題でもあります。明らかに、多項式時間で解くことができるものはすべて、多項式時間でも検証できます。
ウィンストンイーバート

ここで実際に長さ/サイズはどのように定義されますか?たとえば、大きなベースに$ n $を書き込むだけで、書き込み時にその長さを減らすことができます。整数を明示的に扱っていないが、$ V $の頂点と$ E $のエッジなどがあるグラフを言う問題についてはどうでしょうか。
中野

@Nakano、実際には大きなベースはそれを変更しません。なぜなら、それは定数の要因の違いにすぎないからです。したがって、多項式と非多項式には影響しません。ただし、数値を単項で記述した場合、それは変更されます。
ウィンストンイーバート

2
@Nakano、うーん...複雑なクラスを5歳の生徒に説明しようとは思いません。:P
ウィンストンイーバート

5

最初に理解することは、PNPが問題ではなく言語を分類するということです。これが何を意味するのかを理解するには、まず他の定義が必要です。

アルファベットは記号の空でない有限集合です。

{ 01}は、ASCII文字セットと同様にアルファベットです。{}は空なのでアルファベットではありません。N(整数)は有限ではないため、アルファベットではありません。

してみましょうΣはアルファベットなります。以下からのシンボルの有限個の注文連結Σが呼び出された単語の上にΣ

文字列101は、アルファベット{ 01} 上の単語です。空の単語(多くの場合のように書かεは)任意のアルファベット以上の単語です。文字列penguinは、ASCII文字を含むアルファベット上の単語です。数πの小数点表記は、アルファベット{超える単語ではない.0123456789それは有限ではないので}。

|として書かれた単語w長さ w |は、その中のシンボルの数です。

たとえば、| hello| = 5および| ε | =0。任意の単語wに対して| w | ∈ Nしたがって、有限。

してみましょうΣはアルファベットなります。セットΣ *には、εを含むΣ上のすべての単語が含まれます。集合Σ +には、εを除く、Σ上のすべての単語が含まれます。以下のためのNNΣ N長さの単語の組であるN

すべてのアルファベットΣΣ およびΣ +は無限の可算集合です。ASCII文字の設定Σ ASCII、正規表現.*.+意味ΣのASCII *Σ ASCII +をそれぞれ。

{ 01} 7は 7ビットのASCIIコードのセットは、{ 00000000000001、...、1111111}。{ 01} 32は32ビット整数値のセットです。

してみましょうΣはアルファベットとなるLΣ *Lが呼び出された言語を超えますΣ

アルファベットΣの場合、空の集合とΣ Σ上の自明な言語です。前者はしばしば空の言語と呼ばれます。空の言語{}と空の単語{ ε } のみを含む言語は異なります。

非NaN IEEE 754浮動小数点値に対応する{ 01} 32のサブセットは、有限言語です。

言語には無限の数の単語を含めることができますが、すべての言語は可算です。文字列のセットは、{ 12、...}進数の整数を表すことは{アルファベット上無限の言語です0123456789}。文字列の無限集合は、{ 23571113、...}進表記で素数を表すことは、その適切なサブセットです。正規表現に一致するすべての単語を含む[+-]?\d+\.\d*([eE][+-]?\d+)?言語は、ASCII文字セット上の言語です(Cプログラミング言語で定義されている有効な浮動小数点式のサブセットを示します)。

実数のセットは数えられないため、すべての実数(表記法)を含む言語はありません。

してみましょうΣはアルファベットとなるLΣ *。マシンDは 決定 Lをすべて入力するための場合のwΣ *が演算特性関数 χ LWを有限時間で)。特性関数は次のように定義されます

χ LΣ * →{0、1}
     W   1↦、   WL 
         そうでなければ、0。

このようなマシンが呼び出される決定者のためのL。「与えられたwD出力x」に対して「Dw)= x」と書きます。

多くのマシンモデルがあります。今日実用化されている最も一般的なものは、チューリングマシンのモデルです。チューリングマシンには、セルにクラスター化された無制限の線形ストレージがあります。各セルには、任意の時点でアルファベットのシンボルを1つだけ保持できます。チューリングマシンは、一連の計算ステップとして計算を実行します。各ステップで、1つのセルを読み取り、場合によってはその値を上書きし、読み取り/書き込みヘッドを左または右のセルの1つの位置だけ移動できます。マシンが実行するアクションは、有限オートマトンによって制御されます。

有限の命令セットと無制限のストレージを備えたランダムアクセスマシンは、チューリングマシンモデルと同じくらい強力な別のマシンモデルです。

この議論のために、使用する正確な機械モデルに煩わされることはありませんが、機械には有限の決定論的な制御ユニット、無制限のストレージがあり、計算できるステップのシーケンスとして計算を実行すると言うだけで十分です。

あなたは質問でそれを使用したので、あなたはすでに「big-O」記法に精通していると思いますので、ここでは簡単な復習に過ぎません。

してみましょうfはNの関数とします→。セットOfは)すべての機能を含んでいるGNNが定数が存在するため、N 0NおよびCN毎にこのようなことNNN > N 0、それが事実であるGN)≤ のC Fをn)。

これで、本当の問題に取り組む準備ができました。

クラスPは、すべての言語の含有Lチューリングマシンが存在するためにDを決定L及び定数のKN毎に入力するためのように、WDの停止後に最大でTを(| wは機能するためのステップを|)TONN K)。

以来OnはN K)、書き込みに不便で、ほとんどの人が読んで数学的に正しいが、 -正直に言うと、誰も自分を除いては-通常、単純に書き込みますON kは)。

境界はwの長さに依存することに注意してください。したがって、素数の言語に対して行う引数は、unarayエンコーディングの数値に対してのみ正しいです。ここで、数値nのエンコーディングwの場合、エンコーディングの長さは| w | nに比例します。実際にそのようなエンコーディングを使用する人はいません。ただし、考えられるすべての要因を単に試すよりも高度なアルゴリズムを使用すると、入力がバイナリ(または他のベース)にエンコードされている場合、素数の言語はPのままであることがわかります。(大きな関心にもかかわらず、これはマニンドラ・アグラワル、ニーラジ・カヤル、ニティン・サクセナによってのみ証明されました 2004年の受賞論文では、アルゴリズムはそれほど単純ではないと推測できます。)

自明な言語{}とΣ および自明でない言語{ ε }は明らかにP(アルファベットΣの場合)です。入力として文字列を受け取り、文字列がこれらのそれぞれの言語の単語であるかどうかを示すブール値を返すお気に入りのプログラミング言語で関数を作成し、関数が多項式ランタイムの複雑さを持っていることを証明できますか?

すべての正規言語(正規表現で記述された言語)はPにあります。

してみましょうΣはアルファベットとなるLΣ *。機械V二つの単語の符号化されたタプルをとるwはCΣ *とステップ有限数の後に0又は1を出力は、検証のためにLが以下の特性を有する場合。

  • (所与のwはC)、Vは 1た場合にのみ出力WL
  • すべてのためのwL、存在するCΣ *ように、VはwはC)= 1。

上記の定義のcは、証人(または証明書)と呼ばれます。

検証者は、実際にwLにある場合でも、間違った証人に対して偽陰性を与えることができます。ただし、誤検出を許可することはできません。また、言語の各単語に対して、少なくとも1人の証人が存在する必要があります。

素数ではないすべての整数の10進エンコーディングを含むCOMPOSITE言語の場合、目撃は因数分解である可能性があります。たとえば、∈COMPOSITEの(659, 709)証人です467231。目撃者の証言がなくても1枚の紙で簡単に確認できます。467231が首相ではないことは、コンピューターを使用しなければ困難であることを証明できます。

適切な証人を見つける方法については何も言わなかった。これは非決定的な部分です。

クラスNPは、すべての言語の含有Lチューリングマシンが存在するためにVのことを確認するLと定数のKN毎に入力するためのように(WC)、Vの停止後に最大でT(| W |)関数のための手順TONN K)。

上記の定義は、それぞれについてことを意味することに留意されたいWL証人が存在するCを有します| c | ≤ T(| W |)。(チューリングマシンは、目撃者のシンボルをこれ以上見ることはできません。)

NPPのスーパーセットです(なぜですか?)。NPにはあるPにはない言語が存在するかどうかは不明です。

整数因数分解はそれ自体言語ではありません。ただし、それに関連する決定問題を表す言語を構築できます。すなわち、すべてのタプルを含んでいる言語(NMのように)N因子有するDDMを。この言語をFACTORと呼びましょう。FACTORを決定するアルゴリズムがある場合、それを使用して、各素因数に対して再帰的なバイナリ検索を実行することにより、多項式のオーバーヘッドのみで完全な因数分解を計算できます。

FACTORがNPにあることを示すのは簡単です。適切な証人単に因子であろうD自体、すべて検証者が実行しなければならないでいることを確認しているDMN MOD Dこの= 0全てが多項式時間で行うことができます。(繰り返しますがカウントするのはエンコードの長さでありnの対数であることを思い出してください。)

FACTORがPにもあることを示すことができれば、多くのクールな賞を獲得することができます。(そして、あなたは今日の暗号のかなりの部分を破壊しました。)

NPのすべての言語には、決定論的に決定するブルートフォースアルゴリズムがあります。すべての証人に対して徹底的な検索を実行するだけです。(ミラーリング監視の最大長は多項式で区切られていることに注意してください。)したがって、PRIMESを決定するアルゴリズムは、実際にはCOMPOSITEを決定するブルートフォースアルゴリズムでした。

最後の質問に対処するために、reductionを導入する必要があります。削減は、理論的なコンピューターサイエンスの非常に強力な概念です。ある問題を別の問題に還元するということは、基本的に、別の問題を解決することである問題を解決することを意味します。

してみましょうΣはアルファベットとなるAB以上の言語もΣ。ある多項式時間多対1の還元可能Bの関数が存在する場合は、FをΣ *Σ *以下の性質を持ちます。

  • WA   ⇔   FW ∈)B   全てについてのwΣ *
  • 関数fは、|の多項式で区切られた多数のステップで、すべての入力wに対してチューリングマシンによって計算できます。w |。

この場合、我々は書くAp個の Bを

たとえば、三角形を含むすべてのグラフ(隣接行列としてエンコードされた)を含む言語をAとします。(三角形は長さ3のサイクルです。)さらにBを、ゼロ以外のトレースを持つすべての行列を含む言語とします。(行列のトレースは、その主な対角要素の合計です。)その場合、ABに還元可能な多項式時間の多対1 です。これを証明するには、適切な変換関数fを見つける必要があります。この例では、設定することができるFを 3計算する番目の隣接行列のパワーを。これには、それぞれが多項式の複雑さを持つ2つの行列行列積が必要です。

これは、その自明の事実であるLp個の L。(正式に証明できますか?)

これを今NPに適用します。

言語LはあるNPの -hardの場合に限りL '≤ P L、すべての言語のためのL ' ∈ NP

アンNP -hard言語はまたはであってもなくてもよいNPそのもの。

言語LNP-完全な場合にのみ

  • LNP
  • LNP -hardです。

最も有名なNP完全言語はSATです。満たすことができるすべてのブール式が含まれています。例えば、(∨ B)∧(¬ ∨¬ B)∈座っていました。有効な証人は{ a = 1、b = 0}です。式(∨ B)∧(¬ ∨ B)∧¬ B ∉座っていました。(それをどのように証明しますか?)

そのSAT∈示すことは難しいことではありませんNPを。SAT のNPの難しさを示すことはいくつかの作業ですが、1971年にStephen Cookによって行われました。

その1つのNP完全言語が知られると、縮小によって他の言語のNP完全性を示すのは比較的簡単でした。言語の場合はAがあることが知られているNPは、その示す-hard APの Bのことを示しているBがあるNPは(「≤の推移を経ても、-hard P」)。1972年、リチャード・カープNPであると証明できる21の言語のリストを発表しました-SATの(推移的な)削減を介して完了します。(これは、この回答の中で実際にお読みになることをお勧めする唯一の論文です。他の記事とは異なり、理解するのは難しくなく、リダクションによるNP完全性の証明方法の非常に良いアイデアを提供します。)

最後に、短い要約。NPHNPCの記号を使用して、それぞれNP -hardおよびNP -complete言語のクラスを示します。

  • PNP
  • NPCNPNPCNPH、実際にNPC = NPNPH定義により、
  • ANP)∧(BNPH)⇒   AP B

含めることに留意されたいNPCNPがいる場合には、適切な偶数P = NP。これを確認するには、自明でない言語を自明な言語に減らすことはできず、Pには自明な言語があり、NPには自明でない言語があることを明確にしてください。ただし、これは(あまり面白くない)コーナーケースです。

補遺

混乱のあなたの主な供給源は、あなたが「のことを考えたことがあるように思わN」の「OnはFN))」として解釈それが実際に指し、アルゴリズムの入力の長さを入力します。これは、アルゴリズムの漸近的な複雑さが入力に使用されるエンコードに依存することを意味するため、重要な違いです。

今週、知られている最大のメルセンヌ素数の新記録が達成されました。最大の現在知られている素数は2である74 207 281 - 1。この数は、私は、次の例では小さいものを使用しますので、それは私に頭痛を与えるほど巨大である:2 31 - = 2 1 147 483 647それができますさまざまな方法でエンコードされます。

  • 10進数としてのメルセンヌ指数による:31(2バイト)
  • 10進数として:2147483647(10バイト)
  • 単項数として:11111…112 147 483 640さらに1s(ほぼ2 GiB)に置き換えられる場所

これらのすべての文字列は同じ番号をエンコードし、これらのいずれかを指定すると、同じ番号の他のエンコードを簡単に構築できます。(必要に応じて、10進数エンコードを2進数、8進数、または16進数に置き換えることができます。定数係数だけ長さを変更します。)

素数性をテストするための素朴なアルゴリズムは、単項エンコーディングの多項式のみです。AKS素数判定法は、小数(または他の任意の塩基に対する多項式であるB 2≥)。ルーカス-レーマーの素数性テストがメルセンヌための最もよく知られているアルゴリズムが素数であるM個のPを用いてP奇素数をそれはまだメルセンヌ指数のバイナリエンコーディングの長さの指数関数であるP(の多項式P)。

アルゴリズムの複雑さについて話したい場合、使用する表現を非常に明確にすることが非常に重要です。一般に、最も効率的なエンコーディングが使用されていると想定できます。つまり、整数のバイナリ。(すべての素数がメルセンヌ素数であるとは限らないため、メルセンヌ指数の使用は一般的なエンコード方式ではないことに注意してください。)

理論的な暗号化では、多くのアルゴリズムは、最初のパラメーターとして完全に役に立たないk 1の文字列を正式に渡されます。このアルゴリズムは、このパラメータを見たことがないが、それはそれは正式に多項式にすることができますKで、セキュリティパラメータをチューニングする手順のセキュリティを使用していました。

バイナリエンコーディングの決定言語がNP完全であるいくつかの問題では、埋め込み数値のエンコーディングが単項に切り替えられた場合、決定言語はNP完全ではなくなります。他の問題の決定言語は、NPのままです。後者は強くNP完全と呼ばれます。最もよく知られている例は、ビンパッキングです。

また、入力が圧縮された場合にアルゴリズムの複雑さがどのように変化するかを見るのも(そしておそらくもっと)おもしろいです。メルセンヌ素数の例では、3つのエンコーディングが見られました。各エンコーディングは、前のものよりも対数的に圧縮されています。

1983年、Hana GalperinとAvi Wigdersonは、グラフの入力エンコーディングが対数的に圧縮される場合の一般的なグラフアルゴリズムの複雑さについて興味深い論文を書きました。これらの入力に対して、上からの三角形(明らかにPにある場所)を含むグラフの言語は、突然NP完全になります。

それは、PNPなどの言語クラスが問題ではなく言語に対して定義されているためです


この回答は、質問者の理解レベルにはおそらく役に立たないでしょう。他の回答を読んで、ななこが苦労しているものを見てください。この答えは彼/彼女に役立つと思いますか?
アンドレスF.

この答えはOPには役立たないかもしれませんが、確かに他の読者(自分自身を含む)には役立ちます。
ガブリエル

4

同じことについて、非公式の定義を少なくするようにします。

P問題:多項式時間で解決できる問題。効率的に解決できる問題が含まれています。

NP問題:多項式時間で検証できる問題。例:旅行セールスマン、回路設計。NP問題は一種のパズル(数独など)です。問題に対する正しい解決策があれば、非常に迅速に解決策を確認できますが、実際に解決しようとすると、永遠に時間がかかる可能性があります。

現在、P対NPは、解決策が迅速に正しいかどうかを確認できる問題が実際にあるかどうかを尋ねます。したがって、数学的な用語で書く:NPはPのサブセットかどうか?

NPの完全な話に戻りましょう。これらはNPの問題の中で本当に難しい問題です。したがって、NPコンプリートを解決するより速い方法がある場合、NPコンプリートはPになり、NP問題はPに崩壊します。

NPハード:多項式時間でチェックすることさえできない問題は、npハードです。たとえば、チェスで最高の動きを選択することはそれらの1つです。

不明な点がある場合は、https//www.youtube.com/watch?v = YX40hbAHx3sの動画をご覧ください。

これにより、ぼやけた輪郭が得られることを願っています。

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