チューリングマシンが計算の一般的なモデルであるのはなぜですか?


68

私はCS学部です。Turingがどのようにして彼の抽象的なマシン(計算を行う人をモデル化する)を思いついたのかは理解していますが、私にとっては扱いにくい、洗練されていない抽象化のようです。なぜ「テープ」、マシンヘッドが記号を書いたり、状態を変えたり、テープを前後に動かしたりするのか、と考えるのはなぜですか。

根本的な意味は何ですか?DFAはエレガントです。通常の言語を認識するために必要なものを正確にキャプチャしているようです。しかし、チューリングマシンは、私の初心者の判断では、単なる不器用な抽象的な仕掛けです。

それについて考えた後、最も理想的な計算モデルは、入力文字列に対応するいくつかの物理システムが、動きに設定された後、静的平衡に達すると言うことだと思います。元の文字列からのシステムは、正しい出力文字列に対応します。これは、システムが元の状態のみに基づいて決定論的に変化するため、「自動化」の概念を捉えています。

編集

いくつかの回答を読んだ後、チューリングマシンについて私を混乱させるのは、それが最小限に思えないことであることに気付きました。計算の標準モデルは明らかに計算可能性の本質を伝えるべきではないでしょうか?

また、明確でない場合は、DFAが計算の完全なモデルではないことを知っています。

返信いただきありがとうございます。


2
将来のクラスが明らかになることを願っています。
ユヴァルフィルマス

19
たぶん、より自然な計算モデルとしてラムダ計算を見つけるでしょう。それは関数型プログラミングのベースです。
バクリウ

4
実際、卒業しようとしています。オートマトン理論を含む私が取った最高レベルのコースは、チューリング機械で停止しましたが、さまざまな計算モデル間の等価性について言及していました。私は、当然のことながら、TMの「プログラミング」の公平な分配さえしました。しかし、TMはいつも私を悩ませました。「最小限」とは思えませんでした。それは計算の本質を私にさらしませんでした。
アレックス

4
入力文字列に対応する物理システム」-その対応はどのように見えるでしょうか?チューリングマシンは、まさにそのようなことを行うためのかなり単純で強力な形式モデルです。
ベルギ

2
チューリングマシンは、元の状態のみに基づいて決定論的に変化します(構成を意味する場合)。それで何が問題なのでしょうか?
user23013

回答:


72

まあ、DFAは右への移動のみが許可されているチューリングマシンであり、入力文字がなくなるとすぐに受け入れまたは拒否する必要があります。ですから、DFAは自然であるがチューリングマシンはそうではないと本当に言えるとは思いません。

質問に対する批判は別として、チューリングはコンピューターが存在するに働いていたことを思い出してください。そのため、彼は電子計算機の機能を体系化しようとはせず、むしろ一般的な計算を試みました。私の両親は、コンピューターを「計算する人」と定義する1930年代の辞書を持っています。これは基本的にチューリングの出所です。彼にとって、当時の計算はスライド規則、ログ表、鉛筆、紙に関するものでした。その考え方では、紙テープのシンボルを書き換えることは悪い抽象化のようには見えません。

OK、結構です、あなたは言っています(私は願っています!)ここでは、特定の理由はないと思います。チューリングマシンの利点は、それらがかなり単純であり、私たちがそれらについて物事を証明するのが得意であることです。特定のタスクを実行するためにチューリングマシンプログラムを正式に指定するのは非常に退屈ですが、一度それを数回行うと、それらが何ができるかについての合理的な直感が得られ、正式な仕様を書く必要はなくなります。このモデルは、テープへのランダムアクセスなど、他の自然な機能を含むように簡単に拡張できます。したがって、これらは非常に有用なモデルであり、十分に理解されており、実際のコンピューターとの関係についても十分に理解しています。

他のモデルを使用することもできますが、その場合、新しいモデルの結果とチューリングマシンでできることに関する既存の膨大な作業との間で膨大な量の変換を行う必要があります。チューリングマシンの代替品を思い付く人はいません。チューリングマシンを、良いアイデアのように見せるために十分な大きな利点があります。


コメントは詳細なディスカッション用ではありません。この会話はチャットに移動さました
ジル 'SO-悪であるのをやめる'

56

いくつかの異なる質問をしています。それらを一つ一つ簡単に答えさせてください。

チューリングマシンモデルについて何がそんなに重要ですか?

計算可能性理論の初期の段階で、さまざまな状況でいくつかの計算モデルが提案されました。たとえば、彼の不完全性定理が適用される証明システムれに理解しようとしたゲーデルは、の形式主義を思い付いた一般的な再帰関数、そして教会は思い付いた数学のためのパラドックスフリー基盤の試みとして計算。チューリング自身は、ヒルベルトの問題に動機付けられました。ヒルベルトは、与えられた数学的ステートメントの真理値を決定するための「純粋に機械的なプロセス」を求めました。λ

