Está en la página 1de 9

CORPORACION UNIFICADA NACIONAL DE EDUCACION SUPERIOR

CUN

BUSINESS INTELLIGENCE

DANNIA YULECSSI AMADO VELASQUEZ

RAFAEL ANTONIO ACOSTA

NOVIEMBRE,BOGOTA

2022
TORRES DE HANOI
• 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,
como que no se puede colocar un disco más grande encima de un disco más pequeño. 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.
• La fórmula para encontrar el número de movimientos necesarios para transferir n discos desde un
poste a otro es: 2n - 1.
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, el algoritmo de la función sería el siguiente:

Algoritmo Torres de Hanói (Complejidad {\displaystyle \Theta (2^{n}-1)})


Entrada: Tres pilas de números origen, auxiliar, destino, con la pila origen ordenada
Salida: La pila destino
1.si origen {\displaystyle \scriptstyle ==\{1\}} entonces
1. mover el disco 1 de pila origen a la pila destino (insertarlo arriba de la pila destino)
2. terminar
2.si no
1. hanoi({\displaystyle \scriptstyle \{1,\dots ,n-1\}},origen,destino, auxiliar) //mover todas las fichas menos la más grande (n)
a la varilla auxiliar
3.mover disco n a destino //mover la ficha grande hasta la varilla final
4.hanoi (auxiliar, origen, destino) //mover todas las fichas restantes, 1...n–1, encima de la ficha grande (n)
5.terminar
SOLUCION
• Para dar con la solución, lo mejor es simplificar al máximo para hallar un patrón y, luego, ampliarlo hasta
nuestro planteamiento. Primero, una aclaración: las tres agujas (torres) serán la de origen (donde están los
anillos), la de destino (donde van a acabar), y la intermedia.
• El número mínimo de movimientos necesarios para resolver un rompecabezas de la Torre de Hanói es 2n -
1, donde n es la cantidad de anillos. Una manera sencilla para saber si es posible terminar el “juego” es que
si la cantidad de anillos es impar la pieza inicial irá a destino y si es par a auxiliar.

• En un juego con un número par de anillos, el movimiento inicial de la aguja de origen es hacia la intermedia.
El anillo número 2 se debe mover, por regla, a la aguja de destino. Luego, el primer anillo se mueve también a
la aguja de destino para que quede sobre el anillo número 2. A continuación, se mueve el anillo que sigue de
la aguja origen, en este caso el anillo 3, y se coloca en la aguja auxiliar. Finalmente, el anillo número 1
regresa de la aguja de destino a la de origen (aunque sin pasar por la auxiliar) y así sucesivamente. Es decir, el
truco está en el anillo más pequeño.

• Bajo esta fórmula, los 64 discos acabarían en el lugar adecuado en nada más y nada menos
que 18.446.744.073.709.551.615 segundos. Si los brahmanes fuesen capaces de realizar un movimiento cada
segundo (¡que ya es transferir!), el tiempo necesario para trasladar la columna sería, aproximadamente,
de 585.000.000.000 años, que viene a ser más de cien veces la edad actual de nuestro sol.
• Para encontrar la solución del puzzle con un disco, necesitaremos un único movimiento. Si tenemos dos discos,
necesitaremos 3 movimientos. Con tres discos, son precisos 7 movimientos.
• Porque si tenemos n+1 discos, primero llevamos n discos a otro de los postes. Esto nos da x movimientos. Luego llevamos
el disco restante (el mayor) al tercer poste, y finalmente trasladamos los n discos menores encima del mayor. Total: 2·x+1
movimientos.
• · Para un disco n = 1, necesitamos 21-1 movimientos
• · Para dos discos n = 2, necesitamos 2·(21 - 1) + 1 = 22 - 1
• · Para n discos : 2 (2n-1 - 1) + 1= 2n - 1
• · Total, que si n = 64, el número de movimientos es 264 - 1 = 18.446.744.073.709.551.615
• Si los brahmanes fuesen capaces de realizar un movimiento cada segundo (¡que ya es transferir!), el tiempo necesario para
trasladar la columna sería, aproximadamente, de 585.000.000.000 años, que viene a ser más de cien veces la edad actual de
nuestro sol, lo cual es suficientemente tranquilizador, al menos en lo que respecta al problema que nos ocupa: ya
encontraremos otro modo de acabar.
• 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 no. 2 se
debe mover, por regla, a la varilla destino. Luego, el disco no. 1 se mueve también a la varilla destino para que quede sobre el
disco no. 2. A continuación, se mueve el disco que sigue de la varilla origen, en este caso el disco no. 3, y se coloca en la
varilla auxiliar. Finalmente, el disco no. 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.
REGLAS DE DESPLAZAMIENTO
A la hora de resolver matemáticamente el problema, se producen numerosas circunstancias matemáticas particulares
respecto a la resolución. Son las siguientes:
•La ficha número n (siendo 1 la más pequeña) se mueve por primera vez en el paso número 2^(n-1), y después de ese
primer movimiento, se moverá cada 2^n movimientos. De este modo, la ficha 1, se mueve en 1, 3, 5, 7, 9... etc. La ficha 3,
se mueve en 4, 12, 20, 28, 36... etc.
•Y el número de veces que se mueve cada ficha es de 2^(n-k),siendo n el número de fichas y k igual a 1 para la ficha más
pequeña.
•El número de movimientos mínimo a realizar para resolver el problema es de (2^n)-1, siendo n el número de fichas.
•Todas las fichas impares (siendo 1 la más pequeña) se mueven siguiendo el mismo patrón. Asimismo, todas las fichas
pares se mueven siguiendo el patrón inverso a las impares. Por ejemplo: si se quiere mover un número impar de piezas
desde la columna 1 hasta la 3, sucederá lo siguiente:
Todas las fichas impares seguirán este patrón de movimiento: 1 -> 3 -> 2 -> 1 -> 3 -> 2 -> 1 -> 3 -> 2 -> 1.
Todas las fichas pares seguirán este patrón de movimiento: 1 -> 2 -> 3 -> 1 -> 2 -> 3 -> 1 -> 2 -> 3
Estos patrones dependen únicamente del número de piezas. Si el número de piezas es par, los patrones de las impares
serán los de las pares, y viceversa.
•Uniendo la primera regla con la segunda, se sabe siempre qué pieza hay que mover y a qué columna hay que
desplazarla, por lo que el problema queda resuelto.
Demostración recurrente y por inducción.
Tengamos un plato de Hanói con tres varillas colocadas tal que la primera contenga los n discos ordenados
y las otras dos varillas no contengan nada.
Empecemos definiendo el ejercicio más básico, tenemos un solo disco, por tanto el movimiento del primer
plato al último es 1 solo paso.

pues con 0 discos no hay movimiento que hacer; para realizar la demostración no es necesario considerar
este resultado pues no tiene sentido 0 discos en una torre de Hanói aunque se pueda considerar válido.
Para dos discos tenemos que mover el pequeño a la varilla auxiliar, el grande a la final y el pequeño a la
final para un total de 3 pasos.

Para tres discos tenemos que


movimientos necesarios mínimos.

Para la resolución de este ejercicio se pueden aplicar dos caminos diferentes. La resolución de la ecuación
en diferencia general que nos permitirá hallar las raíces de un polinomio y sus coeficientes para calcular
posteriormente una función f(n) que nos devuelva un número exacto de movimientos dados para n discos o
aplicar recurrencia para tratar por intuición el resultado final:

También podría gustarte