P = NPを想定したSUBSET-SUMのポリタイムアルゴリズム


7

ではP対NP問題に関するWikipediaのページアルゴリズムがあることを多項式時間でケースP = NPで「解く」SUBSET-SUM。(それは証明書を与えるTMを見つけることです)。しかし、それは多項式時間で「はい」を与え、答えが「いいえ」の場合は永久に実行されます。明らかに指数関数的な時間で "no"を与えるように修正できます(最初のアルゴリズムの実行時間が長すぎる場合は、指数アルゴリズムを実行するだけです)。

しかし、P = NPを想定した多項式時間でSUBSET-SUM(またはその他のNP完全問題)を解決する(つまり、実際に解決する)「正直な」アルゴリズムを明示的に説明できますか?

「正直」で「本当に解決する」とは、アルゴリズムが多項式時間アルゴリズムの古典的な定義を満たすことを意味します。つまり、ここでは定数が存在し、任意の入力アルゴリズムで以下で終了するようにします。、 SUBSET-SUMの場合は「yes」、それ以外の場合は「no」を出力します。ウィキペディアのアルゴリズムは最初の条件を満たさないため、問題を「実際に解決」することはできません。C1,C2xC1|x|C2x


これは不明です。この領域は、最適なヒューリスティックアルゴリズムとして知られています。主な研究者の一人はエドワードA.ハーシュです。
Yuval Filmus 16

@djechlinは正しく、Wikipediaは間違っています。アルゴリズム常に停止します。これは、最終的にブルートフォースメソッドにぶつかり、問題を解決するためです。さらに、すべてのプログラムを組み合わせているため、実行時間も簡単に分析できます。入力で、番目のアルゴリズムがステップで答えを場合、はをシミュレートします。複雑さの理論的な仮定に関係なく、全体でのステップ。SUBSET-SUMの真の複雑さに関係なく、それは真実です。この検索方法はレビン検索と呼ばれ、ユニバーサル検索と呼ばれることもあります。WxatWΘ((a+t)2)
Lieuwe Vinkhuijzen

回答:


2

私は半分答えることができますが、あなたが得ているより深い質問は、私がよりよく学ぶ過程にあるものだと思います:)

ウィキペディアのアルゴリズムはWと呼ばれ、証明書に基づいて推測するのではなく、決定論的なPアルゴリズムD自体に基づいて推測しないのはなぜですか。これは高価ですが、入力とは独立しているため、O(1)です(そのようなアルゴリズムが存在する場合)。アルゴリズムは実際には常にP!= NPであっても決定します。もちろん、可能な証明書を1つだけ出力して停止する一連の「ブルートフォース」プログラムがあるため、Wは非常に遅いブルートフォースにフォールバックできます。

問題は、実際に戻ってきたプログラムを検証する方法がないことです。Wの実行を想像して、特定のプログラムを好むように見えるかもしれませんが、大きな入力では、最終的にそのプログラムの欠陥を見つけて次に進むことに気付くかもしれません。それはように見えるアルゴリズムに落ち着くように見えるかもしれませんが、後でそれの間違いを見つけてアルゴリズムに切り替えます。それが「正しい」ものをいつ見つけたかは決してわかりません。n7n2000

これは実際にはカープ・リプトンの定理の証明で使用されているのと同じアイデアです。十分な計算能力があれば、プログラムのクラス全体を推測し始め、それらが機能することを確認するために使用できます(証明は正確に「プログラムを推測し、それが機能することを確認してから使用してください」。これには、NPよりも少しの計算能力が必要です。)

ソリューションがどれほど複雑になるかについての理論は知りませんが、おそらくより知識のある人が答えることができます。

P = NP現実のより具体的なシナリオは、誰かが実際に SATなどのNP完全問題のアルゴリズムを構築することです。

私はあなたが良い質問をしたと思います、そして、Wがどのように分析され、セミプラクティスでより有用にされるかに関して、私の答えのギャップを埋める方法に興味があります。


