

チューリングマシンは、テープ上の記号を規則表に従って操作する抽象的な機械を記述する計算の数学的モデルです[ 1 ] 。 [ 2 ]このモデルは単純ですが、あらゆるコンピュータアルゴリズムを実装することができます[ 3 ]。
この機械は、離散的なセルに分割された無限の[4]メモリテープ上で動作し、各セルには、機械のアルファベットと呼ばれる有限の記号セットから抽出された単一の記号が格納されます。機械には「ヘッド」があり、機械の動作中のどの時点でも、これらのセルのいずれかの上に配置され、有限の状態セットから選択された「状態」を持ちます。動作の各ステップで、ヘッドはセル内の記号を読み取ります。次に、記号と機械自身の現在の状態に基づいて、機械は同じセルに記号を書き込み、ヘッドを左または右に1ステップ移動させるか[ 6 ]、計算を停止します。どの置換記号を書き込むか、ヘッドをどちらの方向に移動させるか、停止するかどうかの選択は、現在の状態と読み取られた記号の各組み合わせに対して何を行うかを指定する有限のテーブルに基づいています。実際のコンピュータプログラムと同様に、チューリングマシンが停止しない無限ループに陥る可能性もあります。
チューリングマシンは1936年にアラン・チューリングによって発明され、[ 7 ] [ 11 ]彼はそれを「aマシン」(自動機械)と呼んだ。[ 12 ]後に「チューリングマシン」という用語を考案したのは、チューリングの博士課程指導教官であるアロンゾ・チャーチであった。 [ 13 ]このモデルにより、チューリングは2つの質問に否定的に答えることができた。
このように、任意の計算が可能な非常に単純な装置の数学的記述を提供することにより、彼は計算の一般的な性質、特に決定問題(すべての数学的命題が証明可能か反証可能か)の計算不可能性を証明することができた。 [ 16 ]
チューリングマシンは、機械的計算能力には根本的な限界があることを証明した。[ 3 ]
チューリングマシンは任意の計算を表現できるものの、そのミニマルな設計のため、実際の計算には速度が遅すぎる。現実世界のコンピュータは、チューリングマシンとは異なり、ランダムアクセスメモリを使用する異なる設計に基づいている。
チューリング完全性とは、計算モデルまたは命令体系がチューリングマシンをシミュレートできる能力のことである。チューリング完全なプログラミング言語は、理論的にはコンピュータが実行可能なすべてのタスクを表現できる。有限メモリの制約を無視すれば、ほぼすべてのプログラミング言語がチューリング完全である。
チューリングマシンは、コンピュータが行うすべてのデータ操作を制御する中央処理装置(CPU)の理想化されたモデルであり、標準的なチューリングマシンはデータを格納するためにシーケンシャルメモリを使用します。通常、シーケンシャルメモリは、マシンが読み書き操作を実行できる無限長のテープとして表現されます。
形式言語理論の文脈において、チューリングマシン(オートマトン)は、アルファベットの有効な文字列の任意の部分集合を列挙することができる。このように列挙可能な文字列の集合は、再帰的に列挙可能な言語と呼ばれる。チューリングマシンは、出力文字列を列挙するのではなく、有効な入力文字列を認識するモデルとして定義することもできる。
チューリングマシンMと任意の文字列sが与えられた場合、 Mが最終的にsを生成するかどうかを判定することは一般に不可能である。これは停止問題が解けないことに起因するものであり、計算の理論的限界に大きな影響を与える。
他のチューリングマシンをシミュレートできるチューリングマシンは、ユニバーサルチューリングマシン(UTM、または単にユニバーサルマシン)と呼ばれます。同様の「普遍性」を持つ別の数学的形式体系であるラムダ計算は、アロンゾ・チャーチによって導入されました。チャーチの研究はチューリングの研究と結びつき、チャーチ=チューリングのテーゼの基礎を形成しました。このテーゼは、チューリングマシン、ラムダ計算、およびその他の同様の計算形式体系は、論理学と数学における効果的な方法の非形式的な概念を実際に捉えており、特定の形式体系に縛られることなく、数学的に正確な方法でアルゴリズムまたは「機械的手順」について推論できるモデルを提供すると述べています。 チューリングマシンの抽象的な特性を研究することで、コンピュータ科学、計算可能性理論、複雑性理論に関する多くの洞察が得られました。
チューリングは1948年のエッセイ「知能機械」の中で、自身の機械は以下のように構成されていると述べている。
…無限の記憶容量は、正方形に区切られた無限のテープの形で得られ、各正方形には記号を印刷できます。機械には常に1つの記号があり、これはスキャンされた記号と呼ばれます。機械はスキャンされた記号を変更することができ、その動作は部分的にその記号によって決定されますが、テープ上の他の記号は機械の動作に影響を与えません。ただし、テープは機械内を前後に移動することができ、これは機械の基本的な操作の1つです。したがって、テープ上のどの記号も最終的には使用される可能性があります。[ 17 ]
—チューリング 1948 [ 18 ]
チューリングマシンは、テープ上で機械的に動作する機械を数学的にモデル化したものです。このテープには記号が記録されており、機械はテープヘッドを使って一度に1つずつ読み書きできます。動作は、「状態42で、検出された記号が0であれば1を書き込む。検出された記号が1であれば、状態17に遷移する。状態17で、検出された記号が0であれば1を書き込み、状態6に遷移する」などの有限個の基本命令によって完全に決定されます。チューリングは、元の論文(「計算可能な数について、決定問題への応用」、下記の参考文献も参照)の中で、機械ではなく、彼が「コンピュータ」と呼ぶ人物を想定しており、その人物はこれらの決定論的な機械的規則を忠実に(あるいはチューリングの言葉を借りれば「気まぐれに」)実行します。


