Me gustaría saber por qué para el reconocimiento de lenguajes libres de contexto solo funcionan los autómatas push-down no deterministas (DPA = NPDA). ¿Por qué los autómatas deterministas pushdown (DPDA) no reconocen tales lenguajes?
fl.formal-languages
automata-theory
context-free
Reactormonk
fuente
fuente
Respuestas:
No estoy muy seguro de qué sabor de "por qué" estás buscando. Una razón para el aumento del poder cuando se permite el no determinismo se puede ver en el siguiente ejemplo:
Sea el conjunto de palíndromos sobre algún alfabeto (de al menos dos símbolos), donde es el reverso de . Un NPDA para este lenguaje puede seguir presionando símbolos en su pila, y luego, en algún momento, adivinar que ha llegado al medio de la entrada y vaciar gradualmente la pila. Tenga en cuenta que la condición de aceptación es puramente existencial: es suficiente que haya una suposición correcta para que la palabra sea aceptada.L ww¯ w¯ w
Un PDA determinista tendría que elegir la posición que considera el medio de alguna manera que solo dependa del prefijo actual. Suponga que es tal DPDA. Para cualquier , deje que ; deje que sea la palabra vacía, y . Esta es una secuencia de palíndromos, cada uno un prefijo del siguiente, de modo que debe estar en un estado de aceptación , con la pila vacía, después de leer . Según el principio del palomar, debe haber alguna tal que yA k∈N uk=ab2ka v0 vk+1=vkukvk A qk vk k,l k≠l qk=ql (hay un número finito de estados, por lo que algunos deben 'reutilizarse' ya que hay un número infinito de s). Pero entonces no puede distinguir , que es un palíndromo, de , que no lo es.k A vkukvk vlukvk
fuente
FA acepta de manera determinista o no determinista el mismo lenguaje (es decir, Lang regular).
Pero en el caso de PDA , si restringimos su comportamiento de manera determinista , no aceptará algunas CFL (CFL sin propiedad de prefijo (excepto las RL)).
¿Porque?
Considere un ejemplo de CFL que no tiene propiedad de prefijo (propiedad de prefijo de un lang: ninguna cadena es un prefijo apropiado de otra cadena en el lang).
L = wwr
p.ej. cuerdas 00 y 0000 . (00 es un prefijo apropiado de 0000, por lo tanto, wwr no tiene la propiedad pref.).
Cuando ocurra 00 DPDA pasará al estado final. Ahora, dado que DPDA no tiene elección entre aceptación y continuidad , no puede aceptar 0000 después de aceptar 00 . Este es el lugar donde PDA requiere no determinismo .
Observaciones : en caso de FA, lang (RL) sin pref. La propiedad se puede aceptar de forma determinista (por ejemplo, cadenas que comienzan con 0). Esto muestra que el efecto de la propiedad de prefijo de RL y CFL es diferente . La diferencia entre determinismo y no determinismo para PDA da lugar a una nueva familia de lang. que es aceptado por DPDA. Este idioma se llama DCFL .
fuente