Является ли

9

Я сдал экзамены по теории вычислений несколько недель назад, и это был один из вопросов:

Предположим, что языкL={(anbm)rn,m,r0}

L регулярно? Если да, укажите для него регулярное выражение или автомат.

После того, как я кратко спросил его ответ после экзамена, кажется, что он действительно правильный (я думаю, он сказал, что это простое выражение ). Однако я не могу понять, почему это так. То, как я это вижу, это конкатенация r раз, вот так:(ab)anbm

anbmanbmanbm...anbmanbm ,

что не является регулярным, поскольку у автомата нет способа каждый раз вызывать n и m . Где я здесь виноват?

РЕДАКТИРОВАТЬ: Я снова говорил с профессором, он признал, что это было ошибкой. Язык действительно не обычный.

Exci
источник
14
Вы должны спросить своего учителя, является ли язык таким же, как язык . Если он скажет «да», то скажите ему, что я сказал вам, что его вопрос был плохо сформулирован. K = { a n 1 b m 1 a n 2 b m 2a n r b n rr 0 , a 1 , , a r0 , b 1 , , b r0 }LK={an1bm1an2bm2anrbnrr0,a1,,ar0,b1,,br0}
Андрей Бауэр
1
Это кажется единственным способом, которым это могло бы быть регулярным, и фактически это - то, что я первоначально поспешно думал и фактически рассматривал (a b ) *, но затем стер это, понимая, что n и m остаются тем же самым (или должен ..), и дал опровержение леммы накачки для r = 2, говорящее о том же самом, примененном к большему r (возможно, тоже не совсем полное решение, но, похоже, оно в правильном направлении). Излишне говорить, что я получил 0 за этот вопрос. Я постараюсь связаться с ним.
Я бы, конечно, понял вопрос так, как вы это делали изначально.
Андрей Бауэр
Смотрите здесь, чтобы увидеть больше способов показать, что язык не является регулярным.
Рафаэль
Вы также можете доказать то же самое с помощью прокачки леммы
SAHIL THUKRAL

Ответы:

10

Язык не является регулярным, что можно доказать с помощью метода Нерода. Рассмотрим следующие слова W п = а п Ь для п N . Тогда ш 2 пL , но для п м , ш п ш тL . Следовательно, после считывания каждого w n любой автомат для L должен находиться в другом состоянии , что противоречит его конечности.Lwn=anbnNwn2LnmwnwmLLwn

Юваль Фильмус
источник
4

В своем комментарии вы намекаете, что вы (цитируете) «дали опровержение леммы прокачки для , сказав то же самое для большего r ».r=2r

Это действительно может быть формализовано путем применения свойства замыкания. Обычные языки закрыты на пересечении. Таким образом, если является регулярным, то так будет L a b a b = { a n b a n b n 0 } , эффективно устанавливая r = 2 и m = 1 .LLabab={anbanbn0}r=2m=1

Хендрик Ян
источник
1
Уважаемый читатель, пожалуйста , не убирайте «если не является регулярным, тогда и L L » здесь - потому что это просто ложь! LLL
Рафаэль
1
@ Рафаэль Верно. Таким образом, правильная импликация будет «если не является регулярным, то и L не является регулярным », где R является регулярным. LRLR
Хендрик Ян
1
Конечно. Я был обеспокоен тем, что новички могут читать «эффективную настройку ...» и применять это без использования свойств закрытия.
Рафаэль
0

Язык: {(a n b m ) r | n, m, r≥0} не является регулярным, потому что, в то время как автомат / машина читает первую последовательность букв «a», а затем буквы «b», ему необходимо посчитать, сколько раз он прочитал букву «a» и сколько раз он прочитал букву «b» в первой последовательности, чтобы узнать значения n и m .

Если r> 1, то ожидается другая та же последовательность букв «a» и букв «b».

Если автомат / аппарат не не знает , сколько букв «а» и буквы «Ъ» он прочитал в первой последовательности , то она также имеет не знать значение п и м и , таким образом , он может не если сказать другие последовательности от второго до последнего являются словами, которые равны первой последовательности.

Но известно, что только машина Тьюринга может считать и знать значения n и m и распознавать язык выше, поэтому не только то, что язык выше не является регулярным, но даже он также не является контекстно-свободным, т.е. Не существует автомат для распаковки для распознавания этого языка, и не существует контекстно-свободной грамматики, в которой каждое слово, полученное из этой контекстно-свободной грамматики, находится на вышеуказанном языке.

Поскольку тот факт, что как детерминированный конечный автомат, так и конечный автомат с понижением не могут считать и знать значения n и m , в отличие от машины Тьюринга, они не могут распознать вышеуказанный язык, и, следовательно, указанный выше язык не является контекстно-свободным и не является регулярным.

Контрпример к предположению, что язык выше является регулярным:

Для n = 3 m = 5 r = 2 следующее слово на вышеуказанном языке:

aaabbbbbaaabbbbb

Но следующего слова нет в языке:

aaabbbbbaaaaabbb, потому что n, m и r не существует так:

(a n b m ) r = aaabbbbbaaaaabbb, потому что для удовлетворения первой последовательности букв «a», а затем букв «b» должно быть верно, что n = 3 ∧ m = 5 , и потому что мы видим 2 последовательности букв ' a 'и затем буквы' b ', тогда r = 2 , но если n = 3 ∧ m = 5 2 r = 2, то (a n b m ) r = (a 3 b 5 ) 2 = (aaabbbbb) 2 = aaabbbbbaaabbbbb ≠ aaabbbbbaaaaabbb, потому что их суффиксы разные, т.е. aaabbbbb ≠ aaaaabbb, хотя их префиксы равны aaabbbbb при r = 1.

«Лучший» детерминированный конечный автомат, который может быть построен для этого языка, - это детерминированный конечный автомат, который распознает регулярное выражение (a * b *) *, но не распознает вышеуказанный язык, потому что он говорит, что оба слова aaabbbbbaaabbbbb и aaabbbbbaaaaabbb на языке, и это не так, потому что aaabbbbbaaabbbbb на языке, но aaabbbbbaaaaabbb не на языке.

Даже конечный автомат не может сказать, есть ли оба слова в языке или нет, так что только машина Тьюринга может.

Во второй последовательности машина Тьюринга обнаружила, что n = 5 ∧ m = 3, и это противоречит тому, что в первой последовательности она обнаружила, что n = 3 ∧ m = 5 , поэтому она говорит, что второго слова нет в языке , но в первом слове нет противоречия.

Обе последовательности удовлетворяют тому, что n = 3 ∧ m = 5 , поэтому машина Тьюринга говорит, что первое слово в языке.

Только машина Тьюринга может, если она считает и запоминает значения n и m , записывая их значения на своей ленте, а затем считывает их.

Прощальный обмен стека
источник