Me pregunto, ¿hay algún trabajo o investigación que trate con autómatas visiblemente pushdown, pero que permita que las palabras, en lugar de letras simples, sean empujadas a la pila.
Alternativamente, una construcción que permita que los símbolos se presionen en las transiciones podría lograr el mismo objetivo.
Obviamente, tales variaciones se pueden formar, pero me pregunto si arruina las propiedades de cierre y capacidad de decisión que hacen que los VPA sean interesantes.
Estoy mirando una construcción en la que utilizo la pila como contador, incrementándola en constantes en función de los símbolos iniciales leídos, y luego en cuenta regresiva en función de otros símbolos leídos.
Para cualquiera que no sepa, los autómatas visiblemente pushdown son aquellos en los que el alfabeto se puede dividir en símbolos de empuje, símbolos emergentes y símbolos que no afectan en absoluto a la pila. La elección de empujar versus reventar está completamente determinada por el símbolo actual que se lee. Están cerrados bajo intersección, unión, concatenación, estrella y complemento, dándoles una gran cantidad de propiedades decidibles. Vea este documento para más información.
Respuestas:
Con empujes epsilon
Para la versión con avances en las transiciones épsilon, la prueba de indecidibilidad de la universalidad de los autómatas pushdown puede adaptarse a esta nueva configuración, por lo que perdemos al menos las siguientes propiedades: cierre bajo complementación, determinabilidad, capacidad de decisión de universalidad e inclusión.
Esquema de prueba: tome una máquina de Turing , queremos construir un VPA A con epsilon-push de tal manera que sea universal si y solo si M no acepta la ejecución.M A
Diseñamos modo que una palabra no sea aceptada si y solo tiene la forma:A
donde
El VPA se ve obligado a hacer pop en factores de la forma C R i . A puede determinar de manera no determinista una violación de cualquiera de las propiedades y verificarla. La clave es que puede presionar C i o no hacer nada, lo que permite verificar todas las condiciones (en realidad, adivinar sus violaciones). En particular, puede adivinar que la primera (o segunda) aparición de C i no coincide ( ¯ C i ) R , ignorando el otro componente. También puede adivinar que C i → C i + 1A CRi A Ci Ci (Ci¯¯¯¯¯)R Ci→Ci+1 no es una transición válida, presionando ambas ocurrencias de , luego haciendo estallar una, no presione C i + 1 y compare ( ¯ C i + 1 ) R con el contenido de la pila. Por otro C j que no son parte de la adivinanzas, uno de los componentes se empuja y la ( ¯ C j ) R se extrae.Ci Ci+1 (Ci+1¯¯¯¯¯¯¯¯¯¯)R Cj (Cj¯¯¯¯¯¯)R
Empujando palabras
fuente