2013-12-11 6 views

答えて

8

DFAの各トランジションは、入力の文字を読み取り、トランジションに続いて入力の次の文字に移動します。すべての入力が読み取られると、DFAは受諾状態にある場合はそれを受け入れ、それ以外の場合は拒否します。

チューリングマシンで直接シミュレートすることができます。 DFAの各状態に対して1つの状態を作成して、チューリングマシンの有限状態制御を構築します。キャラクタcのDFAの各トランジションについて、TMのトランジションをキャラクタcを読むときに、何らかのキャラクタをテープに書き戻す(それは問題ではない)、次にテープヘッドを右に移動させるテープ上の次の地点まで)。次に、各状態について、その状態から(状態が受け入れられているか拒否されているかに基づいて)TMの受け入れ状態またはTMの拒絶状態のいずれかに、ブランクシンボルの遷移を導入する。このTMは、手動で入力文字列をステップ実行し、最後に実行の終了時に受け入れるか拒否するかを決定することによって、DFAを効果的に実行します。

希望すると便利です。

+0

状態遷移には至らない文字cが読み込まれるとどうなりますか?任意の文字が書かれていて、テープヘッドはまだ動きますか? – Paradox

+0

@ Paradox DFAのほとんどの定義の下では、DFAは各文字と各状態に対して定義された遷移を持っていなければなりません。同様に、ほとんどのTMは、どんな種類のシンボルを入力として供給できるのかを制限する方法で定義されているため、これについては心配する必要はありません:遭遇するTMシンボルは、DFAが定義された移行。また、その制限がない場合は、拒否するだけです.DFAの言語はアルファベットの文字のみに制限されているため、外来文字が表示されている場合は、その文字列が言語に含まれていないことがわかります。 – templatetypedef

関連する問題