Jak udowodnić, że DFA z NFA mogą mieć wykładniczą liczbę stanów?

20

Wszystkie niedeterministyczne skończone automaty można przekształcić w równoważne deterministyczne skończone automaty. Jednak deterministyczne automaty skończone zezwalają tylko na jedną strzałkę na symbol wskazującą na stan. Dlatego jego stany powinny należeć do zestawu sił stanów NFA. To wydaje się wskazywać, że liczba stanów DFA mogłaby się wykładniczo skalować pod względem liczby stanów NFA. Zastanawiałem się jednak, jak to udowodnić.

John Hoffman
źródło
7
To rozsądne pytanie, a konstrukcja nie jest do końca oczywista, ale wciąż może to być zadanie domowe. Przydałoby się więc usłyszeć, dlaczego chcesz wiedzieć.
tu jakieś konstrukcje , ale wygląda na to, że powinno to być gdzieś w gazecie. nie wiem o ref. także poza moją głową myśli, że istnieje konstrukcja taka, że ​​NFA liczy się w stanie binarnym w stanach aktywnych i akceptuje dopiero po około przejściach ...? 2n
vzn
Zobacz także cs.stackexchange.com/questions/3381/...
Gilles 'SO - przestań być zły'

Odpowiedzi:

15

Jedną operacją, która przekształca NFA w inny NFA, ale nie robi tego w przypadku DFA, jest odwrócenie (skieruj wszystkie strzałki na odwrót i zamień stany początkowe na stany akceptujące). Językiem rozpoznawanym przez przekształcony automat jest język odwrócony .LR={un1u0u0un1L}

Dlatego jednym z pomysłów jest poszukiwanie języka o asymetrycznej konstrukcji. Idąc dalej, język ten powinien zostać rozpoznany poprzez sprawdzenie pierwszych symboli, wymagających tylko stanów n + O ( 1 ) . Przechodząc do tyłu, należy zachować pamięć ostatnich n stanów, co wymaga stanów A n + O ( 1 ) , gdzie A jest rozmiarem alfabetu.nn+O(1)nAn+O(1)A

Szukamy języka w postaci którym M n składa się ze słów o długości n , S jest nietrywialnym podzbiorem alfabetu, a M nie zapewnia żadnych dalszych ograniczeń. Równie dobrze moglibyśmy wybrać najprostszy alfabet A = { a , b } (alfabet singleton nie da rady, nie ma tam mniejszych NFA) i M = A . Nietuzinkowe S oznacza S = { a } . Jeśli chodzi oMnSMMnnSMA={a,b}M=ASS={a} , wymagamy, aby nie korelował on z S (aby DFA dla języka odwróconego musiał zachować pamięć S ): weź M n = A n .MnSSMn=An

Zatem niech . Jest rozpoznawany przez prosty DFA ze stanami n + 2 .Ln=(a|b)na(a|b)n+2

dfa

Odwrócenie go daje NFA, który rozpoznaje .LnR=(a|b)a(a|b)n

nfa

LnR2n+12n+1u,vAn+1kukvkuk=avk=bubkLnRvbkLnRbkuvuvLnRubkvbk, co jest niemożliwe, ponieważ jeden prowadzi do stanu akceptacji, a drugi nie.

Potwierdzenie: ten przykład był cytowany w Wikipedii bez wyjaśnień. Artykuł zawiera odniesienie do artykułu, którego nie przeczytałem, który ma ściślejszą
więź : Leiss, Ernst (1981), „Zwięzłe przedstawienie zwykłych języków przez automaty Boolean”, Theoretical Computer Science 13 (3): 323–330, doi: 10.1016 / S0304-3975 (81) 80005-9 .

Gilles „SO- przestań być zły”
źródło
nQQ2nn2n
1
n2nnn 2n2n1
hmm ... po dwukrotnym przeczytaniu twojej odpowiedzi i komentarza „Ale tutaj chcemy zobaczyć, że granica została osiągnięta”, teraz mogłem zrozumieć. Dzięki.
Grijesh Chauhan
8

Ln={x1,x2,,xk#xk+1:i{1,,k} with xi=xk+1}

Ln{#,1,,n}

O(n)Lnnii3

Ln2O(n){1,,n}

Jestem prawie pewien, że książka Sipsera ma ten przykład.

Chłopak
źródło
Konstrukcja w książce Sipera tworzy DFA z dokładnie 2 ^ n stanami. Jeśli NFA ma zestaw stanów Q, to zestawem stanu DFA jest Pow (Q) w celu symulacji wszystkich możliwych stanów „równoległych”, w których znajduje się migawka NFA. (Edytuj, aby dodać opinię na temat zakresu pytania) Biorąc pod uwagę, że konstrukcja zastosowana do tego w standardowym tekście wyraźnie pokazuje możliwość występowania wykładniczych stanów liczbowych, wydaje mi się, że to nie jest poziom badawczy. Może być odpowiedni jako prośba o referencję.
Logan Mayfield
8

nn2n

Ten przykład pokazuje również, że NFA mogą spowodować wykładniczy wybuch w wyniku komplementacji. Rzeczywiście wiadomo, że każdy NFA (lub nawet gramatyka bezkontekstowa) dla języka wszystkich słów zawierających wszystkie symbole alfabetu musi mieć wykładniczą liczbę stanów.

Yuval Filmus
źródło
1
σΣ(Σσ)
ΣnO(n2)2n2n
Celem tego przykładu jest to, że powiększenie dokładnie odpowiada konstrukcji zestawu mocy. Istnieje przykład binarny z tym samym powiększeniem, ale jest to bardziej skomplikowane.
Yuval Filmus
Tak, to dobry przykład.
6005
1
O(nlogn)