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


11

Алгоритм Бжозовського можна поширити на автомати Мура, але його часова складність загалом експоненціальна. Чи існує якийсь інший алгоритм мінімізації автоматів Мура? Який час роботи цих алгоритмів, якщо такі є?


До якого алгоритму Бжозовського ви посилаєтесь? Той, що використовує похідні регулярних виразів?
Ж.-Є.

2
Ласкаво просимо до SE Computer Science. Оскільки ви, мабуть, ще не прочитали презентацію сайту, вам слід знати, що це спільна робота, заснована на технічному обміні між користувачами, які задають питання, та користувачами, які надають відповіді чи коментарі. Таким чином, вважаємо за потрібне відповідати користувачам, які просять більше деталей у коментарях, викликати хороші відповіді чи хороші коментарі (або інші цікаві запитання чи відповіді, які ви читаєте), і, нарешті, прийняти відповідь, який ви вважаєте найкращим на свої запитання, натиснувши " знак "(як V) зліва від обраної відповіді.
babou

Чи відповідь вам корисна?
бабу

Відповіді:


6

Оригінальний алгоритм мінімізації DFA був фактично розроблений для Moore Machines , керуючись їх, очевидно, більш спостережливою поведінкою. Але алгоритм, представлений тут, є реконструкцією з мінімізації DFA, оскільки я виявив історичні дані після цього факту.

Після Вікіпедії (з деякими помітними змінами):

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

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

З цього визначення машина Мура є детермінованим перетворювачем з кінцевим станом.

Я не маю посилання на мінімізацію автомати Moore. Однак, здається, не надто складно уявити алгоритм, похідний від алгоритму, що використовується для детермінованих автоматичних систем кінцевого стану.

Ідея мінімізації DFA заснована на характеристиці звичайних мов Myhill-Nerode .

З урахуванням мовою , і пару рядків х і у , визначає відмітна розширення бути рядком г такий , що саме один з двох рядків х г і у г належить L . Визначте відношення R L на рядках за правилом, що x R L y iff немає розрізнювального розширення для x і y . Неважко показати, що R L - це відношення еквівалентності на рядках, і таким чином він ділить набір усіх рядків на класи еквівалентності.LxyzxzyzLRLxRLyxyRL

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

В насправді кожне стан найменшого DFA таке , що W д , як визначено вище , є одним з класів еквівалентності відносини R L .qWqRL

Для немінімально DFA для регулярного мови , то легко показати , що кожне безліч W ц містить рядки , які все належать одному і тому ж класу еквівалентних по відношенню до R L .LWqRL

Отже, мінімізація DFA насправді складається з станів, що зливаються (розглядаються як набори еквівалентних рядків), кожного разу, коли буде показано, що два різних стану містять еквівалентні рядки.

Для цього існує два досить швидких алгоритми, алгоритм Мура (1956), який знаходиться в часі і алгоритм Хопкрофта (1971) в часі O ( n log n ) .O(n2)O(nlogn)

Розширення автоматів Мура найкраще можна зрозуміти в перевизначенні відносини еквівалентності як для датчика T . Відношення R L стосувалося того, чи призведе майбутній вхід в еквівалентному стані до приймаючого. Р Т відношення еквівалентності автоматів Мура стосується введення , чи буде в майбутньому виробляти один і той же вихід.RTTRLRТ

Отже, даючи перетворювач і дві струни x і y , ми визначаємо розрізнювальним розширенням такий рядок z , що T ( x z ) = T ( x ) u і T ( y z ) = T ( y ) v з u v , тобто такий, що вихідна поведінка перетворювача відрізняється для z залежно від того, наскільки він знаходиться за x або y .ТхуzТ(хz)=Т(х)уТ(уz)=Т(у)vуvzху

Знову ж таки, - це відношення еквівалентності, що ділить всі рядки в Σ на класи еквівалентності. У разі машини Мура ці класи знову відповідатимуть стану мінімального перетворювача.RТΣ

Наступний алгоритм імітує алгоритм Мура для мінімізації DFA.

Визначимо початкове розбиття на Q на класи держав S е в наступному:ПQSе

еΠ:Sе={qQγ(q)=е}

Потім розділимо класи на таким чином:П

