回答:
チューリングマシンによって認識される言語は、定義上、受け入れられる文字列のセットです。マシンに入力が与えられると、その入力は受け入れられるかされません。そのマシンへの特定の入力は、常に(言語で)受け入れられるか、常に受け入れられない(言語ではなく)のいずれかです。したがって、単一のチューリングマシンが複数の言語を受け入れるメカニズムさえありません。
このように考えてください。TMは、ソフトウェアがロードされたコンピューターのようなものです。各ソフトウェアは1つのことを行いますよね?たとえば、コンピューターを考えて、コンピューターにプログラムが1つしか読み込まれていないと仮定します。その場合、PC +「フォトショップ」はフォトショップのみを行い、PC +「地雷除去機」は地雷のみを掃引します。
だからチューリングマシンは、各実行に単一の入力および出力のいずれかを取得することを、非常に単純な生き物であるイエスかノーを。どの入力でyesと表示され、どの入力でnoと表示されますか?これは、TMの「プログラム」によって設定され、状態と遷移関数によって決定されます。これらが修正されると、「プログラム」が修正され、特定の入力に対して「はい」または「いいえ」(受け入れ/拒否)の1つの答えしかありません。これは、単一の言語= TMに与えられたときにYesを生成するすべての入力を正確に定義します。
一方、セットのすべてのTMは、すべての可能なプログラムとコンピュータ+「ソフトウェア」のセットと同等です。より多くの言語を決定できるようになりましたが、それでも特定のTMはそれぞれ1つの言語のみを決定(または認識)します。
チューリングマシンは、そのように定義することを選択しているので、そのまま動作します。 より洗練された定義を持つこともできますが、問題は、それが目的を果たすかどうか、それがもっと多くのことをできるようにするかどうかです。そして、私たちが知る限り、答えはノーです。
2つの言語を認識するチューリングマシンのモデルを作成するのは非常に簡単です。言語およびL 2が与えられた場合、2種類の受け入れ状態を持つTMを定義できます。1つはL 1用、もう1つはです。TMは、ある時点で対応する受け入れ状態に入ると、 L iを受け入れると言われます。しかし、他の種類の受け入れ状態に入ることもできるかどうかを確認するために計算を再開します。そして、後で停止するか、おそらく停止しないことを要求できます。そのようなマシンで理論全体を構築できます。これは機能し、通常の作業よりもはるかに複雑になります。
「1つのチューリングマシンが複数の言語を受け入れるメカニズムはない」というDavid Richerbyの声明に答えるために、それはそのようなメカニズムを考慮しないことを選んだからです。TMを非常に標準的なモデルに制限しても、入力は言語であると認識されていると言えます 、TMが奇数ステップの受け入れ状態で停止した場合、 L 1、TMが受け入れた場合は L 2であると言えます偶数ステップで。非決定性のおかげで、これはTMが2つの交差する言語の両方を認識することを妨げません。
ポイントは、あらゆる種類のバリアントを使用して理論を実行できることです。また、ラムダ計算、比較論理、再帰関数理論など、計算とは何かをモデル化するために、非常に異なるアプローチが試みられてきました。
TMが1つの言語のみを認識する単純なモデルでは不可能なことは何もしないことが常に示されてきました。できることは何でもすることが推測されるほどに。それは教会チューリング論文と呼ばれます。計算可能な理論の基礎であり、私たちが知る限り、どの言語が認識可能かどうかを決定します。
単純なモデルを使用することもできます。複雑なモデルを使用すると、実際のメリットがなくても人生が難しくなります。
もちろん、他のモデルを使用することもあります。これは、いくつかの問題をよりよく理解できるようにするためです。
Richerbyの答えの1つのポイントを拡大したいと思います。
マシンに入力が与えられると、その入力は受け入れられるかされません。
これは、チューリングマシンが決定論的であるためです:同じ入力および開始状態が与えられると、実行するたびに常に同じことを行います(同じ受け入れ状態または同じ拒否状態で終了するか、永久にループします) )。
さらに、すべてのチューリングマシンが正確に1つの言語を認識することを簡単に証明できます。
矛盾により、チューリングマシンMが2つの異なる言語L1とL2を認識すると仮定します。L1とL2は異なるため、L1にはあるがL2にはない文字列Sが存在する必要があります(一般性を失うことなく、逆も可能ですが、ここからL1とL2を交換して同じように証明を進めます) )。ここで、MをSで実行します。受け入れる場合、SはL2にあるため、矛盾に達します。受け入れない(拒否またはループする)場合、SはL1にないため、矛盾が生じます。
チューリングマシンは、認識という言葉の定義であるため、1つの言語を認識します。チューリングマシンが認識する言語は、チューリングマシンが受け入れるすべての文字列/入力のセットです。
これに対する答えは、「チューリングマシン」を意味するときに正確に理解する内容によって異なります。計算モデルには3つのコンポーネントがあります(ここでは決定者/受容者に限定されます)。
チューリングマシンの場合、構文は状態セット、アルファベット、遷移関数などのタプルになります。セマンティクスは定義しまう計算、それはいくつかのステップの後、テープ内容を導出するために、遷移関数を適用する方法を説明することです。合格基準、言うことです「この問題が発生したとき、私たちは停止し、その結果は、ということです」。
チューリングマシンは構文とセマンティクスのみを使用していますか、それとも受け入れ基準も含めていますか?前者の場合、TMは異なる受け入れ基準を使用して複数の言語を受け入れることができます。複数の受け入れ可能な言語を許容する受け入れ基準を考えることもできます(たとえば、2パラメーターTMについて考えてください)。ただし、後者を行う場合、ゆらぎの余地はなく、通常の受け入れ基準では、実際に(このタイプの)TMごとに1つの言語のみが許可されます。
TCSの用語の通常の定義と使用には、3つのコンポーネントすべてが含まれます。特に、受け入れ基準を変更すると、オートマトンが大幅に表すオブジェクトのクラスを変更できるため、話を知るために基準を修正する必要があります。
例として、有限オートマトンとBüchiオートマトンを比較します。構文とセマンティクスはまったく同じですが、一方は有限の単語を受け入れ、もう一方は無限の単語を受け入れます!
Büchiオートマトンの受け入れ基準をTM定義に組み込むとどうなるかを理解してください。
さて、通常の受け入れ基準が意味のあるものであるのはなぜですか?有限文字列の言語に制限する限り、概念レベルでは、TMごとに複数の言語を使用してもほとんど変わりません。同じ言語のセットを引き続き使用できます。したがって、より単純なモデルに固執します。ただし、より複雑なモデルは、アプリケーションでのモデリングには役に立たないということではありませんが、それはTCS(定義権限を保持している)の範囲を超えています。
言語は文字列のセットです。2つの言語L1とL2の結合は文字列のセットではありません(L3と呼びましょう)。次に、Turingマシンが両方の言語を認識する場合、単一の言語であるL3を認識します。
チューリングの停止証拠で最初に説明/発見されたユニバーサルチューリングマシンの存在を指摘する回答は他にありません。はい。TMは、再帰的に列挙可能な単一の言語を受け入れますが、UTMは、入力文字列とともに入力でエンコードされている場合、再帰的に列挙可能な言語を認識できます。そのため、質問にはいくつかの禅のような品質があります。TMはどちらも、単一の言語とすべての可能なエンコード可能な言語のみを受け入れます。