Je me demande s'il y a des articles ou des recherches traitant des automates visiblement pushdown, mais permettant aux mots, plutôt qu'aux lettres simples, d'être poussés sur la pile.
Alternativement, une construction qui a permis de symboles d'être poussé sur -Transitions pourrait atteindre le même objectif.
De toute évidence, de telles variations peuvent se former, mais je me demande si cela ruine les propriétés de fermeture et de décidabilité qui rendent les APV intéressants.
Je regarde une construction où utiliser la pile comme compteur, l'incrémenter par des constantes basées sur les symboles initiaux lus, puis décompter en fonction des autres symboles lus.
Pour ceux qui ne le savent pas, les automates visiblement déroulants sont ceux où l'alphabet peut être divisé en symboles poussants, symboles popping et symboles n'affectant pas du tout la pile. Le choix de pousser ou de sauter est entièrement déterminé par le symbole actuel lu. Ils sont fermés sous l'intersection, l'union, la concaténation, l'étoile et le complément, ce qui leur donne une multitude de propriétés décidables. Consultez cet article pour en savoir plus.
la source
Réponses:
Avec epsilon pousse
Pour la version avec pushs sur epsilon-transitions, la preuve d'indécidabilité de l'universalité des pushdown-automata peut être adaptée à ce nouveau paramètre, nous perdons donc au moins les propriétés suivantes: fermeture sous complémentation, déterminisabilité, décidabilité de l'universalité et inclusion.
Schéma de preuve: Prenez une machine de Turing , nous voulons construire un VPA A avec epsilon-push de sorte qu'il soit universel si et seulement si M n'a pas de cycle d'acceptation.M A
Nous concevons tel qu'un mot n'est pas accepté si et seulement il est de la forme:A
où
Le VPA est obligé de faire du pop sur des facteurs de la forme C R i . Un peut deviner de manière non déterministe une violation de l'une ou l'autre propriété et la vérifier. La clé est qu'il peut soit appuyer sur C i , soit ne rien faire, ce qui permet de vérifier toutes les conditions (en fait deviner leurs violations). En particulier, il peut deviner que la première (ou la seconde) occurrence de C i ne correspond pas à ( ¯ C i ) R , en ignorant l'autre composante. On peut aussi deviner que C i → C i + 1A CRi A Ci Ci (Ci¯¯¯¯¯)R Ci→Ci+1 n'est pas une transition valide, en poussant les deux occurrences de Ci , puis en éclatant une, en poussant non et en comparant ( ¯ C i + 1 ) R au contenu de la pile. Pour les autres C j qui ne font pas partie de la supposition, un composant est poussé et le ( ¯ C j ) R est sauté.Ci+1 (Ci+1¯¯¯¯¯¯¯¯¯¯)R Cj (Cj¯¯¯¯¯¯)R
Pousser des mots
la source