Este documento describe el problema clásico de las Torres de Hanoi y cómo resolverlo de manera recursiva utilizando un algoritmo "divide y vencerás". Originalmente inspirado en una leyenda hindú, el problema involucra mover discos de diferentes tamaños entre tres clavijas siguiendo la regla de que los discos más grandes nunca pueden estar encima de los más pequeños. El documento explica cómo resolver el problema dividiéndolo en subproblemas más pequeños de manera recursiva hasta que solo queda mover un disco.
Convocatoria de becas de Caja Ingenieros 2024 para cursar el Máster oficial de Ingeniería de Telecomunicacion o el Máster oficial de Ingeniería Informática de la UOC
2. INTRODUCCIÓN
Un algoritmo de "Divide-and-Conquer"
Las Torres de Hanoi es un problema clásico en el que intenta mover todos los
discos en una clavija a otra clavija utilizando sólo tres clavijas. Inicialmente,
todos los discos se apilan uno encima del otro con los discos más grandes
debajo de los discos más pequeños. Puede mover un disco a cualquiera de las
tres clavijas mientras intenta reubicar todos los discos, pero no puede colocar
un disco más grande en un disco más pequeño.
Este problema se puede resolver fácilmente con un algoritmo recursivo de
"divide y conquista".
3. TORRES DE HANÓI
La torre de Hanoi, también llamado Torres de Brahma, son rompecabezas con tres
clavijas verticales y un conjunto de discos de diferentes tamaños con agujeros a
través de sus centros. La torre de Hanoi se cree extensamente para haber sido
inventada en 1883 por el matemático francés Édouard Lucas, aunque su papel en
su invención se ha disputado. Siempre popular, hecho de madera o plástico, la
Torre de Hanoi se puede encontrar en tiendas de juguetes de todo el mundo.
4. ORIGEN DE LAS TORRES DE HANOI
La Torre de Hanoi (a veces llamada la Torre de Brahma) fue inventada por el
matemático francés Edouard Lucas en 1883. Se inspiró en una leyenda que
cuenta de un templo hindú donde el rompecabezas de la pirámide Pudo haber
sido usado para la disciplina mental de los jóvenes sacerdotes. La leyenda dice
que al principio de los tiempos a los sacerdotes en el templo se les dio una pila
de 64 discos de oro, cada uno un poco más pequeño que el que está debajo de
él. Su asignación era transferir los 64 discos de uno de los tres polos a otro,
con un importante disco provisional grande nunca podría ser colocado encima
de uno más pequeño. Los sacerdotes trabajaban muy eficientemente, día y
noche. Cuando terminaron su trabajo, el mito dijo, el templo se desmenuzaría
en polvo y el mundo se desvanecería.
5. ¿CÓMO FUNCIONA EL JUEGO?
Dada una pila de n discos dispuestos desde el más grande en la
parte inferior a la más pequeña en la parte superior colocada en una
barra, junto con dos barras vacías, el rompecabezas torres de Hanoi
pide el número mínimo de movimientos necesarios para mover la pila
de una barra a otra, Donde sólo se permiten movimientos si colocan
discos más pequeños encima de discos más grandes. El
rompecabezas con n = 4 clavijas y n discos se conoce a veces como
el rompecabezas de Reve.
6. SOLUCIÓN ALGORÍTMICA APLICANDO EL
MÉTODO DIVIDE Y VENCERÁS
Supongamos que tiene n discos situados en la clavija A (las clavijas están
marcadas A, B y C de izquierda a derecha). Pensemos en resolver el
problema moviendo n-1 discos de la clavija A a la clavija C, desplazando el
n-ésimo disco de la clavija A a la clavija B, y luego moviendo los discos n-
1 de la clavija C a la clavija B.
El programa para resolver este problema sería como se muestra en la
siguiente diapositiva:
7. void main()
{
int n = 4; /* numero de discos= 4 */
hanoi('A','B','C', n);
}
void hanoi(char From, char To, char Other, int n)
{
if (n == 0) return;
hanoi(From, Other, To, n-1);
printf("moviendo disco de la clavija %c a %cn", From, To);
hanoi(Other, To, From, n-1);
}
8. Y ESTE SERIA EL RESULTADO O IMPRESION
Moviendo el disco de la clavija A a la C
Moviendo el disco de la clavija A a la B
Moviendo el disco de la clavija C a B
Moviendo el disco de la clavija A a la C
Moviendo el disco de la clavija B a la A
Moviendo el disco de la clavija B a la C
Moviendo el disco de la clavija A a la C
Moviendo el disco de la clavija A a la B
Moviendo el disco de la clavija C a B
Moviendo el disco de la clavija C a la A
Moviendo el disco de la clavija B a la A
Moviendo el disco de la clavija C a B
Moviendo el disco de la clavija A a la C
Moviendo el disco de la clavija A a la B
Moviendo el disco de la clavija C a B
9. ENLACE PARA JUGAR A LAS TORRES DE HANÓI
http://www.uterra.com/juegos/torre_hanoi.php?http://www.uterra.com/juegos/torre_hanoi.ht
m
10. CONCLUSIÓN
La torre de Hanói es una herramienta que ha tenido un impacto considerable en la
vida humana, tanto como en la ciencia, las matemáticas, la cultura, la programación
y la resolución de problemas en general. Un buen ejemplo del uso de las torres de
Hanói seria :
se utiliza con frecuencia en la investigación psicológica sobre la resolución de
problemas. También existe una variante de esta tarea llamada Torre de Londres
para el diagnóstico neuropsicológico y el tratamiento de las funciones ejecutivas.