ゴールデンチケットのように、古いSATソルバーを使用して新しいソルバーを発見する方法


7

ランスフォートナウの著書『ゴールデンチケット』では、NP完全問題の多項式時間アルゴリズムが得られたら、それを使用してより高速なアルゴリズムを見つけることができると述べています。それがどのように行われるか教えていただけますか?そして、それが完了すると、新しいアルゴリズムを使用して、固定小数点まで、さらに高速な1つの広告を検出できます。以下は本からの正確な引用です:

「では、1つの願いだけを叶えてくれる魔神に何を求めますか?」とアドバイザーは言った。

「わからない」とスティーブは答えた。

「あなたはすべての願いを叶える精霊を求めます。」

ことわざの電球がスティーブの頭から消えた。彼はクリーク問題をどこかに解決するためのより良いアルゴリズムがあるはずだと知っていましたが、彼自身でそれを理解することはできませんでした。しかし、彼は精巧な清華コードを持っていました。そこで彼は、清華ルーチンを使用してNP問題のより良いアルゴリズムを検索するプログラムを作成しました。 イリノイ大学を拠点とする全米スーパーコンピューティングアプリケーションセンター(NCSA)のコンピューティングリソースを使用する許可を得た。数週間の処理時間の後、彼の作業は少し成果を上げ、清華コードより5%改善された新しいアルゴリズムを見つけました。研究論文には十分ですが、実際の影響を与えるには不十分です。

彼の顧問は単に「新しいコードを使ってもう一度やり直してください」と言った。

そこでスティーブは新しいコードを使用して、NP問題のさらに高速なアルゴリズムを見つけました。数週間後、彼は20パーセント改善しました。

しかし、彼の顧問は感銘を受けませんでした。"もう一回やってみよう。"

スティーブは、「見つけた新しいコードを自動的に試し続けるようにコンピューターをセットアップしないのはなぜですか?」

顧問はその見た目、彼が悟りを達成した、または少なくとも明白なことに気付いた学生に言った見た目を与えました。

スティーブはオフィスに戻り、より高速なコードを検索するコードを書くというトリッキーなプロセスを開始し、このより高速なコードを使用してさらに高速なコードを見つけ、それ以上の改善が見られなくなるまでこのプロセスを続けました。

次にSATに焦点を当てます。MiniSATは高速SATソルバーですが、多項式時間ほどではありません。

MiniSATを使用して新しいSATソルバーを機械的に検出する方法


@ZiruiWang-候補アルゴリズムの固定セットからアルゴリズムを見つけることは、通常、 Σ2/Pi2NP完全問題ではなく問題。著者はそれを意味するかもしれません(それらはネストされたSATソルバーによって解決できます)。あるいは、著者は既存のアルゴリズムの特定のパラメーターを最適化する手段を持っている可能性があります。
DCTLib

アルゴリズムのセットは無限です。サーチスペースを修正した場合にのみ、SATソルバーを使用してアルゴリズムを見つけることができます。探索空間は、候補アルゴリズムの空間になります。新しいアルゴリズムを見つけるためのSATソルバーのネストについては、このペーパーで説明しています。link.springer.com
article

「アルゴリズムを見つけること」は本質的に合成です。これはSigma_2にあります。(1)(2)すべての入力に対して実装が存在するかどうかを確認するため、実装は正しく機能します。(2)の後の部分は本質的にco-NP問題です。1つのSATソルバーが解を見つけるたびに、他のSATソルバーがそれをチェックするために使用されるので、それをネストして呼び出すことができます。そうでない場合は、条項が最初の条項に追加されます。したがって、最初のSATソルバーは、2番目のSATソルバーがソリューションで問題がなくなるまでその作業を繰り返します。したがって、SATソルバーはSAT手順で呼び出されます。
DCTLib

1
@DCTLib仮定は、P = NP、PにPHが崩壊し、すべての簡素化そうである
Zirui王

@DCTLib、たくさんの素晴らしいコメントがあります。完全な答えを書きたいですか?
DW

回答:


7

実際には、驚くべきことが起こらない限り、SATソルバーを使用して別のSATソルバーを見つけることはできないでしょう。

P = NPの場合、それが可能です。P = NPの場合、多項式階層は崩壊し(つまり、P = PH)、PHのすべての問題に対して多項式時間アルゴリズムが存在します。より高速なSAT解決アルゴリズムがあるかどうかを尋ねる問題は、本質的にΣ2これは多項式階層の一部です。多項式階層が崩壊した場合、PHのすべての問題、したがってすべての問題の多項式時間アルゴリズムがあります。Σ2。したがって、P = NPの場合、より良いSATソルバーを多項式時間で検索できます。

しかし、ほとんどの研究者はPがNPと等しくないことを期待しているので、このステートメントはほとんど疑わしく、実際に役立つ可能性は低いです。

PがNPと等しくない場合、この推論は機能しません。実際、多くの研究者はそれを期待していますΣ2 NPよりもさらに難しい(問題がある Σ2それはNPのどの問題よりも難しいため、SATのインスタンスとして「より高速なSATソルバーを見つけてください」という問題を表現する単純な削減があった場合、それは驚くべきことです。特に、SATソルバーは、SAT、またはNPの他の問題を解決できますが、いずれの場合も、NPの問題のみを解決できます。もし(私たちが疑うように)Σ2 はNPよりも難しいので、SATソルバーは問題を解決できません。 Σ2

もちろん、実際にはわかりません。従来の知恵が間違っている可能性は常にあり、その明日、Pが実際にはNPに等しいことがわかります。それは驚くべきことですが、完全に排除することはできません。

ゴールデンチケットは、複雑性理論家がP対NPの問題を非常に重要かつ根本的に考慮している理由をより深く理解しようとしています。その一部には、結果がどうなるかを確認するために、おそらく偽であると疑われる偽りの世界と偽りの仮定を調査することが含まれます。


または、別の方法で説明します。

問題は、より良いSATソルバーを見つけることが 一種の声明。ステートメントは次の形式ですAx.P(A,x)、 どこ P(A,x) というステートメントです A 高速で、SATインスタンスを正しく解決します x。これらの種類のステートメントは、SATソルバーでは解決できません。SATソルバーは次の形式の問題を解決できますx.Q(x)。しかしながら、 ステートメントはより難しい ステートメント。これは基本的にΣ2 とNP。


SATソルバーが問題を解決できないのはなぜですか Σ2ステートメント?それはまだ指数関数的な時間です。難しさはエンコーディングにあります。
Zirui Wang

@ZiruiWang、私は回答の4番目の段落を編集して、理由をより明確に説明しました。SATソルバーは、すべての指数時間問題を解くことができません(NP = EXPTIMEでない限り、そうではないと思われます)。
DW

1
@ZiruiWang多くの問題はSATとしてエンコードできますが、長さが多項式ではない場合があります。SATは多項式入力のハードケースにヒットするため、指数サイズの入力で実行しても、おそらく機能しません。
jmite
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.