テープがチューリングマシンの定義に含まれていないのはなぜですか?


11

テープ/テープがTuring Machineの正式な定義に含まれていない理由を知りました。たとえば、WikipediaのページでのTuringマシンの正式な定義について考えてみましょう。HopcroftおよびUllmanに続く定義には、有限の状態セット、テープアルファベット、空白記号、初期状態、最終状態セット、および遷移関数。どれもテープそのものではありません。ΓのB ΓのQ 0Q F Q δ Q F × Γ Q × Γ × { L R }Q ΓbΓq0QFQδQF×ΓQ×Γ×{LR}

チューリングマシンは常にテープ上で動作すると見なされ、遷移機能はその頭の移動、シンボルの置換、状態の変化として解釈されます。それで、なぜテープはチューリングマシンの数学的定義から外されているのですか?

私が見ることができることから、正式な定義自体は、チューリングマシンが非公式に記述されることが多いように動作することを意味するようには見えません(ヘッドがテープ上を動き回る)。それとも?


1
ウィキペディアの次のセクションでは、次のように述べています。そして、その計算はどのように見えるでしょう。 ""これは、ソフトウェア/ハードウェアの二分法/相乗効果/相互依存性に非常に似ています。ソフトウェアは、それが実行される特定のハードウェアを想定しています。誰かが将来ソフトウェアを発見した場合、その「意味」を理解することはできません。そのハードウェアを理解することはできません。
vzn

道路が車の一部ではないのはなぜですか?
Andrej Bauer

回答:


8

(一般的な概念ではなく)Turingマシンのインスタンスを正式に定義するには、テープ自体やその内容を明示的に言及する必要はありません。この特定のマシンの構成またはそれによって実行される計算を示すには、テープの内容を説明するための何らかの表記法が必要な場合です。


したがって、構成と計算を定義するためにテープが必要なだけです。
Shuzheng 2015

はい、マシンはテープで動作します。テープの内容が異なっても、異なるマシンは作成されません。
アンドレ・ソウザ・レモス

1
言い換えると、質問はTM の構文のみを引用しています意味論を定義するときだけ、テープは絵に入ります。(アナロジー:C(またはその他のプログラミング言語)の構文定義では、想定されるハードウェアアーキテクチャ/ OS / CPU命令セットについても触れられていません。)
Raphael

