Construya un PDA para el complemento de


16

Me pregunto si esto es posible, ya que{anbncnn0}CFL . Por lo tanto, un PDA que puede distinguir una palabra del resto de podría aceptarla , lo que me parece contradictorio.w{anbncnn0}{abc}

Supongo que necesito aprovechar la naturaleza no determinista de los PDA, pero no tengo ideas. Si pudiera ofrecer algún consejo, lo agradecería mucho.


Punto interesante al respecto que parece contradictorio. De hecho, los lenguajes sin contexto no se cierran tomando el complemento ... por lo que hay muchos ejemplos de lenguajes sin contexto que podrían ser "aceptados" en el sentido al que alude. No soy un teórico y, como tal, realmente no puedo conciliar esto, pero tal vez alguien más pueda intervenir sobre por qué esto no es algo de qué preocuparse.
Patrick87

Tenga en cuenta que esto generaliza: el complemento de es un CFG. {anbncndnen}
sdcvvc

Respuestas:


15

No, esto no tiene contexto. Para aceptar anbncn , debe asegurarse de que tres números sean iguales. Para aceptar abcanbncn , solo necesita asegurarse de estar en uno de los siguientes tres casos:

  1. El número de a s es diferente del número de b s; o
  2. El número de s es diferente del número de cac s; o
  3. El número de s es diferente del número de cbc s.

Escriba un PDA para cada uno de estos casos, luego combínelos saltando de manera no determinista a cada uno desde el estado inicial.


Había escrito bien estos casos, pero me faltaba la idea de conectarlos. ¡Gracias!
hauptbenutzer

44
En realidad solo necesitas dos casos.
sdcvvc

@sdcvvc Buen punto. :)
Patrick87

Para diferentes números de caracteres, considere esto como inspiración: . Debería ser simple pegar a + a la izquierda de esto o c + a la derecha y convertir esto en un PDA. Para el caso complicado (que no necesita) S a S c | A | C ; A a B |SxSy|X|Y;Xx|xX;Yy|yYa+c+ . SaSc|A|C;AaB|aA;CBc|Cc;Bε|bB
Jonas Kölker
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.