チューリングマシンが正確に1つの言語を認識するのはなぜですか?


13

認識できない言語の存在を理解しようとしています。これを得るには、チューリングマシンが複数ではなく1つの言語のみを認識する理由を知る必要があります。どうしてこれなの?


12
私たちが「言語」とはどういう意味なのか、明確な考えを持っていないのではないかと思います。「言語」とは何だと思いますか?
エリックリッパー

なぜあなたはそれを知っている必要がありますか?どのような点で違いが生じると思いますか?
babou

回答:


29

チューリングマシンによって認識される言語は、定義上、受け入れられる文字列のセットです。マシンに入力が与えられると、その入力は受け入れられるかされません。そのマシンへの特定の入力は、常に(言語で)受け入れられるか、常に受け入れられない(言語ではなく)のいずれかです。したがって、単一のチューリングマシンが複数の言語を受け入れるメカニズムさえありません。


6
「定義による」とは、まさに私が言っていたものです。
デイブクラーク

1
@DaveClarkeもちろん、定義によるものです。しかし、これは少し短いように思えます。TMが2つの言語または任意の数を受け入れるように、定義を変えることができると言っているからです。実際、TMが2つの言語を受け入れるメカニズムはないというDavid Richerbyの声明に同意しません。それは、それらを無視することを選択したからであり、それ以外の場合は可能です。したがって、私たちがそうすることを正当化するものを説明しなければ、質問は完全に答えられません。
-babou

2
ここでの問題は、「言語」自体を記述するために使用されている言語だと思います。チューリングマシンは、言語の定義に関係なく、文字列形式のすべてを受け入れます。TMは受け入れる言語によって言語を定義しますが、これは言語の(人間の)理解とは異なります。これが、この回答が適切であり、「...完全に回答された」理由です。
デビッドバーカー

2
OPは、チューリングマシンが1つの言語のみを認めていることを読んでいる可能性が高く、その意味を理解しようとしているDavidに同意します。これがおそらく通常のソースから来ていることを考えると、他の定義ではなく、計算理論で定義されている「言語」の通常の定義を使用していると想定できます。定義はarbitrary意的かもしれませんが、arbitrary意的な定義についてはよく理解され同意されています。
コートアンモン-モニカの復元

3
2つの言語を受け入れるチューリングマシンは、2つの言語の和集合である言語を受け入れるチューリングマシンです。
サイモンリヒター

9

このように考えてください。TMは、ソフトウェアがロードされたコンピューターのようなものです。各ソフトウェアは1つのことを行いますよね?たとえば、コンピューターを考えて、コンピューターにプログラムが1つしか読み込まれていないと仮定します。その場合、PC +「フォトショップ」はフォトショップのみを行い、PC +「地雷除去機」は地雷のみを掃引します。

だからチューリングマシンは、各実行に単一の入力および出力のいずれかを取得することを、非常に単純な生き物であるイエスノーを。どの入力でyesと表示され、どの入力でnoと表示されますか?これは、TMの「プログラム」によって設定され、状態と遷移関数によって決定されます。これらが修正されると、「プログラム」が修正され、特定の入力に対して「はい」または「いいえ」(受け入れ/拒否)の1つの答えしかありません。これは、単一の言語= TMに与えられたときにYesを生成するすべての入力を正確に定義します。

一方、セットすべてのTMは、すべての可能なプログラムとコンピュータ+「ソフトウェア」のセットと同等です。より多くの言語を決定できるようになりましたが、それでも特定のTMはそれぞれ1つの言語のみを決定(または認識)します。


軽微な点:TMが「yesまたはnoのいずれか」を出力するとは言いません。これは非終了を無視するからです。この単純化は、後でさらに問題を引き起こす可能性があります。
チー

4

チューリングマシンは、そのように定義することを選択しているので、そのまま動作します。 より洗練された定義を持つこともできますが、問題は、それが目的を果たすかどうか、それがもっと多くのことをできるようにするかどうかです。そして、私たちが知る限り、答えはノーです。

