Pergunto-me, existem documentos ou pesquisas que tratem de autômatos visivelmente pushdown, mas permitindo que palavras, em vez de letras únicas, sejam empurradas para a pilha.
Como alternativa, uma construção que permitisse que os símbolos fossem inseridos nas transições poderia atingir o mesmo objetivo.
Obviamente, essas variações podem ser formadas, mas estou me perguntando se isso arruina as propriedades de fechamento e decidibilidade que tornam os VPAs interessantes.
Eu estou olhando para uma construção em que use a pilha como um contador, incrementando-a por constantes com base nos símbolos iniciais lidos e depois fazendo a contagem regressiva com base em outros símbolos lidos.
Para quem não sabe, os autômatos visivelmente pushdown são aqueles em que o alfabeto pode ser dividido em símbolos push, popping e símbolos que não afetam a pilha. A escolha de empurrar contra estalar é inteiramente determinada pelo símbolo atual que está sendo lido. Eles estão fechados sob interseção, união, concatenação, estrela e complemento, dando a eles uma riqueza de propriedades decidíveis. Veja este documento para mais informações.
fonte
Respostas:
Com empurra epsilon
Para a versão com empurrões nas transições epsilon, a prova indecidível da universalidade dos autômatos de empilhamento pode ser adaptada a essa nova configuração, de modo que perdemos pelo menos as seguintes propriedades: fechamento sob complementação, determinabilidade, decidibilidade da universalidade e inclusão.
Esquema de prova: Pegue uma máquina de Turing , queremos construir um VPA A com empilhamento épsilon, de modo que seja universal se e somente se M não tiver execução aceitável.M UMA
Nós projetamos modo que uma palavra não seja aceita se, e somente ela, tiver a forma:UMA
onde
O VPA é forçado a fazer pop em fatores da forma C R i . A não pode determinar de maneira determinística uma violação de nenhuma das propriedades e verificá-la. A chave é que ele pode pressionar C i ou não fazer nada, o que permite verificar todas as condições (na verdade, acho que suas violações). Em particular, pode-se adivinhar que a primeira (ou segunda) ocorrência de C i não corresponde ( ¯ C i ) R , ignorando o outro componente. Também pode adivinhar que C i → C i + 1A CRi A Ci Ci (Ci¯¯¯¯¯)R Ci→Ci+1 não é uma transição válida, pressionando as duas ocorrências de , em seguida, exibindo uma, não pressione C i + 1 e compare ( ¯ C i + 1 ) R com o conteúdo da pilha. Por outro C j que não são parte da suposição, um componente é empurrado e o ( ¯ C j ) R é ser exibido.Ci Ci+1 (Ci+1¯¯¯¯¯¯¯¯¯¯)R Cj (Cj¯¯¯¯¯¯)R
Empurrando palavras
fonte