Académique Documents
Professionnel Documents
Culture Documents
Solucin simple
Una forma de resolver el problema se fundamenta en el disco ms pequeo, el de ms arriba en
la varilla de origen. El movimiento inicial de este 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 hanoi,
con origen, auxiliar y destino como parmetros, el algoritmo de la funcin sera el siguiente:
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 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).
ESTUDIO DE CASOS PARTICULARES
La torre de Hanoi
Hallar la secuencia
N de discos
N mnimo de
movimientos
.................................
.................................
Metodologa
Observar que antes de terminar el juego con n discos, hay que hacerlo con n -1,
siendo An = An-1 + 1 + An-1 = 1 + 2An-1
Ya tenemos una frmula que nos permite calcular el nmero de movimientos necesarios
para trasladar todos los discos desde la torre "IZQUIERDA" a la torre "DERECHA". Vamos a
utilizarla para averiguar cuanto queda hasta el final de los tiempos segn la leyenda de la
Torres de Hanoi.
Como son 64 discos, el nmero de movimientos es 264 - 1 = 18446744073709551615.
Si suponemos que los monjes tienen la suficiente habilidad como para hacer un
movimiento en un segundo, en un da harn 60*60*24 movimientos. Y en un ao de 365
das: 60*60*24*365. Dividimos el nmero de movimientos por el resultado de la operacin
anterior y nos debe dar, aproximadamente, medio billn de aos. Slo falta averiguar
cuantos aos se estiman que el hombre lleva sobre la tierra y sabremos el tiempo que le
queda sobre ella.
b) La Torre de Hanoi
Se proporciona a los alumnos un tablero de la Torre de Hanoi (Figura 6) con cinco discos
(A,B,C,D,E) de dimetro decreciente. El problema consiste en trasladar los discos desde el
primer listn hasta el tercero, teniendo en cuenta las reglas siguientes: en cada movimiento solo
se puede desplazar un disco; y un disco nunca puede estar encima de otro de dimetro inferior.
Se pide a los alumnos hallar el nmero mnimo de movimientos necesarios para desplazar los 5
discos y generalizar el resultado para n discos.
En general, la forma de proceder de los alumnos es la de experimentar con dos, tres y cuatro
discos y anotar el nmero total de movimientos que obtienen, y a partir de aqu inducir la
frmula general.
El ejemplo que mostramos a continuacin es novedoso en el sentido de que los alumnos hacen
las anotaciones de los movimientos que realiza cada disco, de la forma siguiente:
2 fichas: E y D
E D E
E: 2 pasos.
D: 1 paso
Total: 3 pasos
3 Fichas: E, D y C
EDECEDE
E: 4 pasos. D: 2 pasos. C: 1 paso
Total: 7 pasos
4 Fichas: E, D, C y B
EDECEDEBEDECEDE
E: 8 pasos. D: 4 pasos. C: 2 pasos.
B: 1 paso.
Total: 15 pasos.
5 Fichas: E, D, C, B y A
(E D E C E D E B E D E C E D E) A(...)
E: 16 pasos. D: 8 pasos. C: 4 pasos.
B: 2 pasos. A: 1 paso.
Total: 31 pasos.
El grafo de Hanoi
Un juego TH5, como ya sabemos, requiere de M5=251=31 movimientos para
ser resuelto de manera ptima, es decir, con el menor nmero de
movimientos. Cada movimiento, como tambin se ha dicho ya, puede ser
representado mediante un cdigo en base 3 con cinco dgitos. En cambio,
con cinco dgitos existen 35=243 cdigos diferentes. Representan algo los
cdigos no usados en el camino ptimo?
Cada uno de los cdigos no usados representa una situacin del juego por la
que no se pasa en el camino ptimo, pero que eventualmente podra darse si
elegimos un camino ms largo. En realidad, como vamos a ver, se puede
elegir un camino que recorra todas las situaciones posibles del juego y, por
tanto, todos los cdigos posibles. Este camino, que llamaremos psimo,
como hace Rodolfo Valeiras, tendr 3n1 movimientos. La existencia de este
camino nos proporciona el resultado siguiente: sea cual sea la posicin del
juego (siempre que cumpla sus normas) podremos llegar, mediante
movimientos legales, a la solucin. Para su anlisis nos ayudaremos del
llamado Grafo de Hanoi, invencin de Ian Stewart.
Empezaremos considerando un juego TH1, es decir, un juego donde slo hay
un disco. Tenemos que x0=0 (en notacin de base 3). Del poste 0 podemos
pasar al 1 al 2, aunque ya sabemos que lo ms eficiente es pasar al 2. Si
optamos por pasar al poste 1, desde ste se puede pasar al poste 2,
completando el camino psimo en dos movimientos. Estas opciones se
pueden representar en forma de tringulo, como muestra la figura 5. El lado
derecho de este tringulo (que une 0 con 2) es el camino ptimo. El camino
psimo consiste en recorrer los vrtices 0-1-2.
recorrido. Agotar todos los movimientos exigira repetir alguno de ellos. Tal
camino merecera ser llamado el peor camino.
El grafo para el juego TH2 puede ser entendido como un gran tringulo
equiltero que tiene en cada vrtice sendos tringulos equilteros colocados
en su interior. Los lados de los tringulos pequeos representan los
movimientos del disco pequeo y los tramos no usados de los lados del
grande representan los movimientos del disco grande. Es decir, el grafo de
TH2 consiste en un tringulo que tiene en cada vrtice un grafo de TH1. Esta
forma recursiva de mirar el grafo nos permitir construir los siguientes. En
efecto, el grafo de TH3 (figura 7) es un tringulo que tiene en cada vrtice un
grafo de TH2.