2つの言語を認識するチューリングマシンのモデルを作成するのは非常に簡単です。言語およびL 2が与えられた場合、2種類の受け入れ状態を持つTMを定義できます。1つはL 1用、もう1つはL1L2L1です。TMは、ある時点で対応する受け入れ状態に入ると、 L iを受け入れると言われます。しかし、他の種類の受け入れ状態に入ることもできるかどうかを確認するために計算を再開します。そして、後で停止するか、おそらく停止しないことを要求できます。そのようなマシンで理論全体を構築できます。これは機能し、通常の作業よりもはるかに複雑になります。L2Li

1つのチューリングマシンが複数の言語を受け入れるメカニズムはない」というDavid Richerbyの声明に答えるために、それはそのようなメカニズムを考慮しないことを選んだからです。TMを非常に標準的なモデルに制限しても、入力は言語であると認識されていると言えます 、TMが奇数ステップの受け入れ状態で停止した場合、 L 1、TMが受け入れた場合は L 2であると言えます偶数ステップで。非決定性のおかげで、これはTMが2つの交差する言語の両方を認識することを妨げません。L1L2

ポイントは、あらゆる種類のバリアントを使用して理論を実行できることです。また、ラムダ計算、比較論理、再帰関数理論など、計算とは何かをモデル化するために、非常に異なるアプローチが試みられてきました。

TMが1つの言語のみを認識する単純なモデルでは不可能なことは何もしないことが常に示されてきました。できることは何でもすることが推測されるほどに。それは教会チューリング論文と呼ばれます。計算可能な理論の基礎であり、私たちが知る限り、どの言語が認識可能かどうかを決定します。

単純なモデルを使用することもできます。複雑なモデルを使用すると、実際のメリットがなくても人生が難しくなります。

もちろん、他のモデルを使用することもあります。これは、いくつかの問題をよりよく理解できるようにするためです。


最初の段落は少し誤解を招くと思います。OPがなぜこのように物事を定義しているのかを尋ねているのではなく、それが事実であるとさえ知らなかったのは間違いないでしょう。「もっと洗練された定義を持つこともできますが、問題はそれが目的に役立つかどうかです」ということは、名前を推測する前にコンセプトの目的を知る必要があるように思われます-私の意見では、それは悪いことです学ぶ方法。
興味深いことに、

OPは、TMが他の何かを理解するために1つの言語のみを認識する理由を知りたいと言います。私は彼に答えています、彼らがそうするのは、彼らをそのように定義しているからです。確かに、別の定義を使用することもできますが、理論は変わりません。それは、彼が何を求めているとしても、定義の選択は重要ではなく、認識可能性はまったく同じセットをカバーするために定義されるかもしれないことを彼に伝える方法です。定義を選択する理由は利便性と実り豊かさであり、それが時間とともに進化する理由であり、概念の命名方法や表記方法も同様です。
babou

さて、それは理にかなっています。私は主に「洗練された」の使用に反対していると思います-それは、それほど単純でない定義が望ましいことを意味します。
興味深いことに、

3

Richerbyの答えの1つのポイントを拡大したいと思います。

マシンに入力が与えられると、その入力は受け入れられるかされません。

これは、チューリングマシンが決定論的であるためです:同じ入力および開始状態が与えられると、実行するたびに常に同じことを行います(同じ受け入れ状態または同じ拒否状態で終了するか、永久にループします) )。

さらに、すべてのチューリングマシンが正確に1つの言語を認識することを簡単に証明できます。

矛盾により、チューリングマシンMが2つの異なる言語L1とL2を認識すると仮定します。L1とL2は異なるため、L1にはあるがL2にはない文字列Sが存在する必要があります(一般性を失うことなく、逆も可能ですが、ここからL1とL2を交換して同じように証明を進めます) )。ここで、MをSで実行します。受け入れる場合、SはL2にあるため、矛盾に達します。受け入れない(拒否またはループする)場合、SはL1にないため、矛盾が生じます。


2

チューリングマシンは、認識という言葉の定義であるため、1つの言語を認識します。チューリングマシンが認識する言語は、チューリングマシンが受け入れるすべての文字列/入力のセットです。


2
コンピュータサイエンスへようこそ!あなたの答えは(IMO)正しいですが、既存の答えに追加されるとは思いません。未回答の質問がたくさんあります。既存の回答を繰り返すよりも、そのうちの1つに回答する方がはるかに興味深く、生産的です。
デビッドリチャービー

