決定されたときに指数関数的な状態数を持つNFA


10

同等のNFAにn個の状態がある状態を持つDFAの例を作成するにはどうすればよいですか。明らかに、DFAの状態セットには、NFAの状態セットのすべてのサブセットが含まれている必要がありますが、開始方法がわかりません。私を正しい軌道に乗せるための提案はありますか?2nn


この質問はやや不明確です。一般に、特定の通常言語には同等のDFAが無限にあり、特定の通常言語には同等のNFAが無限にあります。2 n状態の最小 DFA が必要な場合、これは常に可能であるとは限りません。異なるNFAが同じ言語を認識し、異なる数の状態を持つことができますが、同じ最小DFAに対応します。さらに、「最小」のNFAのみを考慮したい場合は、これはやや興味深いものになります...2ん
— Patrick87

2
パトリック、私はOPが最小のDFAが最小のNFAより指数関数的に大きい例を意味すると思います。
— Yuval Filmus

@ Patrick87私はアルゴリズムを探していません。私が欲しいのは、マシンのペアの例である:DFAとの状態とNFAとnは同じ言語を受理状態。2んん
— saadtaame 2012

@saadtaame:それは取るに足らないことです。任意のDFAを取り、に到達するのに十分な状態を追加します。興味深い例は、同等の最小限のDFAに同じ数の州がある場合です。2ん
— ラファエル

1
なお、DFAの最小化にWikipediaの記事参照適当な例(あなたは小さなNFA自分自身を把握する必要がありますが)。
— ラファエル

回答:


18

標準の例では、言語であるアルファベットの上にすべての単語のAサイズのnはしていないすべての異なる文字が含まれています。NFA受諾ありLとN + 1の状態(またはnは最初の文字を推測:あなたは複数の開始状態が許可した場合の状態)(と失われたが、その後、行くをε -move)は自己ループのために受理状態にA以外のすべての文字。LあんLん+1んaεあ

DFAには少なくとも2 nの状態が必要です。これは、Myhill-Nerodeの定理を使用して確認できます。LET S 1、S 2は、二つの異なるサブセットであるA、及びW (S 1)、W (S 2)全てでのみ文字含む単語S 1、S 2をそれぞれ、。一般性を失うことなく、仮定∈ S 1 ∖ S 2、およびlet wは= W (L2んS1、S2あw(S1),w(S2)S1,S2a∈S1∖S2。次に、 W (S 1)W ∉ Lながら、 W (S 2)のw ∈ L。w=w(A−a)w(S1)w∉Lw(S2)w∈L


10

これは、Mark V. Lawson Heriot-Watt大学、エジンバラ、68ページの本「Finite Automata」の演習です。

してみましょう。言語(0 + 1 )∗ 1 (0 + 1 )n − 1は、n + 1状態の非決定的オートマトンで認識できることを示します。この言語を認識する決定論的オートマトンは、少なくとも2 n個の状態を持つ必要があることを示します。この例は、非決定論的オートマトンから対応する決定論的オートマトンに移行する際の状態数の指数関数的な増加が時々避けられないことを示しています。n≥1(0+1)∗1(0+1)n−1n+12n


10

最適な DFAには状態があると思います。たぶん、これは2 n状態を取得しませんが、Ω (2 n)です。2n2nΩ(2n)

演習12.6のKushilevitzおよびNisanによる「Communication Complexity」から:

"[非負の整数]いくつかの定数については、(有限の)言語検討LがC = { W 、Wを| wは∈ { 0 、1 } C } "。cLc={ww∣w∈{0,1}c}

また、本は、O (c )状態を使用するを認識するco-NFAを見つけることができること、およびDFAに対してΩ (2 c)状態よりも優れていることはできないことを証明するように求め続けています。LcO(c)Ω(2c)


また、2番目の部分の証明には通信の複雑さが「必要」であるため、これは目的に適さない可能性があります。
— ティモシーサン

答えてくれてありがとう!co-NFAとはどういう意味ですか?
— saadtaame 2012

基本的に、NFAの定義では、「受け入れる」を「拒否する」に切り替えます。つまり、可能性のあるパスのいずれも拒否状態に至らない場合は受け入れ、そうでない場合は拒否します。
— ティモシーサン

実際、下限は、Myhill-Nerodeから非常に簡単に従います。(実際、(c + 1 )2 cのようなものが得られます。)しかし、私のco-NFAはΘ (c 2)状態を使用します。2c(c+1)2cΘ(c2)
— Yuval Filmus

有限言語はこの点でやや退屈です。こちらもご覧ください。
— ラファエル

9

A={a,b}Qn={0,1,…,n−1}An=(Qn,A,En,{0},{0})

En={(i,a,i+1)∣0⩽i⩽n−1}∪{(n−1,a,0)}∪{(i,b,i)∣1⩽i≤n−1}∪{(i,b,0)∣1⩽i⩽n−1}}
n2n

3
(an+aWn−1b)∗Wn−1an−1

2
@ yuval-filmusこの例は私のものではありません。参考にしたかったのですが、今はどこで見たか覚えていません。
— J.-E.
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.