Подтвердить что ты не робот

Минимизация NFA без детерминизации

Хорошо известно, как получить от NFA для обычного языка до минимального DFA. Однако DFA может иметь экспоненциально большее число состояний.

Мне нужен способ уменьшить NFA, давая снова NFA, но с меньшим количеством состояний. Т.И. Мне не нужно, чтобы результат был детерминированным, но я бы хотел, чтобы он был как можно меньше, сохраняя признанный язык (возможно, не совсем оптимальный, но чем меньше, тем лучше).

Каковы наилучшие алгоритмы для этой проблемы? Или, может быть, не "лучший", но, по крайней мере, "самый простой для реализации с неабсолютной эффективностью"? Или проблема имеет известное имя, чтобы я мог найти хорошие источники информации?

4b9b3361

Ответ 1

Я считаю, что проблема известна также как минимизация NFA. Я считаю, что это NP-hard вообще.

Одним из плодотворных подходов может быть минимизация бисимуляции [Paige, Tarjan 1987] и последующие производные.

В этой презентации есть некоторые заметки о приемлемости проблемы, а также ссылки на некоторые подходы с указанием их относительных достоинств.