より具体的に言うと、チューリングマシンは以下から構成されます。
4タプルモデルでは、シンボルの消去または書き込み(a j1)とヘッドの左右移動(d k)は別々の命令として指定されます。このテーブルは、マシンに(ia)シンボルを消去または書き込み、(ib)ヘッドを左右に移動させ、その後(ii)規定されたとおりに同じ状態または新しい状態に移行するように指示しますが、(ia)と(ib)の両方の動作を同じ命令で実行することはできません。一部のモデルでは、現在のシンボルと状態の組み合わせに対応するエントリがテーブルにない場合、マシンは停止します。他のモデルでは、すべてのエントリを埋める必要があります。
機械のあらゆる部分(つまり、その状態、シンボルコレクション、および任意の時点で使用されているテープ)とその動作(印刷、消去、テープの移動など)は有限で、離散的で、区別可能です。無限のテープ量と実行時間によって、無限の記憶容量が実現されるのです。
Hopcroft & Ullman (1979) [ 21 ]に従って、 (1テープ)チューリングマシンは、7タプルとして形式的に定義できる。どこ

別のバリエーションでは、方向セットの3番目の要素として「シフトなし」(Nなど)を指定できる。。
3状態ビジービーバーの7タプルは次のようになります(このビジービーバーの詳細については、チューリングマシンの例を参照してください)。
最初はすべてのテープセルにマークが付けられています。
ファン・エムデ・ボアス(1990)の言葉を借りれば、「集合論的対象(上記と同様の形式的な7タプル記述)は、機械がどのように動作し、その計算がどのようなものになるかについての部分的な情報しか提供しない」[ 23 ] 。
例えば、
文献における定義は、議論や証明をより容易に、あるいはより明確にするために、時としてわずかに異なることがあるが、これは常に結果として得られる機械が同じ計算能力を持つように行われる。例えば、集合は次のように変更される可能性がある。にここで、N(「なし」または「操作なし」)を指定すると、機械は左右に移動せずに同じテープセルにとどまります。ただし、これによって機械の計算能力が向上するわけではありません。
最も一般的な慣習では、チューリング/デイビスの慣習に従って、各「チューリング命令」を「チューリング表」内の9つの5タプルのいずれかで表します(チューリング(1936)[ 24 ]およびデイビス(2000)[ 25 ])。
他の著者(ミンスキー(1967)、[ 26 ]ホップクロフトとウルマン(1979)、[ 27 ]ストーン(1972)、[ 28 ])は、スキャンされた記号 S jの直後に新しい状態q mをリストするという異なる慣例を採用している。
この記事の残りの部分では、「定義1」(チューリング/デイビス規約)を使用します。
次の表では、チューリングのオリジナルモデルでは、N1、N2、N3 と呼ばれる最初の 3 行のみが許可されていました。[ 29 ]彼は、0 番目のシンボル S 0 = "erase" または "blank" などと命名することで、「スキャンされた正方形」の消去を許可しました。ただし、彼は非印刷を許可していなかったため、すべての命令行には「print symbol S k」または「erase」が含まれています。[ 31 ]略語はチューリングによるものです。[ 32 ] 1936~1937 年のチューリングのオリジナル論文以降、マシンモデルでは、可能な 9 種類の 5 組すべてが許可されています。
任意のチューリングテーブル(命令リスト)は、上記の9つの5タプルから構築できます。技術的な理由から、通常、非表示命令または「N」命令(4、5、6)は省略できます。例については、チューリングマシンの例を参照してください。
4タプルの使用はそれほど頻繁には見られません。これらはチューリング命令のさらなる細分化を表しています。[ 33 ]
チューリングマシンの文脈で使用される「状態」という言葉は、2つの意味を持つため、混乱を招く可能性があります。チューリング以降のほとんどの解説者は、「状態」を、現在実行中の命令の名前/指定子、つまり状態レジスタの内容という意味で使用してきました。しかし、チューリング(1936)は、彼がマシンの「m構成」と呼んだものの記録と、マシン(または人)の計算における「進行状況」、つまりシステム全体の現在の状態を明確に区別しました。チューリングが「状態式」と呼んだものには、現在の命令とテープ上のすべての記号の両方が含まれます。
したがって、計算の進行状況はどの段階においても、命令メモとテープ上の記号によって完全に決定されます。つまり、システムの状態は、テープ上の記号、それに続くΔ(他の箇所には現れないものとする)、そして命令メモからなる単一の式(記号列)で記述できます。この式を「状態式」と呼びます。
チューリングは論文の前半でこれをさらに推し進め、スキャンした正方形の下に現在の「m構成」(命令のラベル)のシンボルとテープ上のすべてのシンボルを配置した例を示している。[ 35 ]彼はこれを「完全な構成」と呼んでいる。[ 36 ]「完全な構成」を1行に印刷するために、彼は状態ラベル/m構成をスキャンしたシンボルの左側に配置した。
この変形は、Kleene (1952) で見られます。Kleeneは、機械の「状態」のゲーデル数をどのように記述するかを示しています。彼は、「m 構成」シンボル q 4を、テープ上の 6 つの空白でない正方形のほぼ中央にあるスキャンされた正方形の上に配置し (この記事のチューリング テープの図を参照)、それをスキャンされた正方形の右側に配置します。[ 37 ]しかし、Kleene は「q 4」自体を「機械の状態」と呼んでいます。Hopcroft と Ullman はこの複合体を「瞬間記述」と呼び、スキャンされたシンボルの左側に「現在の状態」(命令ラベル、m 構成) を配置するというチューリングの慣例に従います(p. 149)。つまり、瞬間記述は、左側の空白でないシンボル、機械の状態、ヘッドによってスキャンされた現在のシンボル、および右側の空白でないシンボルの複合体です。
例:3状態2シンボルのビジービーバーの3回の「移動」後の全状態(下図の例「実行」から引用):
これは、3 回の移動後、テープには ... 000110000 ... があり、ヘッドは右端の 1 をスキャンしており、状態はAであることを意味します。ブランク (この場合は「0」で表されます) は、ここに示されているように、全体の状態の一部になることがあります。B 01。テープには 1 が 1 つありますが、ヘッドは左側の 0 (「ブランク」) をスキャンしており、状態はBです。
チューリングマシンの文脈における「状態」とは、現在の命令を指すのか、テープ上のシンボルのリストと現在の命令を合わせたものを指すのか、あるいはスキャンされたシンボルの左側または右側に配置されたテープ上のシンボルのリストと現在の命令を合わせたものを指すのかを明確にする必要がある。

