Un automate à deux piles est-il équivalent à une machine de turing?

41

Dans cette réponse, il est mentionné

Un langage régulier peut être reconnu par un automate fini. Un langage sans contexte nécessite une pile et un langage sensible au contexte nécessite deux piles (ce qui revient à dire qu'il nécessite une machine Turing complète) .

Je voulais savoir en ce qui concerne la vérité de la partie audacieuse ci-dessus. Est-ce vrai ou non? Quel est le bon moyen de trouver une réponse à cela?

Lazer
la source
Le texte en gras contient deux revendications, mais le titre de votre question suggère que vous ne vous intéressez qu'à l'une d'entre elles.
Tyson Williams le
@ TysonWilliams: oui, alors?
Lazer
Ceci est déroutant. Je ne sais pas pour quel sous-ensemble des deux revendications vous souhaitez une justification.
Tyson Williams
Pour celui en gras , comme mentionné dans la question.
Lazer
2
@Lazer: le texte en gras contient deux instructions ("CSL nécessite deux piles", "deux piles sont équivalentes à TM"). Comme CSL est un sous-ensemble approprié de RE, un seul peut être vrai.
Raphaël

Réponses:

38

Deux bits à cette réponse;

Tout d'abord, la classe de langages reconnue par Turing Machines n'est pas sensible au contexte , elle est énumérable de manière récursive (le contextuel est la classe de langages obtenue à partir d'automates liés linéaires ).

La deuxième partie, en supposant que nous ajustions la question, est la suivante: oui, un PDA à deux piles est aussi puissant qu’un MT. Il est légèrement plus simple de supposer que nous utilisons le modèle de MT avec une bande infinie dans une seule direction (bien que les deux directions ne soient pas beaucoup plus dures et équivalentes).

Pour voir l'équivalence, imaginez que la première pile est le contenu de la bande à gauche de la position actuelle et la seconde à droite. Vous commencez comme ça:

  • Poussez les marqueurs "bas de pile" normaux sur les deux piles.
  • Poussez l'entrée dans la pile de gauche (utilisez le non-déterminisme pour "deviner" la fin de l'entrée).
  • Déplacez tout dans la bonne pile (pour garder les choses dans le bon ordre).

Maintenant, vous pouvez ignorer l'entrée et tout faire sur le contenu des piles (ce qui simule la bande). Vous sautez pour lire et appuyez pour écrire (vous pouvez donc changer la "bande" en poussant quelque chose de différent de ce que vous lisez). Ensuite, nous pouvons simuler la MT en sautant de la pile de droite et en poussant vers la gauche pour aller à droite, et inversement pour aller à gauche. Si nous touchons le bas de la pile de gauche, nous nous comportons en conséquence (arrêtons et rejetons, ou restons à votre place, selon le modèle). Si nous touchons le bas de la pile de droite, nous poussons simplement un symbole vierge à gauche.

Pour une preuve formelle complète, voir une réponse à une autre question .

La relation dans l’autre sens devrait être encore plus évidente, c’est-à-dire que nous pouvons simuler un PDA à deux piles avec une MT.

Luke Mathieson
la source