当時、計算可能性を定義するチューリングの試みは、最も満足のいくものであると思われました。最終的に、上記のすべての計算モデルは同等であることが判明しました。これらはすべて、計算可能性の同じ概念を記述しています。歴史的な理由から、チューリングのモデルは、計算可能性を定義する最も標準的な方法として登場しました。上記のモデルを含む他の多くのモデルと比較して、このモデルは非常に初歩的であり、操作が簡単です。

通常のコンピューターサイエンスは、計算可能性の定義としてチューリングマシンを教え、それから複雑性理論の調査にもそれらを使用します。しかし、アルゴリズムはRAMマシンと呼ばれるより現実的なモデルに関して分析されますが、この問題は通常、認知機能の秘密としてカーペットの下に流されます。

DFAはより良いモデルではありませんか?

これは、ラビンとスコットの有名な論文である有限オートマトンとその決定問題の背後にある最初の動機でした。

チューリングマシンは、デジタルコンピューターの抽象的なプロトタイプであると広く考えられています。しかし、現場の労働者は、チューリング機械の概念が実際のコンピューターの正確なモデルとして機能するには一般的すぎるとますます感じています。単純な計算であっても、チューリングマシンが任意の計算に必要とするテープの量にアプリオリな上限を与えることは不可能であることはよく知られています。チューリングの概念を非現実的にするのはまさにこの機能です。

過去数年間で、有限オートマトンのアイデアが文献に登場しました。これらは、メモリと計算に使用できる内部状態の数が限られているマシンです。有限性の制限は、物理マシンのアイデアにより良い近似を与えるように見えます。もちろん、そのようなマシンはチューリングマシンほどの能力はありませんが、実際のアプリケーションではこれらの関数がほとんど出ないため、任意の一般的な再帰関数を計算できるという利点は疑問です。

しかし、チューリングマシンが強すぎるのに対して、DFAはすぎることが判明しました。現在、理論家は多項式時間計算の概念を好んでいますが、この概念にも問題がないわけではありません。とはいえ、DFAとNFAは、主にコンパイラ(語彙分析に使用)およびネットワークデバイス(非常に効率的なフィルタリングに使用)で使用されています。

チューリングマシンのモデルは制限されすぎていませんか?

チャーチ=チューリングのテーゼは、チューリングマシンは計算可能性の物理的な概念を取り込むことを述べています。Yuri Gurevichは、抽象状態マシンと呼ばれるより一般的なクラスの計算デバイスを定式化し、チューリングマシンと同等の性能を持っていることを証明することで、この論文の証明を試みました。おそらく、これらのマシンは理想的なモデルに似ています。


17

根底にある重要性は、チューリング等価の概念に関するものです。チューリングと同等である限り、正確なモデルは重要ではありません。ただし、他のモデルとの等価性をより簡単に証明できるように、より単純なモデルを使用することをお勧めします。

より正確には、ほとんどの高度なプログラミング言語はチューリングと同等であり(メモリアドレスに関する特定の仮定を使用)、他のモデルをシミュレートするために使用できるため、他のモデルでこのモデルを簡単にシミュレートできるようにする方が適切です。

ラムダ計算や(文字列書き換え)文法など、他のモデルがあります。しかし、チューリングマシンで時間と空間の制約を定義する方が簡単です。Brainfuckなどのプログラミング言語を使用することもできますが、たとえばシンボルを再定義して論理的に些細な変更を加える場合など、不必要な作業が必要になります。

そのため、すべてについて単一のモデルを学習する必要がある場合、チューリングマシンは非常に適切であるように思われました。しかし、とにかく複数のモデルを学習する場合、チューリング同等性のアイデアのラムダ計算、他のモデルのチューリング同等性を証明するBrainfuck、および実用的なプログラミング言語(アクセス可能なスタックと隠された変数なし)を学ぶことは間違いありません時間/空間の制約については、チューリングマシンは、それを回避する方法を見つけられる人がいない場合にのみ、これらのことを同等であると証明するツールと見なしてください。これは、基礎となる理論を最初に学習することから始めたのではなく、有用であるとわかったときにのみ学習した場合に自然に起こります。


1
基本的に、すべての実際の最新のCPUは、RAMを備えたレジスタマシンです。アキュムレータレジスタが1つしかないマイクロコントローラまたは玩具アーキテクチャでも、通常、純粋なアキュムレータマシンではなく、何らかの種類の個別のアドレスレジスタを使用してポインタをロードできます。しかし、実際のハードウェアは固定サイズのアドレスを持っているため、チューリング完全ではありません。レジスターマシンモデルが理論上のCSで多く使用される場合はIDKですが、実際のアセンブリ言語の動作方法であり、すべてがasmにコンパイルされるため、perf分析の理解に役立つ場合があります。
ピーター

14

編集で追加された質問のこの部分に返信したい:

