Минимизация детерминированных конечных автоматов (DFA) является проблемой, которая была тщательно изучена в литературе, и было предложено несколько алгоритмов для решения следующей проблемы: Учитывая DFA , вычислим соответствующий минимальный DFA, принимающий тот же язык, что и . Большинство этих алгоритмов работают за полиномиальное время.A
Однако мне интересно, является ли вариант решения этой проблемы - «учитывая DFA , является ли минимальным?» - может быть решена более эффективно, чем вычисление минимального автомата. Очевидно, что это также можно сделать эффективно, запустив, например , алгоритм уточнения разделов Хопкрофта, а затем решив, содержат ли все разделы ровно одно состояние.A
Как предлагает Юваль Фильмус в своем ответе , вариант разрешимости может быть решен быстрее, возможно, с использованием стандартных алгоритмов. К сожалению, я не вижу, как (надеюсь, я не упустил очевидный момент здесь).
Юваль указывает в комментариях, что самые известные алгоритмы (такие как приведенный выше) выполняются во времени для алфавитов постоянного размера. Поэтому меня интересует не только асимптотически значимый выигрыш во время выполнения, поскольку он кажется довольно маловероятным. Что беспокоит меня больше всего, так это то, что я не могу представить себе какой-либо «ярлык», который можно извлечь из того факта, что нас интересует только «да-нет-ответ» - даже не ярлык, позволяющий сэкономить асимптотически незначительное количество времени. Я чувствую, что каждый разумный алгоритм, который решает минимальность DFA, должен был бы фактически минимизировать DFA и видеть, изменяется ли что-нибудь в течение процесса.