Как можно ws с | w | = | s | и будет ли контекстно-свободным, а w # s - нет?


9

Почему (если так) разделитель делает разницу между двумя языками?#

Позвольте сказать:

L={ws:|w|=|s|w,s{0,1},ws}

L#={w#s:|w|=|s|w,s{0,1},ws}

Вот доказательство и грамматика, представляющая какLCFL

И ниже я добавляю доказательство для :L#CFL

Действительно ли знак имеет значение? если так, то почему? а если нет, то какое из доказательств неверно и где?#

Доказательство того, что :L#CFL

Предположим от противного, что . Пусть - постоянная накачки для гарантированная леммой накачки для контекстно-свободных языков. Мы рассмотрим слово , где , так . Так как , согласно лемме о накачке существует представление , такое что , , и для каждого .LCFLp>0Ls=0m1p#0p1mm=p!+psL|s|>ps=uvxyz|vy|>0|vxy|puvjxyjzLj0

Получаем противоречие по случаям:

  • Если или содержат : тогда для мы получим, что не содержит , поэтому противоречие.vy#i=0uxz#uxzL
  • Если и оставить : тогда для мы получим, что имеет вид , где, Так .vy#i=0uxzw#x|w|<|x|uxzL

  • Если и имеют право на : аналогично последнему случаю.vy#

  • Если равно , то верно и: Тогда для мы получаем, что имеет вид , где, Так .v#y|v|<|y|i=0uxzw#x|w|>|x|uxzL

  • Если равно , то верно и: Похоже на последний случай.v#y|v|>|y|

  • Если равно , то верно иЭто самый интересный случай. Так как , должно содержаться в части , а в . Таким образом, он утверждает, что и для одного и того же (фактически это должно быть ). Для каждого верно, что , так что если это случится, чтоv#Y|v|знак равно|Y||vИксY|пv1пsY0пvзнак равно1КYзнак равно0К1КпК<п/2J0UvJ+1ИксYJ+1Zзнак равно0м1п+J·К#0п+J·К1ммзнак равноп+J·Кu v j + 1 x y j + 1 zLj=(m-p) / km-pkm=p+р! м-р=р! р! 1, тогда он считает, что в противоречие. Чтобы достичь этого, мы должны взять , что справедливо только в том случае, если делится на . Напомним, что мы выбралитак чтоиделится на любой по желанию.UvJ+1ИксYJ+1ZLJзнак равно(м-п)/Км-пКm=p+p!mp=p!p!1kп

Ответы:


7

Ваши доказательства верны, а я ошибался. Мне потребовалось некоторое время, чтобы понять, где было мое замешательство, но с помощью Ювала я думаю, что понял.

Давайте рассмотрим три языка

L=={xy|x|=|y|,xy},L#={x#yxy}, andL=#={x#y|x|=|y|,xy}.

Как мы видели здесь , зависит от контекста. Хитрость заключается в том, чтобы в грамматике генерировать символы «справа», но считать их «слева» позже (или наоборот), следя за тем, чтобы несовпадающие символы появлялись в совпадающих позициях. Условие длины тривиально, так как оно уменьшается до четной длины. Вы можете построить NPDA с похожей идеей, используя стек, чтобы соответствовать позиции.L=

L# также не зависит от контекста . Доказательство еще проще: несовпадающие символы появляются на одинаковом расстоянии от начала, соответственно. разделитель. Неравные длины можно проверить отдельно; Недетерминизм "выбирает" между двумя вариантами.

Теперь, как вы показываете, не является контекстно-свободным. Вот почему доказательства для двух других языков ломаются.L=#

  1. В грамматике для , если нам нужно сгенерировать разделитель в середине, мы не можем «переназначить» символы с «левого» на «правый».L=
  2. Вместо того , чтобы «принять , если длины неравны или несоответствие» мы должны «принять , если длины равны и несоответствие». Недетерминизм не может помочь нам с и !

Итак, что интуитивно сводится к тому, что условия вида « » и « » оба «не зависят от контекста» в том смысле, что их можно проверить с помощью стека, но не используя конечный контроль. Таким образом, КПК может сделать одно, но не оба.| х | = | у |xy|x|=|y|

КПК для "читы", так как он на самом деле не проверяет эти условия для и ; это разделяет слово по-другому. Это больше невозможно, если у вас есть разделитель. x yL=xy


Приложение: Я смело утверждал, что потому что CFL закрыт против обратного гомоморфизма. Хотя верно, что с идентификатором за исключением удаления , это не имеет значения. ; о ничего нельзя сказать . f( L = # )= L = f# f - 1 ( L = )= L # L = #L=CFLL=#CFLf(L=#)=L=f#f1(L=)=L#L=#


Приложение II: Обратите внимание, что тривиально не зависит от контекста. Следовательно, с у нас есть хороший пример того, что CFL не закрывается от пересечения.L L # = L = #L={x#y|x|=|y|}LL#=L=#

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.