Jak szybko możemy zdecydować, czy dany DFA jest minimalny?

11

Minimalizowanie deterministycznych automatów skończonych (DFA) to problem, który został dokładnie przestudiowany w literaturze, i zaproponowano kilka algorytmów w celu rozwiązania następującego problemu: Biorąc pod uwagę DFA , oblicz odpowiednią minimalną DFA akceptującą ten sam język, co \ mathscr {A} . Większość tych algorytmów działa w czasie wielomianowym.AA

Zastanawiam się jednak, czy wariant decyzyjny tego problemu - „biorąc pod uwagę DFA A , czy A minimalny?” - można rozwiązać bardziej efektywnie niż obliczanie minimalnego automatu. Oczywiście można to również zrobić skutecznie, uruchamiając na przykład algorytm zawężania partycji Hopcroft, a następnie decydując, czy wszystkie partycje zawierają dokładnie jeden stan.

Jak sugeruje Yuval Filmus w swojej odpowiedzi , wariant rozstrzygalności można rozwiązać szybciej, być może przy użyciu standardowych algorytmów. Niestety nie rozumiem, jak to zrobić (mam nadzieję, że nie umknie mi tutaj oczywista kwestia).

Yuval wskazuje w komentarzach tutaj, że najbardziej znane algorytmy (takie jak powyższy) działają w czasie O(nlogn) dla alfabetów o stałej wielkości. Dlatego jestem nie tylko zainteresowany asymptotycznie znaczącym wzrostem czasu wykonywania, ponieważ wydaje się to raczej mało prawdopodobne. Najbardziej niepokoi mnie to, że nie wyobrażam sobie żadnego „skrótu”, który mógłby wynikać z faktu, że interesuje nas tylko odpowiedź „tak-nie-odpowiedź” - nawet skrótu, który pozwala zaoszczędzić asymptotycznie nieistotną ilość czasu. Uważam, że każdy rozsądny algorytm decydujący o minimalności DFA musiałby faktycznie zminimalizować DFA i sprawdzić, czy coś się zmieni w trakcie procesu.

Marka Cornelius
źródło
Algorytm Hopcrofta działa już w quasi-liniowym czasie, więc nie ma zbyt wiele miejsca na ulepszenia.
Yuval Filmus
Tak, zredagowałem moje pytanie, aby odzwierciedlało ten fakt, @YuvalFilmus
Cornelius Brand
1
Uważam, że najszybszym znanym algorytmem minimalizacji DFA jest nadal ten . Jest szybszy niż jakikolwiek algorytm opublikowany przed 2008 r. Działający w czasie , gdzie jest liczbą przejść. mO(n+mlogn)m
Juho
wydaje mi się mało prawdopodobne, że problem decyzyjny jest równorzędny ze złożonością do problemu minimalizacji, ten pierwszy wydaje się być prawdopodobnie trudniejszy, ponieważ wiąże się z testowaniem równoważności DFA, co nie jest nietrywialne. wydaje się więc, że złożoność problemu decyzyjnego stanowi maksimum „testu minimalizacji lub równoważności”. i jaka jest złożoność testu równoważności?
vzn
@vzn Zakładając, że miałeś na myśli „[...] co nie jest łatwe”: Nie musi to koniecznie, ponieważ np. procedura, którą podałem w moim pytaniu, pozwala uniknąć sprawdzania równoważności. Myślę jednak, że problem nie jest łatwiejszy niż minimalizacja.
Cornelius Brand

Odpowiedzi:

5

Być może nie jest to dokładnie taka odpowiedź, jakiej szukasz, ale ponieważ pytałeś o problemy decyzyjne, pomyślałem, że możesz być zainteresowany złożonością problemu. Jest -kompletny.NL

Co to znaczy, że DFA jest minimalne? Istnieją dwie właściwości:

  1. Każdy stan jest osiągalny: tak, że możemy osiągnąć ze stanu początkowego , wykonując ; w symbolach: . q s w s w qqQwΣqswswq

  2. Każda para stanów jest rozróżnialna: with tak, że i i (tylko jeden z jest stanem akceptacji).q r w Σ q w s r w t | { s , t } F | = 1 s , tq,rQqr wΣqwsrwt|{s,t}F|=1s,t

Zauważ, że mogą być obliczane w dzienniku przestrzeni (tj , wystarczy śledzić aktualną pozycję, jak postępować jednym z listów na raz). Ponadto istnieje tylko skończona liczba odmian między i więc w wyniku twierdzenia Immerman-Szelepcsenyi mamy problem z .L w N LxwyLwNL

Najprostszym sposobem widać, że jest trudno jest, aby zauważyć, że własność 1 rozwiązuje - skierowanej unreachability, który jest prototypowym trudnym problemem. Ale nawet jeśli weźmiesz pod uwagę tylko osiągalne DFA, problem jest nadal trudny (tj. Właściwość 2 to -hard) i możesz znaleźć stosunkowo prosty dowód w Lemma 2.2 z Cho & Huynh (1992) . s tNLstNL

Oczywiście użyłem niedeterminizmu, więc jest to trochę kaszel w odróżnieniu od algorytmu Hopcrofta. Wiemy jednak, że , więc możesz użyć tych konstrukcji, aby uzyskać bardziej efektywny pod względem przestrzeni algorytm niż Hopcroft (który ze swej natury musi śledzić wielu partycji ). nNLL2n

Artem Kaznatcheev
źródło
wydaje się to poprawiać przestrzeń, ale nie złożoność czasu?
dniu
Zgadzam się z vzn. Chociaż podoba mi się ta odpowiedź, nadal interesują mnie spostrzeżenia, które są bliżej związane z pierwotnym pytaniem.
Cornelius Brand
@ C.Brand Moja odpowiedź ma być styczna (stąd wyłączenie odpowiedzialności na początku;)) Właśnie podałem wam najniższą klasę złożoności, dla której wiem, że problem jest kompletny. Istnieje standardowa technika konwersji algorytmów algorytmy (tj. BFS na wykresie konfiguracji ), ale nie sądzę, że konstrukcja da ci szybszy algorytm czasu. PNLP
Artem Kaznatcheev