いい答えです!+1。この検索とKarp-Liptonの間には微妙な違いがあります。ここでは、プログラムが与える解決策を確認するだけです。Karp-Liptonの定理では、プログラムが正しいことを確認する必要があります(すべてのx{0,1}
Lieuwe Vinkhuijzen

-1

私はあなたの質問に部分的に答えてみますが、あなたの探求にはそれで十分だと思います。

NP完全であることは、NPとNP-HARDになることに訴えます。

NP-HARDであることは、NPのすべての問題を、多項式時間変換を介してこの問題に変換できることを意味します。

SSPはNP-HARD(およびNP-COMPLETE)であることがわかっています。

これは、たとえば、SSPがNP-HARDであると証明する特定の多項式時間変換について、インターネットで検索できることを意味します(それを証明するすべての論文で)。

その変換は「正直な」アルゴリズムであり、多項式時間で実行されることが保証されており、どこかの紙に書かれています。それを「SSP-T」と呼びましょう(SSP変換用)。

P = NPであることを証明する唯一の方法は、NPの問題の多項式時間アルゴリズムをEXHIBITすることです。

したがって、P = NPであると想定する場合は、1つ(すべて1つ)のNP問題を解くための「正直な」多項式時間アルゴリズムを持っていると想定していることになります。そのアルゴリズムを呼び出しましょう: 'H'

さて... NPで問題が発生したら、それを「My-NP-problem」と呼びましょう...

あなたが探しているソリューションは次のとおりです。

  • SSP-Tを適用してSSPのインスタンスに変換し、

  • ここで再びSSP-Tを使用して、このSSPインスタンスを 'H'のインスタンスに変換します(P --NP--という仮定に基づいて、Pでの解決方法を知っているONE --any-one--問題NP) )、

  • Hを実行して解決策を見つけます。

  • SSP-Tを使用してSSPでのソリューションを解釈する

  • もう一度SSP-Tを使用して、「My-NP-problem」(最初に解決したかった任意の問題)の解を解釈します。

これで完了です。

これらの5つの連続したステップは、探していた「正直な」アルゴリズムです。

各ステップは多項式時間で実行され、各概念の定義によって存在することが保証されています。

NP-HARDの定義は(定義により)次のことを保証するものであるため、SSPの代わりに他のNP-HARD問題を選択することもできます。

  • SSP-Tが存在し、

  • アルゴリズムです

  • 双方向です

  • 有効であり、あらゆるNP問題に適用されます。そして

  • 多項式時間で実行

実際、問題がNP-HARDであることを示す最も一般的な方法を見ると、VIAはSAT-3への変換です。これは、NP-HARDが最初に示された問題の1つでした(60/70年代のある時点)。

私が与えた推論/説明であなたが見つけるかもしれない弱点を教えてください


1
P = NPであることを証明する唯一の方法が、NPのいくつかの問題に対してポリタイムアルゴリズムを示すことであるとは限りません。そのようなアルゴリズムが存在することを証明するのに十分です。その上、OPは現在記述できる具体的なアルゴリズムを探しています。
Yuval Filmus 16

私はあなたが正しいと思います、そのような「H」(ある特定のNP問題のいくつかの多項式時間解)の存在を示すことだけがP = NPを示すでしょう。それにもかかわらず
Martin Carames Abente 16

(最後のコメントを続ける)それでも、与えられた5つのステップは実際の/具体的なアルゴリズムのままであり、その入力の1つは「H」です。SSP-Tが入力として持っているのと同じように:NP問題のインスタンス(インスタンスまたはSSPに変換される問題、またはその逆)。「Hを実行して解を見つける」は、Hを入力として使用する場合の具体的な手順です。一方、YFは、OPが存在定理に基づいた具体的なソリューションを期待している場合、あなたは正しいです。しかし、私は彼がそれを期待しているとは思いません。これは、ウィキペディアでP = NPの具体的な解決策を期待するのと似ています。
Martin Carames Abente 16
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.