Одна операція, яка перетворює NFA в іншу NFA, але не робить цього для DFA, є переворотом (наведіть усі стрілки навпаки, і поміняйте початкові стани на приймаючі стани). Мова, розпізнавана трансформованим автоматом, - це перетворена мова LR={un−1…u0∣u0…un−1∈L} .
Таким чином, одна ідея полягає у пошуку мови, яка має асиметричну конструкцію. Вперед, цю мову слід розпізнати, перевіривши перші символів, вимагаючи лише 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 означає SMnSM′MnnSM′A={a,b}M′=A∗S . Що стосуєтьсяS={a} , ми вимагаємо, щоб він не співвідносився з S (так що DFA для перетвореної мови потрібно буде зберігати пам'ять S ): взяти M n = A n .MnSSMn=An
Нехай . Його розпізнає проста DFA з n + 2 станами.Ln=(a|b)na(a|b)∗n+2
Повернення його дає NFA, який розпізнає .LRn=(a|b)∗a(a|b)n
Мінімальна ДКА , який розпізнає
має , щонайменше , 2 п + 1 стан. Це тому, що всі слова довжиною 2 n + 1LRn2n+12n+1 повинні досягати різних станів у DFA. (Іншими словами, вони належать до різних класів еквівалентності Міхілла-Нерода .) Щоб довести це, візьміть два різних слова і нехай k - положення, де вони відрізняються ( u k ≠ v k ). Не втрачаючи загальності, припустимо, що uu,v∈An+1kuk≠vk і v k = b . Тоді u b k ∈ L R n і v b k ∉ L R n ( b k - відмінне розширення для u і v ). Якщо u і v призвели до одного і того ж стану в DFA, що розпізнає L R n, то так би u b k і v b kuk=avk=bubk∈LRnvbk∉LRnbkuvuvLRnubkvbk, що неможливо, оскільки один призводить до стану прийняття, а інший - ні.
Підтвердження: цей приклад наводився у Вікіпедії без пояснень. У цій статті подано посилання на статтю, яку я не читав, яка дає
чіткіше обмеження: Leiss, Ernst (1981), "Коротке представлення регулярних мов булевими автоматами", Theoretical Computer Science 13 (3): 323–330, doi: 10.1016 / S0304-3975 (81) 80005-9 .