プレフィックス自由なチューリングマシンが複雑さのディップに苦しんではいけませんか?

cs.stackexchange https://cs.stackexchange.com/questions/118695

質問

アルゴリズムの複雑さに関するいくつかのテキストで主張されていることは、少なくとも無限配列ではランダム性を理解するのに優れているほどのものです。 NIES '計算性とランダム性では、その理由はPの定理2.2.1および2.2.2によって与えられます。 83.前者に焦点を当てています。これは、平野ではない(プレフィックスのない)マシンであると述べています。 $ c $ が存在すると述べています。 $ d $ とstring $ w $ の長さ $ \ GEQ 2 ^ {d + 1} + D $ $ wの接頭辞 $ x $ があります。普通の複雑さ $ c(x)\ leq | -d + c $ になるような$ 。 (ここで $ | x | $ $ x $ の長さです。)

すなわち、複雑さが入力として任意の文字列を受け入れるチューリングマシンの観点から定義されている場合、複雑さが複雑になっていても、十分に長い文字列は、複雑さで多かれ少なかれ任意の「DIPS」を有することができる。定理の証明は、入力文字列の長さを使用して出力を構成するマシンを使用します。これは明らかに重要な点です(下記参照)。

私の質問:プレフィックスフリーの機械もなぜこれもなぜこれもありますか?プレフィックスフリーの複雑さが初期部分文字列の複雑さでディップを許可しないのはなぜですか?私は、NIE、Downey、Hirschfeldt(下記参照)、Li、Vitanyi(どこかにあるかもしれないが)、または落ち着いた(計算性とランダム性)のこの時点の説明をまだ見つけていません。 )。私はそれが明らかだと思いますが、私はなぜ私はわかりません。

いくつかの接頭辞マシン:DowneyとHirschfeldtのアルゴリズムのランダム性と複雑さ、p。 122は、本の中で早く証明された同様の定理を指し、プレフィックスフリーの機械が、テープ上の反対方向に移動することなく、その完成までの入力を読み取ることなく、およびテストがなくても、入力の終端文字またはパターン。このテキストは、「プレフィックスのないマシンの使用方法は、文字列のビットに存在するよりも多くの情報を得るための文字列の長さの使用方法を強調しています。」読み取り専用で1つの方向にのみ移動する単一のテープがある場合は、任意の長さを測定するようにカウンタを保持する方法はありません。テープ上の他の場所にカウンタを保存する必要があるか、少なくともテープ上の何かを読むと少なくとも上書きする必要があります。しかし、なぜプレフィックスのない機械がこのように機能する必要がありますか? LiとVitanyiの Kolmogorovの複雑さとその応用の紹介、3番目のED、SECT。 3.1、例3.1.1、p。 201は3つのテープを持つプレフィックスフリーのマシンを説明しています。 DowneyとHirschfeldtのように読み取り専用の一方向テープ、および一方向の書き込み専用出力テープがあります。 3番目のテープは双方向の読み書き作業テープです。作業テープを使用して入力の長さを計算できませんか?その場合、なぜプレフィックスのないマシンとプレーンチューリングマシンの間に違いがあるのでしょうか。それでも第3章の初め(PP.197FF)の初めに、LIとVitanyiは、NIESの定理2.2.1が暗黙のうちに関連する結果を回避する方法として、プレフィックスフリーの機械を扱います。


それが役立つと思う人のために、NIESの定理2.2.1は以下のとおりです。 (私は誤って歪みを導入するのを避けるために私自身の表記を使用するのではなく、ほぼ逐語的に再現することを決定しました。)の一部としての入力文字列の長さを使用できるプレーンマシンがあることを確認します。出力文字列。これにより、マシンは比較的短い入力を使用して比較的長い文字列を生成することができます。この機械は、入力の内容とその長さの両方をソースとして使用して出力文字列を構築します。私がそれを見ると、このトリックに働くために必要とされるすべては、マシンが入力文字列の長さを計算できることです。プレーンマシンと同じくらい簡単に、プレーンマシンと同じくらい簡単に入力の長さを計算できるのは、私には、この定理が抱えていない理由がわかりません。プレフィックスフリーの複雑さもあります。

命題。次のプロパティでは、定数 $ c $ があります。 $ d \ mathbb {n} $ と各文字列 $ w $ $ 2 ^ {d + 1} + d $ $ x \ preceq w $ があります。 SPAN CLASS="math-container"> $ c(x)\ leq | x | -d + c $ 。

[reped:以前の表記DEF]を参照してください。] machine $ n $

NER "> $ n(\ SIGMA)=mathsf {string}(| \ Sigma |)\ Sigma $ 。それは $ w $ のprefix $ w $ を取得するのに十分です。 "> $ n $ -description 長さ $ | x | -d $ $ k=mathsf {number}(w \!\ upharpoonRight_d)$ (SO) その $ k \ leq 2 ^ {d + 1} $ )、および $ x= w \!\ upharpoonright_ { D + K} $ $ w $ の接頭辞は、 $ d + k $ によって与えられた長さを持つ $ k $ $ d $ によって表される番号 $ w $ $ \ sigma $ をlet 長さの文字列 $ k $ $ x= x \!\ upharpoonright_d \ sigma $ $ n(\ sigma)= x $ 。したがって、 $ c_n(x)\ req | x | -d $
(NIES 2009、P.83)

表記: $ c $ :普通の複雑さ。 $ | x | x | $ :ビット文字列の長さ $ x $ $ x \ Preceq W $ $ x $ $ w $ $ \ mathsf {string}(n)$ :Natural Number $ n $ のエンコードビット文字列として。 $ \ mathsf {number}()$ $ \ mathsf {string}()$ の逆数。 ( $ k \ leq 2 ^ {d + 1} $ の定義から、 $ \ mathsf {number $ 。) $ \ mathsf {string}(| \ Sigma |)\ sigma $ $ \ mathsf {string}(| | sigma |)$ $ \ sigma $ $ w \!\ upharpoonright_d $ $ w $ の接頭辞 $ D $ ビット。 (私は $ \ upharpoonRright $ を意味するのですが、PPの定義はわずか95%です。 $ \ upharpoonRright $ は、この証明では理にかなっていますが、それがどのように使われるかに他の解釈がどのように意味があるかを見ることができません。)

注:「 $ d + k $ によって与えられる場所は、 $ k $ " $ d + m $ によって与えられた "fination"ここで、 $ m $ "。私は " $ m $ "はタイプミスです。 ( $ m $ は、このページの他の場所にもこのページの近くに表示されます。)

役に立ちましたか?

解決

命令の答えは、 $ \ sigma $ が必ずしも接頭辞を含まないため、プレフィックスのないエンコーディングのために侵入します。コード。

プレフィックスフリープログラムがプレーンプログラムよりも正常に動作しているという他の方法があります。 2つのプログラムの出力を連結したいとします $ p、q $ 。プレフィックスフリープログラムを使用すると、2つの入力プログラムを実行し、それらの出力を連結し、合計の $ | p | p | p | p | + | q | + o(1)$ 。プレーンプログラムでは、これは2つのプログラムを分離する必要があるので、どういうわけか。ここで、 $ \ mathit {len}(p)$ は、自己停止を使用してエンコードされていますエンコーディング。したがって、 $ O(\ log \ min(| p |、| q |))$

を失う必要があります。

ライセンス: CC-BY-SA帰属
所属していません cs.stackexchange
scroll top