Si

9

Estoy atrapado resolviendo el siguiente ejercicio:

Argumenta que si tiene contexto y es regular, entonces (es decir, el cociente correcto ) no tiene contexto.R L / R = { w x RLRL/R={wxRs.twxL}

Sé que no debería existir un PDA que acepte y un AFD que acepte . Ahora estoy tratando de combinar estos autómatas con un PDA que acepte el cociente correcto. Si puedo construir eso, probé que tiene contexto. Pero estoy atrapado construyendo este PDA.R L / RLRL/R

Esto es lo lejos que he llegado:

En el PDA combinado, los estados son un producto cartesiano de los estados de los autómatas separados. Y los bordes son los bordes del DFA pero solo aquellos para los que en el futuro se puede alcanzar un estado final del PDA original de L. Pero no sé cómo escribirlo formalmente.

Dommicentl
fuente
¡Bienvenidos! ¿Dónde estás exactamente atrapado, cuál es tu enfoque?
Raphael
1
Sugerencia: piense en cómo utilizar mejor el no determinismo.
Artem Kaznatcheev
En el PDA combinado, los estados son un producto cartesiano de los estados de los autómatas separados. Y los bordes son los bordes del DFA pero solo aquellos para los que en el futuro se puede alcanzar un estado final del PDA original de L. Pero no sé cómo corregirlo formalmente.
Dommicentl
3
Copié tu comentario en la pregunta. Ese es un mejor lugar para ello.
Dave Clarke

Respuestas:

8

Aquí hay una pista.

Necesita que su máquina acepte inicialmente parte de una palabra de , consumiendo la cinta a medida que avanza. Luego, sin consumir nada, necesita encontrar alguna palabra de que empuje la máquina a un estado final. La palabra elegida de juega el papel de la palabra de entrada para la segunda mitad del cálculo.R RLRR

Claramente, el no determinismo tendrá un papel, al igual que el producto entre las dos máquinas. El truco para formalizar esto es ajustar el producto para lidiar con el hecho de que la entrada proviene de no de la entrada.R

Dave Clarke
fuente
6

No estoy seguro de a qué te refieres con el producto cartesiano; Esto simula ambos autómatas en paralelo, lo que le dará la intersección. ¡Pero desea que identifique todas las palabras en que tienen un sufijo de R ! En un nivel intuitivo, eso es.LR

Supongamos que nuestra entrada es . Obviamente, no podemos verificar todas las continuaciones posibles (para ser miembro de R ), sino solo un número finito de ellas. El comentario de Artem es más útil aquí; que adivinar lo que el sufijo x va a ser, y ejecutar tanto autómatas en él.wΣRx

Sea y A R el PDA para L y NFA para R , respectivamente. Construya un autómata A de la siguiente manera. En la entrada w sigma * , simular A L . Después de w se consume, cambiar a una intersección modificado A L , R de A L y A R , manteniendo el estado de A L . Ahora, decida para cada transición sin determinar qué símbolo es el siguiente en la entrada virtual. Aceptar wALARLRAwΣALwAL,RALARALwsi y sólo si ambos componentes de alcanzar un estado final de forma simultánea, es decir, si w tiene una continuación x de modo que w x L y x R .AL,RwxwxLxR

También puedes usar gramáticas formales. ¿Ves cómo puedes derivar en dos gramáticas en paralelo? En general, no está claro cómo adaptar para que pueda manejar los sufijos; utilizando la forma normal de Chomsky ayuda.GL

Suponga que tanto como G R se dan en forma normal de Chomsky. Modifique G L de tal manera que el extremo no derecho sea distinguible y haga que su símbolo de inicio sea el nuevo símbolo de inicio. Introducir para las versiones distinguidas de los no terminales nuevas reglas que conducen a una gramática que deriva en G L y G R en paralelo (los no terminales son pares de no terminales); Si ambas gramáticas están de acuerdo con un símbolo de terminal, elimine el no terminal compuesto. De esa manera, un sufijo en G L se elimina si y solo si se puede derivar en G L y en G R , permaneceGLGRGLGLGRGLGLGR .wL/R

Rafael
fuente
Tenga en cuenta que incluso lo que está en las áreas de spoiler no es riguroso ni formal. Avíseme si necesita más detalles (después de haberlo probado usted mismo).
Raphael
6

Recomiendo usar la respuesta de Raphael, que es mucho más fácil de entender, pero aquí hay una alternativa, usando propiedades de cierre en lugar de autómatas:

Deje que sea ​​un idioma. Queremos leer una palabra w , pero preguntamos a L si w x está en el idioma. Por eso queremos crear un nuevo lenguaje a partir de L que tenga x "borrado". Podemos hacerlo usando un homomorfismo, pero podría eliminar letras de w . Solución: divida el alfabeto en dos y use letras diferentes para w y x .LAwLwxLxwwx

Más formalmente:

L(A×{0,1})L
(A×0)(R×1)R×
(a,0)a(a,1)ε


sdcvvc
fuente
1
AL
Buen punto.
sdcvvc
1
Técnicamente, tal clase (donde funciona esta prueba) se llama cono o trío completo .
Hendrik Jan