計算可能性と複雑さの不可能性:常に最終的に対角線の引数が原因ですか?


8

計算可能性において、問題が再帰的または再帰的に列挙可能でないことを証明したい場合、たとえば、他の非再帰的または非再問題、Riceの定理、Rice-Shapiroの定理などからの削減を使用できます。これらの手法は、 、またはいくつかの対角引数の存在に直接基づいています(つまり、一部のプログラムはその入力プログラムM とは逆の動作をするため、M = M は矛盾します)。Complexityで、ある問題P N Pなどの証明されていないクレームに関係なく)しばらく計算できないことを証明したい場合MMM=MPNP)、最終的にはいくつかの対角引数に基づく引数を使用します(たとえば、時間階層定理は完全な問題がPにないことを証明しますが、その定理は対角引数を使用して証明されます)。EXPTIMEP

だから私の質問は次のとおりです。計算可能性と複雑さのすべての重要な不可能性の結果である(実際に不可能は、いくつかの未確認結果まで不可能ではない)、最終的に何らかの斜めの引数に?つまり、計算可能性と複雑さに関する重要な「不可能性の知識」はすべて、プログラムがプログラムを実行するのに十分強力であるという事実から来ているのでしょうか。

私の頭に浮かぶ唯一の重要な不可能結果は、最終的に対角線の引数によるものではなく、アッカーマン関数が原始的な再帰的ではないということです。この明らかな「ルール」の他の重要な反例を見逃していませんか?

編集(11月18日):私の質問が対角引数自体に特に焦点を当てていたことを示唆して申し訳ありませんが、プログラムの自己参照に依存するすべての引数(対角引数、Berryパラドックスなどを含む)に興味があります。より単純な言語(例:通常またはコンテキストフリー)の場合、これらの言語がどのように構成されるか(例:ポンピングレンマ)に基づいた「構造的」不可能性の引数があります。ただし、再帰またはre言語の場合、ほとんどの不可能な結果はプログラムの自己参照に強く依存します。これが私が言ったことです。


実際、アッカーマン関数がprではないという証明は、対角法のかなり古典的なアプリケーションです!
cody


1
はい、関数がそれ自体をメジャー化しない可能性があるという証明には、隠された対角線の引数があります。これについては、beta.planetmath.org
cody

1
おそらく、一連の結果がハト穴原理からもたらされます。コルモゴロフの複雑さが頭に浮かびます(「一部の文字列は圧縮できない...」)。私は1 $を賭けて、「有限ドメインについて」のすべての否定的な結果がその根本にPPを持っていると考えています:-D :-D
Marzio De Biasi

3
回路と数式の複雑さの下限は、ランダムな制限やスイッチングレンマなどのまったく異なる手法、またはカーチマーウィグダーソンゲームによる通信の複雑さ
Sasho Nikolov

回答:


7

ブール式や回路のような非均一な計算モデルの下限は、組み合わせ引数を使用して証明されます。いくつかの例は、形式的な複雑さの測定を使用するクラプチェンコの方法、単調回路の近似のRazborovの方法、ランダム制限+スイッチングレンマを含むランダム制限方法、およびKarchmer-Wigdersonゲームを介した通信の複雑さを使用する深さ下限です。この資料の講義ノートには、スーダンコップパーティーバスズウィックなどが含まれています。


個人的なお気に入りの答え、私は多くのことを学びました、ありがとう。デビッドとマルツィオも素晴らしい答えです。
EXPTIME完了

9

並べ替えの標準比較モデルの下限、およびデータ構造のほとんどのセルプローブモデルの下限は無条件(モデル内の計算では同じですが、チューリングマシンの下限についても同じことが言えます)であり、対角化ではなく情報理論に依存しています。


2
また、分散コンピューティングや並列コンピューティングのさまざまなモデルには、情報理論上の無条件の下限が数多くあります。そこにも対角化はありません。
Jukka Suomela、2017年

3

否定的/不可能性の結果を証明するために使用できるツールは、非圧縮性メソッドです:

