DFAでは、すべての州にアルファベットのすべての記号の遷移がありますか?


12

そうでない場合、いくつかの状態といくつかの記号に対して、が存在しない場合、それはどういう意味ですか?A δ Q qaδ(q,a)


同じ状態で入力シンボルが決定論的に複数の遷移を持たない非決定論的なオートマトンを呼び出します。DFAの定義に適合しません。
reinierpost 2013年

1
テープのシンボルがaであるときにDFAのルールが状態qになることができないように配置されている場合、実際にδ(q、a)を定義する必要がありますか?
Peter Shor

4
その答えは、「決定論的有限オートマトン」の定義方法に依存することは明らかです。そのため、普遍的に受け入れられている正解がないため、この質問が完全に建設的であるかどうかはわかりません。つまり、この質問は、意見と議論を誘います。
Patrick87 2013年

1
場合は可能になっている機能を、それがすべてのペアのために定義されている必要があり。Q Aδq,a
フォンブランド、2015

DFAの私の概念では、これは「中止」状態、または「拒否」状態への暗黙のジャンプを希望する場合です。
Yves Daoust、2015

回答:


22

争点のある問題に遭遇したようです。どうやらコンピュータ科学者は議論するのが好きだ。私は確かに議論したいので、ここに行きます!

私の答えは明確です。いいえ。決定論的有限オートマトンは、すべてのシンボルのすべての状態からの遷移を必要としません。が存在しない場合の意味は、DFAが入力文字列を受け入れないことです。δ(q,a)

が存在することを必要とするDFAの定義を作成することはできますが、遷移が欠落していると、多くのコメンターと同じように、結果の構造(どのような名前でも)が非決定的になるわけではありません主張している。オートマトン理論のコースを受講している場合、次のトピックは、コンテキストフリー言語とプッシュダウンオートマトンで、非決定論的オートマトンと決定論的オートマトンの違いは重要であり、非決定論の正しい定義を使用する必要があります。δ(q,a)

非決定論は、複数の法的移行を伴うことに関連しています

私たちは皆、次のウィキペディアの定義に同意していると思います(1秒で表示されますが、少しあいまいです)。

決定論的有限オートマトンMは、以下から構成される5タプル(QΣδq0F)です。

  1. 有限の状態のセット(Q
  2. アルファベット(Σ)と呼ばれる入力記号の有限セット
  3. 遷移関数δ:Q×ΣQ
  4. 開始状態(q0Q)
  5. 状態を受け入れるのセット(FQ)。

ましょうw=a1a2anであるアルファベット上列Σ。オートマトンMは、状態のシーケンスr 0r 1r nが次の条件でQに存在する場合、文字列w受け入れます。r0,r1,,rnQ

  1. r0=q0
  2. ri+1=δ(ri,ai+1)i=0,,n1
  3. rnF

あいまいさ、および論争は、遷移関数δ最初の黒丸付きリストの番号「3」)の定義を超えています。DFAとNFAを区別するものは、δ関係ではなく関数であることです。しかし、あるδ部分関数または合計機能

δが部分関数の場合、DFAの定義は問題なく機能します。入力文字列が与えられ、次の状態がない入力シンボルa jで状態qi到達した場合、オートマトンは単に受け入れません。aj

さらに、この定義を拡張してプッシュダウンオートマトンの定義を作成する場合、部分関数である遷移関数を持つプッシュダウンオートマトンは非決定論ではなく決定論として分類されるということを区別する必要がある場合です。

部分的な関数が気になる場合は、δを完全な関数にする簡単な変換を次に示します。(この変換はない部分集合構築アルゴリズムと同様に、それはほとんどのO(1)の状態で追加され、状態の元の数に線形であり、およびPDAで動作するように拡張することができる。これらの事実はいずれもサブセット構築アルゴリズムの真ではありません。)

  1. 状態追加qerror
  2. δが定義されていないすべてのペア(qi,sj)について、δ q is j= q e r r o rを定義します。δδ(qi,sj)=qerror

このオートマトンには、合計関数δがあり、元のオートマトンが受け入れて拒否したのとまったく同じ状態のセットを受け入れて拒否します。

編集、2019年1月

コメンター@Alex Smartは、参考文献を提供したり、なぜ気にする必要があるのか​​を説明したりしないと私を正しく批判しています。だからここに行く:

決定論と非決定論の正確な定義を重視する理由は、非決定論的なオートマトンの一部のクラスは決定論的な従兄弟よりも強力であり、非決定論的なオートマトンの一部のクラスは決定論的な従兄弟よりも強力ではないためです。有限オートマトンおよびチューリングマシンの場合、確定的バリアントと非確定的バリアントのパワーは同等です。プッシュダウンオートマトンの場合、区別が重要な言語があります。その言語を受け入れるNPDAがあり、その言語を受け入れるDPDAはありません。線形有界オートマトンの場合、質問は(または私が最後にチェックしたときに)開かれています。DPDAに対するNPDAの能力の向上は、複数の 遷移関数を完全関数から部分関数に変換することからではなく、遷移。

