Як довести, що ДФА від НФА можуть мати експоненціальну кількість штатів?


20

Усі недетерміновані кінцеві автомати можуть бути перетворені на еквівалентні детерміновані кінцеві автомати. Однак детерміновані кінцеві автомати дозволяють лише одну стрілку на символ, що вказує на стан. Тому його держави повинні бути членами владної сукупності штатів NFA. Це, мабуть, вказує на те, що кількість штатів ДФА може масштабуватися експоненціально з точки зору кількості штатів НФА. Однак мені було цікаво, як насправді це довести.


7
Це розумне питання, і конструкція не зовсім очевидна, але це все ще може бути питанням домашнього завдання. Отже, було б корисно почути, чому ви хочете знати.

тут є деякі споруди, але здається, що це повинно бути десь у папері. не знаю, що за реф. також зверху голови думаю, що існує така конструкція, що NFA рахує двійкові у своїх активних станах і приймає лише після приблизно переходів ...? 2n
vzn

Відповіді:


15

Одна операція, яка перетворює NFA в іншу NFA, але не робить цього для DFA, є переворотом (наведіть усі стрілки навпаки, і поміняйте початкові стани на приймаючі стани). Мова, розпізнавана трансформованим автоматом, - це перетворена мова LR={un1u0u0un1L} .

Таким чином, одна ідея полягає у пошуку мови, яка має асиметричну конструкцію. Вперед, цю мову слід розпізнати, перевіривши перші символів, вимагаючи лише n + O ( 1 ) станів. Ідучи назад, слід зберігати пам'ять про останні n станів, для чого потрібні стани A n + O ( 1 ), де A - розмір алфавіту.nn+O(1)nAn+O(1)A

Ми шукаємо мову форми де M n складається зі слів довжини n , S - нетривіальний підмножина алфавіту, а M ' не надає жодних додаткових обмежень. Ми можемо також вибрати найпростіший алфавіт A = { a , b } (однофакторний алфавіт не зробить, там ви не отримаєте менших NFA) і M = A . Нетривіальний S означає SMnSMMnnSMA={a,b}M=AS . Що стосуєтьсяS={a} , ми вимагаємо, щоб він не співвідносився з S (так що DFA для перетвореної мови потрібно буде зберігати пам'ять S ): взяти M n = A n .MnSSMn=An

Нехай . Його розпізнає проста DFA з n + 2 станами.Ln=(a|b)na(a|b)n+2

dfa

Повернення його дає NFA, який розпізнає .LnR=(a|b)a(a|b)n

nfa

Мінімальна ДКА , який розпізнає має , щонайменше , 2 п + 1 стан. Це тому, що всі слова довжиною 2 n + 1LnR2n+12n+1 повинні досягати різних станів у DFA. (Іншими словами, вони належать до різних класів еквівалентності Міхілла-Нерода .) Щоб довести це, візьміть два різних слова і нехай k - положення, де вони відрізняються ( u kv k ). Не втрачаючи загальності, припустимо, що uu,vAn+1kukvk і v k = b . Тоді u b kL R n і v b kL R n ( b k - відмінне розширення для u і v ). Якщо u і v призвели до одного і того ж стану в DFA, що розпізнає L R n, то так би u b k і v b kuk=avk=bubkLnRvbkLnRbkuvuvLnRubkvbk, що неможливо, оскільки один призводить до стану прийняття, а інший - ні.

Підтвердження: цей приклад наводився у Вікіпедії без пояснень. У цій статті подано посилання на статтю, яку я не читав, яка дає
чіткіше обмеження: Leiss, Ernst (1981), "Коротке представлення регулярних мов булевими автоматами", Theoretical Computer Science 13 (3): 323–330, doi: 10.1016 / S0304-3975 (81) 80005-9 .


