2DFA, що вимагає багатьох станів в еквівалентній DFA?


11

Чи існує 2DFA з станами (де нетривіально, скажімо, принаймні 4), що вимагає принаймні станів, щоб імітувати за допомогою будь-якого DFA?n 2 nnn2n

Двосторонній DFA (2DFA) є детермінованим кінцевим числом станів автомата , який може переміщатися назад і вперед на його тільки для читання введення стрічки, в відміну від кінцево-автоматів , які можуть рухатися тільки вхідний головки в одному напрямку.

Загальновідомо, що 2DFA розпізнають точно той же клас мов, що і DFA, іншими словами звичайні мови. Менш добре зрозумілим є питання про те, наскільки ефективно моделювання. Оригінальні конструкції з кінця 50-х років Рабіна / Скотта та Шепердсона використовували поняття схрещування послідовностей і їх досить важко проаналізувати. Моше Варді опублікував ще одну конструкцію, яка показує верхню межу станів , але ця зв'язок може мати деяку слабкість.2O(n2)

Я запитую, чи відомі якісь (сімейства) 2DFA, які потребують багатьох станів у будь-якій DFA, що імітує їх, навіть після мінімізації Myhill-Nerode DFA. Крім того, чи будуть якісь цікаві наслідки того, щоб знати такі 2DFA?

Відповіді:


9

Щільна межа , яка була надана у видаленні двонаправленості з недетермінованих кінцевих автоматів Крістосом Капуцісі (2005).n(nn(n1)n)

Я також розміщую фігуру з цієї статті, даючи чітку картину:

Щоб отримати більше, я вважаю, що цей документ є гарною відправною точкою. Щоб перевірити пов'язані з цим останні події, я також можу порекомендувати перевірити документи, перелічені тут: dblp: Christos A. Kapoutsis .


1
Ідеально, дякую! У порівнянні з верхньою межею Варді це показує межу . 2 Θ ( n журнал n )2O(n2)2Θ(nlogn)
Андраш Саламон

5

Розглянемо наступну мову алфавіту :Σ={a,b,c}

{a,b}b{a,b}nc

На словах, це набір слів, які містять точно одну і для яких символів перед , буквою можна знайти.n + 1 c bcn+1cb

Мова може бути прийнята двостороннім DFA розміром для деякої постійної , але нам потрібно більше станів у DFA для того, щоб відслідковувати останні символів з введення префікса stream . 2-DFA починається з циклічного руху в початковому стані і буде перевертати напрямок, читаючи . Потім він чекає кроків (слідуючи ланцюжку з переходів) і, нарешті, перевіряє, що зчитується.c 2 n n { a , b } c n n bn+cc2nn{a,b}cnnb

Хоча це не є формальним доказом, зробити це з нього не повинно. Зауважте, що для подвійної мови може бути показано, що потребує більше ніж станів для кожної NFA, тоді як 2-DFA має бути розміром (можливо, +1). n + c2nn+c


@MateusdeOliveiraOliveira, я не думаю. Звідки ви знаєте, коли переходити з до ? Як би DFA сказало, де повинен бути перехід (не маючи змоги дивитися вперед символів)? b ( a + b ) nc n(a+b)b(a+b)ncn
DW

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