Алгоритмы минимизации автоматов Мура


10

Алгоритм Бжозовского можно распространить на автоматы Мура, но его временная сложность в целом экспоненциальна. Есть ли другой алгоритм минимизации автоматов Мура? Какое время работы этих алгоритмов, если таковые имеются?


Какой алгоритм Бжозовского вы имеете в виду? Тот, который использует производные регулярных выражений?
Ж.-Е.

2
Добро пожаловать в SE Computer Science. Поскольку вы, очевидно, еще не читали презентацию сайта, вы должны знать, что это совместная работа, основанная на техническом обмене между пользователями, задающими вопросы, и пользователями, которые предоставляют ответы или комментарии. Таким образом, считается правильным отвечать пользователям, запрашивающим более подробную информацию в комментариях, высказывать хорошие ответы или хорошие комментарии (или другие интересные вопросы или ответы, которые вы прочитали), и в конечном итоге принять ответ, который вы считаете лучшим для своих вопросов, нажав кнопку " Проверьте знак "(как V) слева от выбранного ответа.
Бабу

Был ли ответ вам полезен?
Бабу

Ответы:


6

Оригинальный алгоритм минимизации DFA был фактически разработан для машин Мура , руководствуясь их явно более наблюдаемым поведением. Но алгоритм, представленный здесь, является реконструкцией из минимизации DFA, так как я обнаружил историческое свидетельство после факта.

После Википедии (с некоторыми нотационными изменениями):

Мур машина может быть определена как 6-кортеж , состоящая из следующих действий :(Q,q0,Σ,Π,δ,γ)

  • конечный набор состоянийQ
  • начальное состояние (также называемое начальным состоянием) которое является элементом Qq0Q
  • конечный набор, называемый входным алфавитомΣ
  • конечный набор, называемый выходным алфавитомΛ
  • функция перехода отображающая состояние и входной алфавит в следующее состояние δ:Q×ΣQ
  • выходная функция отображающая каждое состояние в выходной алфавит γ:QΠ

Согласно этому определению, машина Мура является детерминированным датчиком конечных состояний.

У меня нет ссылки на минимизацию автоматов Мура. Однако кажется не слишком сложным представить алгоритм, полученный из алгоритма, используемого для детерминированных автоматов в конечных состояниях.

Идея минимизации DFA основана на характеристике Myhill-Nerode обычных языков .

С учетом языком , и пару строк и , определяет отличительное расширение быть строкой таково , что именно один из двух строк и принадлежит . Определите отношение для строк по правилу, что если нет различающего расширения для и . Легко показать, что является отношением эквивалентности на строках, и, таким образом, оно делит множество всех строк на классы эквивалентности.x y z x z y z L R L x R L y x y R LLxyzxzyzLRLxRLyxyRL

Теорема Майхилла-Нерода утверждает, что является регулярной тогда и только тогда, когда имеет конечное число классов эквивалентности, и, кроме того, что число состояний в наименьшем детерминированном конечном автомате (DFA), распознающих , равно числу классов эквивалентности в .R L L R LLRLLRL

Действительно, каждое состояние наименьшего DFA таково, что как определено выше, является одним из классов эквивалентности для отношения .W q R LqWqRL

Для DFA для обычного языка легко показать, что каждый набор содержит строки, которые принадлежат одному и тому же эквивалентному классу относительно .W q R LLWqRL

Следовательно, минимизация DFA фактически состоит из состояний слияния (рассматриваемых как наборы эквивалентных строк), всякий раз, когда показано, что два различных состояния содержат эквивалентные строки.

Для этой цели существуют два достаточно быстрых алгоритма: алгоритм Мура (1956), который находится во времени и алгоритм Хопкрофта (1971) во время O ( n log n ) .O(n2)O(nlogn)

Расширение автоматов Мура лучше всего можно понять в переопределении отношения эквивалентности в качестве для преобразователя . Отношение было связано с тем, приведет ли будущий ввод к эквивалентному состоянию принятия. отношение эквивалентности автоматов Мура касается , будет ли вход в будущем производить тот же результат. T R L R TRTTRLRT

