Vous êtes sur la page 1sur 1

La Torre de Hani

Las Torres de Hani es un rompecabezas o juego matemtico inventado en 1883 por el matemtico francs douard Lucas. Este juego de mesa solitario consiste en un nmero
de discos de radio creciente que se apilan insertndose en una de las tres estacas de un tablero. El objetivo del juego es crear la pila en otra de las estacas siguiendo ciertas
reglas. El problema es muy conocido en la ciencia de la computacin y aparece en muchos libros de texto como introduccin a la teora de algoritmos.
La frmula para encontrar el nmero de movimientos necesarios para transferir n discos del poste A al poste C es: 2n - 1.

Historia
Se cuenta que en un templo de Benars (Uttar Pradesh, India) se encontraba una cpula que sealaba el centro del mundo. All estaba una bandeja sobre la que existan tres agujas de
diamante. En una maana lluviosa, un rey mand a poner 64 discos de oro ordenados por tamao: el mayor, en la base de la bandeja, y el menor, arriba de todos los discos. Tras su
colocacin, los sacerdotes del templo intentaron mover los discos entre las agujas, segn las leyes que se les haban entregado: El sacerdote de turno no debe mover ms de un disco
a la vez, y no puede situar ningn disco encima de otro de menor dimetro. Hoy no existe tal templo, pero el juego an perdura en el tiempo.

Otra leyenda cuenta que Dios, al crear el mundo, coloc tres varillas de diamante con 64 discos en la primera. Tambin cre un monasterio con monjes, quienes tenan la tarea de
resolver esta Torre de Hani divina. El da que estos monjes consiguieran terminar el juego, el mundo acabara. Sin embargo, esta leyenda result ser un invento publicitario del creador
del juego, el matemtico duard Lucas. (En aquella poca, era muy comn encontrar matemticos ganndose la vida de forma itinerante con juegos de su invencin, de la misma forma
que los juglares lo hacan con su msica. No obstante, la falacia result ser tan efectista y tan bonita que ha perdurado hasta nuestros das. Adems, invita a realizarse la pregunta: Si
la leyenda fuera cierta, cundo sera el fin del mundo?.) La mnima cantidad de movimientos para resolver este problema es de 264 1; si los monjes hicieran un movimiento por
segundo, sin equivocarse, los 64 discos estaran en la tercera varilla en 18446744073709551615 segundos (213503982334601.291840278 das) algo menos de 585 mil millones de
aos. (Como comparacin para ver la magnitud de esta cifra, la Tierra tiene unos 5 mil millones de aos, y el Universo, unos 14 mil millones de aos de antigedad, solo una pequea
fraccin de esa cifra.)

Resolucin
La solucin del problema de las Torres de Hani es muy fcil de hallar, aunque el nmero de pasos para resolver el problema crece exponencialmente conforme aumenta el nmero
de discos.

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.

Solucin simple
Una forma de resolver el problema se fundamenta en el disco ms pequeo, el de ms arriba en la varilla de origen. En un juego con un nmero par de discos, el movimiento inicial de
la varilla origen es hacia la varilla auxiliar. El disco n.o 2 se debe mover, por regla, a la varilla destino. Luego, el disco n.o 1 se mueve tambin a la varilla destino para que quede sobre el
disco n.o 2. A continuacin, 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 ms pequeo.

Mediante recursividad
Este problema se suele plantear a menudo en programacin, 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 funcin la denominramos Hani, con origen, auxiliar y destino como parmetros, el algoritmo de la funcin sera el
siguiente:

El nmero de movimientos mnimo a realizar para resolver el problema de este modo es de 2n 1, siendo n el nmero de discos.

Iterativa
Otra manera de resolver el problema, sin utilizar la recursividad, se basa en el hecho de que para obtener la solucin ms corta, es necesario mover el disco ms pequeo en todos los
pasos impares, mientras que en los pasos pares slo existe un movimiento posible que no lo incluye. El problema se reduce a decidir en cada paso impar a cul de las dos pilas
posibles se desplazar el disco pequeo. El algoritmo en cuestin depende del nmero de discos del problema:

Si inicialmente se tiene un nmero impar de discos, el primer movimiento debe ser colocar el disco ms pequeo en la pila destino, y en cada paso impar se le mueve a la siguiente pila
a su izquierda (o a la pila destino si est en la pila origen).
La secuencia ser: destino, auxiliar, origen, destino, auxiliar, origen, etc.
Si se tiene inicialmente un nmero par de discos, el primer movimiento debe ser colocar el disco ms pequeo en la pila auxiliar,
y en cada paso impar se le mueve a la siguiente pila a su derecha (o a la pila origen si est en la pila destino).
La secuencia ser: auxiliar, destino, origen, auxiliar, destino, origen, etc.

Una forma equivalente de resolverlo es la siguiente: coloreando los discos pares de un color y los impares de otro, y se resuelve
el problema aadiendo la siguiente regla: no colocar juntos dos discos de un mismo color. De esta manera, solo queda un
movimiento posible (adems del de volver hacia atrs).

Variantes
Henry Dudeney en su libro The Canterbury Puzzles (1907) propuso una variante (llamada Problema del almojarife o The reve's
puzzle) que usa cuatro agujas en lugar de tres.2 En 1939, J. S. Frame y B. M. Stewart propusieron en forma independiente un
algoritmo que resuelve el problema, dado un parmetro i:

Trasladar recursivamente una pila de n i discos, desde la aguja inicial a otra auxiliar, usando las cuatro agujas en el proceso.

Trasladar los i discos ms grandes, desde la aguja inicial hacia la


aguja final, usando el algoritmo estndar para tres agujas e
ignorando la cuarta.

Recursivamente trasladar los n i discos ms pequeos, desde la


aguja auxiliar hacia la aguja final, usando las cuatro agujas en el
proceso.

Y demostraron que, si n es igual al nmero triangular tk, la eleccin


ptima para i es justamente k, y si tk 1 < n < tk, tanto k 1
como k lo son. Ntese que se est hablando del valor ptimo para
este algoritmo particular; encontrar el nmero mnimo de
movimientos en el caso general es, todava, una cuestin abierta.
Sin embargo, para n menor o igual a 30 discos se ha verificado
que el algoritmo de Frame-Stewart es, efectivamente, ptimo.

Vous aimerez peut-être aussi