¿QUE SON LAS TORRES DE HANOIL?
Las Torres de Hanói es un rompecabezas o juego matemático inventado en
1883 por el matemático francés Édouard Lucas.1 Este juego de mesa
individual consiste en un número de discos perforados de radio creciente
que se apilan insertándose en uno de los tres postes fijados a un
tablero. El objetivo del juego es trasladar la pila a otro de los postes
siguiendo ciertas reglas. El problema es muy conocido en la ciencia de
la computación y aparece en muchos libros de texto como introducción a
la teoría de algoritmos.
El juego, en su forma más tradicional, consiste en tres postes
verticales. En uno de los postes se apila un número indeterminado de
discos perforados por su centro (elaborados de madera), que determinará
la complejidad de la solución. Por regla general se consideran siete
discos. Los discos se apilan sobre uno de los postes en tamaño
decreciente de abajo a arriba. No hay dos discos iguales, y todos ellos
están apilados de mayor a menor radio -desde la base del poste hacia
arriba- en uno de los postes, quedando los otros dos postes vacíos. El
juego consiste en pasar todos los discos desde el poste ocupado
¿COMO ES EL ALGORITMO PARA RESOLVER EL PROBLEMA?
La solución del problema de las Torres de Hanói es muy fácil de hallar,
aunque el número de pasos para resolver el problema crece
exponencialmente conforme aumenta el número de discos.Como ya se ha
indicado, el número mínimo de movimientos necesarios para resolver un
rompecabezas de la Torre de Hanoi es 2n - 1, donde n es la cantidad de
discos.4
Una manera sencilla para saber si es posible terminar el "juego" es que
si la cantidad de discos es impar la pieza inicial ira a destino y si es
par a auxiliar.
Solucion Simple
Una forma de resolver el problema se fundamenta en el disco más pequeño,
el de más arriba en la varilla de origen. En un juego con un número par
de discos, el movimiento inicial de la varilla origen es hacia la
varilla auxiliar. El disco 2.o n-1 se debe mover, por regla, a la
varilla destino. Luego, el disco n.o 1 se mueve también a la varilla
destino para que quede sobre el disco n.o 2. A continuación, se mueve el
disco que sigue de la varilla origen, en este caso el disco n.o 3, y se
coloca en la varilla auxiliar. Finalmente, el disco n.o 1 regresa de la
varilla destino a la origen (sin pasar por la auxiliar), y así
sucesivamente. Es decir, el truco está en el disco más pequeño.
Mediante Recursividad
Este problema se suele plantear a menudo en programación, especialmente
para explicar la recursividad. Si numeramos los discos desde 1 hasta n,
si llamamos origen a la primera pila de discos, destino a la tercera y
auxiliar a la intermedia, y si a la función la denomináramos hanoi, con
origen, auxiliar y destino como parámetros