Mówimy, że NFA jest stale niejednoznaczny, jeśli istnieje tak że każde słowo jest akceptowane przez lub (dokładnie) ścieżek.
Jeśli automat jest stale niejednoznaczny dla , wówczas nazywa się Jednoznacznym FA (UFA).
Niech będzie zwykłym językiem.
Czy jakiś stale dwuznaczny automat dla być mniejszy niż najmniejszy UFA, który akceptuje ? Ile może to być mniejsze?
Czy automat całkowicie niejednoznaczny może być wykładniczo mniejszy niż najmniejszy CFA dla tego samego języka?
Wiadomo, że istnieją całkowicie niejednoznaczne automaty (istnieje , takie, że każde słowo jest akceptowane przez maksymalnie ścieżek), które są wykładniczo mniejsze niż najmniejsze UFA dla tego samego języka, ale nie widziałem nic o stałej dwuznaczności.
Oto pokrewne pytanie , które zamieściłem tutaj kilka miesięcy temu.
EDYTOWAĆ:
Odpowiedź Domotorp pokazuje, że jest wielomianowo redukowalny do , ale nie odnosi się do pytania, czy możemy uzyskać tę redukcję przestrzeni wielomianowej przez .
Tak więc nowe pytanie brzmi: o ile mniejsze (liniowo / kwadratowe / itp.) Można porównać do minimalnego ? dla tego samego języka?
Odpowiedzi:
I twierdzą, że jeśli z jakiegoś języka jest CFA zz stanach i 0 lub c przyjmując ścieżki dla każdego słowa, to nie jest UFA z C s s c stanach. Podstawową ideą jest to, że stany UFA są (uporządkowanymi) c-krotkami stanów CFA i akceptuje wtedy i tylko wtedy, gdy wszystkie stany c akceptują. Oczywiście musimy również upewnić się, że były to rzeczywiście różne obliczenia i że nie liczymy wszystkich c ! permutacje, więc dla nich musimy jakieś dodatkowe c s bitów przechowywania.s 0 c Cssc c! Cs
Nieco bardziej szczegółowy opis podstawowych idei: if jest stanem UFA, to ma przejście od niego (czytanie trochę się A ) do stanu ( s ' 1 , ... , s ′ c ) wtedy i tylko wtedy, gdy CFA ma przejście (czytanie litery a ) z s i na s ′ i dla każdego i . Stan ( s 1 , … , s c )(s1,…,sc) a (s′1,…,s′c) a si s′i i (s1,…,sc) akceptuje wtedy i tylko wtedy, gdy akceptuje dla każdego i . Oczywiście stanem początkowym UFA jest ( s 0 , … , s 0 ), gdzie s 0 jest stanem początkowym CFA.si i (s0,…,s0) s0
Problem z powyższego jest taka, że symulowane przebiegi CFA może być taka sama. Więc dodajemy dodatkowe informacje, zakodowane, powiedzmy, na wykresie na c wierzchołkach, który ma krawędź między wierzchołkiem i a wierzchołkiem j, jeśli podczas dotychczasowego przebiegu przynajmniej raz mieliśmy to c i ≠ c j .c c i j ci≠cj
Teraz nadal mamy problem, że policzyliśmy wszystko razy z powodu możliwych permutacji. Możemy temu zaradzić, wymagając, aby jeśli i- ty i j- ty stany były do tej pory takie same, aw następnym kroku będą się różnić, to w następnym kroku i- ty stan powinien mieć większy indeks.c! i j i
źródło