najwyraźniej nie jest to dobrze zbadany problem w sensie znanych / dostępnych algorytmów innych niż pierwotna / dawna strategia „określania na DFA / minimalizowania DFA”. wydaje się, że wskazujesz, że etap determinacji jest problematyczny, ale jest to typowe, oczywiście biorąc pod uwagę, że ma on gorszy przypadek wykładniczo-przestrzenno-czasowy. należy pamiętać, że istnieje kilka algorytmów minimalizacji DFA, które mogą znacznie różnić się wydajnością średnio.
jest również znany bardziej nieformalnie jako „minimalizacja NFA bez determinacji” . wiadomo, że jest trudne w tym sensie, że w zasadzie nie ma nawet algorytmów aproksymacyjnych, chyba że P = Pspace, jak pokazano w tym artykule:
Jednak dokument ten uważa się na ogół rzadko zbadane przypadku niektórych algorytmów, które nie są oparte na znalezienie determinized DFA 1 st :
Prezentujemy różne techniki zmniejszania liczby stanów i przejść w niedeterministycznych automatach. Techniki te opierają się na dwóch zamówieniach w zestawie stanów związanych z włączeniem lewego i prawego języka. Ponieważ ich dokładne obliczenia są trudne dla NP, skupiamy się na aproksymacjach wielomianowych, które umożliwiają jednakowe zmniejszenie NFA.
zwróć uwagę na publicznie dostępny pakiet / implementację, który może obsługiwać duże konwersje / minimalizacje NFA / DFA itp., na ogół tak skutecznie, jak to możliwe, to biblioteka AT&T FSM .
ma strategię, fsmcompact
która czasem może wystarczyć:
W przypadkach, gdy przetwornik lub ważony akceptor nie mogą być określone lub stają się bardzo duże, przydatna może być inna optymalizacja
fsmcompact
. Ta operacja koduje każdą potrójną etykietę wejściową, etykietę wyjściową i koszt w pojedynczej nowej etykiecie, wykonuje klasyczne (nieważone akceptor) określenie i minimalizację, a następnie dekoduje zakodowane etykiety z powrotem do ich oryginalnych wartości. Ma to tę zaletę, że jest zawsze zdefiniowane i nie przesuwa etykiet wyjściowych ani kosztów wzdłuż ścieżek. Ma tę wadę, że wynik nie może być ani deterministyczny, ani minimalny.