Como pode ws com | w | = | s | e será livre de contexto, enquanto w # s não é?


9

Por que (se houver) o separador está fazendo a diferença entre os dois idiomas?#

Deixe dizer:

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

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

Aqui está uma prova e uma gramática representando como uma CFLLCFL

Abaixo, estou adicionando uma prova para L#CFL :

O sinal # realmente faz a diferença? Se sim, por que isso? e se não, qual das provas está errada e onde?

Prova de que L#CFL :

Suponha, por meio de contradição, que LCFL . Seja p>0 a constante de bombeamento para L garantida pelo lema de bombeamento para linguagens sem contexto. Consideramos a palavra s=0m1p#0p1m , onde m=p!+p modo sL . Desde |s|>p , de acordo com o lema de bombeamento, existe uma representação s=uvxyz , tal que |vy|>0 , |vxy|p , e uvjxyjzL para cada j0 .

Temos uma contradição por casos:

  • Se ou contêm : Então, para , obtemos que não contém , então em em contradição.vy#i=0uxz#uxzL
  • Se e forem deixados em : Então, para , obtemos que está no formato , onde, Assim .vy#i=0uxzw#x|w|<|x|uxzL

  • Se e estiverem certos em : Semelhante ao último caso.vy#

  • Se for deixado em , estará certo e: Então, para , obtemos que está no formato , onde, Assim .v#y|v|<|y|i=0uxzw#x|w|>|x|uxzL

  • Se for deixado em , estará certo e: Semelhante ao último caso.v#y|v|>|y|

  • Se for deixado em , estará certo e: Este é o caso mais interessante. Desde , deve estar contido na parte de , e na parte . Portanto, sustenta que e para o mesmo (de fato, deve ser esse ). Para cada , sustenta que , então se acontecer quev#y|v|=|y||vxy|pv1psy0pv=1ky=0k1kpk<p/2j0uvj+1xyj+1z=0m1p+j·k#0p+j·k1mm=p+j·k, então sustenta que em contradição. Para conseguir isso, devemos tomar , que é válido apenas se é divisível por . Lembre-se de que escolhemos, entãoeé divisível por qualquer conforme desejado.uvj+1xyj+1zLj=(mp)/kmpkm=p+p!mp=p!p!1kp

Respostas:


7

Sua prova está correta e eu estava errado. Demorei um pouco para descobrir onde estava minha confusão, mas com a ajuda de Yuval, acho que entendi.

Vamos considerar os três idiomas

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

Como vimos aqui , é livre de contexto. O truque é, na gramática, gerar símbolos "à direita", mas contá-los "à esquerda" mais tarde (ou vice-versa), garantindo que símbolos incompatíveis apareçam nas posições correspondentes. A condição de comprimento é trivial, pois se reduz ao comprimento uniforme. Você pode construir um NPDA com uma idéia semelhante, usando a pilha para corresponder à posição.L=

L# também é livre de contexto . A prova é ainda mais simples: os símbolos de incompatibilidade aparecem à mesma distância do resp ou do início. o separador. Comprimentos desiguais podem ser verificados separadamente; o não determinismo "escolhe" entre as duas opções.

Agora, como você mostra, não é livre de contexto. Aqui está o porquê das provas para os outros dois idiomas serem quebradas.L=#

  1. Na gramática de , se tivermos que gerar um separador no meio, não podemos "reatribuir" símbolos de "esquerda" para "direita".L=
  2. Em vez de "aceitar se comprimentos desiguais ou incompatíveis", temos que "aceitar se comprimentos iguais e incompatíveis". O não-determinismo não pode nos ajudar com o e !

Então, o que se resume, intuitivamente, é que as condições do formato " " e " " são "livres de contexto" no sentido de que podem ser verificadas com uma pilha, mas não usando controle finito. Portanto, um PDA pode fazer um, mas não ambos.| x | = | y |xy|x|=|y|

O PDA para "cheats", pois não verifica realmente essas condições para e ; divide a palavra de uma maneira diferente. Isso não é mais possível se você tiver o separador. x yL=xy


Adendo: Eu afirmei corajosamente que porque a CFL está fechada contra o homomorfismo inverso. Embora seja verdade que com a identidade, exceto ela exclui , isso não é relevante. ; nada pode ser dito sobre .L=CFLL=#CFLf(L=#)=L=f#f1(L=)=L#L=#


Adendo II: Observe que é trivialmente livre de contexto. Portanto, com , temos um bom exemplo de CFL não sendo fechado contra interseção.L={x#y|x|=|y|}LL#=L=#

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.