現在、大規模な入力の一般的なケースでは、問題または問題のいずれかを解決することは実行不可能です。ただし、どちらも指数時間と多項式空間で解くことができます。P S P A C E
非決定的または「ラッキー」なコンピューターを構築することはできないので、問題がまたは場合、それは私たちに何か違いをもたらしますか?P S P A C E
現在、大規模な入力の一般的なケースでは、問題または問題のいずれかを解決することは実行不可能です。ただし、どちらも指数時間と多項式空間で解くことができます。P S P A C E
非決定的または「ラッキー」なコンピューターを構築することはできないので、問題がまたは場合、それは私たちに何か違いをもたらしますか?P S P A C E
回答:
これは非常にいい質問です。問題がまたはという事実は、実際には問題の最悪の時間の複雑さに影響しますか?P S P A C Eさらにあいまいなことに、そのような区別は実際に問題の「典型的なケース」の複雑さに実際に影響しますか?
直観によると、使用する複雑さの尺度に関係なく、問題はの問題よりも困難です。しかし、状況は微妙です。たとえば、(充足可能性、正準問題)が準指数時間にある場合に限り、(定量化ブール式、正準問題)は準指数時間になります。(一つの方向は明白であり、他の方向には、主要な結果だろう!)これが本当であれば、多分ビューの「私はこの問題を解決したい」ポイントから、それは問題があるかどうか大したことではありません -completeまたはN P Q B F P S P A C E S A T N P P S P A C E N P-complete:いずれにせよ、一方の部分指数アルゴリズムは他方の部分指数アルゴリズムを意味します。
悪魔の擁護者になりましょう。ある問題がたまたま他の問題よりも「難しい」が、他の問題よりも「扱いやすい」という例があります。
ましょう上のブール式である変数、偶数です。決定する2つの式から選択できると仮定します。n n
。
(つまり、では、数量詞が交互になります。)
どちらを解決する方が簡単だと思いますか?タイプの式、またはタイプの式?Φ 2
は -completeの問題ですが、決定するのはのみであるため、明白な選択はであると考えるでしょう。しかし、実際には、最もよく知られているアルゴリズムによると、は簡単な問題です。一般的なを未満のステップで解く方法はわかりません。(これを行うことができれば、新しい数式サイズの下限があります!)しかし、ランダム化されたゲームツリー検索を使用して、ランダム化された時間のに対してを簡単に解くことができます!参照については、MotwaniとRaghavanの第2章、セクション2.1を参照してください。 N P Φ 2 P S P A C E Φ 2 Φ 1 F 2 N Φ 2 F O (2 0.793 N)
直観としては、普遍的な数量詞を追加すると実際に問題が制約され、難しくなるのではなく、解決しやすくなります。ゲームツリー検索アルゴリズムは、数量詞を交互に使用することに大きく依存しており、任意の数量化を処理できません。それでも、問題は、別の尺度では「より難しく」見える場合でも、ある複雑性尺度では「より単純」になることがあるという点が残っています。
私たちが解決策を見つけることができるかどうかよりも、危機にisしているからです。また興味深いのは、ソリューションを検証できるかどうかです。問題の難しさの間には他の質的な区別をすることもできますが、NP対より複雑なクラスの場合、これが私が最も重要だと認識するものです。
決定問題(すべてのインスタンスに「はい」または「いいえ」の答えがある問題)の場合、NPは、特定のインスタンスが「はい」インスタンスであるという主張された証拠を決定論的に効率的に検証できる問題のクラスです。 1つが提示されます。たとえば、3-SATのインスタンスに満足のいく変数の割り当てがある場合、その割り当てにより、インスタンスが満足できることを効率的に証明できます。このような満足のいく割り当てを見つけるのは難しいかもしれませんが、1つあれば、見つけたソリューションを検証するだけで、インスタンスが満足できることを他の人に簡単に証明できます。
同様に、coNPの場合、「NO」インスタンスに対して効率的にチェック可能な証明が存在します。そして上の問題のためにNP ∩ CONP、あなたは両方を行うことができます。しかし、PSPACEの完全な問題の場合、複雑なクラスのかなり壮観な同等性を証明できない限り、そのような手順は存在しません。
(最悪の場合)NP完全な問題から平均的な困難な問題を作成する方法はわかりませんが、PSPACEでこれを実行して(Köbler&Schuler(1998)を参照)、すべてのPSPACEの計算が簡単でない限り、ほとんどの入力で解決されます。
実用的な面から、NP完全性は実際の多くの問題の障壁ではないことを覚えておくことが重要です。SATソルバーとCPLEX(整数線形プログラミング用)のツインツールは十分に強力であり、適切に設計されているため、適切なILPとして問題をフレーミングするか、SATに還元することにより、NP完全問題の大規模なインスタンスを解決することができます。
PSPACEの問題に対する同様に適切に設計されたソルバーについては知りません。
あなたはそれをこのように考えるかもしれません:数学の問題は人間が読める証明を持っていますか、それとも本質的に「コンピュータ証明」を必要としますか。例:チェッカーの開始位置は引き分けですか?(答え:はい。)チェスの開始位置は白の勝利ですか?(回答:不明ですが、ほとんどの卒業生は引き分けだと考えています。)
チェッカーの開始位置が引き分けであることの証明には、コンピューターが多くの特殊なケースを正確に検証したことを最終的に受け入れる必要があります。チェスについての証拠が存在する場合、人間の読者はコンピューターがさらに特別なケースを正しく検証したことを受け入れる必要があるでしょう。そして、これらのステートメントを証明するためのより短い方法はないかもしれません。これらはPSPACEの問題です。NPで問題が「公正」である場合、人間は(直感的に)証拠全体を頭で保持できます。もちろん、その人間は非常に専門的な数学者である必要があるかもしれません。
この比は、あまりにも強く押し込まれた場合に壊れます。サイズ NP証明は、おそらく誰の頭にも収まらないでしょう。しかし、「目撃者は小さい」という基本的な考え方は、NP完全問題が産業的に非常に重要である理由の一部です。
Sureshのコメントに加えて、実際には大きな違いがあるようです。実用的なSATインスタンスの構造を悪用して優れたパフォーマンスを得ることができるヒューリスティックがあります(ここでは、競合駆動節学習ソルバーを参照します)。同じヒューリスティックでは、QBFソルバーで同様のパフォーマンスの改善は得られません。
証明と検証の違いも現れます。一部のSATソルバー(MiniSAT 1.14など)は、証明を生成します。現在のQBFソルバーで証明を作成するのは簡単ではありません。(次の声明は伝聞からです)QBFコンペティションには、ソルバーが明らかに異なる結果を生成する大きな例があります。証明を生成するソルバーがない場合、どの結果が正しいかわかりません。
SATとチェスの実際のパフォーマンスを見ると、違いがあります。NP完全問題はPSPACE完全問題よりも扱いやすいです。今日のSATソルバーは数千を超える変数を処理できますが、最高のチェスエンジンは同じ時間内で20移動未満しか計算できません。
これは問題の構造が原因だと思います。はい、ソリューションを列挙するだけなら、SATの解法は非常に遅いです。しかし、それは量指定子の交替を持たないので、人々は式の中の構造を発見し、したがって列挙の多くを避ける。ライアン・ウィリアムズはこの点を見落としていたと思います。
量指定子の交代では、はい枝刈りの賢明な方法がありますが、それでも構造はCNF式の構造ほど豊富ではありません。
未来を予測させてください。SAT解法は、式を調べて本質的に検索を回避することでPになりますが、チェスはゲームツリーでの検索を利用してPになります。