右側:上記の表を「状態遷移」図として表したもの。
通常、大きな表は表のままにしておく方が良い(Booth、p. 74)。表形式であれば、コンピュータによるシミュレーションも容易である(Booth、p. 74)。しかし、特定の概念、例えば「リセット」状態を持つ機械や繰り返しパターンを持つ機械(HillとPeterson、p. 244以降を参照)などは、図として見た方が理解しやすい場合がある。
図面がその表の改良版であるかどうかは、読者が特定の文脈において判断しなければならない。

読者は、このような図は、時間と空間を通じた計算の過程(「軌跡」)ではなく、ある時点における表の状態を捉えたスナップショットであることに改めて注意する必要がある。ビジービーバーマシンは実行されるたびに常に同じ状態軌跡をたどるが、可変入力「パラメータ」を与えることができる「コピー」マシンではそうではない。
図「計算の進行」は、3状態ビジービーバーの「状態」(命令)が計算の開始から終了までどのように進行するかを示しています。右端には、各ステップにおけるチューリングの「完全な構成」(クリーネの「状況」、ホップクロフト=ウルマンの「瞬間的な記述」)が示されています。マシンが停止され、「状態レジスタ」とテープ全体が消去された場合、これらの「構成」を使用して、計算の進行状況のどこからでも計算を再開できます。[ 38 ]
単純な万能チューリングマシンよりも計算能力が高いと思われる多くの機械は、実際にはそれ以上の能力を持たないことが証明されている(Hopcroft and Ullman p. 159、cf. Minsky (1967))。それらの機械は、計算速度が速かったり、メモリ使用量が少なかったり、命令セットが小さかったりするかもしれないが、より強力な計算能力(つまり、より多くの数学関数)を持つことはできない。(チャーチ=チューリングのテーゼは、あらゆる種類の機械について、つまり「計算可能」なものはすべて何らかのチューリングマシンで計算できるという仮説を立てている。)
チューリングマシンは、スタックのLIFO(後入れ先出し)要件を緩和することで、より柔軟かつ簡潔に設計されたシングルスタックプッシュダウンオートマトン(PDA)に相当します。さらに、チューリングマシンは、ヘッドの左側のテープを一方のスタックで、右側のテープをもう一方のスタックでモデル化することにより、標準的なLIFOセマンティクスを持つ2スタックPDAにも相当します。
その一方で、非常に単純なモデルの中には、チューリングマシンと同等、つまりチューリングマシンモデルと同じ計算能力を持つものもある。
一般的な同等のモデルとしては、マルチテープチューリングマシン、マルチトラックチューリングマシン、入出力のあるマシン、および決定性チューリングマシン(DTM )とは対照的に、アクションテーブルに記号と状態の組み合わせごとに最大で1つのエントリしかない非決定性チューリングマシン(NDTM)などがある。
読み取り専用の右移動チューリングマシンは、DFAと同等である( NFAからDFAへの変換アルゴリズムを使用すればNFAとも同等になる)。
実用的かつ教育的な目的においては、同等のレジスタマシンを通常のアセンブリプログラミング言語として使用することができます。
関連する疑問は、具体的なプログラミング言語によって表現される計算モデルがチューリング等価であるかどうかです。実際のコンピュータの計算は有限状態に基づいているため、チューリングマシンをシミュレートすることはできませんが、プログラミング言語自体には必ずしもこの制限があるわけではありません。Kirner ら (2009) は、汎用プログラミング言語の中にはチューリング完全なものとそうでないものがあることを示しました。たとえば、ANSI C はチューリング完全ではありません。ANSI C のすべてのインスタンス化 (標準ではレガシーの理由から特定の動作を意図的に未定義にしているため、異なるインスタンス化が可能です) は有限空間メモリを意味します。これは、ポインタと呼ばれるメモリ参照データ型のサイズが言語内でアクセス可能であるためです。しかし、Pascalのような他のプログラミング言語にはこの機能がないため、原理的にはチューリング完全です。プログラミング言語ではメモリ割り当てが失敗することが許容されるため、プログラミング言語は失敗したメモリ割り当てを無視すればチューリング完全になりますが、実際のコンピュータで実行可能なコンパイル済みプログラムはそうではありません。
チューリングは論文(1936年)の冒頭で、「自動機械」(その「動作は構成によって完全に決定される」)と「選択機械」を区別している。
… その動作は構成によって部分的にしか決定されない…このような機械が曖昧な構成のいずれかに到達すると、外部のオペレータによって何らかの任意の選択が行われるまで、先に進むことができない。これは、公理系を扱うために機械を使用する場合に当てはまる。
チューリング(1936)は、選択マシンを使用する代わりに a マシンを使用して「[ヒルベルト] 計算のすべての証明可能な式を見つける」方法を説明した脚注を除いて、それ以上詳しく説明していません。彼は「選択は常に 0 と 1 の 2 つの可能性の間にあると仮定します。各証明は、選択のシーケンス i 1、 i 2、 ...、 i n (i 1 = 0 または 1、 i 2 = 0 または 1、 ...、 i n = 0 または 1) によって決定され、したがって、数 2 n + i 1 2 n-1 + i 2 2 n-2 + ... +i nによって証明が完全に決定されます。自動マシンは、証明 1、証明 2、証明 3、... を順次実行します」[ 39 ]
これはまさに、決定論的(つまり非決定論的)チューリングマシンを用いて非決定論的チューリングマシンの動作を模倣する手法である。チューリングはこの問題を脚注で解決し、それ以上の検討対象から除外したようである。
オラクルマシンまたはoマシンは、チューリングaマシンの一種で、計算を完了するために「オラクル」の「決定」を待つ間、状態「o 」で計算を一時停止する。オラクルとは、チューリングが「機械ではない」と述べる以外には特定していない存在である(チューリング(1939))。[ 40 ]