Логічний відповідь: Держави в DFA використовуються як пам'ять (для зберігання деякої інформації, наприклад вимикача вентилятора вимкнення), тому те, що може бути представлено в одному стані в DFA, може бути представлене за допомогою комбінації станів в еквівалентній NFA. Це є причиною, що в NFA є менше станів порівняно з еквівалентними DFA. Тепер, якщо у наборі Q у вас станів, тоді множина всіх можливих комбінацій Q - це потужність, що дорівнює 2 n , тож якщо ми повернемо NFA з n станів в еквівалентну DFA, то DFA буде складатися з щонайбільше 2 n держав. - Чи є сенс? nQQ2nn2n
Grijesh Chauhan

1
@GrijeshChauhan Це не те питання. Так, легко помітити, що для кожної NFA з станами існує DFA з щонайбільше 2 n станами. Але тут ми хочемо побачити, що обмеження досягнуто, тобто для будь-якого n існує n- державна NFA така, що найменший еквівалент DFA має щонайменше 2 n станів (або близьких до них, тут я доводжу пов'язаний 2 n - 1 ). n2nnn 2n2n1
Жиль "ТАК - перестань бути злим"

хм ... прочитавши вашу відповідь двічі та з коментаря "Але тут ми хочемо побачити, що межу досягнуто" тепер я міг би зрозуміти. Спасибі.
Гріеш Чаухан

8

Розглянемо наступне сімейство мов: Ln={x1,x2,,xk#xk+1:i{1,,k} with xi=xk+1}

Алфавіт дорівнює { # , 1 , , n } .Ln{#,1,,n}

Існує NFA з станами, які розпізнають мову L n . Він має n примірників. У i- й копії ми здогадуємось, що останньою буквою буде i , і перевіряємо нашу здогадку. Конструювати таку копію з 3 станів просто. Єдиний недетермінізм - у початковому стані.O(n)Lnnii3

Однак не існує DFA, який би розпізнавав з меншими станами 2 O ( n ), оскільки, інтуїтивно, DFA повинен запам'ятати підмножини { 1 , , n } .Ln2O(n){1,,n}

Я майже впевнений, що в книзі Сіпсера є такий приклад.


Побудова в книзі Сіпера виробляє DFA з точно 2 ^ n станами. Якщо у NFA встановлено стан Q, то набір стану DFA дорівнює Pow (Q), щоб імітувати всі можливі "паралельні" стани, з якими має бути міг NFA. побудова, використана для цього в стандартному тексті, чітко показує можливість експоненціального числа станів, мені здається, це не рівень дослідження. Хоча це може бути доречним запитом.
Логан Мейфілд

8

Іншим прикладом є мова всіх слів, які пропускають один символ алфавіту. Якщо алфавіт має розмір , то NFA може «відгадати» вихідний стан і так прийняти мову з n державами. З іншого боку, використовуючи теорему Нерода, легко помітити, що розмір мінімальної DFA для цієї мови становить 2 n .nn2n

Цей приклад також показує, що НФА можуть зазнати експоненціального вибуху при доповненні. Дійсно, відомо, що будь-яка NFA (або навіть без контексту граматика) для мови всіх слів, що містять усі символи алфавіту, повинна мати експоненціальну кількість станів.


1
У випадку, якщо хтось, окрім мене, спочатку неправильно трактував це, "слова, які пропускають один символ алфавіту", означає . (Не: слова, що містять кожну букву, окрім однієї, або слова, які перераховують літери в порядку та пропускають одну.)σΣ(Σσ)
6005

Це трохи дивний приклад, оскільки розмір не вважається постійним для сімейства прикладів. Якщо припустити фіксований двійковий алфавіт, ми можемо адаптувати приклад, кодуючи n букв у двійковій формі, але результат дещо інший. Якщо припустити, що я не помилився, то в такому випадку ми можемо отримати NFA розміром O ( n 2 ), і DFA повинен бути розміром не менше 2 n 2 n . ΣnO(n2)2n2n
6005

Суть цього прикладу полягає в тому, що обдув відповідає точно встановленій потужності конструкції. Існує двійковий приклад з такою ж дублею, але це складніше.
Yuval Filmus

Так, це приємний приклад.
6005

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