¿Por qué es necesario el no determinismo (autómatas push-down)?


9

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?


10
Un lenguaje puede ser reconocido por un autómata determinista pushdown si existe alguna gramática LR (1) para ese idioma. Como hay lenguajes libres de contexto que no tienen ninguna gramática LR (1) que los describa, NPDA! = DPDA. Como estos resultados son muy conocidos y generalmente se tratarán en un curso sobre compiladores, no estoy seguro de si eso responde a su pregunta: ¿está buscando intuición detrás de este hecho?
Alex ten Brink

de hecho, es algo contradictorio dado que hay otros modelos clave en los que el no determinismo no hace diferencia en los idiomas aceptados: FSM y TM.
vzn

Respuestas:


25

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.Lww¯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 yAkNuk=ab2kav0vk+1=vkukvkAqkvkk,lklqk=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.kAvkukvkvlukvk


0

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 .

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.