すべてのNPハード問題は計算可能ですか?


回答:


14

いいえ、NP -hard問題は計算可能である必要はありません。定義はかなり完全です:ポリタイムソリューションを持つ問題がN Pのすべての問題にポリタイムソリューションがあることを意味する場合、問題LNPハードです(つまり、N Pのすべての問題に対してLの減少が存在します。)。NPLNP

そのため、計算不可能な問題は空想的に困難です。多項式時間で解決できると仮定します。次に、計算可能でも計算不可能でもあるという矛盾を導き出すために、計算不可能であるという証明を使用します。この虚偽から、私たちは何でも導き出すことができます。つまり、私たちが見ているNP問題には多項式時間アルゴリズムがあるということです。

たとえば、停止問題考えます。我々は任意低減することができるN Pの言語AのH、以下のように、我々はpolytimeチェッカー有すると仮定すると、F S C か否かをチェックCはのための証明書であるS AをHNPAHf(s,c)csA

  • 与えられた入力s
  • 構築物(しかし、実行されません)チューリングマシン入力とり、xは、すべての証明書試みるC場合や停止をcがいることを証明する証明書であるS AをMxccsA
  • リターン(である、trueを返すMの入力に停止XH(M,x)Mx

したがって、Holting問題を解くポリタイムアルゴリズムを1回呼び出すだけで、多項式時間で問題を解くことができます。NP

このような削減は、「falseの場合は何か」かどうかを判断するだけなので、役に立ちません。計算不可能な問題に対するポリタイムアルゴリズムはないことは既にわかっています。


7
「定義はかなり完全です」が、あなたの答えの引用に続くものではありません。

これについて質問があります。いくつかの適切な制約の下で可能な最大のプログラムのセットの停止問題を解決する関数を想像できますが、この関数はまだ計算可能ではないことを想像できます(無限の時間を与えてもそれを見つけられないという意味で) 。それでも、何らかの方法で解決策を見つけたとしても、NPが困難なすべての問題を必ず解決する必要があるかどうかはわかりません。したがって、この答えのロジックが従わない(決定できない!=計算できないことを意味する)か、私の推論に欠陥がある(可能性が高い)かのいずれかです。それで、欠陥は何ですか?
-Mehrdad

12
NPハードの定義を含め、この答えのほとんどは間違っています。「すべてのNP問題Bについて、BからAへのポリタイム削減がある場合」、問題AはNPハードです。つまりません「その後、P = NP、Aがポリ時間であれば。」と同じもの (後者は前者の結果であるが、その逆ではない。)特に、NP困難ではない計算不可能な問題がほぼ確実に存在する。私は詳細を解明していませんが、十分に一般的なセットのメンバーシップの問題(強制の意味で)がうまくいくはずです。停止セットは、具体的には、あなたの削減によってNP困難です。
mlh

7
このようなBにAからポリ時間の削減について考え:それは多項式時間で実行されることのプログラムですが、それはその問題Bの答えのインスタンスは、単一のステップでクエリに特殊能力、神託を持っているにかかわらずかどうかのBにはポリタイムアルゴリズムがあり、Bが計算可能かどうかにかかわらず、次の質問をすることは依然として理にかなっています:オラクルが(1ステップで)求められた質問に正しく答えると仮定すると、問題のプログラム多項式時間で実行し、問題Aのインスタンスを正しく解決しますか?
-mlh

2
@MikeHaskelあなたのオラクルの例えは、オラクルを照会した後、プログラムがそのオラクルと同じ答えで停止する必要がある場合にのみ正確です。それ以外の場合、co-SATはSATになります。oracleを照会して否定します。チューリング縮約などの一部の縮約概念では、これは許容できますが、標準のポリタイム縮約では、または多対一縮約では、そうではありません。
カイ

16

この質問に関して、このコミュニティにはかなりの混乱があるようです。水をきれいにし、計算可能性とNP硬度の関係を明らかにすることを期待して、詳細な回答をします。

まず、関連するさまざまな定義について明確かつ明示的に説明することで、多くの混乱が解決すると考えています。

文字列には、いくつかの固定の有限アルファベットから文字の有限シーケンスです。

決定問題は、文字列の集合です。(通常、このセットは無限です。)決定の問題は、一部のプロパティの文字列をテストするものと考えてください。プロパティのある文字列はセットに含まれ、プロパティのない文字列は含まれません。

Bの 2つの決定問題があると仮定します。セイAがある多項式時間還元性B一部の多項式がある場合、pはX とアルゴリズムいくつかのアルゴリズムMように、すべての文字列のためABABp(x)Ms

  • に入力sを提供する場合、Mp | s |ステップ(| s |は文字列sの長さ未満で停止し、文字列M s を出力します。MsMp(|s|)|s|sM(s)
  • は、 M s Bにある場合にのみ Aにあります。sAM(s)B

すべてのNP決定問題AについてABに対して多項式時間で縮約可能であれば、決定問題NP困難です。BAAB

すべての文字列sに対してアルゴリズムMが存在する場合、決定問題は計算可能です。Ms

  • に入力sを提供すると、Mは停止し、「yes」または「no」を出力します。MsM
  • 出力は、Aにある場合は「yes」、それ以外の場合は「no」です。sA

上記の定義を使用すると、あなたの質問の根本的な混乱と思われるものをすぐに明確にすることができます。意思決定問題、削減、またはNP困難の定義では、意思決定問題を計算可能にする必要はありません。定義は、決定の問題を任意の文字列のセットとして考えると完全に理にかなっており、これらのセットは実際に非常に厄介な場合があります。


テーブルには2つの質問が残ります。

  1. 定義は、計算不可能な関数がNPハードになる可能性を開いたままにします。そこにある実際には、非計算NP-ハード機能?
  2. 問題がNP困難であると言うことは、解決するのが難しいと言っているという直観があります。計算不可能であると言うことは、解決するのが「本当に難しい」と言うようなものです。それで、すべての計算不可能な問題はNP困難ですか?

質問1の方が簡単に答えられます。NP困難な計算不可能な決定問題を見つけるには、特に重要な2つの方法があります。最初の問題は停止問題です。停止問題には、すべての計算可能な決定問題が多項式時間でHに還元できるという性質があります。NP問題は計算可能であるため、すべてのNP問題はHに対して多項式時間で縮約可能であるため、HはNP困難です。HHHH

計算不可能なNP困難な問題を構築する他の重要な方法は、既知のNP困難な問題を既知の計算不可能な問題と組み合わせることができることを観察することです。してみましょう NP困難とさBは、非計算可能。決定問題形成A Bを次のようにA Bは、「文字列に続いて、0形のこれらの文字列が含まれているA」の文字列が続く、1「及び形状のものB」。A Bは、我々が(どんな問題の)任意の削減を変えることができますので、NP困難であるAへの削減にA BABABABABABAAB:アルゴリズムを微調整して、出力文字列の先頭に余分な「0」を出力します。計算するので、非計算でA Bを決定する必要がある「1」で始まるセット内にあるストリング。Bは計算不可能であるため、これは不可能です。ABABB


質問2はかなり複雑ですが、実際には、NP困難ではない計算不可能な決定問題があります(P NPと仮定)。Yuvalの正解は、このような決定問題を明示的に構築します。(部屋内の任意の計算可能性理論家のために、任意の「コーエンΠ 0 1 -genericは」だけでなく、トリックを行います。)「NP困難な問題がハードであることを直感は、非計算問題は難しいですなぜ私が壊しますよ" 間違っている。Π10

NPの困難さと計算不可能性はどちらも、問題は非常に一般的な意味で「難しい」と言っていますが、それらは非常に異なっており、同じ種類の現象としてまとめてはいけません。具体的には、NP-硬度は「正」の特性である:NP困難問題用チートシートへのアクセス与えられた、という意味では困難であるAを、あなたができる問題のハードクラスを解決しますAA。一方、非計算可能性は「負の」特性です特定のリソースのクラスではA解くことができないという意味で、計算不可能な問題ですAA

途中で「強制」、技術は「コーエン生成するために使用される(私が述べていること。非常に非常にあいまいであるためには、強制的にジェネリック」を彼らが持っているという点で、「汎用」です農産物のものへの一般的な方法です。正のプロパティもすべての負のプロパティもありません。そのため、強制は計算可能でもNP困難でもない問題を直接生成する可能性があります。Π10


2
対角化によってNP困難ではない決定不能な言語を構築することはできませんか?すべての決定者およびSATからのすべてのポリタイム削減に対して対角化する。
ユヴァルフィルマス

1
@YuvalFilmusそうですね なぜ、SATからのポリタイム削減に対して対角化することが可能な量の詳細を書き出すことは、強制が動作することを示すことに趣味が似ていると思うので、私はそれらの用語でそれについて考えませんでした。
mlh

1
@YuvalFilmusまた、P NPであると仮定しなければならないという説明を追加しました。「NPでは問題を起こすが、Pでは問題を起こさない」という私の証明には間違いなくステップがありました。
mlh

1
@aelguindyそれを証明する最もアクセスしやすい方法が何なのか分かりません。強制の手法について述べましたが、これは非常に一般的で強力です。私は教科書ではなく人々からそれを学んだので、私は強制についての素晴らしい参考文献を個人的に知りません。ただし、Yuvalが指摘したように、強制はおそらくやり過ぎです。対角化を含むいくつかのより直接的な議論はおそらく機能します。Soareの「再帰的に列挙可能なセットと次数」は、詳しく知りたい場合に、そのようなスタイルの議論の多くをカバーする教科書です。繰り返しますが、ほとんどの場合はおそらくやり過ぎです。...
MLH

1
@aelguindyまた、一連の決定問題を位相空間と考える場合、おそらくベールカテゴリーの定理をマッサージして証明を作成できます。この定理は強制と密接に関連していますが、より古く、より簡単です。
mlh

10

いや。NP-Hardとは、最も困難なNPの問題よりも難しい、または難しいことを意味します。直感的には、計算不可能であることは、NPよりもはるかに困難になります。

ウィキペディア:

NPが難しいがNPが完全ではない決定問題、たとえば停止問題があります。

計算できないことは誰もが知っている


4
計算不可能な問題(停止問題など)の一部はNP困難ですが、それはすべての計算不可能な問題がNP困難であることを意味しないことに注意してください。jmiteの答えに対する私のコメントをご覧ください。NP-硬度はポジティブな特性である:それはあなたの問題への答えはと言うことができ NPの問題を解決するのに役立ちます。NPが困難であることは、問題がある程度難しいことを意味します。すべての難しい問題がNP困難なわけではありません。
mlh

@MikeHaskel:停止問題の解決策を所有すると、すべての問題がP *停止問題の難易度に減少します。–
ジョシュア

1
@ジョシュア:それは意味がありません。それは非証明の断片のようなものです。問題の解のビット数が有限であるということはどういう意味ですか?また、なぜこれがすべての計算不可能な問題に当てはまると思いますか?「P *停止」とはどういう意味ですか?「...のn番目のビットを介して削減」の残りは何ですか?
user2357112は、Monica

1
@Joshua:コアの問題は、すべての問題がチューリングマシンに対応していると仮定していることです。すべての問題がチューリングマシンに対応するわけではありません。problem()呼び出すことができる関数はありません。
user2357112は、Monicaを

1
おそらく、チャットか何かにこれを移動する必要があります
破壊可能なレモン

10

完全を期すために、次の定理を証明しましょう。

,{0,1}

TiL{0,1,?}{0,1}L0L1L??

2iTiTiTixL(x)=?L(x):=0Ti(x)L(x):=1Ti(x)

2i+1TiTiTixL(Ti(x))=?xSATxL(x):=0L(x):=1

{0,1,?}{0,1}

L2iTiTiLTiTiLTiTi2i+1L


3

LLNPLL

ANTM={M,wM is a nondeterministic Turing machine that accepts w}

LNPLMfLANTMで与えられます。

f(x)=M,x

3

計算不可能なNP困難問題がないと人々に思わせるのは、NP困難が問題の難易度の下限であり、PやNPのような難易度の上限ではないという点を見落としているからだと思います。

言語LがNP困難であるということは、NPの言語より上であることを意味します。これを理解したら、任意の難しい問題があることを示す必要があります。

AACACAHaltCACA

AAA<AA<A<A<A<...

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