fbpx
Wikipedia

Torres de Hanói

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.

Torres de Hanói
«Torres de Hanói»

Torres de Hanói
Otro nombre Torres de Brahma o Torres de Lucas
Tipo Rompecabezas
Inventor Édouard Lucas
Origen Francia
1883

La fórmula para encontrar el número de movimientos necesarios para transferir n discos desde un poste a otro es: 2n - 1.

Descripción

 
Resolución del problema con 4 discos

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 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 (es decir, el que posee la torre) a uno de los otros postes vacíos. Para realizar este objetivo, es necesario seguir tres simples reglas:

  1. Solo se puede mover un disco cada vez y para mover otro los demás tienen que estar en postes.
  2. Un disco de mayor tamaño no puede estar sobre uno más pequeño que él mismo.
  3. Solo se puede desplazar el disco que se encuentre arriba en cada poste.

Existen diversas formas de llegar a la solución final, todas ellas siguiendo estrategias diversas.

Historia

 
Visitantes en el museo Universum experimentando con un montaje interactivo

El rompecabezas fue inventado por el matemático francés Édouard Lucas en 1883. Se cuenta una historia sobre un templo en la India en Kashi Vishwanath que contiene una gran sala con tres postes gastados por el tiempo, rodeada de 64 discos dorados. Los sacerdotes de Brahma, actuando bajo el mandato de una antigua profecía, han estado moviendo estos discos de acuerdo con las reglas inmutables de Brahma desde ese momento. Por lo tanto, el acertijo también se conoce como el rompecabezas de la Torre de Brahma. Según la leyenda, cuando se complete el último movimiento del rompecabezas, el mundo se terminará.[2]​ No está claro si Lucas inventó esta leyenda o si se inspiró en ella.

Si la leyenda fuera cierta, y si los sacerdotes pudieran mover los discos a una velocidad de uno por segundo, utilizando el menor número de movimientos, completar la tarea les llevaría 264 - 1 segundos, o aproximadamente 585.000 millones de años,[3]​ que es aproximadamente 42 veces la edad actual del Universo.

Existen muchas variaciones en esta leyenda. Por ejemplo, en algunos relatos el templo es un monasterio, y los sacerdotes son monjes. Se puede decir que el templo o monasterio se encuentra en diferentes partes del mundo, incluidos Hanói, Vietnam, y puede estar asociado con cualquier religión. En algunas versiones, se introducen otros elementos, como el hecho de que la torre fue creada en el comienzo del mundo, o que los sacerdotes o monjes solo pueden hacer un movimiento por día.

Resolución

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 irá a destino y si es par a auxiliar.

Solución 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 n.o 2 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, el algoritmo de la función sería el siguiente:

Algoritmo Torres de Hanói (Complejidad  )

Entrada: Tres pilas de números origen, auxiliar, destino, con la pila origen ordenada

