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ć.
automata
finite-automata
nondeterminism
John Hoffman
źródło
źródło
Odpowiedzi:
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={un−1…u0∣u0…un−1∈L}
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.n n+O(1) n An+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 oMnSM′ Mn n S M′ A={a,b} M′=A∗ S S={a} , wymagamy, aby nie korelował on z S (aby DFA dla języka odwróconego musiał zachować pamięć S ): weź M n = A n .Mn S S Mn=An
Zatem niech . Jest rozpoznawany przez prosty DFA ze stanami n + 2 .Ln=(a|b)na(a|b)∗ n+2
Odwrócenie go daje NFA, który rozpoznaje .LRn=(a|b)∗a(a|b)n
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 .
źródło
Jestem prawie pewien, że książka Sipsera ma ten przykład.
źródło
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.
źródło