そうでない場合、いくつかの状態といくつかの記号に対して、が存在しない場合、それはどういう意味ですか?A δ (Q 、)
そうでない場合、いくつかの状態といくつかの記号に対して、が存在しない場合、それはどういう意味ですか?A δ (Q 、)
回答:
争点のある問題に遭遇したようです。どうやらコンピュータ科学者は議論するのが好きだ。私は確かに議論したいので、ここに行きます!
私の答えは明確です。いいえ。決定論的有限オートマトンは、すべてのシンボルのすべての状態からの遷移を必要としません。が存在しない場合の意味は、DFAが入力文字列を受け入れないことです。
が存在することを必要とするDFAの定義を作成することはできますが、遷移が欠落していると、多くのコメンターと同じように、結果の構造(どのような名前でも)が非決定的になるわけではありません主張している。オートマトン理論のコースを受講している場合、次のトピックは、コンテキストフリー言語とプッシュダウンオートマトンで、非決定論的オートマトンと決定論的オートマトンの違いは重要であり、非決定論の正しい定義を使用する必要があります。
非決定論は、複数の法的移行を伴うことに関連しています。
私たちは皆、次のウィキペディアの定義に同意していると思います(1秒で表示されますが、少しあいまいです)。
決定論的有限オートマトンは、以下から構成される5タプル(、、、、)です。
ましょうであるアルファベット上列。オートマトンは、状態のシーケンスr 0、r 1、… 、r nが次の条件でQに存在する場合、文字列受け入れます。
あいまいさ、および論争は、遷移関数(最初の黒丸付きリストの番号「3」)の定義を超えています。DFAとNFAを区別するものは、が関係ではなく関数であることです。しかし、ある部分関数または合計機能?
が部分関数の場合、DFAの定義は問題なく機能します。入力文字列が与えられ、次の状態がない入力シンボルa jで状態到達した場合、オートマトンは単に受け入れません。
さらに、この定義を拡張してプッシュダウンオートマトンの定義を作成する場合、部分関数である遷移関数を持つプッシュダウンオートマトンは非決定論ではなく決定論として分類されるということを区別する必要がある場合です。
部分的な関数が気になる場合は、を完全な関数にする簡単な変換を次に示します。(この変換はない部分集合構築アルゴリズムと同様に、それはほとんどのO(1)の状態で追加され、状態の元の数に線形であり、およびPDAで動作するように拡張することができる。これらの事実はいずれもサブセット構築アルゴリズムの真ではありません。)
このオートマトンには、合計関数があり、元のオートマトンが受け入れて拒否したのとまったく同じ状態のセットを受け入れて拒否します。
コメンター@Alex Smartは、参考文献を提供したり、なぜ気にする必要があるのかを説明したりしないと私を正しく批判しています。だからここに行く:
決定論と非決定論の正確な定義を重視する理由は、非決定論的なオートマトンの一部のクラスは決定論的な従兄弟よりも強力であり、非決定論的なオートマトンの一部のクラスは決定論的な従兄弟よりも強力ではないためです。有限オートマトンおよびチューリングマシンの場合、確定的バリアントと非確定的バリアントのパワーは同等です。プッシュダウンオートマトンの場合、区別が重要な言語があります。その言語を受け入れるNPDAがあり、その言語を受け入れるDPDAはありません。線形有界オートマトンの場合、質問は(または私が最後にチェックしたときに)開かれています。DPDAに対するNPDAの能力の向上は、複数の 遷移関数を完全関数から部分関数に変換することからではなく、遷移。
コンパイラコミュニティの書籍:
Aho and Ullman、Principles of Compiler Design、1977:最初に遷移関係を使用してNFA(88ページ)を定義し、次に(p。90-91):
Aho、Sethi、およびUllman、Compilers、principles、techniques、およびtools、1988年の再版は類似しており、最初にNFAを遷移関係で定義し、次に(p。115-116):
(@Alex Smartのコメントでは、「ドラゴンは関数が完全であると具体的に述べています。 )
Appel、Javaでのモダンコンパイラの実装、1988(p。22):
決定性有限オートマトン(DFA)、同じ状態から出るどの2つの縁部は同じ符号で標識されていません。
次にAppelは、DFAを使用して最長一致を認識する場合、欠落している遷移を明示的に使用して停止するタイミングを決定することを説明します(p。23)。
とき死んだ状態(無出力遷移を持つ非最終状態)に達している、[我々はこれまで見てきた最長一致がレコード]マッチしたトークン何を言う、それが終わった変数。
スイッチング理論コミュニティの書籍:
コハビ、スイッチングと有限オートマトン理論、2 / e、1978、p。611さんのコメント:
状態図は確定的なマシンを記述するため、次の状態遷移は、現在の状態と現在スキャンされている入力シンボルによって一意に決定される必要があります。
私は通常、「1つだけ」ではなく、「1つだけ」を一意に解釈します。(すなわち、コハビは決定論には完全な機能が必要であると言っているようです)
計算理論コミュニティの書籍:
ここでは、NFAの前にDFAを定義し、DFAに完全な遷移関数を必要とするが、DPDAの前にNPDAを定義し、「決定論」を遷移関係の制限として定義することがより一般的であるようです。 -状態/シンボルのペアごとに1つのエントリ。
これは、Hopcroft and Ullman、1979、Lewis and Papadimitriou、1981、特にDFAの定義を教育学的に使用して正確な正式な定義を導入し、それらの重要性を説明して明示的に述べている(p.36)に当てはまります。
興味深いことに、ラビンとスコットは、総関数の観点から非決定性有限オートマトンも定義しています!ページ120、定義9:
つまり、遷移関数が合計であっても、システムは確定的ではありません。
Sipser 2006は、RabinとScottに続き、非決定性有限オートマトン、非決定論的PDA、非決定論的チューリングマシンの定義に、状態/記号から状態のべき集合への完全な遷移関数を使用しますが、決定論のトピックをスキップしますPDA。
HopcroftとUllman(1979)、およびLewisとPapadimitriou(1981)はどちらも、決定論的PDAの定義に部分関数を使用しています。彼らは最初に遷移関係を持つNPDAを定義し、次にPDAに到達すると、ルイスとパパディミトリウは言う(p。135)、
プッシュダウンオートマトンは、直感的に言えば、各構成に適用できるトランジションが1つしかない場合に決定論的です。
ホップクロフトとウルマンはこう言っている(112ページ)。
PDA ...は、どのIDからでも最大で1つの移動が可能であるという意味で確定的です。
計算可能性の点では、NFAはDFAと同等です。NFAからDFAに変換するアルゴリズムがあり、DFAは、非決定性を使用しないNFAであるため、通常の言語のセットを定義します。
DFAの定義は次のとおりです。
その場合、すべての遷移が必要になるわけではありません。オートマトンに次の入力シンボルに適合する遷移がない場合、拒否されます。
受け入れ可能な言語に関して、両方の定義が同等であることを示すのは良い練習です。
DFAの定義では、すべての州がすべての英字を£で表す必要があります。たとえば、£= {a、b、c}およびQ = {q0、q1、q2}の場合、これらの状態はすべて、他の状態または同じ状態に遷移するすべてのa、b、cシンボルを持つ必要があります。