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.
Zastanawiam się jednak, czy wariant decyzyjny tego problemu - „biorąc pod uwagę DFA , czy 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 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.