決定論的有限オートマトンで可能なすべてのアルファベットの遷移を定義することは必須ですか?


13

明日は私のプレゼンテーションであり、私の概念を明確にしたい…

DFAでは、「各状態について、可能なすべてのシンボル(アルファベット)の遷移を定義する必要がある」と読みました。

各状態について、DFAではすべての可能なシンボルの遷移を定義することが必須ですか?そうでない場合は、例を挙げてください。


1
CS.SEへようこそ!投稿ごとに質問を1つだけ行うことをお勧めします。これは、2つの別個の質問のように見えます。2番目(NFAについて)を個別に投稿することをお勧めします。また、このサイトで徹底的に検索し、教科書の正式な定義を確認しましたか?そうでない場合は、質問する前にそれを行う必要があります。そして、あなたがそれをしたときに見つけたものを質問で私たちに見せるべきです。
DW

暖かい歓迎をありがとう、私は実際にこのサイトとグーグルでも検索しましたが、私は実際に私を混乱させる反対のビューを取得しています
。– HQuser

2番目の質問は削除されましたが、編集履歴で見つけることができ、右上の[質問する]ボタンを使用して個別の質問として個別に投稿できます。ただし、質問する前に、提案された研究を必ず行い、どの教科書を読んだかなど、どのような研究を行ったかを質問で教えてください。この質問に関する限り、教科書の正式な定義を調べて質問に含め、その定義の解釈を示すことで、ここで与えたフィードバックに対処するためにこの質問を編集できます。
DW

9
とにかく、これはcs.stackexchange.com/q/12587/755でカバーされているようです。コミュニティ投票してください:これは重複ですか?
DW

1
私はあなたの質問を本当に理解していません。「定義はXだと読んだことがあります。定義はXですか?」
デビッドリチャービー

回答:


12

DFAは、次のデータによって指定されます。

  • アルファベットΣ
  • 状態セット。Q
  • 初期状態q0Q
  • 最終状態の集合FQ
  • 遷移関数δQ×ΣQ

のシグネチャからわかるように、すべてのシンボルのすべての状態で遷移を指定します。δ


7
ただし、DFAは部分遷移関数で定義される場合があります。
ジル「SO-悪であるのをやめる」

6
そうです、DFAの「公式」定義はありません。しかし、OPの読み取りは、この特定の定義の影響を裏付けています。
ユヴァルフィルマス

遷移関数が合計であることを明示的に言う必要があります。
ライアン

24

DFAで欠落している遷移を許可したとします。遷移が定義されていないシンボルに遭遇するとどうなりますか?結果は未定義です。これは、DFAの「決定論的」特性に違反しているようです。

ただし、このような不完全な DFAを完全 DFAに変換するのは簡単です。単に新しい状態を追加し、illegal未定義の遷移をillegal状態にマッピングします。最後に、illegal状態からそれ自体に戻るすべてのシンボルの遷移を追加します。このillegal状態は、シンク状態と呼ばれます。これは、データがシンクに落ちた後、抜け出す方法がないためです。

したがって、実用的な観点からは、欠落しているトランジションを処理するための明確な方法がある限り、それは一種の論争です。


10
注意:定義されていない遷移は、オートマトンを非決定的ではなく、単に不完全にします。体系的に完了するのは簡単なため、このような未定義の遷移を許可するDFAの定義がいくつかあります。
ダークホッグ

1
@Darkhogg、私は必ずしも同意しませんが、不完全なDFAの決定論は、特定の実装がこれらの未定義/欠落遷移をどのように処理するかに依存しませんか?そして、そのような実装はDFAを暗黙的に完成させないでしょうか?
ネイサンデイビス

1
いいえ、実装に依存せず、定義に依存します。DFAを完全な遷移関数を持つものとして定義してから、部分関数を確実に使用すると、動作が未定義になり、最終的に非決定性になる可能性がありますが、それは与えられていません。ただし、DFAは部分関数を使用するように明示的に定義されている場合があり、未定義の遷移が発生すると、動作は「受け入れられない」期間になります。トランジションが定義されていない場合でも結果が定義されるため、実装には非決定性やファンキーなものはありません。
ダークホッグ

ところで:逆の変換を行うこともできます。「完全なオートマトン」を取得し、シンク状態を削除して「不完全なオートマトン」を取得します。最後に、唯一の違いは、完全なオートマトンは常に最後まで単語を読むことができ、その後、単語を受け入れるかどうかを決定し、部分オートマトンはすべての単語を読む前にいくつかの単語を拒否できることです文字。
バクリウ

5

ΣQρQ×Σ×QδQ×Σ2Q|δqσ|1qQσΣδqσqQσΣ

NFAに受け入れの実行がある場合、単語はNFAによって受け入れられます。決定論的オートマトンの実行は最大で 1つです。完全なオートマトンには、少なくとも 1つの実行があります。

一部の著者は、各状態が初期状態から最終状態への何らかのパス上にあるものとしてトリムオートマトンを定義しています。特定の言語では、トリムと完全なオートマトンを使用できません。これらの場合、決定性オートマトンの定義から完全性の要件を除外すると便利です。

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