Problema resuelto al detalle
-
Configuraciones por las que pasa el programa de palíndromos con 1 0 1 0 1 5 pasos
El programa palíndromo comienza en la cinta 1 0 1 0 1, con el cabezal en la celda 0, estado
q0. Cuente cada configuración por la que pasa antes de detenerse —a partir de la tabla de reglas, sin ejecutar paso a paso— y luego diga qué hace ese recuento a medida que la entrada se vuelve más larga.-
Lea la tabla como rondas, no como una lista de movimientos. Solo una regla puede abrir una ronda:
q0borra el símbolo situado más a la izquierda y se ramifica según lo que acaba de borrar, aq1para un 1 y aq2para un 0. Esa ramificación es todo el mecanismo de comparación. La máquina nunca almacena el símbolo en la cinta; lo almacena en el estado en el que se encuentra, por lo que comprobar el extremo opuesto con él más tarde no requiere movimientos adicionales. -
Cuente una ronda en un bloque de m símbolos. Borrar el extremo izquierdo es 1 movimiento. El cabezal cruza entonces los m − 1 símbolos que aún quedan y dedica 1 movimiento más a la casilla en blanco situada más allá de ellos para darse la vuelta. Borrar el extremo derecho es 1 movimiento, recorrer de vuelta los m − 2 supervivientes son m − 2 movimientos, y 1 último movimiento en la casilla en blanco del extremo izquierdo vuelve a orientar a la máquina a la derecha en
q0. -
Nuestra cinta ofrece un bloque de 5, luego 3, luego un único símbolo, y un único símbolo no es una ronda.
q0lo borra,q1sale por el extremo derecho y se gira, yq1cencuentra un blanco donde debería estar su pareja. Un palíndromo de longitud impar tiene un centro no emparejado, y encontrar ese blanco es lo que hace que se acepte. -
Sume los tres y tenga en cuenta el poste de la cerca. 21 es el número de movimientos; el transporte cuenta configuraciones, y 21 movimientos visitan 22 de ellas una vez incluida aquella en la que se empezó.
-
Generalice a cualquier longitud impar n. Los bloques van descendiendo n, n − 2 y así sucesivamente hasta 3, cada uno con un coste de 2m + 1, y con el centro costando 3. Sumar esa lista da una expresión cuadrática en n, no lineal.
Respuesta
22 configuraciones — 21 movimientos. El comportamiento cuadrático es lo que conviene conservar. Un palíndromo de 21 símbolos cuesta 253 movimientos: 12 veces el trabajo para una entrada 4,2 veces más larga. La razón es geométrica antes que ingeniosa: los dos símbolos que se comparan siempre se encuentran en extremos opuestos de lo que queda y solo hay un cabezal, por lo que cada par cuesta un recorrido completo de la cinta restante. Si se le da a la máquina una segunda cinta, el mismo trabajo pasa a ser lineal: copiar la entrada a medida que se lee, luego hacer funcionar los dos cabezales en direcciones opuestas y comparar en una sola pasada, aproximadamente 3n movimientos. En una sola cinta no hay lugar donde colocar esa copia, y el vaivén resulta inevitable.
-
Referencias (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.