NP完全問題は、最大でも多項式空間を使用して解決できます(ただし、指数時間を使用している場合)。


12

NPCPSPACEとの関係について読み、最悪の場合の多項式空間要件を持つアルゴリズムを使用してNPC問題を決定論的に解決できるかどうかを知りたいのですが、潜在的に指数時間(2 ^ P(n)ここでPは多項式)を取ります。

さらに、一般的にEXPTIMEに一般化できますか?

私がこれを求めている理由は、NPC問題の縮退したケースを解決するためのプログラムを書いたためであり、ハードインスタンスのために非常に大量のRAMを消費する可能性があり、より良い方法があるのだろうか?参照については、https://fc-solve.shlomifish.org/faq.htmlを参照してください

回答:


27

一般的に、以下はすべてのアルゴリズムに当てはまります。

  1. 仮定Aで実行されることをアルゴリズムであるf(n)時間。その後、A以上取ることができなかったf(n)書き込むので、スペースをf(n)ビットが必要f(n)時間。
  2. 仮定A必要とされるアルゴリズムであるf(n)スペース。その後、2f(n)時間で、Aはそれぞれの異なる状態を訪れることができるため、2f(n)時間以上実行しても何も得られません。

それは次のとおりです。

NP PSPACE

次の図に示すように、statemementはクラス間の関係の一部として知られています。

クラス間の関係

説明は簡単である:問題Q NP多項式の長証明書有するy。すべての可能な証明書をテストするアルゴリズムは時間2 n O 1 )でQを決定するアルゴリズムです。2nO(1)

そのスペース要件は次のとおりです。

  • yn多項式)
  • yを検証するために必要なスペース。以来、y多項式証明書であり、それ故に、おそらく多項式空間以上を必要としないことができ、多項式時間で確認することができます。

2つの多項式の和​​も多項式であるため、Qは多項式空間で決定できます。


例:

仮定φリテラルで3-CNFのインスタンスでありx1xnと、m句。割り当てfいくつかの関数であるf:{x1xn}{0,1}

それはそれを保持しています:

  • あり2nの異なる割り当てが。
  • 割り当てf与えられると、φの値を計算するのにO(m)時間かかります。したがって、O m 以上のスペースを必要とすることはできません。φO(m)

したがって、可能なすべての割り当てをチェックするアルゴリズムA、多項式空間を使用し、指数時間で実行し、3-SATを決定します。

それは次のとおりです。

3-SAT PSPACE、および3-SATは、NP完全であるので、NP PSPACE


1
EXPSPACEとEXPTIMEが関係するのはなぜですか?時間と空間は異なるリソースだと思いました。思い浮かぶ1つの例は、暗号化スキームを破ることです。これにはEXPTIMEが必要ですが、一定のスペースが必要です
WeCanBeFriends

6
ここで直感的なのは、スペースを使用する場合、少なくともf n 時間を使用する必要があり、同じ状態を再訪する必要があるため、2 f n 時間を超える時間を使用しないでください。だからこそPSPACE lo EXPf(n)f(n)2f(n)
lox

あなたの例では、f(n)はO(n)と異なりますか?
WeCanBeFriends

1
@WeCanBeFriendsは、一つは、一定のスペースで指数時間を採用することはできません:あなたは、少なくとも使用スペースをする必要がカウントその指数番号まで(例えば、アセンブリ言語のプログラム・カウンタ)(指数対数)多項式である、
ギガバイト

4
@gigabytesそれはわかりません。私たちが知っている最良の方法は、です。PEXPTIME
トムファンデルザンデン

9

はい。これが直接証明のスケッチです。

問題がNPにある場合、それを決定する非決定的チューリングマシン  Mがあり、長さnの入力でMの計算パスの  いずれもp n ステップを超えないような多項式pがあり  ます。これは、単一のパスがp n 個を超えるテープセルを使用できないため、多項式空間で確定的に単一のパスをシミュレートできることを意味します。Mnp(n)p(n)

ただし、すべてのパスをシミュレートする必要があります。さて、Mの遷移関数のみに依存する(入力には依存しない)  定数cがあるため  、Mに  は任意のステップで最大  c個の非決定的な選択があります。これは、長さnの入力に対して最大でc p n )の異なる計算パスがあることを意味します  。これらすべてのc p n パスを次のようにシミュレートできます。最初に、p n -base- cの数字を書きます(これにはスペースpが必要です)MMccp(n)ncp(n)p(n)cp(n)が、それは多項式なので、問題ありません)。その後、の操作をシミュレート Mでて、iの計算のステップ目、使用i非決定的選択を行うためにどの決定する番号の桁目を。たとえば、i番目の桁が 6、選択できる選択肢が4つしかない場合、そのシミュレーションを中止して次のシミュレーションに進みます。

したがって、今、シミュレーション全体を行うために、数字00書き出すことから始め、Mそのパスをシミュレートし  、数字をインクリメントし、次のパスをシミュレートしc1。考えられるすべての計算パスをシミュレートし、約2 p n )のスペースを使用して、cp(n)p(n)について時間内にそれを実行しました。それは、必要に応じて指数時間と多項式空間です。2p(n)

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