web-dev-qa-db-ja.com

チューリングマシンとは?

チューリングマシンとは何ですか?なぜ人々はそれを言及し続けるのですか?計算に必要なのはIBM PCだけです。なぜ誰もがこれらのマシンを気にするのですか?

45
Claudiu

チューリングマシンが重要である理由は、古典的な計算科学または計算理論タイプのものの研究に関係しています。基本的には、コンピューターの一般的な特性(コンピューターの理論的な能力や制限など)を分析すること、および何かを「計算する」ことについて話すときの意味です。

チューリングマシンを使用して学習する可能性のあるものの1つの例は The Halting Problem です。この問題は学問的な課題の1つですが、現実の世界では簡単に目に見える影響があります。プログラムに無限ループが含まれているかどうかを通知するだけのデバッガを作成してみませんか?停止問題は、一般的なケースでこの問題を解決することは不可能であることを確立します。

チューリングマシンの研究は、言語文法とそのクラスの研究にも役立ち、プログラミング言語の開発につながります。 「正規表現」という用語は 正規文法 であり、これらの文法(計算理論の一部)を調べると、正規表現で解決できる問題の種類と、彼らができないこと。たとえば、従来の正規表現の構文では、次の問題を解決できません。入力のN個の「a」文字を解析してから、同じ数N個の文字「b」を解析します。

この種のことについての良いテキストに興味がある場合は、Michael Sipserによる 計算理論入門 をチェックしてください。それは良いです。

58
Parappa

チューリングマシンは、数学計算の理想的なモデルとして機能するようにアランチューリングによって発明された理論的なコンピューティングマシンであり、基本的にはテープ(紙のリボン)、headがあり、シンボルを読み取り、新しいシンボルを所定の位置に書き込んでから、左または右に移動できます。 。

チューリングマシンは特定の状態であると言われ、プログラムは遷移、ヘッドの下に現在の状態と記号があり、テープに何を書き込む必要があるか、次の状態は何か、ヘッドがどこに移動するか。

これがJavaScriptで実装された Basic Turing Machine です...

そしてスケッチ:

turing machine

32
CMS

計算に必要なのは、私のIBM PCだけです!

他の人が指摘していないこと:あなたのIBM PCはチューリングマシンです。より正確には、PCが実行できること、チューリングマシンが実行できること、およびチューリングマシンが実行できることはすべてPCが実行できるという意味で、これはそれに相当します。

具体的には、チューリングマシンは計算モデルであり、計算能力の概念を完全にキャプチャしますが、PCのアーキテクチャの具体的な詳細がなくても、理由は簡単です。

(一般に受け入れられている)「チャーチ-チューリング論文」は、すべてのデバイスまたは計算モデルがチューリングマシンよりも強力ではないと断言します。したがって、多くの理論的な問題(たとえば、PやNPのようなクラス、「多項式時間アルゴリズム」の概念など)は、チューリングマシンの観点から正式に述べられていますが、もちろん他のモデルにも適用できます。上手。 (たとえば、ラムダ計算や組み合わせロジックなどの観点から計算を考えると便利な場合があります。これらはすべて、互いに、およびIBM PCと同等の能力を持っています。)

チューリングマシンは、CPUのアーキテクチャやその制約などの詳細をすべて記述する必要なしに、「コンピュータ」とは何かを正確かつ完全に特定した方法で説明しているためです。

28
ShreevatsaR

実際には、チューリングマシンの例があります。特に、RNAをタンパク質に変換するribosomeは、チューリングマシンを実装します。

まず、いくつかの背景:

  1. RNAは、遺伝的アルファベットの文字を定義する一連のヌクレオチド(「塩基」)で構成されています。
  2. RNAアルファベットには、A、C、G、Uの4つの塩基があります。
  3. ベースは方向性があります。慣例により、両端は5プライムおよび3プライム(5 '、3')と呼ばれます。
  4. RNAストリング内の塩基は、「反平行相補ペア」内の別のRNAストリング上の塩基を引き付けることができ、AはUに、CはGに付着します。
  5. 塩基は3つのグループにまとめられ、「コドン」(単語)を形成します。
  6. コドンの組み合わせは64通りあります(4 ^ 3)。
  7. 各コドンは「アンチコドン」と一致できます。たとえば、AUG <-> UAC
  8. 特定のアンチコドンを持ち、特定のアミノ酸(タンパク質)に付着する特別な担体分子(「tRNA」)があります。

