это, очевидно, не очень хорошо изученная проблема в смысле известных / доступных алгоритмов, отличных от оригинальной / давней стратегии «определиться с DFA / минимизировать DFA». Вы, кажется, указываете, что этап определения является проблематичным, но это, конечно, типично, учитывая, что он имеет худший случай с экспоненциальным пространством / временем. обратите внимание, что существует несколько алгоритмов минимизации DFA, которые в среднем могут существенно различаться по производительности.
это также более неофициально известно как «минимизация NFA без определения» . известно, что это сложно, в том смысле, что в принципе даже нет алгоритмов аппроксимации, если P = Pspace, как показано в этой статье:
однако в этой статье рассматривается редко изучаемый случай некоторых алгоритмов, которые не основаны на поиске определенного DFA 1- го :
Мы представляем различные методы для уменьшения числа состояний и переходов в недетерминированных автоматах. Эти методы основаны на двух предварительных заказах над набором состояний, связанных с включением левого и правого языков. Поскольку их точное вычисление является NP-сложным, мы фокусируемся на полиномиальных аппроксимациях, которые все же позволяют уменьшить NFA.
обратите внимание на общедоступный пакет / реализацию, которая может обрабатывать большие преобразования / минимизации NFA / DFA и т. д. в целом максимально эффективно, - это библиотека AT & T FSM .
у него есть стратегия, fsmcompact
которой иногда может хватить:
В тех случаях, когда преобразователь или взвешенный акцептор не может быть определен или становится очень большим, может быть полезна другая оптимизация -
fsmcompact
. Эта операция кодирует каждую тройку входной метки, выходной метки и стоимости в одну новую метку, выполняет классическое (невзвешенное акцепторное) определение и минимизацию, а затем декодирует закодированные метки обратно в их исходные значения. Это имеет то преимущество, что оно всегда определяется и не перемещает метки вывода или затраты по путям. Недостатком является то, что результат не может быть ни детерминированным, ни минимальным.