Existem variantes de autômatos de empilhamento visíveis que permitem inserir palavras na pilha?


16

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.


2
parece que a pergunta óbvia é se esses autômatos são equivalentes aos autômatos de empilhamento padrão com as "palavras" convertidas em sequências de estados? afaik, sim? caso contrário, um exemplo ilustrativo de um caso em que falha seria útil.
vzn 19/07/2013

2
@vzn Eles não podem ser equivalentes. Esses PDAs visivelmente parecem ser estritamente mais fracos. A última vez que verifiquei, as CFLs não foram fechadas sob interseção.
Kai

Portanto, os VPDAs são fechados sob interseção e são conhecidos por estar adequadamente entre e . No entanto, não tenho idéia se minha variante está fechada sob interseção, portanto, pode ser equivalente. Duvido que seja, mas não tenho certeza. D C F LREGDCFeu
jmite

Este documento dx.doi.org/10.1145/1516512.1516518 fornece uma caracterização gramatical de VPDAs e uma construção para a conversão entre as gramáticas e VPDAs. Possivelmente a gramática pode ser usada para simular o envio de palavras inteiras?
Evgenij Thorstensen

Por que pressionar uma palavra em um símbolo seria equivalente a permitir empurrões nas transições eps?
23613 domotorp

Respostas:


3

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

Nós projetamos modo que uma palavra não seja aceita se, e somente ela, tiver a forma:UMA

onde

#C0 0&C0 0$(C0 0¯)R#C1 1&C1 1$(C1 1¯)R#C2&C2$(C2¯)R...#Cn&Cn$(Cn¯)R
  1. Cada codifica uma configuração válida de MCEuM
  2. é inicial, C n está aceitandoC0 0Cn
  3. é o inverso de uma palavra uvocêRvocê
  4. é uma cópia devocêusando letras popu¯u
  5. são símbolos especiais de separação que não estão no alfabeto de M#,&,$M
  6. é sempre uma transição válida de MCiCi+1M

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

Empurrando palavras

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.