Um autômato push-down com duas pilhas é equivalente a uma máquina de turing?


41

Em esta resposta é mencionado

Uma linguagem regular pode ser reconhecida por um autômato finito. Uma linguagem livre de contexto requer uma pilha e uma linguagem sensível ao contexto requer duas pilhas (o que equivale a dizer que requer uma máquina de Turing completa) .

Eu queria saber sobre a verdade da parte ousada acima. É verdade ou não? Qual é uma boa maneira de encontrar uma resposta para isso?


Existem duas alegações no texto em negrito, mas o título da sua pergunta sugere que você está interessado apenas em uma delas.
Tyson Williams

@TysonWilliams: sim, então?
Lazer

Isso é confuso. Não sei para qual subconjunto das duas reivindicações você deseja justificativa.
Tyson Williams

Para o negrito , como mencionado na pergunta.
Lazer

2
@Lazer: o texto em negrito contém duas instruções ("CSL requer duas pilhas", "duas pilhas são equivalentes a TM"). Como CSL é um subconjunto adequado de ER, apenas um pode ser verdadeiro.
Raphael

Respostas:


38

Dois bits para esta resposta;

Primeiro, a classe de linguagens reconhecida pelo Turing Machines não é sensível ao contexto , é recursivamente enumerável (sensível ao contexto é a classe de linguagens que você obtém dos autômatos de ligação linear ).

A segunda parte, assumindo que ajustamos a questão, é que sim, um PDA de duas pilhas é tão poderoso quanto uma TM. É um pouco mais simples supor que estamos usando o modelo de TMs que possui uma fita que é infinita em apenas uma direção (embora ambas as direções não sejam muito mais difíceis e equivalentes).

Para ver a equivalência, pense na primeira pilha como o conteúdo da fita à esquerda da posição atual e na segunda como o conteúdo à direita. Você começa assim:

  • Empurre os marcadores normais "parte inferior da pilha" nas duas pilhas.
  • Empurre a entrada para a pilha esquerda (use o não determinismo para "adivinhar" o final da entrada).
  • Mova tudo para a pilha certa (para manter as coisas na ordem correta).

Agora você pode ignorar a entrada e fazer tudo no conteúdo das pilhas (que está simulando a fita). Você aparece para ler e pressiona para escrever (para poder alterar a "fita" pressionando algo diferente do que lê). Em seguida, podemos simular a TM pulando da pilha direita e pressionando para a esquerda para mover para a direita e vice-versa para mover para a esquerda. Se atingirmos a parte inferior da pilha esquerda, nos comportaremos de acordo (parar e rejeitar ou permanecer onde você, dependendo do modelo), se atingirmos a parte inferior da pilha direita, basta pressionar um símbolo em branco à esquerda.

Para uma prova formal completa, consulte uma resposta para outra pergunta .

O relacionamento da outra maneira deve ser ainda mais óbvio, ou seja, podemos simular um PDA de duas pilhas com uma TM.

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.