Мінімізація детермінованих кінцевих автоматів (DFA) є проблемою, детально вивченою в літературі, і було запропоновано кілька алгоритмів для вирішення наступної проблеми: Дано DFA , обчислити відповідний мінімальний DFA, приймаючи ту саму мову, що і . Більшість із цих алгоритмів працює в поліноміальний час.
Однак мені цікаво, чи варіант рішення цієї проблеми - "заданий DFA , мінімальний?" - можна вирішити ефективніше, ніж фактично обчислити мінімальний автомат. Очевидно, це також можна зробити ефективно, запустивши, наприклад , алгоритм уточнення розділів Hopcroft, а потім вирішивши, чи містять усі розділи саме один стан.A
Як пропонує у своїй відповіді Юваль Філіус , варіант рішення може бути вирішений швидше, можливо, використовуючи стандартні алгоритми. На жаль, я не бачу, як це (сподіваюсь, я тут не пропускаю очевидного моменту).
У коментарях Юваль зазначає, що найвідоміші алгоритми (як той, що описаний вище) працюють у часі для алфавітів постійного розміру. Тому мене цікавлять не тільки асимптотично значні вигоди в процесі виконання, оскільки це здається досить малоймовірним. Що мене найбільше турбує, це те, що я не уявляю жодного "ярлика", який може бути зроблений з того, що нас цікавить лише відповідь "так-ні-відповідь" - навіть не ярлик, який дозволяє заощадити асимптотично незначну кількість часу. Я відчуваю, що кожен розумний алгоритм, який визначає мінімальність DFA, повинен насправді мінімізувати DFA і побачити, чи зміниться щось під час процесу.