Как минимизировать DFA, имеющий несколько принимающих узлов?

Я реализовал простой Scanner-Generator, который работает правильно во всех ситуациях.

Это не проблема кода, а вопрос о том, как оптимизировать DFA. Минимизация для одного принимающего узла с использованием алгоритма Хопкрофта и принимающих узлов для принятия одного и того же правила работала хорошо, но алгоритм не сводил к минимуму DFA с несколькими разными принимающими узлами. Например, если вы создаете DFA, который принимает два "if", "[az][a-z0-9]*", а затем запускаете алгоритм Хопкрофта, уникальный узел принятия исчезает. Конечно, каждый узел с самого начала был сгруппирован в разные группы.

Я хотел бы знать, как минимизировать этот тип DFA. Я хотел бы, чтобы вы ответили, даже если нет способа решить эти проблемы минимизации.

Мой код: https://github.com/rollrat/compiler-compiler

0 ответов

Другие вопросы по тегам