NFA з експоненціальною кількістю станів при детемінізації


10

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


Це питання дещо незрозуміле. Загалом, існує нескінченна кількість еквівалентних DFA для будь-якої звичайної мови та нескінченно багато еквівалентних NFA для будь-якої заданої звичайної мови. Якщо ви хочете мінімальних DFA з станами, це не завжди навіть можливо, оскільки різні NFA можуть розпізнавати одну і ту ж мову і мати різні кількості станів, але відповідають одній мінімальній DFA. Якщо, крім того, ви хочете розглянути лише "мінімальні" NFA, це стане дещо цікавішим ...2n
— Patrick87

2
Патріку, я вважаю, що ОП означає приклад, коли мінімальний коефіцієнт DFA є експоненціально більшим, ніж мінімальний NFA.
— Yuval Filmus

@ Patrick87 Я не шукаю алгоритм. Все, що я хочу, - це приклад пари машин: DFA з станами та NFA з станами, які приймають ту саму мову. 2nn
— saadtaame

@saadtaame: Це тривіально: візьміть будь-який DFA та додайте достатньо станів, щоб досягти . Цікавим прикладом є ті, де мінімальний еквівалент DFA має стільки станів. 2n
— Рафаель

1
Зауважте, що стаття у Вікіпедії про мінімізацію DFA посилається на придатні приклади (хоча ви повинні з'ясувати маленький NFA самостійно).
— Рафаель

Відповіді:


18

Стандартний приклад - мова усіх слів над алфавітом розміром який не містить усіх різних літер. Існує NFA, що приймає з станами (або станів, якщо ви дозволяєте декілька стартових станів): спочатку відгадайте, що буква яка відсутня, потім перейдіть (з -move) у стан, що приймає, з самосмиками для всіх , крім букв .LAnLn+1naϵA

Будь-який DFA для вимагає щонайменше станів. Це можна побачити, використовуючи теорему Міхілла-Нерода. Нехай це два різних підмножини слів і які містять усі та лише літери у відповідно. Не втрачаючи загальності, припустимо, що , і нехай . Тоді , а .L2nS1,S2Aw(S1),w(S2)S1,S2a∈S1∖S2w=w(A−a)w(S1)w∉Lw(S2)w∈L


10

це вправа у книзі "Кінцеві автомати" університету Марка В. Лоусона Еріот-Ватт, Едінбург, стор. 68:

Нехай . Покажіть, що мову можна розпізнати за допомогою недетермінованого автомата з станами. Покажіть, що будь-який детермінований автомат, який розпізнає цю мову, повинен мати принаймні станів. Цей приклад показує, що експоненціальне збільшення кількості станів при переході від недетермінованого автомата до відповідного визначального автомата іноді неминуче.n≥1(0+1)∗1(0+1)n−1n+12n


10

Я буду здогадуватися, що ви маєте на увазі, що оптимальна DFA має станів. Можливо, це не дає вам станів, але це .2n2nΩ(2n)

З "Складності спілкування" Кушилевіца та Нісана в навчанні 12.6:

"Для деякого постійного [невід'ємного цілого] розглянемо (кінцеву) мову ."cLc={ww∣w∈{0,1}c}

і книга продовжує просити вас довести, що ви можете знайти ко-NFA, що розпізнає який використовує стани а також, що ви не можете зробити краще, ніж для DFA.LcO(c)Ω(2c)


Крім того, доказ другої частини "вимагає" складності спілкування, тому це може не відповідати вашим цілям.
— Тимофій Нд

Дякую за відповідь! Що ви маєте на увазі під спів-NFA?
— saadtaame

В основному, перемикайте "прийняття" на "відхилення" у визначенні NFA. Тобто, якщо жоден із можливих шляхів не призводить до стану відхилення, ви приймаєте, інакше ви відхиляєте.
— Тимофій Нд

Насправді нижня межа випливає досить легко з Міхіл-Нерода. (Насправді, ви можете отримати щось на зразок .) Але мій co-NFA використовує стан . 2c(c+1)2cΘ(c2)
— Yuval Filmus

Кінцеві мови дещо нудні в цьому плані. Дивіться також тут .
— Рафаель

9

Це пізня відповідь, але, очевидно, ніхто не дав оптимального рішення. Візьміть , et , з Цей NFA на двобуквенний алфавіт має станів, лише одне початкове і одне кінцеве стани, а його еквівалентний мінімальний DFA має станів.A={a,b}Qn={0,1,…,n−1}An=(Qn,A,En,{0},{0})

En={(i,a,i+1)∣0⩽i⩽n−1}∪{(n−1,a,0)}∪{(i,b,i)∣1⩽i≤n−1}∪{(i,b,0)∣1⩽i⩽n−1}}
n2n

3
Дуже розумний! Мова, прийнята цим автоматом, є , де складається з усіх слів, що містять букву не більше разів. (an+aWn−1b)∗Wn−1an−1
— Юваль Фільм

2
@ yuval-filmus Цей приклад не мій. Я хотів дати довідку, але наразі не пам'ятаю, де це бачив.
— Ж.-Є.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.