Salida: La pila destino

  1. origen   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( ,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

El número de movimientos mínimo a realizar para resolver el problema de este modo es de 2n – 1, siendo n el número de discos.

Iterativa

 
Solución iterativa con 6 discos

Otra manera de resolver el problema, sin utilizar la recursividad, se basa en el hecho de que para obtener la solución más corta, es necesario mover el disco más pequeño en todos los pasos impares, mientras que en los pasos pares solo existe un movimiento posible que no lo incluye. El problema se reduce a decidir en cada paso impar a cuál de las dos pilas posibles se desplazará el disco pequeño. El algoritmo en cuestión depende del número de discos del problema:

  • Si inicialmente se tiene un número impar de discos, el primer movimiento debe ser colocar el disco más pequeño 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 número par de discos, el primer movimiento debe ser colocar el disco más pequeño 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 añadiendo la siguiente regla: no colocar juntos dos discos de un mismo color. De esta manera, solo queda un movimiento posible (además del de volver hacia atrás).[5]

Reglas matemáticas de los desplazamientos

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:

Fórmula general

Tengamos un estado   que denota la cantidad de movimientos a realizar para n discos.

Para hallar la ecuación hay que aplicar una hipótesis que apoye la ecuación a demostrar:

  • Sabemos que para un disco se necesita un movimiento, para dos discos tres movimientos y para tres discos se necesitan siete movimientos.
  • Suponemos la hipótesis que para mover n discos se tiene que mover los (n-1) discos anteriores y uno más que es el disco n, además sabemos que esos discos deben moverse el doble de veces pues para 2 discos, hay que mover el disco pequeño dos veces, una para quitarlo de la cima y otra para ponerlo en la cima al final.
  • Para tres discos es exactamente lo anterior, debemos mover los 2 discos menores 2 veces, una para quitarlos de encima del disco grande, 1 movimiento para mover el disco grande a la varilla final, y otra vez volver a mover los dos discos encima del disco grande.

Por tanto la fórmula final que nos queda es:

 

Reordenándola:

 

Es una ecuación sencilla que se podría resolver fácilmente y llegar a la conclusión que para n discos dados los movimientos son:   Sin embargo, vamos a resolverla paso por paso para estudiarla.

En este caso podemos convertir los término dependientes de cada iteración en raíces polinomiales teniendo en cuenta que el grado del polinomio será del orden del menor término que haya presente, en este caso   tomamos el 1 como grado del polinomio pues el menor término es  , si hubiese un   k sería el grado del polinomio.

  • Antes de eso hay que tomar su homogénea asociada, es decir suprimimos el término independiente:

 

  • Reescribimos la ecuación correspondiente: sustituyendo  

 

  • Por tanto la raíz característica de dicha ecuación resulta ser:

 

En este caso solo tenemos una raíz simple son multiplicidad 1.

Tenemos por tanto que aplicando la fórmula general:

  En este caso solo existe una r, por tanto,   donde falta hallar el coeficiente C


Ahora falta recuperar la no homogénea, es decir hay que recuperar:  .

Realizando un cambio de variable, es decir sustituyendo los términos temporales,  :

 , por lo tanto  .

La variable obtenida es el término independiente necesario para completar la ecuación.

Recuperamos la homogénea asociada con   y hallamos su resultado:

 .

Igualamos a las condiciones iniciales.

 

Nota: Se puede realizar también con   pero como tal una torre de Hanói con 0 discos carece de sentido por lo que se utiliza  , el cual es el primer elemento de la sucesión. Si se utilizase otro   el resultado no coincidiría pues es un polinomio de grado uno y se esta utilizando un elemento de la sucesión que supera dicho rango. 

Por tanto el resultado final obtenido es:

 .

Comprobación por Inducción.

Para la inducción débil partimos de la misma premisa que en la fórmula general pero en este paso utilizaremos otro método de verificación que en casos más sencillos como este ejercicio puede resultar más útil pero no es válido para todo tipo de sucesiones o ecuaciones en diferencia.

Tenemos un primer movimiento:  .

y previamente debido a la anterior demostración sabemos que para el movimiento  .

Por tanto vamos a efectuar una concatenación de movimientos.

 

 

 

 

Aplicando recurrencia descendente podemos llegar a la conclusión que

 

 

El siguiente paso es el deductivo y es el más importante pues una mala deducción llevara a un resultado.

Podemos observar que para   tenemos un 2 multiplicando   y un 1 sumando.

si hacemos lo mismo en   obtenemos el mismo resultado respecto a  .

Vemos que para n elementos dados obtenemos (n-1) 'doses' multiplicándose entre sí y (n-1) 1 multiplicados por sucesivos 'doses' tenemos que

 

En este caso la dificultad proviene en hallar el resultado de la suma sucesiva de potencias de orden 2,  

En último caso podemos aplicar inducción débil para verificar que el resultado obtenido es el correcto:

Inducción débil.

 

Paso base: k=1

 

Paso inductivo:

  ¿Se verifica   ?

 ; pues  ;  

Se verifica por inducción la veracidad de la fórmula.


Llegamos a la conclusión que ambos métodos son igualmente válidos para obtener la cantidad de movimientos necesarios para n discos dados ordenados en la primera varilla.

Rutas más cortas generales y el número 466/885

Una curiosa generalización del objetivo original del rompecabezas es comenzar desde una configuración dada de los discos, donde todos los discos no están necesariamente en el mismo poste, y llegar en un número mínimo de movimientos a otra configuración determinada. En general, puede ser bastante difícil calcular una secuencia más corta de movimientos para resolver este problema. Andreas Hinz propuso una solución y se basa en la observación de que, en la secuencia más corta de movimientos, se debe mover el disco más grande (obviamente, pueden ignorarse todos los discos más grandes que ocuparán el mismo poste tanto en la configuraciones inicial como en la final) se moverá exactamente una vez o exactamente dos veces.

Las matemáticas relacionadas con este problema generalizado se vuelven aún más interesantes cuando se considera el número promedio de movimientos en la secuencia más corta de movimientos entre dos configuraciones de disco iniciales y finales que se eligen al azar. Hinz y Chan Hat-Tung descubrieron de forma independiente[6][7]​ (véase también [8]:Chapter 1, p. 14) que la cantidad promedio de movimientos en una torre de n discos viene dada por la siguiente fórmula exacta:

 

Tenga en cuenta que para n lo suficientemente grande, solo el primer y el segundo término no convergen a cero, por lo que obtenemos un expresión asintótica: , cuando  . Así, intuitivamente, se podría interpretar que la fracción de   representa la relación del trabajo que se debe realizar al pasar de una configuración elegida al azar a otra configuración elegida al azar, en relación con la dificultad de tener que cruzar la ruta de longitud "más difícil"   que implica mover todos los discos de un poste a otro. Una explicación alternativa para la aparición de la constante 466/885, así como un algoritmo nuevo y algo mejorado para calcular la ruta más corta, fue dada por Romik.[9]

Variantes

Sir Henry Dudeney en su libro The Canterbury Puzzles (1907) propuso una variante (llamada «Problema del almojarife» o The reve's puzzle) que usa cuatro postes en lugar de tres.[10]​ En 1939, J. S. Frame y B. M. Stewart propusieron —en forma independiente— un algoritmo que resuelve el problema, dado un parámetro i:

  1. Trasladar recursivamente una pila de n – i discos, desde el poste inicial a otro auxiliar, usando los cuatro postes en el proceso.
  2. Trasladar los i discos más grandes, desde el poste inicial hacia el poste final, usando el algoritmo estándar para tres postes e ignorando el cuarto.
  3. Recursivamente trasladar los n – i discos más pequeños, desde el poste auxiliar hacia el poste final, usando los cuatro postes en el proceso.

Y demostraron que, si n es igual al número triangular tk, la elección óptima para i es justamente k, y si tk – 1 < n < tk, tanto k – 1 como k lo son. Nótese que se está hablando del valor óptimo para este algoritmo particular; encontrar el número mínimo de movimientos en el caso general es, todavía, una cuestión abierta. Sin embargo, para n menor o igual a 30 discos se ha verificado que el algoritmo de Frame-Stewart es, efectivamente, óptimo.[11]

Véase también

Notas y referencias

  1. Walter William Rouse Ball, Harold Scott Macdonald Coxeter, (1987), «Mathematical recreations and essays»,Dover Publications, ISBN 0-486-25357-0
  2. Spitznagel, Edward L. (1971). Selected topics in mathematics. Holt, Rinehart and Winston. p. 137. ISBN 0-03-084693-5. 
  3. Moscovich, Ivan (2001). 1000 playthinks: puzzles, paradoxes, illusions & games. Workman. ISBN 0-7611-1826-8. 
  4. Petković, Miodrag (2009). Famous Puzzles of Great Mathematicians. AMS Bookstore. p. 197. ISBN 0-8218-4814-3. 
  5. Troshkin, M. «Doomsday Comes: A Nonrecursive Analysis of the Recursive Towers-of-Hanoi Problem». Focus (en ruso) 95 (2): 10-14. 
  6. Hinz, A. (1989). «The Tower of Hanoi». L'Enseignement Mathématique 35: 289-321. doi:10.5169/seals-57378. 
  7. Chan, T. (1988). «A statistical analysis of the towers of Hanoi problem». Internat. J. Comput. Math. 28: 57-65. doi:10.1080/00207168908803728. 
  8. Stewart, Ian (2004). Another Fine Math You've Got Me Into... Courier Dover. ISBN 0-7167-2342-5. 
  9. Romik, D. (2006). «Shortest paths in the Tower of Hanoi graph and finite automata». SIAM Journal on Discrete Mathematics 20 (3): 610-622. doi:10.1137/050628660. 
  10. Paul Stockmeyer (1994). «Variations on the Four-Post Tower of Hanoi Puzzle». Congressus Numerantium 102: 3-12. 
  11. Richard E. Korf; Ariel Felner (2007). . International Joint Conference on Artificial Intelligence: 2324-2329. Archivado desde el original el 24 de septiembre de 2015. Consultado el 15 de abril de 2013. 

Enlaces externos

  •   Wikimedia Commons alberga una categoría multimedia sobre Torre de Hanói.
  • Artículo de Antonio Javier Serrano Mora sobre La Torre de Hanói
  • Artículo de Rodolfo Valeiras sobre La Torre de Hanói
  • Ecuaciones de recurrencia: (PDF)
  • Ecuaciones en diferencia: (PDF)


  •   Datos: Q213593
  •   Multimedia: Tower of Hanoi

torres, hanói, rompecabezas, juego, matemático, inventado, 1883, matemático, francés, Édouard, lucas, este, juego, mesa, individual, consiste, número, discos, perforados, radio, creciente, apilan, insertándose, tres, postes, fijados, tablero, objetivo, juego, . Las Torres de Hanoi es un rompecabezas o juego matematico inventado en 1883 por el matematico frances Edouard Lucas 1 Este juego de mesa individual consiste en un numero de discos perforados de radio creciente que se apilan insertandose 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 mas grande encima de un disco mas pequeno El problema es muy conocido en la ciencia de la computacion y aparece en muchos libros de texto como introduccion a la teoria de algoritmos Torres de Hanoi Torres de Hanoi Torres de HanoiOtro nombreTorres de Brahma o Torres de LucasTipoRompecabezasInventorEdouard LucasOrigenFrancia 1883 editar datos en Wikidata La formula para encontrar el numero de movimientos necesarios para transferir n discos desde un poste a otro es 2n 1 Indice 1 Descripcion 2 Historia 3 Resolucion 3 1 Solucion simple 3 2 Mediante recursividad 3 3 Iterativa 3 4 Reglas matematicas de los desplazamientos 3 5 Demostracion recurrente y por induccion 3 5 1 Formula general 3 5 2 Comprobacion por Induccion 3 5 2 1 Induccion debil 4 Rutas mas cortas generales y el numero 466 885 5 Variantes 6 Vease tambien 7 Notas y referencias 8 Enlaces externosDescripcion Editar Resolucion del problema con 4 discos El juego en su forma mas tradicional consiste en tres postes verticales En uno de los postes se apila un numero indeterminado de discos perforados por su centro elaborados de madera que determinara la complejidad de la solucion Por regla general se consideran siete discos Los discos se apilan sobre uno de los postes en tamano decreciente de abajo arriba No hay dos discos iguales y todos ellos estan apilados de mayor a menor radio desde la base del poste hacia arriba en uno de los postes quedando los otros dos postes vacios El juego consiste en pasar todos los discos desde el poste ocupado es decir el que posee la torre a uno de los otros postes vacios Para realizar este objetivo es necesario seguir tres simples reglas Solo se puede mover un disco cada vez y para mover otro los demas tienen que estar en postes Un disco de mayor tamano no puede estar sobre uno mas pequeno que el mismo Solo se puede desplazar el disco que se encuentre arriba en cada poste Existen diversas formas de llegar a la solucion final todas ellas siguiendo estrategias diversas Historia Editar Visitantes en el museo Universum experimentando con un montaje interactivo El rompecabezas fue inventado por el matematico frances Edouard Lucas en 1883 Se cuenta una historia sobre un templo en la India en Kashi Vishwanath que contiene una gran sala con tres postes gastados por el tiempo rodeada de 64 discos dorados Los sacerdotes de Brahma actuando bajo el mandato de una antigua profecia han estado moviendo estos discos de acuerdo con las reglas inmutables de Brahma desde ese momento Por lo tanto el acertijo tambien se conoce como el rompecabezas de la Torre de Brahma Segun la leyenda cuando se complete el ultimo movimiento del rompecabezas el mundo se terminara 2 No esta claro si Lucas invento esta leyenda o si se inspiro en ella Si la leyenda fuera cierta y si los sacerdotes pudieran mover los discos a una velocidad de uno por segundo utilizando el menor numero de movimientos completar la tarea les llevaria 264 1 segundos o aproximadamente 585 000 millones de anos 3 que es aproximadamente 42 veces la edad actual del Universo Existen muchas variaciones en esta leyenda Por ejemplo en algunos relatos el templo es un monasterio y los sacerdotes son monjes Se puede decir que el templo o monasterio se encuentra en diferentes partes del mundo incluidos Hanoi Vietnam y puede estar asociado con cualquier religion En algunas versiones se introducen otros elementos como el hecho de que la torre fue creada en el comienzo del mundo o que los sacerdotes o monjes solo pueden hacer un movimiento por dia Resolucion EditarLa solucion del problema de las Torres de Hanoi es muy facil de hallar aunque el numero de pasos para resolver el problema crece exponencialmente conforme aumenta el numero de discos Como ya se ha indicado el numero minimo 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 Editar Una forma de resolver el problema se fundamenta en el disco mas pequeno el de mas arriba en la varilla de origen En un juego con un numero 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 tambien a la varilla destino para que quede sobre el disco n o 2 A continuacion 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 asi sucesivamente Es decir el truco esta en el disco mas pequeno Mediante recursividad Editar Este problema se suele plantear a menudo en programacion 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 funcion la denominaramos hanoi con origen auxiliar y destino como parametros el algoritmo de la funcion seria el siguiente Algoritmo Torres de Hanoi Complejidad 8 2 n 1 displaystyle Theta 2 n 1 Entrada Tres pilas de numeros origen auxiliar destino con la pila origen ordenadaSalida La pila destino si origen 1 displaystyle scriptstyle 1 entonces mover el disco 1 de pila origen a la pila destino insertarlo arriba de la pila destino terminar si no hanoi 1 n 1 displaystyle scriptstyle 1 dots n 1 origen destino auxiliar mover todas las fichas menos la mas grande n a la varilla auxiliar mover disco n a destino mover la ficha grande hasta la varilla final hanoi auxiliar origen destino mover todas las fichas restantes 1 n 1 encima de la ficha grande n terminarEl numero de movimientos minimo a realizar para resolver el problema de este modo es de 2n 1 siendo n el numero de discos Iterativa Editar Solucion iterativa con 6 discos Otra manera de resolver el problema sin utilizar la recursividad se basa en el hecho de que para obtener la solucion mas corta es necesario mover el disco mas pequeno en todos los pasos impares mientras que en los pasos pares solo existe un movimiento posible que no lo incluye El problema se reduce a decidir en cada paso impar a cual de las dos pilas posibles se desplazara el disco pequeno El algoritmo en cuestion depende del numero de discos del problema Si inicialmente se tiene un numero impar de discos el primer movimiento debe ser colocar el disco mas pequeno 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 esta en la pila origen La secuencia sera destino auxiliar origen destino auxiliar origen etc Si se tiene inicialmente un numero par de discos el primer movimiento debe ser colocar el disco mas pequeno 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 esta en la pila destino La secuencia sera 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 anadiendo la siguiente regla no colocar juntos dos discos de un mismo color De esta manera solo queda un movimiento posible ademas del de volver hacia atras 5 Reglas matematicas de los desplazamientos Editar A la hora de resolver matematicamente el problema se producen numerosas circunstancias matematicas particulares respecto a la resolucion Son las siguientes La ficha numero n siendo 1 la mas pequena se mueve por primera vez en el paso numero 2 n 1 y despues de ese primer movimiento se movera 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 numero de veces que se mueve cada ficha es de 2 n k siendo n el numero de fichas y k igual a 1 para la ficha mas pequena El numero de movimientos minimo a realizar para resolver el problema es de 2 n 1 siendo n el numero de fichas Todas las fichas impares siendo 1 la mas pequena se mueven siguiendo el mismo patron Asimismo todas las fichas pares se mueven siguiendo el patron inverso a las impares Por ejemplo si se quiere mover un numero impar de piezas desde la columna 1 hasta la 3 sucedera lo siguiente Todas las fichas impares seguiran este patron de movimiento 1 gt 3 gt 2 gt 1 gt 3 gt 2 gt 1 gt 3 gt 2 gt 1 Todas las fichas pares seguiran este patron de movimiento 1 gt 2 gt 3 gt 1 gt 2 gt 3 gt 1 gt 2 gt 3 Estos patrones dependen unicamente del numero de piezas Si el numero de piezas es par los patrones de las impares seran los de las pares y viceversa Uniendo la primera regla con la segunda se sabe siempre que pieza hay que mover y a que columna hay que desplazarla por lo que el problema queda resuelto Demostracion recurrente y por induccion Editar Tengamos un plato de Hanoi 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 mas basico tenemos un solo disco por tanto el movimiento del primer plato al ultimo es 1 solo paso a 1 1 displaystyle a 1 1 a 0 0 displaystyle a 0 0 pues con 0 discos no hay movimiento que hacer para realizar la demostracion no es necesario considerar este resultado pues no tiene sentido 0 discos en una torre de Hanoi aunque se pueda considerar valido Para dos discos tenemos que mover el pequeno a la varilla auxiliar el grande a la final y el pequeno a la final para un total de 3 pasos a 2 3 displaystyle a 2 3 Para tres discos tenemos quea 3 7 displaystyle a 3 7 movimientos necesarios minimos Para la resolucion de este ejercicio se pueden aplicar dos caminos diferentes La resolucion de la ecuacion en diferencia general que nos permitira hallar las raices de un polinomio y sus coeficientes para calcular posteriormente una funcion f n que nos devuelva un numero exacto de movimientos dados para n discos o aplicar recurrencia para tratar por intuicion el resultado final Formula general Editar Tengamos un estado a n displaystyle a n que denota la cantidad de movimientos a realizar para n discos Para hallar la ecuacion hay que aplicar una hipotesis que apoye la ecuacion a demostrar Sabemos que para un disco se necesita un movimiento para dos discos tres movimientos y para tres discos se necesitan siete movimientos Suponemos la hipotesis que para mover n discos se tiene que mover los n 1 discos anteriores y uno mas que es el disco n ademas sabemos que esos discos deben moverse el doble de veces pues para 2 discos hay que mover el disco pequeno dos veces una para quitarlo de la cima y otra para ponerlo en la cima al final Para tres discos es exactamente lo anterior debemos mover los 2 discos menores 2 veces una para quitarlos de encima del disco grande 1 movimiento para mover el disco grande a la varilla final y otra vez volver a mover los dos discos encima del disco grande Por tanto la formula final que nos queda es a n 2 a n 1 1 displaystyle a n 2 a n 1 1 Reordenandola a n 2 a n 1 1 0 displaystyle a n 2 a n 1 1 0 Es una ecuacion sencilla que se podria resolver facilmente y llegar a la conclusion que para n discos dados los movimientos son a n 2 n 1 displaystyle a n 2 n 1 Sin embargo vamos a resolverla paso por paso para estudiarla En este caso podemos convertir los termino dependientes de cada iteracion en raices polinomiales teniendo en cuenta que el grado del polinomio sera del orden del menor termino que haya presente en este caso a n 1 displaystyle a n 1 tomamos el 1 como grado del polinomio pues el menor termino es a n 1 displaystyle a n 1 si hubiese un a n k displaystyle a n k k seria el grado del polinomio Antes de eso hay que tomar su homogenea asociada es decir suprimimos el termino independiente a n 2 a n 1 0 displaystyle a n 2 a n 1 0 Reescribimos la ecuacion correspondiente sustituyendo D a d o k 0 1 r a n k p o l a n k r r a n k p o l k displaystyle Dado k 0 1 rank pol in a n k implies r rank pol k r 2 0 displaystyle r 2 0 Por tanto la raiz caracteristica de dicha ecuacion resulta ser r 2 displaystyle r 2 En este caso solo tenemos una raiz simple son multiplicidad 1 Tenemos por tanto que aplicando la formula general a n C r n n r 2 displaystyle a n C r n n r 2 En este caso solo existe una r por tanto a n C 2 n displaystyle a n C 2 n donde falta hallar el coeficiente CAhora falta recuperar la no homogenea es decir hay que recuperar a n 2 a n 1 1 0 displaystyle a n 2 a n 1 1 0 Realizando un cambio de variable es decir sustituyendo los terminos temporales a n a n 1 a 1 displaystyle a n a n 1 a 1 a n p B 2 B 1 displaystyle a n p B 2 B 1 por lo tanto B 1 displaystyle B 1 La variable obtenida es el termino independiente necesario para completar la ecuacion Recuperamos la homogenea asociada con B 1 displaystyle B 1 y hallamos su resultado a n C 2 n B a n C 2 n 1 displaystyle a n C 2 n B a n C 2 n 1 Igualamos a las condiciones iniciales a 1 C 2 n 1 1 C 2 1 1 C 1 1 2 1 C 1 displaystyle a 1 C 2 n 1 implies 1 C 2 1 1 implies C frac 1 1 2 1 implies C 1 Nota Se puede realizar tambien con a 0 0 displaystyle a 0 0 pero como tal una torre de Hanoi con 0 discos carece de sentido por lo que se utiliza a 1 1 displaystyle a 1 1 el cual es el primer elemento de la sucesion Si se utilizase otro a k k 2 3 n displaystyle a k k in 2 3 n el resultado no coincidiria pues es un polinomio de grado uno y se esta utilizando un elemento de la sucesion que supera dicho rango Por tanto el resultado final obtenido es a n 2 n 1 displaystyle a n 2 n 1 Comprobacion por Induccion Editar Para la induccion debil partimos de la misma premisa que en la formula general pero en este paso utilizaremos otro metodo de verificacion que en casos mas sencillos como este ejercicio puede resultar mas util pero no es valido para todo tipo de sucesiones o ecuaciones en diferencia Tenemos un primer movimiento a 1 1 displaystyle a 1 1 y previamente debido a la anterior demostracion sabemos que para el movimiento a n 2 a n 1 1 displaystyle a n 2 a n 1 1 Por tanto vamos a efectuar una concatenacion de movimientos a 1 1 displaystyle a 1 1 a 2 2 a 1 1 displaystyle a 2 2 a 1 1 a 3 2 a 2 1 displaystyle a 3 2 a 2 1 a n 2 a n 1 1 displaystyle a n 2 a n 1 1 Aplicando recurrencia descendente podemos llegar a la conclusion quea n 2 a n 1 1 2 2 a n 2 1 1 2 2 2 a n 3 1 1 1 displaystyle a n 2 a n 1 1 2 2 a n 2 1 1 2 2 2 a n 3 1 1 1 a 4 2 a 3 1 2 2 a 2 1 1 2 2 2 a 1 1 1 1 displaystyle a 4 2 a 3 1 2 2 a 2 1 1 2 2 2 a 1 1 1 1 El siguiente paso es el deductivo y es el mas importante pues una mala deduccion llevara a un resultado Podemos observar que para a n displaystyle a n tenemos un 2 multiplicando a n 1 displaystyle a n 1 y un 1 sumando si hacemos lo mismo en a n 1 displaystyle a n 1 obtenemos el mismo resultado respecto a a n 2 displaystyle a n 2 Vemos que para n elementos dados obtenemos n 1 doses multiplicandose entre si y n 1 1 multiplicados por sucesivos doses tenemos quea n 2 n 1 k 0 k n 2 2 k 2 n 1 2 n 1 1 2 n 1 displaystyle a n 2 n 1 sum k 0 k n 2 2 k 2 n 1 2 n 1 1 2 n 1 En este caso la dificultad proviene en hallar el resultado de la suma sucesiva de potencias de orden 2 1 2 4 8 n 2 2 n 1 1 displaystyle 1 2 4 8 n 2 2 n 1 1 En ultimo caso podemos aplicar induccion debil para verificar que el resultado obtenido es el correcto Induccion debil Editar a n 2 n 1 displaystyle a n 2 n 1 Paso base k 1a 1 2 1 1 1 displaystyle a 1 2 1 1 1 Paso inductivo a k 2 k 1 displaystyle a k 2 k 1 Se verifica a k 1 2 k 1 1 displaystyle a k 1 2 k 1 1 a k 1 2 a k 1 displaystyle a k 1 2 a k 1 pues a k 2 k 1 displaystyle a k 2 k 1 a k 1 2 2 k 1 1 2 2 k 1 2 k 1 1 displaystyle a k 1 2 2 k 1 1 2 2 k 1 2 k 1 1 Se verifica por induccion la veracidad de la formula Llegamos a la conclusion que ambos metodos son igualmente validos para obtener la cantidad de movimientos necesarios para n discos dados ordenados en la primera varilla Rutas mas cortas generales y el numero 466 885 EditarUna curiosa generalizacion del objetivo original del rompecabezas es comenzar desde una configuracion dada de los discos donde todos los discos no estan necesariamente en el mismo poste y llegar en un numero minimo de movimientos a otra configuracion determinada En general puede ser bastante dificil calcular una secuencia mas corta de movimientos para resolver este problema Andreas Hinz propuso una solucion y se basa en la observacion de que en la secuencia mas corta de movimientos se debe mover el disco mas grande obviamente pueden ignorarse todos los discos mas grandes que ocuparan el mismo poste tanto en la configuraciones inicial como en la final se movera exactamente una vez o exactamente dos veces Las matematicas relacionadas con este problema generalizado se vuelven aun mas interesantes cuando se considera el numero promedio de movimientos en la secuencia mas corta de movimientos entre dos configuraciones de disco iniciales y finales que se eligen al azar Hinz y Chan Hat Tung descubrieron de forma independiente 6 7 vease tambien 8 Chapter 1 p 14 que la cantidad promedio de movimientos en una torre de n discos viene dada por la siguiente formula exacta 466 885 2 n 1 3 3 5 1 3 n 12 59 18 1003 17 5 17 18 n 12 59 18 1003 17 5 17 18 n displaystyle frac 466 885 cdot 2 n frac 1 3 frac 3 5 cdot left frac 1 3 right n left frac 12 59 frac 18 1003 sqrt 17 right left frac 5 sqrt 17 18 right n left frac 12 59 frac 18 1003 sqrt 17 right left frac 5 sqrt 17 18 right n Tenga en cuenta que para n lo suficientemente grande solo el primer y el segundo termino no convergen a cero por lo que obtenemos un expresion asintotica 466 885 2 n 1 3 o 1 displaystyle 466 885 cdot 2 n 1 3 o 1 cuando n displaystyle n to infty Asi intuitivamente se podria interpretar que la fraccion de 466 885 52 6 displaystyle 466 885 approx 52 6 representa la relacion del trabajo que se debe realizar al pasar de una configuracion elegida al azar a otra configuracion elegida al azar en relacion con la dificultad de tener que cruzar la ruta de longitud mas dificil 2 n 1 displaystyle 2 n 1 que implica mover todos los discos de un poste a otro Una explicacion alternativa para la aparicion de la constante 466 885 asi como un algoritmo nuevo y algo mejorado para calcular la ruta mas corta fue dada por Romik 9 Variantes EditarSir Henry Dudeney en su libro The Canterbury Puzzles 1907 propuso una variante llamada Problema del almojarife o The reve s puzzle que usa cuatro postes en lugar de tres 10 En 1939 J S Frame y B M Stewart propusieron en forma independiente un algoritmo que resuelve el problema dado un parametro i Trasladar recursivamente una pila de n i discos desde el poste inicial a otro auxiliar usando los cuatro postes en el proceso Trasladar los i discos mas grandes desde el poste inicial hacia el poste final usando el algoritmo estandar para tres postes e ignorando el cuarto Recursivamente trasladar los n i discos mas pequenos desde el poste auxiliar hacia el poste final usando los cuatro postes en el proceso Y demostraron que si n es igual al numero triangular tk la eleccion optima para i es justamente k y si tk 1 lt n lt tk tanto k 1 como k lo son Notese que se esta hablando del valor optimo para este algoritmo particular encontrar el numero minimo de movimientos en el caso general es todavia una cuestion abierta Sin embargo para n menor o igual a 30 discos se ha verificado que el algoritmo de Frame Stewart es efectivamente optimo 11 Vease tambien EditarRecursividad Crecimiento exponencial Ecuacion recurrenciaNotas y referencias Editar Walter William Rouse Ball Harold Scott Macdonald Coxeter 1987 Mathematical recreations and essays Dover Publications ISBN 0 486 25357 0 Spitznagel Edward L 1971 Selected topics in mathematics Holt Rinehart and Winston p 137 ISBN 0 03 084693 5 Moscovich Ivan 2001 1000 playthinks puzzles paradoxes illusions amp games Workman ISBN 0 7611 1826 8 Petkovic Miodrag 2009 Famous Puzzles of Great Mathematicians AMS Bookstore p 197 ISBN 0 8218 4814 3 Troshkin M Doomsday Comes A Nonrecursive Analysis of the Recursive Towers of Hanoi Problem Focus en ruso 95 2 10 14 Hinz A 1989 The Tower of Hanoi L Enseignement Mathematique 35 289 321 doi 10 5169 seals 57378 Chan T 1988 A statistical analysis of the towers of Hanoi problem Internat J Comput Math 28 57 65 doi 10 1080 00207168908803728 Stewart Ian 2004 Another Fine Math You ve Got Me Into Courier Dover ISBN 0 7167 2342 5 Romik D 2006 Shortest paths in the Tower of Hanoi graph and finite automata SIAM Journal on Discrete Mathematics 20 3 610 622 doi 10 1137 050628660 Paul Stockmeyer 1994 Variations on the Four Post Tower of Hanoi Puzzle Congressus Numerantium 102 3 12 Richard E Korf Ariel Felner 2007 Recent Progress in Heuristic Search a Case Study of the Four Peg Towers of Hanoi Problem International Joint Conference on Artificial Intelligence 2324 2329 Archivado desde el original el 24 de septiembre de 2015 Consultado el 15 de abril de 2013 Enlaces externos Editar Wikimedia Commons alberga una categoria multimedia sobre Torre de Hanoi Articulo de Antonio Javier Serrano Mora sobre La Torre de Hanoi Articulo de Rodolfo Valeiras sobre La Torre de Hanoi Ecuaciones de recurrencia PDF Ecuaciones en diferencia PDF Datos Q213593 Multimedia Tower of HanoiObtenido de https es wikipedia org w index php title Torres de Hanoi amp oldid 137368115, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos