¿Hay variantes de autómatas visiblemente pushdown que permiten empujar palabras en la pila?


16

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.


2
Parece que la pregunta obvia es si tales autómatas son equivalentes a los autómatas estándar pushdown con las "palabras" convertidas en secuencias de estados. afaik, si? de lo contrario, sería útil un ejemplo ilustrativo de un caso en el que falla.
vzn

2
@vzn No pueden ser equivalentes. Esas PDAs visiblemente parecen ser estrictamente más débiles. La última vez que revisé, las CFL no estaban cerradas bajo la intersección.
Kai

Por lo tanto, VPDAs son cerrados bajo intersección, y son conocidos por ser correctamente entre y D C F L . Sin embargo, no tengo idea si mi variante está cerrada debajo de la intersección, por lo que podría ser equivalente. Dudo que lo sea, pero no estoy seguro. REGDCFL
jmite

Este documento dx.doi.org/10.1145/1516512.1516518 ofrece una caracterización gramatical de los VPDA y una construcción para la conversión entre las gramáticas y los VPDA. ¿Posiblemente la gramática se puede usar para simular empujar palabras enteras?
Evgenij Thorstensen

¿Por qué empujar una palabra sobre un símbolo sería equivalente a permitir empujar en transiciones eps?
domotorp

Respuestas:


3

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.MA

Diseñamos modo que una palabra no sea aceptada si y solo tiene la forma:A

donde

#C0&C0$(C0¯)R#C1&C1$(C1¯)R#C2&C2$(C2¯)R#Cn&Cn$(Cn¯)R
  1. Cada codifica una configuración válida de MCiM
  2. es inicial, C n está aceptandoC0Cn
  3. es el reverso de una palabra uuRu
  4. es una copia deustedusando letras popu¯u
  5. son símbolos de separación especiales que no están en el alfabeto de M#,&,$M
  6. es siempre una transición válida de MCiCi+1M

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 iC i + 1ACiRACiCi(Ci¯)RCiCi+1no 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.CiCi+1(Ci+1¯)RCj(Cj¯)R

Empujando palabras

(S,R,u)uAa(S,R,va)(S,R,v)SR

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.