Язык не является регулярным, и мы можем доказать это с помощью теоремы Майхилла-Нероде.
Рассмотрим последовательность строк 01, 0101,..., (01)^n,...
Во-первых, обратите внимание, что ни одна из этих строк не находится на языке. Любой префикс любой из этих строк, который имеет четную длину, имеет форму (01) ^ 2m для некоторого m и, следовательно, просто более короткая строка в последовательности; при разделении такого префикса на две либо обе подстроки начинаются с 0 и заканчиваются на 1, либо первая подстрока начинается и заканчивается на 0, а вторая начинается и заканчивается на 1. В любом случае эти строки не имеют формы w(w^R)u для любого w или u.
Далее обратите внимание, что самая короткая возможная строка, которую мы можем добавить к любой из этих строк, чтобы создать строку в языке, всегда является обратной самой себе, за которой следует либо 0, либо 1. То есть, чтобы превратить 01 в строку в языке язык, мы должны добавить 100 или 101; нет более коротких строк, которые мы можем добавить к 01, чтобы получить строку на языке. То же самое верно и для 0101: 10100 и 10101 — это кратчайшие возможные строки, переводящие 0101 в строку в L. И так далее для каждой строки вида (01)^n.
Это означает, что каждая строка вида (01)^n различима относительно целевого языка w(w^R)u. Теорема Майхилла-Нероде говорит нам, что минимальный ДКА для регулярного языка имеет ровно столько состояний, сколько существует классов эквивалентности при отношении неразличимости. Поскольку у нас есть бесконечно много различимых строк относительно нашего языка, минимальный DFA для этого языка должен иметь бесконечно много состояний. Но DFA не может иметь бесконечно много состояний; это противоречие. Это означает, что наш язык не может быть регулярным.
person
Patrick87
schedule
26.05.2021