Machines à bande biinfinie

La définition d'une machine à bande biinfinie est identique à celle d'une machine à bande (simplement) infinie excepté le fait que la bande est infinie à droite mais aussi à gauche. Cela signifie de façon plus formelle que la bande est une suite de positions indexées par tous les entiers. Le contenu de la bandes à un instant donné est une suite

… a-3a-2a-1 a0a1a2a3

de symboles de l'alphabet de bande. Au début du calcul, l'entrée initiale est écrite sur les positions 0,...,k de la bande et toutes les autres positions sont remplies par le symbole blanc #. L'entrée est donc délimitée à gauche et à droite par des symboles #. Au début du calcul, la tête de lecture se trouve sur la position 0 de la bande, sur le premier symbole de l'entrée initiale.

Pour montrer que ces machines à bande biinfinie sont aussi puissante que les machine à bande simplement infinie, il faut montrer que toute machine à bande infinie peut être simulée par une machine à bande biinfinie et réciproquement que toute machine à bande biinfinie peut être simulée par une machine à bande infinie. La première simulation est facile. Il suffit de prendre une machine à bande biinfinie qui dès qu'elle trouve un # après un déplacement à gauche revient à droite en laissant inchangée le #. Du coup, elle ne change jamais le contenu des positions d'indices négatifs et elle se comporte comme une machine à bande simplement infinie.

Pour la réciproque, il faut montrer qu'une machine M = (Q,Σ, Γ, E, q0, F, #) à bande biinfinie peut être simulée par une machine M'= (Q',Σ', Γ', E', q'0, F', #') à bande infinie. Par simuler, on entend une machine qui accepte exactement les mêmes entrées. L'idée générale est de replier la partie gauche de la bande sous la partie droite pour une obtenir une bande simplement infinie dont les symboles sont des paires de symboles de l'alphabet Γ. Pour simplifier, les positions d'indices -1, -2, -3, ... sont mises sous les positions 1, 2, 3, ... et sous la position 0, on remplit une position par un nouveau symbole $ qu'on suppose ne pas appartenir à Γ. Le contenu ...a-3a-2a-1a0a1a2a3... de la bande de M sera représenté par le contenu (a0,$)(a1,a-1)(a2,a-2)(a3,a-3)... de la bande de M'.

Outre l'état de la machine M, la machine M' mémorise si elle est en train de lire la partie supérieure ou la partie inférieure de la bande. Un état de M' sera une paire formée d'un état de Q et d'une élément de {U, D} qui est U (Up) quand elle lit la partie supérieure et D (Down) quand elle lit la partie inférieure de la bande. Les deux première transitions de la machine M' sont chargées de mettre en place le symbole $ dans la partie inférieure de la première position de bande. Pour ces deux transitions, on ajoute deux états q'0 et q'1 dont le premier devient l'état initial de la machine M'. Les états finaux de M' sont les paires formées d'un état final de M et d'un élément quelconque de {U, D}. L'alphabet de bande Γ' de la machine M' contient toutes les paires formées de deux symboles de Γ et toutes les paires formées d'un symbole de Γ et du nouveau symbole $. L'entrée initiale est écrite sur la partie supérieure des premières positions de la bandes. L'alphabet d'entrée Σ' de M' contient toutes les paires formées d'un symbole de Σ et du symbole blanc #. Ces données sont résumées ci-dessous.

Les transitions de la machines M' sont les suivantes.

  1. Les premières transitions qui mettent en place le $ dans la partie inférieure de la première position de la bande.
  2. Pour chaque transition p,a → q,b,R de M avec a et b dans Γ, on ajoute à M'
  3. Pour chaque transition p,a → q,b,L de M avec a et b dans Γ, on ajoute à M'