シングルテープチューリングマシンのアルファベット


40

すべての関数は、サイズアルファベットを使用して、シングルテープチューリングマシンで時間で計算できますかサイズアルファベット(空白など)を使用するシングルテープチューリングマシンでの時間f:{0,1}{0,1}tk=O(1)O(t)30,1,

(OPによる以下のコメントから)入力はを使用して書き込まれますが、サイズアルファベットを使用するチューリングマシンは、より大きなアルファベットのシンボルで入力シンボルを上書きできます。時間要する入力をシフトすることなく、大きいアルファベットのシンボルを小さいアルファベットにエンコードする方法がわかりません。0,1kn2


8
入力はを使用して書き込まれますが、サイズアルファベットを使用するチューリングマシンは、入力シンボルをより大きなアルファベットのシンボルで上書きできます。時間要する入力をシフトすることなく、大きいアルファベットのシンボルを小さいアルファベットにエンコードする方法がわかりません。0,1kn2
マヌー

4
@Emanuele:質問を編集して、この側面を強調する必要があります。それ以外の場合は...まさに標準の教科書の練習のように聞こえる
ユッカSuomela

3
@剛、あなたは質問を誤解したと思います。
スレシュヴェンカト

4
@Jukka:1テープチューリングマシンでは、時間で計算できるものはすべて、実際には通常の言語です。o(nlogn)
クリストファーArnsfeltハンセン

6
@Abel:AroraとBarakから引用した結果は、モデル(マルチテープTMでかなり標準的です)に別個の読み取り専用入力テープがあるため、ここで主要な問題を回避します。
ジョシュアグロチョウ

回答:


5

TMが実行される場合の部分的な回答o(|x|log|x|)

TM4がを計算する4シンボルTM(アルファベット)の場合、すなわち、言語 inΣ4={ϵ,0,1,2}f:{0,1}{0,1}L={x|f(x)=1}(o(|x|log|x|))

1つのテープの決定論的な線形時間の複雑さは、1DLIN=1DTime(O(n))

  • Hennieは(1)あることを証明しREG=1DLIN
  • 小林は(2)ことを証明しましたREG=1DTime(o(nlogn))

したがって、は規則的であり、明らかにアルファベット上でも規則的ですLΣ3={ϵ,0,1}

そのため、Lを決定し、シンボルのみを使用するDFAがあります。1テープ、3シンボルのTM3はDFAから直接構築でき、元のTM4と同じパッドなしの入力を使用して L 決定します。Σ3

... TM4から直接ビルドすることはできませんが、TM3は存在します。

TM4が実行されている場合、入力をシフトし、TM4からTM3に直接変換できます。Ω(n2)

コメントで気づいたように、難しいケースは、TM4がです。Ω(nlogn)o(n2)


(1)Hennie、1テープ、オフラインチューリングマシンの計算(1965)

(2)小林、1テープ非決定性チューリングマシン時間階層の構造(1985)


1
に関するポイントは、クリストファー・アーンスフェルト・ハンセンが質問の下のコメントですでに指摘しています。本当に興味深いケースはです。o(nlogn)Ω(nlogn)o(n2)
カヴェー

確かに、クリストファーのコメントに気づかなかった。おもしろいケースをひどく表現したので(それを証明する方法がわかりません)、答えを更新しました。
マルツィオ

1
@Kaveh:約束の問題に対する -timeマシンはどうですか?たとえば、時間で約束の問題を解決するマシンを変換する方法を知っていますか?私はそれを行う方法がわかりませんし、通常の言語への接続はもはや保持されません(私がひどく間違えない限り)。o(nlogn)O(n)
ユッカスオメラ

1
@Kaveh:通常の言語ではないが、例えばラウンドのチューリングマシンで解決できる問題を取り、次のようにプロミスの問題を定義することはできませんか?yes-instances文字列後にビットのパディングが続きます。インスタンスなしは、文字列それに続くビットのパディングで構成されます。promise問題は時間で解決でき、有限状態マシンを使用して解決することはできません。LO(n2)xL|x|2xL|x|2O(n)
ユッカスオメラ

1
@Kaveh:直感的な議論は次の理由で失敗すると思います:はい、同じマシンで解決される約束外の問題があります。ただし、特定の入力では、マシンの実行時間はに達する場合があります。(直観的には、マシンは十分なパディングがあることを確認できないため、接頭辞後に十分なパディングがあると想定する必要があります。その後、を決定するために時間を無駄にしますこれは、たとえば、ビットのパディングしかなかった場合は多すぎます。)Θ(n2)xΘ(|x|2)xLΘ(|x|)
Jukka Suomela

-4

より大きいすべてのアルファベットサイズの場合、ランタイムは、すべての以来、一定の係数でのみ変化します。1logk(x)Θ(logl(x))k,l>1

詳細説明は:でタイムステップ、チューリングマシンは最大で処理することができると仮定位置/ビット。ビットは個のアルファベットwlogから取得されます。すべての遷移を遷移に置き換えて、新しいチューリングマシンを作成します。すべての古いビットは、ビットによってエンコードされます(未使用のセルをマークするために空白が予約されています)。これは、本質的に2進数の数字です。ttk{0,1,,k1}log2(k)log2(k){0,1}

明らかに、結果のチューリングマシンは最大でステップを実行します。log2(k)tO(t)

追加:ないビットで入力シンボルを上書きする操作は直接変換できないため、上記の引数は壊れます。入力をシフトする必要があります。これは、計算を開始する前に元の入力を翻訳することで修正できます(基本的にパディング)。これは時間で実行でき、合計実行時間はます。{0,1}O(n2)O(n2)+log2(k)t

したがって、中間結果をエンコードするために2つのシンボルのみを使用しても、場合、漸近的な影響はありませんが、前処理がより高速なアルゴリズムを支配します。最も興味深い関数は(たとえば、2つの数値を追加する)にあるため、この問題は無視できると考えるかもしれません。t(n)Ω(n2)Ω(n2)


3
なぜこれが事実であると思われるのかを私に納得させるまで、私はその下票を維持します。
アンドレイバウアー

1
あなたの主張の証拠を聞きたいです。それのすべて、それはただ一つの主張です。
アンドレイバウアー

2
ああ、私はあなたが何を言っているかわかります。すみません。しかし、問題はそれについてはありません。それはわずかなバリエーションです。
アンドレイバウアー

6
入力文字列をシフトする時間があるので、t =Ω(n ^ 2)のケースは簡単なケースだと思います。本質的なケースは、t = o(n ^ 2)の場合です。o(n ^ 2)時間でシングルテープTMを考慮することがどれほど重要かはわかりませんが、問題はそれです。
伊藤剛

3
元の質問は、ケースが簡単であることをすでに暗示しています。したがって、私は本当に...この答えは新しいものが追加されますどのように表示されないΩ(n2)
ユッカSuomela
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.