Відомі алгоритми переходу від DFA до регулярного виразу


28

Мені було цікаво, чи є алгоритм `` кращого '' (я поясню в якому сенсі) алгоритм, який слід починати з DFA і будувати регулярний вираз r такий, що L ( A ) = L ( r ) , ніж той, що в книга Хопкрофта та Улмана (1979). Там множини R k i j використовуються для представлення наборів рядків, які приймають DFA зі стану q i в q j, не переходячи через будь-який стан, пронумерований вище k . Ця конструкція, хоча і очевидно правильна і дуже корисна, є досить технічною.ArL(A)=L(r)Rijkqiqjk

Я пишу монографію про теорію алгебраїчних автоматів, і не хочу відволікати свою аудиторію на занадто багато технічних деталей (принаймні, не на деталі, які не мають значення для результатів, які я хочу показати), але я хочу включити доказ еквівалентності між DFA та регулярними виразами заради повноти. Для запису я використовую автомати Glushkov для переходу від регулярного виразу до DFA. Це здавалося більш інтуїтивним, ніж -переходи, які я взагалі не визначав (знову ж таки, тому що вони мені не потрібні).ε

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

Заздалегідь дякую за вашу допомогу!


1
Це не інший алгоритм, але алгоритм можна виразити алгебраїчно, використовуючи k- ту силу матриці регулярних виразів у відповідній алгебрі. Можливо, ви знайдете це більш елегантним / стислим. Я шукаю довідку. Rijkk
Макс

1
Алгоритм по суті є варіантом алгоритму Флойда-Варшалла для задачі "Всі пари-найкоротший шлях", тому ви можете знайти презентацію з точки зору множення матриць шляхом пошуку цих ключових слів. Rijk
Ян Йохансен

2
Я згоден. Це в основному алгоритм Флойда-Варшалла. Його також можна отримати, використовуючи стандартні методи динамічного програмування (як Floyd-Warshall).
Девід

Я впевнений, що раніше відповів на таке запитання, але не можу його знайти.
Рафаель

@Max ви могли б знайти посилання? Мене цікавить матричне представлення, воно має бути більш привабливим для алгебристів.
Янома

Відповіді:


17

Ще дві конструкції: усунення стану Бржозовського-МакКлускі [1] та елімінація Гаусса в системі рівнянь за допомогою леми Ардена. Найкраще джерело про них - це, мабуть, книга Жака Сакаровича [2].

[1] J. Brzozowski, E. McCluskey Jr., Техніка власних графіків для діаграм стану послідовних схем, транзакцій IEEE на електронних комп’ютерах EC-12 (1963) 67–76.

[2] Й. Сакарович, Елементи теорії автоматів. Cambridge University Press, 2009.


2
Я вважаю підхід розв’язування рівнянь за допомогою леми Ардена найпростішим і найпростішим для пояснення, тому я його так представляю у вступному класі теорії.
Ян Йохансен

Метод системи рівнянь звучить блискуче. На жаль, у бібліотеці мого університету немає книги, яку ви згадуєте (Сакарович), але я збираюся шукати в іншому місці.
Janoma

4
Порівняння конструкцій знаходимо також у праці Сакаровича "Мова, вираз та (малий) Автомат", CIAA 2005, LNCS 3845, Springer (2006) 15-30. Дивіться infres.enst.fr/~jsaka/PUB/Files/LESA.pdf
Герман Грубер

2
Також зауважте, що впорядкування, в якому обробляються стани, може сильно вплинути на розмір отриманого регулярного виразу. Це завжди справедливо: чи будете ви це робити з лемою Ардена, Макнафтоном-Ямадою, усуненням стану чи іншим варіантом. Доступно кілька простих евристик для вибору хорошого замовлення на усунення.
Герман Грубер

15

У книзі Козена "Автоматизація та обчислюваність" згадується про елегантне узагальнення цього алгоритму Флойда-Варшалла. Оскільки ви згадали про звернення до алгебраїстів, вам це може бути корисним. Ви знайдете це на сторінці 58-59 цього тексту. (Я думаю, що книги Google мають попередній перегляд.)

2×2

[abcd]=[(a+bdc)(a+bdc)bd(d+cab)ca(d+cab)]

i,jij

n×na,b,c,dm×mm×(nm)(nm)×m(nm)×(nm)2×22×2

nTfF(T)s,fsT

m=1Rijk

Інша деривація алгебри Клінова над матрицями з'являється в теоремі повноти для алгебри Клейна та алгебри регулярних подій Козена.


12

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

Я написав цей документ, пояснюючи метод для студентів минулого літа. Це безпосередньо стосується конкретної лекції; Згадане посилання є типовим визначенням регулярних виразів. Докази леми Ардена містяться; один для правильності методу відсутній. Коли я дізнався про це на лекції, я не маю посилання, на жаль.


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

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