「計算の標準モデルは明らかに計算可能性の本質を伝えるべきではないでしょうか?」

チューリングが元の論文で行った注目すべきことの1つ-現在「チューリングマシン」と呼んでいるものを紹介したものの1つは、他のすべてのチューリングマシンをシミュレートできる単一のチューリングマシンを構築したことです。この「ユニバーサルチューリングマシン」が構築されると、2つの独立した機能を持つ入力テープを作成することで機能します。まず、シミュレートしたいチューリングマシンエンコード。そして、1はチューリングマシンに挿入されていた入力テープのコピー 1を持つように起こった場合、周りに座っ。半現代の専門用語では、まず、ユニバーサルチューリングマシンがコンパイルするプログラムを挿入します。次に、ユニバーサルチューリングマシンがコンパイル済みプログラムを使用して実行する入力を挿入します。T TTTT

それが計算可能性の本質の1つです。計算可能性の一般的な概念が何であれ、それをすべて実行する単一のマシンが必要です。それがまさにユニバーサルチューリングマシンが行うことです。それは、現代のコンピューターが行うことでもあります(無限のメモリーを持つという物理的に非現実的な理想化に従います)。

これを置く別の方法は、チューリングマシンが最小ではないという懸念に直接対処するものであり、ユニバーサルマシンが存在する計算可能性の一般的な概念を記述するという要件に従って、可能な限り最小であることです。


ユニバーサルマシンについて思い出させてくれてありがとう。それがどのように「完全な」計算を暗示しているかがわかります。
アレックス

5

チューリングマシンは、文字通り使用するためのものではありません。それらのプログラミングは、それらがどのように機能するかを理解するために、演習として一度だけ行うものです。

具体的には、何も「行わない」ように作られています。彼らは最小限である必要はありません、彼らはで動作するように快適である必要はありません。

それらは、構築可能なマシンの単なるモデルであり、物理的宇宙で構築できる他のマシンと同じように表現力があり、強力です(今日の私たちの知る限り)。

これらは、これらの主な理由からチューリングによって定義されました。

  • 考えられるすべてのアルゴリズムを網羅していることを証明できるようにするため。
  • 停止問題/決定問題に取り組むため。
  • 他のマシン/言語をこのマシン/言語に縮小できるようにするため。

別の言語を選択することは可能でしたか?確かに!今日私たちが知っているチューリング完全言語はどれでも使用できたはずです。しかし、より複雑なマシンで理論的な基礎を構築するのははるかに困難でした。

私は、それらが「一般的な計算モデル」でもないと主張します。チューリングマシンで計算する人はいません。これは、理論計算機科学者がTCSのために作成した純粋に理論的な概念です。


すべての点で同意します。人気は、おそらく、ThueマシンやLambda微積分やEmil Postのものなど、より曖昧なモデルに相対的なものです。
luserのドローグ

申し訳ありませんが、他の言語がひどく台無しになってしまうという非常に中心的な点を見逃しています。チューリングマシンは、実際に計算できるものを定義します。他の言語では、質問を計算方法に制限するため、計算できるかどうかを証明できない可能性が高くなります。
ベント

チューリングマシンが他のモデルの削減目標であると想定される場合、なぜ最小化する必要がないのでしょうか?
ベルギ

@Bent、あなたが言いたいことを理解していないことに加えて、「しかし、より複雑なマシンで理論的基礎を構築することははるかに困難だったでしょう」と述べました。(つまり、私たちが知っているような実際のプログラミング言語で使用します)。
AnoE

人気によって、私は理論的CSで使用されるものを意味しました。繰り返しますが、それは私が学んだ唯一のモデルでした(私はラムダ計算の少しに触れたと思いますが)。なぜ、おそらく教育学的に、常に最初に教えられるのかと疑問に思いました。その実用性がこれをどのように保証するかがわかります。
アレックス

5

なぜ人気があり、おそらく最も人気があるのでしょうか? チューリングは、電子コンピューターの何年も前にこの「機械」を偶然に発見したことを覚えておく必要があります。TMは、紙、ペン、ゴム、そして最後になりましたが、人間の脳で動作します。したがって、誰でもこのマシンで「計算」を実行できます。全員とは、コンピューターを学んだことのない人、プログラミング言語のことです。使い方は簡単です。考えてみると、パラドックスが見つかります。このマシンはほとんど何の集合体でもありませんが、すべてを操作することができます。私の意見では、「ほとんどない/対/すべて」というパラドックスが人気の理由です。TMは再帰を明示的に説明していないことに気付くでしょう。TMは「ジャンプ」のみを扱っています。その機能(明示的に再帰について説明している)は、新人の頭痛の種の原因になる可能性があります。たとえば、ラムダ計算では、Yコンビネータの概念はほとんど理解できません。より正確に言えば、TMは人気があります。なぜなら、再帰的な頭痛のない「ほぼ無/対/すべて」のパラドックスだからです。

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