Problème entièrement résolu
-
Configurations par lesquelles passe le programme palindrome sur 1 0 1 0 1 5 étapes
Le programme palindrome démarre sur le ruban 1 0 1 0 1, la tête sur la cellule 0, dans l'état
q0. Dénombrez chaque configuration par laquelle il passe avant de s'arrêter — à partir de la table de règles, sans l'exécuter pas à pas — puis indiquez comment évolue ce décompte lorsque l'entrée s'allonge.-
Lisez la table comme une suite de tours, et non comme une liste de déplacements. Une seule règle peut ouvrir un tour :
q0efface le symbole le plus à gauche et bifurque selon ce qu'il vient d'effacer, versq1pour un 1 et versq2pour un 0. Cette bifurcation constitue l'intégralité du mécanisme de comparaison. La machine ne stocke jamais le symbole sur le ruban ; elle le stocke dans l'état où elle se trouve, si bien que le comparer plus tard avec l'autre extrémité ne coûte aucun déplacement supplémentaire. -
Décomptez un tour sur un bloc de m symboles. Effacer l'extrémité gauche coûte 1 déplacement. La tête traverse ensuite les m − 1 symboles restants et effectue 1 déplacement supplémentaire sur la case blanche située au-delà pour faire demi-tour. Effacer l'extrémité droite coûte 1 déplacement, revenir en arrière sur les m − 2 survivants prend m − 2 déplacements, et 1 dernier déplacement sur la case blanche à l'extrémité gauche réoriente la machine vers la droite dans l'état
q0. -
Notre ruban fournit un bloc de 5, puis 3, puis un symbole unique — et un symbole unique ne constitue pas un tour.
q0l'efface,q1franchit l'extrémité droite et se retourne, etq1ctrouve un blanc là où devrait se trouver un partenaire. Un palindrome de longueur impaire possède un centre sans partenaire, et trouver ce blanc est ce qui valide l'acceptation. -
Additionnez les trois, puis attention à l'erreur de piquet. 21 est le nombre de déplacements ; le transport dénombre les configurations, et 21 déplacements en visitent 22 dès lors que l'on inclut celle de départ.
-
Généralisez à toute longueur impaire n. Les blocs vont de n à 3 en passant par n − 2, chacun coûtant 2m + 1, le centre coûtant 3. Sommer cette liste donne une expression quadratique en n, et non linéaire.
Réponse
22 configurations — 21 déplacements. La nature quadratique est l'élément essentiel à retenir. Un palindrome de 21 symboles coûte 253 déplacements : 12 fois plus de travail pour une entrée 4,2 fois plus longue. La raison est géométrique plutôt qu'astucieuse — les deux symboles comparés se trouvent toujours aux deux extrémités opposées de ce qu'il reste du ruban, et il n'y a qu'une seule tête, de sorte que chaque paire coûte une traversée complète du ruban restant. Donnez au système un second ruban et le même travail devient linéaire : recopiez l'entrée à mesure que vous la lisez, puis faites déplacer les deux têtes dans des directions opposées et comparez en une seule passe, soit environ 3n déplacements. Sur un seul ruban, il n'y a nulle part où placer cette copie, et les aller-retour sont inévitables.
-
Références (3)
- The single-tape quadratic lower bound for palindromes: F. C. Hennie, "One-tape, off-line Turing machine computations." Information and Control 8(6), 553–578, 1965.
- Where multi-tape time complexity classes were set out: J. Hartmanis and R. E. Stearns, "On the computational complexity of algorithms." Transactions of the American Mathematical Society 117, 285–306, 1965.
- The machine itself: A. M. Turing, "On Computable Numbers, with an Application to the Entscheidungsproblem." Proceedings of the London Mathematical Society s2-42(1), 230–265, 1937.