Следовательно, для преобразователя и двух строк и мы определяем отличительное расширение как строку такую ​​что и с , то есть такой, что выходное поведение преобразователя для различается в зависимости от того, следует ли он за или .x y z T ( x z ) = T ( x ) u T ( y z ) = T (TxyzT(xz)=T(x)uu v z x yT(yz)=T(y)vuvzxy

Опять же, является отношением эквивалентности, разделяющим все строки в на классы эквивалентности. В случае машины Мура эти классы снова будут соответствовать состоянию минимального преобразователя.Σ RTΣ

Следующий алгоритм имитирует алгоритм Мура для минимизации DFA.

Мы определим начальное разбиение из на классы состояний следующим образом: Q S ePQSe

eΠ:Se={qQγ(q)=e}

Затем мы разбиваем классы в следующим образом:P

повторять последовательно для каждого класса состояний , пока ничего не изменится repeat Если то ничего не делать еще Раскол в подмножества такие , что для каждого подмножества , существует другой класс такая что (подмножества заменяют вS
   aΣ,
     S S i S iSP,qS,δ(q,a)S
     SSi
      Siq S i ,SPqSi,δ(q,a)S
       S PSiSP)

Когда не осталось ни одного класса, который нужно разделить, оставшиеся классы состояний сформируют состояния минимальной машины Мура.

По построению все состояния в классе имеют одинаковый вывод, который является выходом для класса.

Аналогично, для любого входа все состояния в классе переходят в некое состояние в том же другом классе, который определяет функцию перехода для минимальной машины Мура.aΣ

Анализ сложности: Пустьбыть числом состояний, иразмер входного алфавита. Основной цикл выполняется не более раз, поскольку каждая итерация должна разбивать как минимум один класс состояний, а каждый класс содержит как минимум одно состояние. Каждая итерация цикла проверяет каждое состояние конечное число раз и пропорционально количеству входных символов. Следовательно, сложность алгоритма , такая же, как и у алгоритма минимизации DFA, который послужил ориентиром для этого.s = | Σ | n O ( s n 2 )n=|Q|s=|Σ|
nO(sn2)

У меня нет никаких ссылок на эту минимизацию машин Мура. Возможно, это включено в его статью:

Мур, Эдвард Ф. (1956). «Геданкен-эксперименты на последовательных машинах». Исследования автоматов , Анналы математических исследований (Принстон, Нью-Джерси: издательство Принстонского университета) (34): 129-153.

Эта статья является основным справочником, представляющим машины Мура . Это также ссылка на алгоритм минимизации DFA Мура . Таким образом, должно быть удивительно, если бы адаптация алгоритма к минимизации машин Мура не была, по крайней мере, предложена в этой статье. Я проверил статью, и представленная версия алгоритма минимизации на самом деле предназначена для машин Мура, а не для DFA. Бумага хорошо написана, но стиль того времени делает ее немного труднее читать. Интересно заметить, что многие из идей теории конечных автоматов Майкла-Нерода уже изложены в этой статье.

Более свежий алгоритм Джона Хопкрофта (1971) должен быть аналогичным образом адаптирован к машинам Мура. Не ясно, было ли какое-либо основание публиковать эту адаптацию где-либо, и статья Хопкрофта, похоже, не имеет никакого отношения к машинам Мура.O(snlogn)


@ Рафаэль Ссылка ... Ну, вам повезло, я переработал алгоритм, потому что у меня нет доступа к библиотеке. Но так как ты попросил ссылку, я получил тебе одну. Тебе должно понравиться. Но я не уверен, что использовал бы это для обучения.
Бабу

@Raphael Документ интересен своей презентацией, которая пытается быть очень интуитивной, более функциональной, чем алгебраической. Я не помню всех деталей вклада Михилла и Нероде (два года спустя, в 1958 году), и я недостаточно внимательно прочитал статью (скорее, я просмотрел ее), но мне интересно, не следует ли отнести теорию к Муру как хорошо.
Бабу

2

Вариант алгоритма Бжозовского, использующий производные регулярных выражений, приведен в [2], глава 12, раздел 4, где он зачислен в [4]. См. [1] и [3] для более общего случая субпоследовательных преобразователей (терминология немного устарела, и термин « последовательный преобразователь» , вероятно, более уместен в настоящее время).

[1] К. Чоффрут, Минимизация субпоследовательных преобразователей: обзор, Теорема. Комп. Sci. 292 (2003), 131–143.

[2] С. Эйленберг, Автоматы, Языки и машины, вып. A, Academic Press, 1974.

[3] Ж.-Е. Pin, учебник по последовательным функциям . (Слайды)

[4] Г. Н. Рене, Последовательные функции, JACM 5 (1958), 177–180.


@DW Спасибо за редактирование. Просто отлично.
Ж.-Е.

1

Алгоритм Бжозовского - плохая отправная точка (если вас интересует асимптотическое время выполнения в худшем случае). Даже Википедия говорит вам так:

Как заметил Бжозовский (1963), обращение ребер DFA создает недетерминированный конечный автомат (NFA) для обращения исходного языка и преобразования этого NFA в DFA с использованием стандартной конструкции powerset (построение только достижимых состояний преобразованный DFA) приводит к минимальному DFA для того же самого обращенного языка. Повторение этой операции обращения во второй раз приводит к минимальному DFA для исходного языка. Сложность алгоритма Бжозовского в наихудшем случае является экспоненциальной, поскольку существуют обычные языки, для которых минимальное DFA обращения существенно экспоненциально больше минимального DFA языка [6], но оно часто работает лучше, чем можно предположить в этом худшем случае.

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

Попробуйте адаптировать другой алгоритм минимизации DFA.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.