Wiele lat temu słyszałem, że obliczenie minimalnego NFA (niedeterministycznego automatu skończonego) z DFA (deterministycznego) było otwartym pytaniem, w przeciwieństwie do odwrotnego kierunku, który jest znany od dziesięcioleci i jest dobrze zbadany z wydajnym algorytm. Czy ktoś wymyślił algorytm?
Szybkie wyszukiwanie dało mi ten artykuł, który dowodzi, że jest to zdecydowanie trudny problem. Najwyraźniej nie podano żadnego algorytmu.
[1] Minimalne problemy z NFA są trudne / Tao Jiang i B. Ravikumar
Przypomniałem sobie o tym problemie następujące pytanie na stronie CS.SE, z którym algorytm minimalizacji DFA-> NFA byłby ściśle powiązany. To pytanie wydaje mi się na poziomie badawczym. Zasugerowałem migrację do TCS i napisałem odpowiedź sugerującą atak statystyczny / empiryczny.
[2] Jakie są warunki maksymalnego rozmiaru NFA dla jego równoważnego DFA?
Odpowiedzi:
To naprawdę uparty - i dobrze przestudiowany - problem. Jeśli chodzi o pozytywne wyniki, dokładny algorytm Kamedy i Weinera, heurystyczne podejście Poláka oraz ostatnie podejście wykorzystujące solwery SAT Geldenhuys i in. przychodzą do głowy. Wydaje się jednak, że istnieją znacznie bardziej negatywne wyniki wykluczające inne możliwe podejścia (np. Algorytmy aproksymacyjne, przypadki szczególne, słabsze modele NFA, ...) Patrz poniżej niektóre źródła.
T. Kameda i P. Weiner. O minimalizacji stanu niedeterministycznych automatów skończonych. Transakcje IEEE na komputerach, C-19 (7): 617–627, 1970.
A. Malcher. Minimalizowanie automatów skończonych jest trudne obliczeniowo. Theoretical Computer Science 327: 375-390, 2004.
L. Polák. Minimalizacje NFA przy użyciu automatu uniwersalnego. International Journal of Foundations of Computer Science, 16 (5): 999–1010, 2005.
G. Gramlich i G. Schnitger. Minimalizowanie NFA i wyrażeń regularnych. Sympozjum na temat teoretycznych aspektów informatyki (STACS 2005), LNCS 3404, s. 399–411.
H. Gruber i M. Holzer. Niedopuszczalność niedeterministycznego stanu i złożoności przejścia przy założeniu P <> NP. Rozwój teorii języka (DLT 2007), LNCS 4588, s. 205–216.
H. Gruber i M. Holzer. Złożoność obliczeniowa minimalizacji NFA dla języków skończonych i jednoargumentowych. Teoria języków i automatów oraz aplikacje (LATA 2007), s. 261–272.
H. Björklund i W. Martens. Granica podatności na minimalizację NFA. Międzynarodowe kolokwium na temat automatów, języków i programowania (ICALP 2008), LNCS 5126, s. 27–38.
J. Geldenhuys, B. van der Merwe, L. van Zijl: Redukowanie niedeterministycznych automatów skończonych za pomocą SAT Solvers. Metody stanów skończonych i przetwarzanie języka naturalnego (FSMNLP 2009), LNCS 6062, 81–92.
EDYCJA (8 czerwca 2015 r.)
Aktualizacja: Poniższy artykuł przedstawia heurystyczny algorytm zmniejszania wielkości niedeterministycznych automatów Büchi wraz z eksperymentami na automatach losowych. Jak stwierdzili we wniosku, ich metoda ma również zastosowanie do NFA: „Podczas gdy przedstawiliśmy nasze metody w kontekście automatów Büchi, większość z nich w sposób trywialny odnosi się do prostszego przypadku automatów zamiast skończonych słów”.
Richard Mayr, Lorenzo Clemente. Zaawansowana minimalizacja automatów. POPL 2013. Rozszerzony raport techniczny EDI-INF-RR-1414.
Narzędzie wiersza polecenia Reduce v1.2 można wywołać z opcją „-finite” w celu zmniejszenia danego NFA. Implementacja jest open source i wydana na licencji GNU General Public License.
źródło