повторювати послідовно для кожного класу станів , поки жодні зміни не повторяться a Σ ,S
   аΣ,
     Якщо тобільше нічогонерозділяйте S на підмножини S i такі, щодля кожної підмножини S i існує інший клас S P такий, щоq S i ,S'П,qS,δ(q,а)S'
     SSi
      SiS'П (підмножини S i замінюють S на P )qSi,δ(q,а)S'
      SiSП

Коли не залишиться класу, який потрібно розділити, решта класів станів формуватимуть стани мінімальної машини Мура.

За побудовою всі стани в класі мають однаковий вихід, який є виходом для класу.

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

Аналіз складності: Нехай бути числом станів, і s = | Σ | розмір вхідного алфавіту. Основний цикл виконується не більше n разів, оскільки кожна ітерація повинна розділяти щонайменше один клас станів, а кожен клас містить принаймні один стан. Кожна ітерація циклу вивчає кожний стан в кінцевій кількості разів і пропорційно кількості вхідних символів. Отже, складність алгоритму дорівнює O ( s n 2 ) , така ж, як алгоритм мінімізації DFA, який послужив орієнтиром для цього.н=|Q|с=|Σ|
нО(сн2)

Я не маю посилання на цю мінімізацію машин Мура. Можливо, це включено до його статті:

Мур, Едвард Ф (1956). "Геданкен-експерименти на послідовних машинах". Автоматичні дослідження , анали математичних досліджень (Прінстон, Нью-Джерсі: Princeton University Press) (34): 129-153.

Цей документ є основною посиланням, що представляє машини Мура . Це також є посиланням на алгоритм мінімізації DFA Мура . Таким чином, це повинно бути дивно, якщо адаптація алгоритму до мінімізації машин Мура не була принаймні запропонована в цій роботі. Я перевірив папір, і представлена ​​версія алгоритму мінімізації насправді для машин Мура, а не для DFA. Папір добре написаний, але стиль часу ускладнює читання. Цікаво бачити, що багато ідей теорії Міхілла-Нерода кінцевих державних машин уже замальовані в цій роботі.

Більш свіжий алгоритм завдяки Джону Хопкрофту (1971) повинен бути аналогічно адаптований до машин Мура. Незрозуміло, що була якась причина опублікувати цю адаптацію де завгодно, і папір Hopcroft, здається, не має посилання на машини Мура.О(снжурналн)


@Raphael Довідка ... Ну, вам пощастило, я переробив алгоритм, бо не маю доступу до бібліотеки. Але оскільки ви попросили довідки, я отримав вам одну. Вам це повинно сподобатися. Але я не впевнений, що використовував би це для навчання.
бабу

@Raphael Цей документ цікавий тим, що він намагається бути дуже інтуїтивним, більш оперативним, ніж алгебраїчний. Я не пам’ятаю всіх подробиць про внесок Міхілла і Нерода (два роки потому в 1958 р.), І я не прочитав цю статтю досить уважно (я скоріше її зняв), але мені цікаво, чи не слід теорію відносити до Мура як добре.
бабу

2

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

[1] C. Choffrut, Мінімізація перехідних перетворювачів: опитування, Теорет. Склад. Наук. 292 (2003), 131–143.

[2] С. Ейленберг, Автомати, Мови та машини, т. A, Academic Press, 1974.

[3] Ж.-Є. Pin, Навчальний посібник щодо послідовних функцій . (Слайди)

[4] Г. Н. Реней, Послідовні функції, JACM 5 (1958), 177–180.


@DW Дякую за редагування Просто ідеально.
Ж.-Є.

1

Алгоритм Бржозовського є поганою відправною точкою (якщо ви переймаєтесь асимптотикою найгіршого виконання). Навіть Вікіпедія говорить вам стільки:

Як зауважив Бржозовський (1963), реверсування країв DFA створює недетермінований кінцевий автомат (NFA) для повернення мови оригіналу та перетворення цього NFA в DFA за допомогою стандартної конструкції силового набору (будуючи лише досяжні стани перетворений DFA) призводить до мінімальної DFA для тієї ж перевернутої мови. Повторюючи цю операцію розвороту вдруге, створюється мінімальний DFA для мови оригіналу. Найгірша складність алгоритму Бржозовського є експоненціальною, оскільки існують регулярні мови, для яких мінімальний коефіцієнт DFA звороту є експоненціально більшим, ніж мінімальний DFA мови [6], але він часто працює краще, ніж це може запропонувати цей гірший випадок.

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

Спробуйте адаптувати інший алгоритм мінімізації DFA.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.