チューリングマシンの実用的な重要性


27

私は電気技術者であり、26年前に大学で1つのCSコースしかありませんでした。しかし、私は献身的なMathematicaユーザーでもあります。

私は、チューリングマシンがコンピューターサイエンスで非常に重要であると感じています。重要性はコンピューターサイエンスの理論だけですか?実用的な意味/アプリケーションがある場合、それらのいくつかは何ですか?

回答:


21

チューリングマシンの重要性は2つあります。1つ目は、チューリングマシンは、1936年以降のコンピューターの最初の(最初ではないにしても)理論モデルの1つでした。チューリング機械の言語で。この理由の1つは、チューリングマシンがシンプルであり、分析に適していることです。

とはいえ、チューリングマシンはコンピューティングの実用的なモデルではありません。エンジニアおよびMathematicaユーザーとして、彼らはあなたに全く関係するべきではありません。理論的なコンピューターサイエンスコミュニティでも、アルゴリズムとデータ構造の分野でより現実的なRAMマシンが使用されています。

実際、複雑性理論の観点から、チューリングマシンは他の多くのマシンモデルと多項式的に同等であるため、PやNPなどの複雑性クラスはこれらのモデルに関して同等に定義できます。(他の複雑度クラスはよりデリケートです。)


11

チューリングマシンは計算の初期モデルの1つでした。つまり、計算自体があまり理解されていないときに開発されました(1940年頃)。私は、それらが(おそらく)優先モデルになった2つの側面に焦点を当てたいと思います。

  1. 証明の単純さ
    理論モデルとして、チューリングマシンは、現在のマシンの状態が一定のサイズしかないという意味で「単純」であるという魅力があります。次のマシン状態を決定するために必要な情報はすべて、1つのシンボルと1つの(制御)状態番号です。マシン状態への変化も同様に小さく、マシンヘッドの動きのみが追加されます。これにより、(正式な)証明、特に区別されるケースの数が大幅に簡素化されます。

    この側面をRAMモデルと比較します(最小限の形式で使用しない場合)。次の操作は、任意の(2つの)レジスタにアクセスできるいくつかの操作のいずれかです。複数の制御構造もあります。

  2. ランタイムとスペースの使用
    チューリングマシンとほぼ同時に登場した2つの主要な計算モデル、つまりChurchの -calculusとKleeneの -recursive関数がありました。ヒルベルトの-彼らは、チューリングがした同じ質問答えEntscheidungsproblemを -しかし、はるかに簡単に(すべての場合)ランタイムとスペースの使用状況を定義するために自分自身を貸します。ある意味では、これらは抽象的すぎるため、より現実的なマシンモデルに関連付けることはできませんλμ

    しかし、Turingマシンの場合、両方の概念は簡単に定義できます(正しく覚えていれば、Turingのモデルに関する最初の論文に記載されていました)。効率を考慮することは、実際に作業を行う上ですぐに非常に重要であったため、これはチューリング機械の明確な利点でした。

このように、チューリングマシンは計算モデルとして確立されており、これは歴史的な「事故」とその重要な特性のいくつかの組み合わせとして見ることができます。それにもかかわらず、特にチューリングマシンの欠点を克服するために、多くのモデルが定義され、熱心に使用されています。たとえば、「プログラム」(つまり、定義)するのは面倒です。

私は実際には直接的な適用を知りません。特に、計算の実践は、計算理論と並行して(そして最初は、ほとんど独立して)進化しました。プログラミング言語、正式な機械モデルなしで開発されました。しかし、計算の実践における多くの進歩が理論によって可能になったことは(後から見て)明らかです。

さらに、理論的概念が実践のために持っていた価値は、すべての子孫、つまり、その概念によって可能になったフォローアップ作業、結果、および新しいアイデアを考慮して測定する必要があることに留意してください。その点で、チューリングマシンの概念は(とりわけ)世界に革命をもたらしたと言ってもいいと思います。


4

(チューリングマシンを実際に実装するという意味で)私が考えることができる唯一の合理的に実用的なアプリケーションは、ある種の言語に十分なパワーがあることを証明することです。

何らかのプログラミング言語(または物事を計算することを意図したもの)を設計している場合、チューリングマシンを実装することで、チューリング完全(つまり、計算可能なものを計算できる)であることを確認したい場合があります。その中に。

もちろん、チューリング完全なもの(Cや組み合わせロジックなど)を実装することもできますが、チューリングマシンが最も簡単なオプションである場合もあります。


-1

チューリングマシンは、計算の数学モデルです。その利点は次のとおりです。

1.決定可能性を確認するTMが数えられる時間内に問題を解決できない場合、その問題を解決できるアルゴリズムはありません(問題は決定不能です)。

決定問題の場合、TMがすべての有限長の入力に対してカウント可能な時間で停止する場合、問題はカウント可能な時間のアルゴリズムで解決できると言えます。

2.問題の分類 TMは、決定可能な問題を多項式階層のクラスに分類するのに役立ちます。

問題が決定可能であるとわかったとします。そして、アウトターゲットがどれほど効率的にそれを解決できるかになる。効率は、ステップ数、使用される追加スペース、コードの長さ/ FSMのサイズで計算されました。

3. Practical Machinesのアルゴリズムの設計と実装 TMは、他の実際のマシンでアルゴリズムのアイデアを広めるのに役立ちます。1,2基準の正常なチェックの後、実用的なデバイス/コンピューターを使用してアルゴリズムを設計および実装できます。


3
チューリングマシンでは、「決定可能性を確認する」ことはできません。決定可能性とは何かを定義するだけです。問題の分類は、ランダムアクセスマシンなどの他の計算モデルを使用して完全に可能です。チューリングマシンアルゴリズムは、他の場所では発生しない大量のテープシャッフルを伴うため、チューリングマシンで動作するアルゴリズムが他のマシンモデルに適していることはほとんどありません。
デビッドリチャービー

TMは決定性の定義を提供します。右。決定性を確認するために、私たちはTMの助けを借りていませんか?「他の計算モデルを使用して、問題を完全に分類できます。」正しいですが、TMを使用して行うこともできます。アルゴリズムを実装する際、その問題の難易度について確実にする必要があります。
スバンカーゴーサル14年

-3

チューリングマシンは、実用性がほとんどない優れた精神運動です。持っていなくても害はありません。チューリングマシンのすべてのアプリケーションは、証明または反論できないため、直感的または宗教の問題です。


2
「チューリングマシンのすべてのアプリケーションは、直感的であるか、宗教の問題です[...]」そして、したがって、計算可能性理論と複雑性理論の全分野が14語で却下されました。
デビッドリチャービー

これらは、それらの理論を却下することを目的としていませんでした。私が言っていたのは、チューリングマシンの用途が明らかであるか、直感的に理解できるか、または証明なしに信念が必要であるということだけでした。
ヴァレリーガブリロフ

「証明または反論できないため、宗教の問題。」あの、何?私が調理できるこれの最も寛大な解釈は、あなたが教会チューリングの論文に言及しているということですが、これのすべての特定のアプリケーションは実際に証明することができますあなたの好きなプログラミング言語で適切なアルゴリズムを記述し、通常の等価を使用します)、CTはアプリケーションではなく、証明の公開を単純化する単なる方法です(そして、そのアプリケーションを真剣に疑う場合は、常に正式な証明)。
ノアSchweber

また、「直感的に理解できる」ことがどのように短所であるかがわかりません。すべての数学は直感的に理解できます。それは数学がほとんど実用的ではない単なる心の練習であることを意味しますか?
ノアSchweber
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.