リボソームの操作は簡単です:

  1. 転写は、「リーディングフレーム」を定義する「開始コドン」で始まります。
  2. 転写は常に5 '-> 3'方向に進行します
  3. リーディングフレームの下のコドンは、特定のアミノ酸を含む特定のtRNAと一致します
  4. 開始コドンは常にアミノ酸メチオニンをコードします。
  5. 新しいアミノ酸は成長しているタンパク質に付​​着しています
  6. フレームは次に3塩基を次のコドンに進め、タンパク質は継続的に延長されます
  7. 「停止」コドンに遭遇すると、翻訳は終了し、アミノ酸は結合されず、リボソームはmRNAから解離します。

ご覧のとおり、これは最も複雑な操作を実行する非常にシンプルなチューリングマシンです。自然そのものです。

26
dar7yl

チューリングマシンは、コンピューターの限界を推論するために使用できる理論上のマシンです。簡単に言えば、それは無限のメモリを備えた架空のコンピュータです。

チューリングマシンは、実際のコンピューター(IBM PCなど)では不可能なことを発見するのに役立つので、気にしています。 Turingマシンが特定の計算を実行できない場合( Halting Problem を決定する場合など)、IBM PCが同じ計算を実行できないのは当然のことです。

6
Ed Gonzalez

飛行機を設計する人々は、なぜライトブラザーズ、または固定翼機を飛ばせる「リフト」の背後にある科学を気にするのでしょうか。

Alan Turingは現代のコンピューティングの父として高く評価されています。 Turing Machineは、現代のすべてのコンピューターの先駆けです。

計算理論は大学で一番難しい授業でしたが、受験できてよかったです。自分が思いもよらないことや、思いもよらないことを考えさせられました。

3

チューリングマシンは、計算が可能な抽象的なマシンです。

ウィキペディアから:

チューリングマシンは、基本的な抽象シンボル操作デバイスであり、その単純さにもかかわらず、任意のコンピューターアルゴリズムのロジックをシミュレートするように適合させることができます。それらはアラン・チューリングによって1936年に記述されました。チューリングマシンは、実用的なコンピューティングテクノロジーとして意図されたものではなく、機械的計算の限界に関する思考実験です。したがって、それらは実際には構築されませんでした。それらの抽象的な特性を研究すると、コンピューターサイエンスと複雑さの理論に対する多くの洞察が得られます。

他のチューリングマシンをシミュレートできるチューリングマシンは、ユニバーサルチューリングマシン(UTM、または単にユニバーサルマシン)と呼ばれます。同様の「普遍的な」性質を備えたより数学的な指向の定義が、アロンゾ教会によって導入されました。ラムダ計算に関する研究は、チャーチ-チューリング論文として知られる計算の正式な理論においてチューリングの理論と絡み合っています。論文は、チューリング機械が実際に論理と数学における効果的な方法の非公式な概念を捉え、アルゴリズムまたは「機械的手順」の正確な定義を提供すると述べています。

2
TraumaPony

チューリングマシンは、データのシーケンスを操作できる抽象的なマシンであり、ロジックに従って、操作中に自身の状態とデータを変更できます。

これは、アルゴリズム、ストアドプログラム、および一般的な計算の基礎を形成する概念です。アルゴリズム、状態、データなどを扱っている場合は、優れた洞察と抽象化を提供します。

ほとんどの場合、思考の糧。

2
Abhishek Yadav

チューリングマシンはアルゴリズムと同等です。文字列を受け入れると停止し、文字列を受け入れない場合は拒否または無限ループに入ります。

テープはメモリとして機能し、移行ルールは「それ以外の場合」の条件として機能します

1
ontherocks

ウィキペディアのエントリに加えて、Charles Petzoldによる本 The Annotated Turing を入手することもできます。 「アランチューリングの計算可能性とチューリングマシンに関する歴史的な紙のガイド付きツアー」というタイトルの付いたこの本には、歴史的な見方を含め、このトピックに関する多くの話をまとめた完全な紙が含まれています。

1
Don Wakefield