Алгоритм Бжозовського для мінімізації DFA


16

Алгоритм мінімізації DFA Бжозовського будує мінімальний DFA для DFA G шляхом:

  1. перевернути всі ребра в G , перетворивши початковий стан у стан прийняття, а стан прийняття - початковий, щоб отримати NFA N для зворотної мови,
  2. використовуючи побудову живлення, щоб отримати G для зворотної мови,
  3. обернення ребер (і початковий прийняття підкачки) в G щоб отримати NFA N для мови оригіналу, і
  4. Gmin

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

Якщо - розмір вхідної DFA, - розмір мінімальної DFA, а - розмір мінімального зворотного DFA, то який час виконання алгоритму Бжозовського з точки зору , та ?NnmNnm

Зокрема, за яких взаємозв'язків між та алгоритм Бжозовського перевершує алгоритми Хопкрофта чи Мура?мnm

Я чув, що на типових прикладах у практиці / застосуванні алгоритм Бжозовського перевершує інші. Неформально, що це за типові приклади?


було б корисно, якщо ви включите оцінки O (f (n)) цих алгоритмів. чи всі вони O (n log (n)) у "середньому" випадку? якщо так, то дебати з приводу їх відносної продуктивності можуть бути здебільшого застосованим тестом залежно від статистичних характеристик / структури вхідних даних ... здається, що Бжозовський працює швидко, коли зворотний НФА "не великий" ...?
vzn

Будьте обережні з виконанням алгоритму, ви можете спокуситися ввести стан віртуального початку при виконанні 1. і 3., що призведе до неправильних результатів - дивіться тут . (Це не помиляється у питанні. Ви просто повинні бути обережними, щоб не помилитися.)
A.Schulz

Відповіді:


5

Ось частковий відповідь щодо вашого третього запитання. Насправді, можливо, алгоритм Бжозовського дійсно не перевершує всі інші алгоритми так чітко в мінімізації DFA.

У роботі [1] автори досліджують практичну ефективність алгоритмів мінімізації DFA / NFA. Алгоритми - це Хопкрофт, Бжозовський та два варіанти Ватсона. Вони роблять висновок, що чіткого переможця немає, але алгоритм Хопкрофта працює краще для DFA з малими алфавітами. Що стосується НФА, то Бжозовський, очевидно, найшвидший.

Сам папір досить короткий і чітко написаний. Також можуть бути корисні додаткові дискусії та посилання.


[1] Алмейда М., Морейра Н. та Рейс Р. Про ефективність алгоритмів мінімізації автоматів, четверта конференція з обчислюваності в Європі, червень 2008 року.


Дякую, я погляну на документ і побачу, чи зможу я використати посилання, щоб знайти повну відповідь.
Артем Казнатчеєв

5

Більшість нижче наведені з теорії Парсінга Сіппу та Сойсалона-Сойнінена.

Нехай - сукупність станів DFA. Нехай T - вхідний алфавіт. Нехай | М | = O ( | T || Q | ) - розмір машини. Вправа 3.40 дає алгоритм O ( | T || Q | 2 ) для мінімізації стану. Як описує Вікіпедія , алгоритм Хопкрофта має час роботи O ( | T || Q |logQТ|M|=O(|T||Q|)O(|T||Q|2) і алгоритм Мура має час роботи O ( | T | 2| Q | ) .O(|T||Q|log|T|)O(|Т|2|Q|)

У теоремі 3.30 зазначено, що побудова підмножини може бути виконана в отримуючи автоматику розміром O ( 2 | T | + log | Q | ) (насправді, якщо отриманий автомат має | T | стани, час роботи - ( | T | + | T || MO(2|Т|+журнал|Т|+журнал|Q|)О(2|Т|+журнал|Q|)|Т'|). Отож, два обертання та друге визначення визначаються непослідовними у часі виконання, тому асимптотичний час роботи алгоритму Бжозовського такий же, як і для побудови підмножини.(|Т'|+|Т||М|)|Q|

Це означає, що в гіршому випадку алгоритм Бжозовського експоненціально повільніше, ніж інші три алгоритми. Зауважимо, що найгірший випадок дійсно має місце: класичний приклад NFA для мови має k + 1 стани, а відповідний мінімум DFA має стан O ( 2 k ) , тоді як зворотний NFA є детермінованим, тому виконання алгоритму Бржозовського на цій перевернутій NFA запускає найгіршу поведінку.(а|б)акк+1О(2к)

Однак якщо конструкція підмножини дає автоматизатори розміру , тоді його час роботи також є O ( | T | 2| Q | 2 ) , що часто трапляється на ресурсах реального життя. Крім того, якщо дотримуватися належної обережності при обчисленні закриття стану, то це в більшості випадків можна зробити набагато швидше (тобто у випадках, коли закриття невелике), економлячи фактор | Т ||Т'|=О(|Т|)О(|Т|2|Q|2)|Т|на практиці (з тієї ж причини, що транзитивні закриття можна досить швидко обчислити на прикладах реального світу). Крім того, якщо вхідні та проміжні автомати є рідкісними, а значить, у станів мало переходів, то фактор зберігається, що дає час ( O | | T || Q | ) час роботи на "хороших" входах.|Q|О(|Т||Q|)

На жаль, я недостатньо знайомий з алгоритмами Хопкрофта або Мура, щоб дати аналіз їх часу роботи в типових випадках. У деяких випадках Вікіпедія розповідає про час роботи , що зробить три алгоритми порівнянними.О(|Т|журналжурнал|Т|)


1

Де Феліс і Ніко показують, що алгоритми Бжозовського є асимптотично гіперполіномами. Девід показав, що для кількох розподілів на кінцеві стани алгоритм Хопкрофта повільніше, ніж алгоритм Мура.

Список літератури

С. Де Феліс та К. Ніко, "Алгоритм Бржозовського є загально суперполіномом для детермінованих автоматів". У працях 17-ї міжнародної конференції з розвитку мовної теорії (DLT 2013) , Записки лекцій з інформатики, стор. 170–190, 2013. ( PDF )

Дж. Девід, "Середня складність алгоритмів Мура та Хопкрофта". Теоретичні інформатики , 417: 50–65, 2012. ( Science Direct )

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