コンパイラコミュニティの書籍:

Aho and Ullman、Principles of Compiler Design、1977:最初に遷移関係を使用してNFA(88ページ)を定義し、次に(p。90-91):

ϵsaas

Aho、Sethi、およびUllman、Compilers、principles、techniques、およびtools、1988年の再版は類似しており、最初にNFAを遷移関係で定義し、次に(p。115-116):

as

(@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)に当てはまります。

δ

s×Σ

興味深いことに、ラビンとスコットは、総関数の観点から非決定性有限オートマトンも定義しています!ページ120、定義9:

MS×ΣS

つまり、遷移関数が合計であっても、システムは確定的ではありません。

Sipser 2006は、RabinとScottに続き、非決定性有限オートマトン、非決定論的PDA、非決定論的チューリングマシンの定義に、状態/記号から状態のべき集合への完全な遷移関数を使用しますが、決定論のトピックをスキップしますPDA。

HopcroftとUllman(1979)、およびLewisとPapadimitriou(1981)はどちらも、決定論的PDAの定義に部分関数を使用しています。彼らは最初に遷移関係を持つNPDAを定義し、次にPDAに到達すると、ルイスとパパディミトリウは言う(p。135)、

プッシュダウンオートマトンは、直感的に言えば、各構成に適用できるトランジションが1つしかない場合に決定論的です。

ホップクロフトとウルマンはこう言っている(112ページ)。

PDA ...は、どのIDからでも最大で1つの移動が可能であるという意味で確定的です。


qerror

2
部分的な関数バージョンは、HopcroftとUllmanで提供されているものです(違いがある場合)。したがって、部分関数が本質的に非決定的であるという考えは、決して標準ではありません。
jmite 2013年

1
@jmite部分関数が非決定性を意味するわけではありません。総関数は決定論を意味し、総関数の方がより適切な選択になります。もちろん、それはあなたが使用している定義の多かれ少なかれ恣意的な問題です。
Patrick87 2013年

3
δ

1
あなたが示したように、部分関数バージョンは、完全関数バージョンへの簡単な変換があり、私が見る限り、教育的またはその他の方法で、変換関数を部分的にすることで、まったく何も得られません。ドラゴンはその機能が完全であることを明確に述べています。非標準の定義を選択することから得るものがまったくないときに、ほとんどの人が従う標準の教科書で明確に定義されているものについて、なぜ私たちは議論を作っているのですか?
Alex Smart

8

δ(q,a)qQaΣQΣ

ε

計算可能性の点では、NFAはDFAと同等です。NFAからDFAに変換するアルゴリズムがあり、DFAは、非決定性を使用しないNFAであるため、通常の言語のセットを定義します。


2
これは定義に依存します。同等の電力がいくつかあります。
ラファエル

3
+1(状態、シンボル)のペアごとに1つの遷移を厳密に定義するFAが有効なDFAを構成することに誰もが同意するため、この定義に忠実であるIMHO
Patrick87 2013年

1
そして、この定義は、文脈自由言語が決定論的であるか非決定論的であるかを決定するためにそれを拡張しようとすると、完全に間違っています。遷移のないプッシュダウンオートマトンは、常に状態/入力シンボル/スタックシンボルごとに厳密に1つの遷移を持つプッシュダウンオートマトンに変換できます。状態/入力シンボル/スタックシンボルごとに複数の可能な遷移がある非決定論的なプッシュダウンオートマトンは、必ずしも決定論的なプッシュダウンオートマトンに変換できるとは限りません。(例:認識された言語に非決定論的なコンテキストがない場合。)
Wandering Logic

2
@jmite DFAとは無関係にトリムオートマトンを定義するだけです。Myhill-Nerodeの定理によれば、最小限のDFAが正しい数の状態を持っていることがはるかに重要だと思います。これは、死んだ状態でのみ得られるものです。
Patrick87 2013年

4
ϵϵϵ

6

DFAの定義は次のとおりです。

A|δ(q,a)|1qaδ(q,ε)δ(q,a)=aΣA

その場合、すべての遷移が必要になるわけではありません。オートマトンに次の入力シンボルに適合する遷移がない場合、拒否されます。

受け入れ可能な言語に関して、両方の定義が同等であることを示すのは良い練習です。


OPの質問は、DFAの正式な定義を含めるように編集する必要があると思います。
scaaahu 2013年

0

DFAの定義では、すべての州がすべての英字を£で表す必要があります。たとえば、£= {a、b、c}およびQ = {q0、q1、q2}の場合、これらの状態はすべて、他の状態または同じ状態に遷移するすべてのa、b、cシンボルを持つ必要があります。


1
新しい回答を投稿するために、既存の回答との違いは何ですか?
xskxzr 2018

0

これに対する最も簡単な答えは、左のシンボルにデッドステートを追加することです。NFAからDFAへの変換と同様に、いくつかのシンボルについてΦ遷移が得られます。これは、そのためにデッド状態を作成することを意味します。

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