cyAmm(12c)+1XC(xy)logmc

O(n2){wwR}anbn

結局のところ、上記の定理は、ピジョン原理に依存しています。ピジョンの原理は、それ自体がいくつかの優れた直接適用を持っています。例えば:

d>0d

dd


それはまた、素数が有限であるということの不可能性の素晴らしい証拠を提供します:)。(そして、n番目の素数のサイズをlog n係数以内に正しく推定します。)
Joshua Grochow '19

1
n0nn0K(n)log2(n)n=ab

1

実際には、対角化を使用せずに停止問題を証明できます。(すべての有効なZFCの定理には、対角化を使用するZFC証明があります...それについて考えてください。)

証明はベリーのパラドックスを使用し、次のように進行します。

すべてのチューリングマシンに適切な方法でインデックスを付けます。矛盾するために、停止問題を解決できると仮定します。次に、このアルゴリズムを検討します。

f(N)は、最小インデックスのチューリングマシンXを返します。st X(X)は停止せず、XはチューリングマシンMの出力ではなく、N文字以下で入力します(つまり、M(I)はXを出力します-> | M | + | I |> = N)。

ここで、十分に大きいNを選択すると、f(N)は、f(N)の計算によって正確に記述されるXの記述を返す必要があります。fが計算可能な場合、M = fおよびI = Nです。たとえば、N = 1グーゴル(10 ^ 100)とすることができます。

これは、f(10 ^ 100)の場合、満足な出力が得られないため、f(N)が完全な関数ではないことを示唆しています。これは、停止問題を解決できるという仮定に反しています。fの次の疑似コード(C ++で真のソースコードに展開した場合、またはTuringマシンとして作成した場合でも、10 ^ 100文字よりはるかに少ない)を検討してください。

f(N)

{

for(int i = 1;; i ++)

{

  if (simulate DoesHalt(UTM(i,i)) == false)

  {

         (simulate all machines and inputs M(I) with |M|+|I|<N)

         if all such inputs do not output i

                 return i;

  }

}

}

明らかに、fはすべての入力で停止し、問題の停止を解決できると仮定して適切に機能します。以上により、停止問題が解決できないことになります。

この証明は、いかなる形式の対角化も使用しません。確かに、あなたは私の質問を一目見る必要があります:

パラドックスという言葉の1つの定義は、「停止の問題を証明するために使用できるものは決定不可能ですか?」

...停止の問題を解決できないことを証明するために、嘘つきのパラドックスやラッセルのパラドックスの代わりに多くのパラドックスが使用される可能性があるという事実についての議論について。これらの非対角引数のパラドックスの一部には、予期しないハンギングパラドックスと(今説明したように)ベリーパラドックスがあります。


1
つまり、f(N)が返すものは、fが関数を計算する方法の説明で説明したとおりです。これが混乱する場合は、ベリーパラドックスに関するWikipediaの記事を確認してください(またはコメントで追加の質問をしてください)。「X」の代わりに「i」と書くつもりでしたが、まもなく修正されます。そして、はい、「XはMの出力ではない」という私の言い回しは、あなたが示唆するように簡略化できます。これらのマイナーなポイントは別として、私の答えが正しいことに同意していただければ幸いです。すぐに他のコメントについて説明します。
フィリップホワイト

2
OPが興味を持っていた、おそらく別の質問にふさわしいと答えられていないように見えるのは、自己参照を完全に回避できるかどうかです。
カートミュラー

2
私は他の人にも同意すると思います。ベリーのパラドックスの本質は、カントールの対角化の本質と同じです。たとえば、cstheory.stackexchange.com / q / 21917 / 129cstheory.stackexchange.com / q / 2853 / 129cstheory.stackexchange.com / q / 37824/129を参照してください。
Joshua Grochow 2017年

2
AA×Ae:A×AB

2
e:ABeBBeBBXX,XX(X)。それは自己参照の問題ではなく、同じオブジェクトを2つの異なる「セマンティック」レベルで2回使用することだけの問題です。
Damiano Mazza 2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.