チューリングは『決定不能なもの』の中で次のように書いています(強調追加):[ 41 ]
任意の計算可能な数列を計算できる単一の機械を発明することは可能である。この機械Uに、ある計算機Mのセミコロンで区切られた 5 組の文字列が先頭に書き込まれたテープを与えると、U はMと同じ数列を計算する。
チューリングが「ユニバーサルマシン」(略して「 U 」)と呼んだ計算モデルは、一部の人々 [ 42 ]によって、プログラム内蔵型コンピュータの概念につながった根本的な理論的ブレークスルーであると考えられている。
チューリングの論文には、本質的に現代のコンピュータの発明と、それに伴うプログラミング技術の一部が含まれている。
—ミンスキー (1967) [ 43 ]
計算複雑性の観点から言えば、マルチテープ万能チューリングマシンは、シミュレートするマシンと比較して対数係数だけ遅くなればよい。この結果は、1966 年に FC Hennie とRE Stearnsによって得られた。[ 44 ] [ 45 ]

チューリングマシンは、有限状態機械やプッシュダウンオートマトンなど、他の種類のオートマトンよりも強力です。チャーチ=チューリングのテーゼによれば、チューリングマシンは実機と同等の能力を持ち、実機プログラムが実行できるあらゆる操作を実行できます。しかし、この主張で見落とされているのは、実機は有限個の構成しか持たないため、有限状態機械に過ぎないのに対し、チューリングマシンは計算に利用できる記憶領域が無限にあるということです。
チューリングマシンが実際のコンピュータの有用なモデルである理由を説明する方法はいくつかあります。
チューリングマシンの限界は、特定の構成の強みをうまくモデル化できないことです。たとえば、現代のプログラム内蔵コンピュータは、実際にはランダムアクセスプログラム内蔵マシンまたはRASPマシンモデルとして知られる、より具体的な抽象マシンのインスタンスです。ユニバーサルチューリングマシンと同様に、RASPは「プログラム」を有限状態マシンの「命令」とは別の「メモリ」に格納します。ユニバーサルチューリングマシンとは異なり、RASPは識別可能で番号付きだが制限のない「レジスタ」、つまり任意の整数を格納できるメモリ「セル」を無限に持っています(ElgotとRobinson(1964)、Hartmanis(1971)、特にCook-Rechow(1973)を参照。ランダムアクセスマシンの参考文献を参照)。RASPの有限状態マシンは間接アドレッシング機能を備えています(たとえば、1つのレジスタの内容をアドレスとして使用して別のレジスタを指定できます)。したがって、RASPの「プログラム」はレジスタシーケンス内の任意のレジスタにアクセスできます。この違いの結果として、一般的なチューリングマシンでは不可能な、メモリインデックスに基づいた計算最適化が可能になります。そのため、実行時間の上限を設定する際にチューリングマシンを基準として使用すると、特定のアルゴリズムの実行時間に対して「誤った下限」が証明される可能性があります(チューリングマシンの誤った単純化仮定による)。その一例として、バイナリサーチが挙げられます。このアルゴリズムは、チューリングマシンモデルよりもRASPモデルの計算を使用した方が高速に動作することが示されています。
コンピュータ黎明期には、コンピュータの利用は一般的にバッチ処理、つまり入力データから出力データを生成する非対話型タスクに限られていました。入力から出力への関数の計算可能性を研究する計算可能性理論(チューリングマシンが発明されたのもこの理論のため)は、こうした慣習を反映しています。
1970年代以降、コンピュータの対話型利用ははるかに一般的になった。原理的には、外部エージェントがチューリングマシンと同時にテープから読み取り、テープに書き込むことでこれをモデル化することは可能であるが、これは実際の対話のあり方と一致することはほとんどない。そのため、対話性を記述する際には、入出力オートマトンなどの代替手段が一般的に好まれる。
計算の算術モデルは、チューリングモデルとは2つの点で異なります。[ 46 ]
あるアルゴリズムは、一方のモデルでは多項式時間で実行されるが、もう一方のモデルではそうではない。例えば、次のようになる。
しかし、アルゴリズムが算術モデルにおいて多項式時間で実行され、かつ、関連するすべての数値の2進数の長さが入力の長さの多項式である場合、そのアルゴリズムはチューリングモデルにおいても常に多項式時間で実行されます。このようなアルゴリズムは、強多項式時間で実行されると言われます。
ロビン・ガンディ(1919年~1995年)は、アラン・チューリング(1912年~1954年)の教え子であり、生涯の友人でもあったが、「計算機」という概念の系譜をチャールズ・バベッジ(1834年頃)まで遡り、実際に「バベッジのテーゼ」を提唱した。
分析の開発と運用全体が、今や機械によって実行可能になっているということ。
— (ガンディが引用したバベッジの原文ではイタリック体)[ 47 ]
ガンディによるバベッジの解析機関の分析では、以下の5つの演算が説明されている( 52~53ページ参照)。
ガンディは、「(1)、(2)、(4)で計算できる関数は、まさにチューリング計算可能な関数である」と述べている。[ 48 ]彼は、パーシー・ラドゲート(1909年)、レオナルド・トーレス・ケベド(1914年)[ 49 ] [ 50 ] 、モーリス・ドカーニュ(1922年)、ルイ・クフィニャル(1933年) 、ヴァネヴァー・ブッシュ( 1936年)、ハワード・エイケン(1937年)など、「万能計算機」に関する他の提案を挙げている。しかしながら:
…重点は、固定された反復可能な算術演算シーケンスのプログラミングに置かれています。計算機の一般理論にとって条件付き反復と条件付き転送の根本的な重要性は認識されていません…
—ガンディ[ 51 ]
1900年に著名な数学者ダフィット・ヒルベルトが提起したヒルベルト問題に関して言えば、問題10のある側面は、正確に定式化されるまでに30年近くも議論されていた。ヒルベルトによる問題10の元の表現は以下のとおりである。
10. ディオファントス方程式の可解性の判定。任意の数の未知量と有理整数係数を持つディオファントス方程式が与えられたとき、有限回の演算で、その方程式が有理整数で解けるかどうかを判定できる手順を考案する。決定問題(一階述語論理の決定問題)は、任意の論理式が有限回の演算でその妥当性または充足可能性を判定できる手順がわかっているときに解決される。決定問題は、数理論理学の主要な問題とみなされなければならない。
—この翻訳とドイツ語原文は、Dershowitz and Gurevich, 2008 [ 52 ]に引用されている。
1922年までに、この「Entscheidungsproblem」という概念は多少発展し、H. Behmannは次のように述べた。
決定問題 の最も一般的な形式は次のとおりです 。
与えられた純粋に論理的な主張の真偽を有限の手順で判断できるような、明確で一般的に適用可能な手順が必要である。
—ガンディ[ 53 ]はベーマンの言葉を引用している。
ベーマンは、一般的な問題はどの数学的命題が真であるかを決定する問題と同等であると述べている。
—同上
決定問題を解決できれば、「多くの(あるいはすべての)数学的問題を解決するための手順」が得られることになるだろう。
1928年の国際数学者会議までに、ヒルベルトは「質問をかなり明確にした。第一に、数学は完全か…第二に、数学は無矛盾か…第三に、数学は決定可能か?」[ 55 ] [ 56 ]最初の2つの質問は、ヒルベルトが引退演説を行ったまさにその会議で、1930年にクルト・ゲーデルによって回答された(ヒルベルトにとっては残念なことだった)。3番目の質問、つまり決定問題は、1930年代半ばまで待たなければならなかった。
問題は、まず「明確な一般適用可能な処方箋」の正確な定義が必要だったことであり、プリンストン大学のアロンゾ・チャーチ教授はこれを「有効計算可能性」と呼ぶようになったが、1928年当時はそのような定義は存在しなかった。しかし、その後6〜7年の間に、エミール・ポストは、作業員が指示リストに従って部屋から部屋へと移動しながら書き込みや消去を行うという定義を開発した[ 57 ]。チャーチと彼の2人の学生、スティーブン・クリーネとJB・ロッサーも、チャーチのラムダ計算とゲーデルの再帰理論(1934年)を用いて同様の定義を開発した。チャーチの論文(1936年4月15日発表)は、決定問題が実際に「決定不能」であることを示し[ 58 ]、チューリングよりほぼ1年早くこの問題を解決した(チューリングの論文は1936年5月28日に提出され、1937年1月に発表された)。その間、エミール・ポストは1936年秋に短い論文を提出したため、チューリングは少なくともポストよりも優先権を持っていた。チャーチがチューリングの論文を査読している間、チューリングはチャーチの論文を研究し、付録にチャーチのラムダ計算と自身の機械が同じ関数を計算するという証明の概略を書き加える時間があった。
しかし、チャーチが行ったことはそれとはかなり異なり、ある意味では弱いものだった。…チューリングの構成はより直接的で、第一原理からの議論を提供し、チャーチの証明の欠点を補った。
—ホッジス[ 9 ]
ポストは計算可能性の定義を提案し、チャーチの「定義」を批判しただけで、何も証明していなかった。
1935年の春、ケンブリッジ大学キングス・カレッジの若き修士課程学生だったチューリングは、この難題に挑んだ。彼は論理学者M.H.A.ニューマンの講義に刺激を受け、「そこからゲーデルの研究と決定問題について学んだ…ニューマンは『機械的』という言葉を使った…1955年のチューリングの追悼記事でニューマンは次のように書いている。
「機械的なプロセスとは何か?」という問いに対し、チューリングは「機械によって実行できるもの」という彼らしい答えを返し、計算機の一般的な概念を分析するという、彼にとって非常に好ましい課題に着手した。
—ガンディ[ 59 ]
ガンディは次のように述べている。
チューリングは研究を始めた当初から、決定問題の不確定性を証明することを目標としていたのではないかと推測するが、確証はない。彼は、論文の「主要なアイデア」は1935年の夏、グラントチェスターの草原で寝そべっていた時に思いついたと私に語った。その「主要なアイデア」とは、計算の分析だったのか、あるいは万能機械の存在に気づき、それによって不確定性を証明するための対角線論法を思いついたことだったのかは定かではない。
ガンディはニューマンの上記の発言を「誤解を招く」ものだと考えていたが、この意見は皆が共有しているわけではない。チューリングは生涯にわたって機械に興味を持っていた。「アランは少年時代、タイプライターを発明することを夢見ていた。彼の母親であるチューリング夫人はタイプライターを持っていた。そして彼は、タイプライターを『機械式』と呼ぶとはどういう意味なのかを自問することから始めたのかもしれない」(ホッジス著、 96ページ)。プリンストン大学で博士号取得を目指していたチューリングは、ブール論理乗算器を製作した(下記参照)。彼の博士論文「順序数に基づく論理体系」には、「計算可能な関数」の以下の定義が含まれている。
先に述べたように、「関数の値が純粋に機械的なプロセスによって求められる場合、その関数は実質的に計算可能である」。この記述を文字通りに解釈し、純粋に機械的なプロセスとは機械によって実行可能なプロセスを意味する。これらの機械の構造は、ある標準的な形式で数学的に記述することができる。これらの考え方を発展させると、著者は計算可能な関数を定義し、計算可能性と実質的な計算可能性を同一視するに至った。これら3つの定義(3つ目はλ計算)が等価であることを証明するのは、多少手間はかかるものの、それほど難しくはない。
—チューリング (1939年、166ページ) [ 61 ]
アラン・チューリングは1936年に「aマシン」(自動機械)を発明した。[ 7 ]チューリングは1936年5月31日に論文をロンドン数学会の議事録に投稿したが、[ 62 ]実際に出版されたのは1937年初頭で、別刷りは1937年2月に入手可能になった。[ 63 ]後に「チューリングマシン」という用語を考案したのは、チューリングの博士課程指導教官であるアロンゾ・チャーチであった。 [ 13 ]このモデルにより、チューリングは2つの質問に否定的に答えることができた。
このように、任意の計算が可能な非常に単純な装置の数学的記述を提供することにより、彼は計算の一般的な性質、特に決定問題(Entscheidungsproblem )の計算不可能性を証明することができた。 [ 16 ]
チューリングがイギリスに戻ると、彼は最終的に「エニグマ」と呼ばれる暗号機で作成されたドイツの秘密暗号の解読に共同で責任を負うことになり、ACE(自動計算エンジン)の設計にも関わるようになった。「チューリングのACEの提案は事実上自己完結型であり、そのルーツはEDVAC(アメリカのイニシアチブ)ではなく、彼自身の汎用マシンにあった」(ホッジス p. 318)。クリーネ(1952)がチューリングのテーゼ と名付けたものの起源と性質については、今も議論が続いている。しかし、チューリングが計算機モデルで証明したことは、彼の論文「計算可能な数について、決定問題への応用」(1937)に示されている。
ヒルベルト決定問題には解がないということ...したがって、関数計算Kの与えられた式Uが証明可能かどうかを判断する一般的なプロセスは存在しないこと、つまり、これらの式のいずれか1つのUを与えられたときに、最終的にUが証明可能かどうかを言う機械は存在しないことを示すことを提案します。
—チューリングの論文より、 『決定不能なもの』145ページに掲載[ 64 ]
チューリングの例(彼の2番目の証明):もし「この機械は0を出力することがあるか」という一般的な手順を尋ねられた場合、その質問は「決定不能」である。
1937年、プリンストン大学で博士論文に取り組んでいたチューリングは、ゼロからデジタル(ブール論理)乗算器を構築し、独自の電気機械式リレーを製作した(Hodges p. 138)。「アランの任務は、チューリングマシンの論理設計をリレー式スイッチのネットワークに具体化することであった…」(Hodges p. 138)。チューリングは当初は単に好奇心と実験の段階であったかもしれないが、ドイツではコンラート・ツーゼ(1938年)、米国ではハワード・エイケンとジョージ・スティビッツ(1937年)によって、同じ方向でかなり真剣な研究が行われていた。彼らの研究成果は、第二次世界大戦で枢軸国と連合国の両方の軍隊によって使用された(Hodges p. 298–299参照)。1950年代初頭から中頃にかけて、ハオ・ワンとマービン・ミンスキーはチューリングマシンをより単純な形に縮小した(マーティン・デイビスのポスト・チューリングマシンの前身)。同時に、ヨーロッパの研究者たちは、当時最新鋭だった電子計算機を、現在「チューリングマシン」と呼ばれているものに相当する、コンピュータのような理論的対象へと還元していった。1950年代後半から1960年代初頭にかけて、メルザックとランベック(1961年)、ミンスキー(1961年)、シェパードソンとスタージス(1961年)による偶然にも並行した開発によって、ヨーロッパの研究はさらに進展し、チューリングマシンはカウンタマシンと呼ばれる、より親しみやすいコンピュータのような抽象モデルへと還元された。エルゴットとロビンソン(1964年)、ハートマニス(1971年)、クックとレックハウ(1973年)は、レジスタマシンとランダムアクセスマシンのモデルでこの研究をさらに進めたが、基本的にこれらはすべて、算術のような命令セットを持つマルチテープチューリングマシンに過ぎない。
今日でも、カウンタ、レジスタ、ランダムアクセスマシン、そしてそれらの祖先であるチューリングマシンは、計算理論における諸問題を研究する理論家にとって依然として主要なモデルであり続けている。特に、計算複雑性理論はチューリングマシンを利用している。
計算において操作したい対象(非負整数などの数値や英数字文字列など)に応じて、機械ベースの複雑性理論において、2つのモデルが支配的な地位を占めるようになった。
文字列指向計算の標準モデルを表すオフラインマルチテープチューリングマシン...、およびクックとレックハウによって導入されたランダムアクセスマシン(RAM) ...は、理想化されたフォン・ノイマン型コンピュータをモデル化しています。
—ヴァン・エムデ・ボアス (1990) [ 65 ]
アルゴリズム解析という関連分野においてのみ、この役割はRAMモデルによって担われる。
—ヴァン・エムデ・ボアス (1990) [ 66 ]
チューリングの論文、エミール・ポスト
への「チューリングの慣習」批判に関する
手紙の草稿、ドナルド・W・デイヴィスによる
チューリングの万能計算機への訂正を収録。
デイビス(2004
、p.289ff
)
に再録。
2004
、p.293ff )
に再録。付録には、チューリングの1936–1937年の論文に対する訂正と解説が含まれている。特に、万能計算機のコーディングに対する訂正を含む脚注11と、
チューリングの第一および第二の証明
に対するコメントを含む脚注14を参照
。
デイビス(2004
、pp.115–154
)
に再録。
一部はバージェスによって大幅に書き直されている。チューリングマシンをランベックの「そろばんマシン」(レジスタマシン参照)および再帰関数との関連で提示し、
それら
の
等価
性を示す。
大学院レベルの工学テキスト。幅広いトピックを網羅している。第 9 章「チューリングマシン」には再帰理論も含まれている。
~103ページで、ヘニーは例とフローチャートを用いてUTMについて論じているが、実際の「コード」は示していない。
機械による「言語」の解釈、NP完全性などの問題を中心に展開される。
大学院レベルのテキスト。第XIII章「計算可能な関数」の大部分は、再帰関数の計算可能性のチューリングマシンによる証明などに関するものです。
チューリングマシンが計算の発展において果たした役割については、1.4.5「歴史と参考文献」225ページ以降、および2.6「歴史と参考文献」456ページ以降を参照。
第8章、第8.2節「停止問題の不可能性」を参照。
第2章:チューリングマシン、19~56ページ。
議会図書館請求記号:QA76.H279 1990
チューリングの1936~1937年の論文と、ホーキングによる解説と伝記を収録。
彼の証明に至るまでの経緯と議論については、「真理の精神」の章を参照。
年の修正