Минимизация детерминированных конечных автоматов (DFA) является проблемой, которая была тщательно изучена в литературе, и было предложено несколько алгоритмов для решения следующей проблемы: Учитывая DFA , вычислим соответствующий минимальный DFA, принимающий тот же язык, что и . Большинство этих алгоритмов работают за полиномиальное время.A
Однако мне интересно, является ли вариант решения этой проблемы - «учитывая DFA , является ли минимальным?» - может быть решена более эффективно, чем вычисление минимального автомата. Очевидно, что это также можно сделать эффективно, запустив, например , алгоритм уточнения разделов Хопкрофта, а затем решив, содержат ли все разделы ровно одно состояние.A
Как предлагает Юваль Фильмус в своем ответе , вариант разрешимости может быть решен быстрее, возможно, с использованием стандартных алгоритмов. К сожалению, я не вижу, как (надеюсь, я не упустил очевидный момент здесь).
Юваль указывает в комментариях, что самые известные алгоритмы (такие как приведенный выше) выполняются во времени для алфавитов постоянного размера. Поэтому меня интересует не только асимптотически значимый выигрыш во время выполнения, поскольку он кажется довольно маловероятным. Что беспокоит меня больше всего, так это то, что я не могу представить себе какой-либо «ярлык», который можно извлечь из того факта, что нас интересует только «да-нет-ответ» - даже не ярлык, позволяющий сэкономить асимптотически незначительное количество времени. Я чувствую, что каждый разумный алгоритм, который решает минимальность DFA, должен был бы фактически минимизировать DFA и видеть, изменяется ли что-нибудь в течение процесса.
источник
Ответы:
Возможно, это не совсем тот ответ, который вы ищете, но поскольку вы спрашивали о проблемах с решением, я подумал, что вас может заинтересовать сложность проблемы. Это -полное.N L
Теперь, что это значит для DFA быть минимальным? Есть два свойства:
Каждое состояние достижимо: , что мы можем достичь из начального состояния , следуя ; в символах: . д S ш с → ш д∀ д∈ Q∃ ж Е Е∗ Q s вес s →весQ
Каждая пара состояний различимы: с такое , что и и (только один из представляет собой принимает состояние).q ≠ r ∃ w ∈ Σ ∗ q → w s r → w t | { с ,∀д, r ∈ Q Q≠ г ∃ ж Е Е* Q→весs г →весT | {s,t}∩F| =1 с , т
Обратите внимание , что может быть вычислена в лог-пространстве (т.е. , просто отслеживать текущее положение , как вы будете следовать одну букву в то время). Кроме того, существует лишь конечное число чередований между и так , как следствие теоремы Иммерман-Szelepcsenyi , мы имеем , что проблема заключается в .L wх →весY L вес ∀ ∃ N L
Самый простой способ , чтобы увидеть , что это трудно для является уведомление , что свойство 1 , решает - направленного недостижимости, которая является Прототипом трудной задачей. Но даже если вы рассматриваете только достижимые DFA, проблема остается сложной (то есть свойство 2 является -hard), и вы можете найти относительно прямое доказательство в лемме 2.2 Cho & Huynh (1992) .N L s T N L
Конечно, я использовал недетерминизм, так что это немного кашель, так как он отличается от алгоритма Хопкрофта. Но мы знаем, что , поэтому вы можете использовать эти конструкции, чтобы получить более гибкий алгоритм, чем Хопкрофт (который по своей природе должен отслеживать многих разделов) ). nNL ⊆ L2 N
источник