意味的にも、テープの内容が変わっても同じマシンであると考えるのが自然です。(最初の内容はマシンの定義の一部であるため、正式にはこれは
当てはまりません

2

少し灰色の領域ですが、定義によりモデルインスタンスから分割されます。簡単なアイデアが必要な場合は、ハードウェアとソフトウェアを比較してください。

モデルは、ハードウェアである:1頭です。テープが1本あります。テープは片面が無限で、(入力以外に)空白が含まれています。頭は一度に1ステップ移動できます。

インスタンスは、ソフトウェアである:入力おもむくままテープは状態/遷移関数がどのようにヘッドの移動とどのようにマシンの「作品」を伝え、冒頭で保持しているものを。最終的な状態は、成功/失敗の意味を与えます。

両方のパラメータは設定可能です---両方を変更できます。2つのテープ、2つのヘッド、両面テープ、空ではないテープなどの代替モデルが存在します。ただし、モデルを修正したら、可能な状態の数や遷移関数として、他の「構成可能な」パラメーターを確定する必要があります。

PMpatter


1

ここではすでに良い答えですが、私は簡潔なものを作ろうとしています。

定義は過剰または冗長であってはなりません。

実際、チューリングマシンの定義では、テープの抽象化も定義されています。q0- はテープの始まりです。アルファベットはテープの内容です。また、δ:(Q∖F)×Γ→Q×Γ×{L、R}は、テープに左右および無限大が両方向にあることを示しています。

つまり、テープ、ヘッド、モデルの人間にわかりやすい表現だけを移動します。それらはすでに数学モデルに含まれいますが、それ自体は正式なモデルではありません。


1

Lesは簡潔で正しい答えを提供します。数学的な定義は可能な限り簡潔であり、無限のテープをチューリングマシンの定義に明示的に含めると、その定義がはるかに簡潔になるため、ここでは説明しません。

これは質問に答えません:なぜですか?無限テープが必要なときに、定義でどのように除外できるか

答え:私たちはしません。ある意味では、チューリングマシンは実際には無限のテープを必要とせず、その定義によってこれが明確になります。

当然のことながら、チューリングマシンの動きは、ある構成から別の構成にマシンを移動させます。構成には有限の文字列が含まれます。これは、書き込まれたテープの有限の断片と見なされます。移動するたびに、テープヘッドが1ポジション移動するか、テープヘッドの下のシンボルが上書きされます。ただし、これはその操作に不可欠です:

  • b
  • 私たちは無限にそうすることができます。

これを言い換えると、マシンは無限のテープ上で動作し、テープヘッドがオンになっている有限の断片を除いて、完全にブランクで埋められます。これはほとんどの説明が言うことです。

これを言い換えると、マシンは有限のテープで動作し、ヘッドがどちらかの端でテープから離れるときは常にブランクで拡張されます。

これらはどちらも、マシンの動作を概念化する有効な方法です。どちらの場合も、実際にそのように動作するマシンがある場合、チューリングマシンを正しく実装します。

興味があるのがチューリングマシンのしくみを学生に教えることだけである場合、どの概念化を選択するかはおそらく問題ではありません。

ただし、次の2つの理由から、最初の概念化は誤りだと思います。

  • それは非現実的。無限のテープでマシンを実際に構築することはできません。ご要望に応じて、有限のテープを延長したマシンを構築できます。
  • それは直感に反しています。任意に頻繁にタスクを実行するマシンが、無限のリソースを含んでいるとは考えていません。たとえば、コピー機に無数のコピー用紙が含まれているとは考えていません。チューリングマシンは、コンピューティングのアクティビティをモデル化します。これらのモデルは、コンピューター(発明の時点では紙の上で計算を行う女性)を任意のプログラム可能な計算を実行できるマシンに置き換えた場合に何が起こるかをモデル化しています。私たちはその女性が無限の量の紙を含んでいるとは考えていません。むしろ、彼女には必要な量の紙が供給されると想定し、そのような女性が存在する可能性がないと言うのではなく、環境の障害と見なします。機械についても同じことをしてみませんか?
  • それは誤解を招く結論を招きます。私はこれをよく見ました。例えば:
    • チューリングマシンは実際には構築できないが、有限状態マシンは構築できると人々は言う。ええと、チューリングマシンに任意の量のテープを供給できる以上に、任意の大きな有限状態マシンを構築することはできません。
    • チューリングマシンはコンピューターを正しくモデル化しないが、有限状態マシンはモデル化すると人々は言う。これは重要なポイントを提供するのに役立ちます。私たちが興味を持っているのがマシンを使用して入力言語を決定することである場合、その(固定)内部ストレージでのみ動作するコンピューターは、特定のサイズまでの有限状態マシンを完全に実装できます。ほとんどのチューリングマシンを完全に実装することはできません。多くのチューリングマシンの内部ストレージが不足するためです。ただし、これは一般的に次のように一般化されます。コンピュータ有限状態マシンであり、誤解を招く可能性があります。
      • ほとんどのコンピュータプログラミングの現実的な絵は描かれていません。実際、データフロープログラミングは実際には有限状態マシンに基づいていますが、従来の命令型プログラミングはそうではありません。チューリングマシンのインスタンスにより近いプログラムを使用します。
      • 実際には、コンピューターは、サイズが固定されていない入力、出力、およびストレージの外部ソースとも対話します。
      • チューリングマシンは、そもそもコンピューターをモデル化するものではありません。それらは任意のコンピューティングをモデル化します。

まとめると、無限のテープを使用または含むチューリングマシンのアイデアは、重要な技術的ポイントを強調するのに役立ちますが、チューリングマシンについて最も直観的な考え方であるとは限らず、特定の誤った結論を招きます。注意して使用してください。

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