1
ありがとう!実際、最初は現在受け入れられている回答があまりにも短いので見られませんでしたが(他の回答は良いと思います)、他の回答では質問に簡単に答えられないと感じました。
興味深いことに、

1

これに対する答えは、「チューリングマシン」を意味するときに正確に理解する内容によって異なります。計算モデルには3つのコンポーネントがあります(ここでは決定者/受容者に限定されます)。

  • 構文、
  • セマンティクス、
  • 合否基準。

チューリングマシンの場合、構文は状態セット、アルファベット、遷移関数などのタプルになりますセマンティクスは定義しまう計算、それはいくつかのステップの後、テープ内容を導出するために、遷移関数を適用する方法を説明することです。合格基準、言うことです「この問題が発生したとき、私たちは停止し、その結果は、ということです」。

チューリングマシンは構文とセマンティクスのみを使用していますか、それとも受け入れ基準も含めていますか?前者の場合、TMは異なる受け入れ基準を使用して複数の言語を受け入れることができます。複数の受け入れ可能な言語を許容する受け入れ基準を考えることもできます(たとえば、2パラメーターTMについて考えてください)。ただし、後者を行う場合、ゆらぎの余地はなく、通常の受け入れ基準では、実際に(このタイプの)TMごとに1つの言語のみが許可されます。

TCSの用語の通常の定義と使用には、3つのコンポーネントすべてが含まれます。特に、受け入れ基準を変更すると、オートマトンが大幅に表すオブジェクトのクラスを変更できるため、話を知るために基準を修正する必要があります。

例として、有限オートマトンBüchiオートマトンを比較します。構文とセマンティクスはまったく同じですが、一方は有限の単語を受け入れ、もう一方は無限の単語を受け入れます!
Büchiオートマトンの受け入れ基準をTM定義に組み込むとどうなるかを理解してください。

さて、通常の受け入れ基準が意味のあるものであるのはなぜですか?有限文字列の言語に制限する限り、概念レベルでは、TMごとに複数の言語を使用してもほとんど変わりません。同じ言語のセットを引き続き使用できます。したがって、より単純なモデルに固執します。ただし、より複雑なモデルは、アプリケーションでのモデリングには役に立たないということではありませんが、それはTCS(定義権限を保持している)の範囲を超えています。


0

M1L1L2L1L2s1s1L1s1L2M1s1s1L2M1s1sL2sL1

MLsLMssMsL

sLMs

ATM


TMが1つの言語のみを認識することを証明する必要はありません。それは、「認識」の定義からすぐです。その定義を考えると、TMが複数の言語を受け入れること(最初の文で想定しているように)またはそのような仮定からの推論(3番目の文のように)が有効であるかどうかも明確ではありません。矛盾による証明は、演ductionが水密である場合にのみ機能します。ここで、エラーは、そのようなマシンが存在するという仮定ではなく、TMを認識するTMの動作に関する仮定にある可能性があります。
デビッドリチャービー

-2

言語は文字列のセットです。2つの言語L1とL2の結合は文字列のセットではありません(L3と呼びましょう)。次に、Turingマシンが両方の言語を認識する場合、単一の言語であるL3を認識します。


2
しかし、Turingマシン、実際に同じでない限り、両方の言語を認識しません。L1を認識するということは、L1以外の文字列を受け入れないことを意味します。L2を認識するということは、L2の外部には何も受け入れないことを意味します。L1とL2が異なる場合、両方を認識できません。
デビッドリチャービー

-3

チューリングの停止証拠で最初に説明/発見されたユニバーサルチューリングマシンの存在を指摘する回答は他にありません。はい。TMは、再帰的に列挙可能な単一の言語を受け入れますが、UTMは、入力文字列とともに入力でエンコードされている場合、再帰的に列挙可能な言語を認識できます。そのため、質問にはいくつかの禅のような品質があります。TMはどちらも、単一の言語とすべての可能なエンコード可能な言語のみを受け入れます。


4
{M,xM accepts x}

&書かれているものとどう違うのですか?
vzn

2
言語のコーディングを認識することは、言語を認識することと同じではありません。
デビッドリチャービー

はい、正確に述べられている
-vzn

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