Чи може недетерміновані кінцеві автомати (NDFA) бути ефективно перетворені на детерміновані кінцеві автомати (DFA) у субекспоненціальному просторі / часі?


16

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

DFA має ту саму виразну силу, що і NDFA, тому що n-стан NDFA може бути тривіально перетворений у DFA, що має 2 ^ n станів. Однак чи існують гарантії нижньої верхньої межі для такого перетворення, які не потребують експоненційного вибуху в стані?

Я не зміг придумати приклади неправильних поведінкових регулярних виразів або NDFA, але я не витратив багато часу на це. Я здогадуюсь регулярного виразу типу ((((e | A | B | C) * (e | D | E | F)) * (e | G | H | I)) * (e | J | K | L | M)) *, що змішує багато чергувань, і зірки Клієна мали б лінійний розмір NDFA, але розширений DFA.


Чи є якісь обмеження щодо класу NFA, які ви хочете прийняти як вхідні дані? Деякі обмеження призводять до кращих верхніх меж.
Андрас Саламон

не дуже важливий момент, але чи потрібно ndfa бути власним тегом?
Лев Рейзін

Так, існують обмеження. NFA будуються безпосередньо з регулярних виразів, трактуючи їх як узагальнені графіки переходу. seas.upenn.edu/~cit596/notes/dave/regexp-nfa4.html
Wesner Moise

Відповіді:


15

Відомо, що для кожної пари натуралів n,aтаких чисел n <= a <= 2^nіснує мінімальна NDFA зі nстанами, відповідні мінімальні dfa мають aстани (понад чотири літери алфавіту).

Дивіться статтю тут: Детерміновані вибухи мінімальних недетермінованих кінцевих автоматів над нерухомим алфавітом .

Тези доповіді:

Покажемо, що для всіх цілих чисел n та α таких, що n ≤ α ≤ 2 ^ n, існує мінімальний недетермінований кінцевий автомат n станів з чотирибуквеним вхідним алфавітом, еквівалентний мінімальний детермінований кінцевий автомат має саме стани. Звідси випливає, що у випадку з чотирибуквенним алфавітом відсутні "магічні числа", тобто отвори в ієрархії. Це покращує аналогічний результат, отриманий Геффертом для зростаючого алфавіту розміру n + 2 (Proc. 7th DCFS, Como, Italy, 23-37).

Отже, я вважаю, що відповідь на ваше запитання - ні.


питання полягає в тому, щоб задати "алгоритм", який працює в субекспоненціальному часі та просторі для перетворення NFA.
Marcos Villagra

@Marcos: Якщо ваш вихід експоненціальний, ви, можливо, не можете мати алгоритм, який працює в субекспоненціальний час.
Арябхата

1
Це загальний результат. Якщо існують відомі обмеження щодо класу вхідних NFA, можливо, це можливо зробити і краще.
Андраш Саламон

@Andras: Погодився, але враховуючи, що це, мабуть, пов'язане з програмуванням (яке підтримуватиме Kleen * тощо), я сумніваюся, чи буде набір вхідних NFA обмежений належним підмножиною.
Ар'ябхата

5
Цей результат нещодавно був підсилений, щоб використовувати трибуквенний

13

Класичним прикладом для мови з експоненціальним поділом між розміром DFA та розміром NFA є така кінцева мова: двійкові рядки довжиною рівно 2n, в якій перша половина не дорівнює другій половині. NFA вгадає індекс i, в якому перша та друга половина не згодні. Нижня межа для DFA випливає, наприклад, із складності зв'язку.


8

У мінімальному DFA, що відповідає NFA, у гіршому випадку є 2 ^ n станів, тому ви нічого не можете гарантувати. Не маючи конструктивного прикладу, міркування полягає в тому, що в NFA ви можете перебувати в будь-якому довільному підмножині станів після читання певного вхідного рядка, і кожен такий підмножина може поводитися по-різному при спостереженні за одним символом. Припустимо, мова з двома символами в алфавіті (a і b) та NFA N з n станами, що починається з приймаючого стану в s_0. Тепер перерахуйте всі підмножини станів N і побудуйте таблицю переходу таким чином, що спостереження "a" з підмножини S_i приведе вас до підмножини S_i + 1, а спостереження b призведе до підмножини S_i-1 (це можливо для деяких перерахувань, я думаю ). Тепер цей автомат має n станів і приймає послідовності ma і nb такі, що mn = 0 mod 2 ^ | N |, і не може бути виражена за допомогою DFA, який має менше 2 ^ | N | стани (оскільки може знадобитися проходження по всіх підмножинах станів NFA N).


Чи можна це перетворити на аргумент, який говорить: "якщо (якась погана річ) уникнути в NFA, то DFA має субекспоненціальну кількість штатів"?
Андраш Саламон

1
@ András, так. "Якщо в NFA уникнути недетермінізму, то DFA має субекспоненціальну кількість станів".
П Швед

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