例えば-やあみんな、私はパディングトリックが上向きに複雑クラスを変換するために私たちにできることを理解し。パディングは、入力を「膨張」させて変換を実行し(たとえばから変換)、パディングされた入力で実行できる「マジック」アルゴリズムを生成します。これは技術的に理にかなっていますが、これがどのように機能するかについての良い直観は得られません。ここで何が起こっているのでしょうか?パディングとは何か簡単な例えがありますか?N P P
これが事実である常識的な理由を提供できますか?
例えば-やあみんな、私はパディングトリックが上向きに複雑クラスを変換するために私たちにできることを理解し。パディングは、入力を「膨張」させて変換を実行し(たとえばから変換)、パディングされた入力で実行できる「マジック」アルゴリズムを生成します。これは技術的に理にかなっていますが、これがどのように機能するかについての良い直観は得られません。ここで何が起こっているのでしょうか?パディングとは何か簡単な例えがありますか?N P P
これが事実である常識的な理由を提供できますか?
回答:
この問題を直観する最良の方法は、指数時間クラスの完全な問題が何であるかを考えることだと思います。たとえば、NEの完全な問題は、簡潔に記述可能な入力の標準NP完全問題です。たとえば、グラフの隣接行列を記述する回路が与えられた場合、グラフは3色可能ですか。次に、E = NEであるかどうかの問題は、NPの問題が簡潔に記述可能な入力、たとえば有効なコルモゴロフの複雑さが小さい入力で多項式時間で解けるかどうかと等しくなります。これは明らかに、すべての入力で解けるかどうかよりも強くありません。時間制限が大きいほど、関連する入力のコルモゴロフの複雑さは小さくなるため、時間制限が大きい場合の崩壊は、入力の小さなサブセットで機能するアルゴリズムに影響します。
ラッセル・インパリアッツォ
OK、だからあなたの目標はを基づいてことです'このクラスが何であるかを正確に指定するのではなく、入力サイズで何らかの形でパラメータ化されていることを知っています)。何らかのアルゴリズムによって決定された言語があります。次に、各単語をにパディングして言語を作成します。その結果、長さはになり、含まれていることが(基本的に、新しいアルゴリズム追加されたゼロを無視し、実際の短い入力でを実行します)。C L A S S 1 [ g (n )] = C L A S S 2 [ H (N )] L ∈ C L AA L 'のx ∈ LのF (N )C L A S S 1 [ G (N )] A ' A
私たちがしていることは、より大きなクラスから言語を取得し、それをパディングします。それにより、より小さなクラスに封じ込めるより弱いアルゴリズムで解決できます-同じ量を持つため、より弱いアルゴリズムでできます前と同じように「実際の作業」を行いますが、入力を拡張することにより(入力の長さの関数である)制限が解除されます。
これで、、したがって (アルゴリズム決定ます。ここからに到達したいと思います。しかし、それは簡単です決定するアルゴリズムは、それに応じて入力をパディングし、パディングされた入力でを実行します。L ' ∈ C L A S S 2 [ H (N )] B ' L ∈ C L A S S 2 [ H (F (N ))] B L B ′
このステップは次のように要約できます。より大きく、よりリソースフルなクラスでを決定したい。追加のリソースを使用して、入力を埋め込み、埋め込み言語を決定するアルゴリズムを実行します。
もちろん、ここにはいくつかの技術的な詳細が含まれます(検討するクラスでパディングを実装できるようにする必要があります)が、一般的な直感を示すためにそれらを無視します。
パディング引数は、表現のコンパクトさの観点から見ています。2つのトランスレータチューリングマシンを考えてみましょうインスタンスを爆破し、それらを再び圧縮します。C
パディング引数は、下位の非決定性クラスの言語のTMの決定性バージョンでを構成することにより、で機能します。の出力は、コンパクトに表現されない言語をまとめて形成するため、これは「簡単」になります。B B
を使用して他の方法でアイデアを適用することはできません。これは、簡単なクラスの一部の言語のみが、難しいクラスの言語を爆破することによって生成されるためです。
より直感的にするために、何が起こっているかをより抽象的に見てみましょう!
入力用と問題用の2つの変換がありますが、両方ともで表します。最初の変換と2番目の変換の場合、コンテキストから明確になります。
これらの2つの変換には、次のプロパティがあります。
I.すべての問題、すべての入力:
IFF、
II。場合である()、次いで、であり、()。
III。入力の変換は複雑度クラスにあります。
パディングの変換にこれらのプロパティがあることは明らかです。
さて、逆方向で同じことをする方法がわからない理由は、逆方向のパディングのような変換がないためです(をと交換し、をと交換する場合)。質問はなぜですか?
現時点でそのような変換が存在しない理由については正式な議論はありませんが、AndrásSalamonが言ったことは直感的に正しいです。入力のサイズを増やすことは簡単ですが、どのように入力を圧縮できるかは明確ではありませんか?
それを理解する別の方法は、次のように考えることです。と仮定し、問題を解決したいとします。我々は、入力された与えられたの長さを、我々は考える長さの入力としての。