チューリングマシンと有限状態マシンの違いは?


27

チューリングマシンに関するプレゼンテーションを行っています。チューリングマシンを紹介する前に、FSMの背景を説明したかったのです。問題は、何が互いに非常に違うのか本当に分からないことです。

私が知っているのは違います:

FSMは、対応する条件に応じて、チューリングマシンが読み取りと書き込みを行うヘッドを備えた無限の「テープ」で動作する状態に応じて連続した状態を持ちます。

FSMにはエラーが発生する余地があります。これは、終了しない状態に簡単に陥ることができるのに対して、チューリングマシンには戻って物事を変更できるのでそれほど問題ではないからです。

しかし、それ以外には、チューリングマシンをFSMよりも優れたものにするほど多くの違いは知りません。

手伝ってくれませんか?


2
「FSM vs. Turing Machine」をグーグルで検索するのは難しくありません!それはあなた自身の研究を行うことの楽しい部分です。主な違いは、チューリングマシンには無限の「メモリ」があるが、FSMにはないことです。

OK、私はそこに少しごまかしました>。> ;; ガッチャ!ありがとう!
フリオガルシア

3
「エラー」に関する議論は正しくありません。ウィキペディアとコースブックをお試しください。それらの基本的な違い、それぞれを使用する目的(たとえば、TMよりもFSMを選択できない場合など)およびそれらの関係を確認してください。
パーハム

@MahmoudAlimohamadi私が言いたいのは、FSMが終わらない状態に着陸する大きなチャンスがあるということです。
フリオガルシア

@Dai:チューリングマシンが任意の大量のメモリを使用する可能性があると言う方が正確です。使用量は無限ではありません。
reinierpost

回答:


24

DFA(確定的有限オートマトン)とTMの動作の主な違いは、メモリの使用方法にあります。

直感的に、DFAには「スクラッチ」メモリがまったくありません。DFAの設定は、現在検出されている状態と、入力の読み取りにおける現在の進捗状況によって完全に説明されます。

直感的に、TMにはテープの形の「スクラッチ」メモリがあります。TMの構成は、現在の状態とテープの現在の内容の両方で構成されており、TMは実行時に変更される場合があります。

DFAは、テープシンボルを変更したり、ヘッドを左に移動したりすることのないTMと見なすことができます。これらの制限により、TMが受け入れることができる特定の言語を認識できなくなります。

定義上、TMの状態の数は有限であるため、技術的にはTMを有限状態マシンと見なすため、「FSM」ではなく「DFA」という用語を使用していることに注意してください。DFAとTMの違いは構成の数にあります。これはDFAの状態の数と同じですが、TMの場合は無限に大きくなります。


ああ、わかった。「メモリなし」の部分に関する1つの質問:分配されたコインを加算する自動販売機の例を見ました。記憶がない場合、どのくらいお金があるかをどうやって知るのでしょうか?
フリオガルシア

@JulioGarciaあなたが見たものを正確に知らずに言うのは難しいです。移行時にシンボルを出力できるMooreおよびMealyマシンがあります。自動販売機のアクティビティは、これらのメカニズムのいずれかによってより適切にモデル化される場合があります。バニラDFAは文字列のみを受け入れ、拒否します...自動販売機はコインの「文字列」を「受け入れる」必要があります。変更を与えることによる追加の副作用をどのようにモデル化するかに応じて、必要なスクラッチメモリの種類は、ゼロまたは無限のランダムアクセスである場合があります。
Patrick87

あなたの例を見ることなく、私は完全に確信することはできませんが、2つの推測があります。1つは、どれだけのお金があるかわからないということです。十分な金額があると仮定しているだけです。本当の自動販売機をそのように構築したくはないでしょうが、それは概念の有用な例です。他の可能性は、それが本当に「純粋な」FSAではないということです:それは何らかの形でマシンの「外部」からこのデータを取得できるセンサーに接続されています。マシンはデータの送信元を認識または気にしません。また、センサーには何も保存できません(したがって、実際には「メモリ」ではありません)。
スプーニエスト

16

チューリングマシンは、再帰的に列挙可能な言語のクラスである、はるかに大きな言語のクラスを記述します。有限状態マシンは、通常の言語のクラスを記述します。

有限状態マシンには「メモリ」がなく、状態によって制限されます。

有限状態マシンは、制限されたチューリングマシンであり、ヘッドは「読み取り」操作のみを実行でき、常に左から右に移動します。

例としてこの言語を取り上げます。

L={aibi| i>=0}

有限状態マシンはメモリがないという意味で制限されているため、Lを受け入れるFSMは構築できません。

要約する:

有限状態マシンは、メモリが不要な小さなクラスの言語を記述します。

チューリングマシンは、コンピューターの数学的記述であり、FSMよりもはるかに大きなクラスの言語を受け入れます。

チューリングマシンには、FSMよりも高い計算能力があります。FSMでは実行できないタスクがありますが、チューリングマシンでは実行できます。


3

私も同じ疑問を抱いていたので、次のような非常に啓発的な2つのビデオとQuoraに関する1つの説明を見ました。

有限状態マシンは、単なる状態と遷移のセットです。唯一のメモリは、どの状態にあるかです。したがって、メモリ状態の数は...有限です。

チューリングマシンは、有限状態マシンとテープメモリです。各遷移には、テープに対する操作(移動、読み取り、書き込み)が伴う場合があります。

私はそれから、チューリングマシンがその操作手順の一部として有限状態マシンを使用する/持っていることに加えて、それに編集可能なメモリを追加することを理解しました。

これらの2つのビデオもご覧ください。

https://youtu.be/gJQTFhkhwPA

https://youtu.be/E3keLeMwfHY


2

(標準モデル)チューリングと(標準モデル)Mealy Machinesの違いを理解している限り:

  • チューリング機械は読み、同じテープ上の書き込みミーリ・マシンは、別の出力テープ上の一つの入力テープと書き込みで読みます
  • チューリングマシンは「テープの方向」を変更できます(左方向または右方向(または停止))vs. Mealyマシンは右方向にしか移動できません(そのためMealyマシンの遷移関数に方向セット{L、R、H}がありません) [暗黙的に{R}であり、選択の余地がないことを意味します])
  • チューリング機械は、任意のテープセルに停止することができますミーリ・マシンは完全な入力を読んで、それを受け入れるか拒否停止します

-3

チューリングマシンは、テープの一部として、覚えておきたいものを保存できます。


5
「それ」の意味は明確ではありませんが、チューリングマシンとFSMの両方がこれを実行できるため、違いはありません。
デビッドリチャービー16

@DavidRicherbyしかし、チューリングマシンは必要なだけ格納できるのに対し、FSMは所定の量しか格納できません。それ根本的な違いです。
ジル「SO-停止されて悪」

1
@Gilles Agreeedですが、答えはそうではありません。
デビッドリチャービー16
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.