1. República Bolivariana de Venezuela.
I.U.P. “Santiago Mariño”.
Extensión Maturín.
Escuela de Ingeniería de Sistemas.
Programación no numérica II
LAS TORRES DE HANOI
Autor:
Romer. E. Gómez García .I: 18.674.044
Maturín; Noviembre 2013
2. Introducción
Las Torres de Hanói es un juego matemático. Consiste en tres varillas verticales y
un número indeterminado de discos que determinarán la complejidad de la solución.
No hay dos discos iguales, están colocados de mayor a menor en la primera varilla
ascendentemente, y no se puede colocar ningún disco mayor sobre uno menor a él
en ningún momento.
Las Torres de Hanói es un rompecabezas o juego de matemático inventado en 1883
por el matemático francés Edouard Lucas. Este solitario se trata de un juego de ocho
discos de radio creciente que se apilan insertándose en una de las tres estacas de un
tablero. El objetivo del juego es crear la pila en otra de las estacas siguiendo unas
ciertas reglas. 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.
3. Que son Torres de Hanoi
1883 empezó a venderse en Francia un antiguo rompecabezas oriental, rescatado
para Occidente por el profesor N. Claus (de Siam) y cuyas primeras referencias
eran los escritos del ilustre mandarín Fer-Fer-Tam-Tam. Según una leyenda india,
en el Templo de Benarés, bajo el domo que marca el centro del mundo, hay una
placa de latón con tres agujas de diamante. Durante la creación, Dios puso sesenta
y cuatro discos de oro puro de distinto tamaño en una de las agujas, formando una
torre. Los bramanes llevan generaciones cambiando de lugar, uno a uno, los discos
de la torre entre las tres agujas de forma que en ningún momento un disco mayor
descanse sobre otro más pequeño. Cuando hayan conseguido trasladar todos los
discos a otra aguja su trabajo estará terminado, y la torre y el templo se
derrumbarán, y con un gran trueno, el mundo se desvanecerá. La versión
simplificada que se vendía en Francia se componía de ocho discos de madera.
4. Que son Torres de Hanoi
Es éste un clásico de los juegos de estrategia.
Se parte de tres estacas, en la primera de las cuales hay n discos de diámetros
diferentes ensartados formando una torre.
Se trata de llevar los n discos a la tercera estaca, conservando la forma de torre.
Los movimientos válidos consisten en llevar el disco superior de una estaca a
cualquier otra (libre o con otros discos), de modo que no quede encima de un
disco de diámetro menor
5. Reseña Histórica
Se cuenta que en un templo de Benares (Uttar Pradesh, India) se encontraba una
cúpula que señalaba el centro del mundo. Allí estaba una bandeja sobre la que
existían tres agujas de diamante. En una mañana lluviosa, un rey mandó a poner
64 discos de oro ordenados por tamaño: el mayor, en la base de la bandeja, y el
menor, arriba de todos los discos. Tras su colocación, los sacerdotes del templo
intentaron mover los discos entre las agujas, según las leyes que se les habían
entregado: «El sacerdote de turno no debe mover más de un disco a la vez, y no
puede situar ningún disco encima de otro de menor diámetro». Hoy no existe tal
templo, pero el juego aún perdura en el tiempo.
6. Reseña Histórica
Otra leyenda cuenta que Dios, al crear el mundo, colocó tres varillas de diamante con 64
discos en la primera. También creó un monasterio con monjes, quienes tenían la tarea de
resolver esta Torre de Hanói divina. El día que estos monjes consiguieran terminar el
juego, el mundo acabaría. No obstante, esta leyenda resultó ser un invento publicitario del
creador del juego, el matemático Eduard Lucas
En aquella época, era muy común encontrar matemáticos ganándose la vida de forma
itinerante con juegos de su invención, de la misma forma que los juglares lo hacían con
su música. No obstante, la falacia resultó ser tan efectista y tan bonita que ha perdurado
hasta nuestros días. Además, invita a realizarse la pregunta: «Si la leyenda fuera cierta,
¿cuándo sería el fin del mundo?».) La mínima cantidad de movimientos para resolver este
problema es de 264 – 1; si los monjes hicieran un movimiento por segundo, sin
equivocarse, los 64 discos estarían en la tercera varilla en algo menos de 585 mil millones
de años. (Como comparación para ver la magnitud de esta cifra, la Tierra tiene unos 5
mil millones de años, y el Universo, unos 14 mil millones de años de antigüedad, solo
una pequeña fracción de esa cifra.
7. Reseña Histórica
Otra leyenda cuenta que Dios, al crear el mundo, colocó tres varillas de diamante con 64
discos en la primera. También creó un monasterio con monjes, quienes tenían la tarea de
resolver esta Torre de Hanói divina. El día que estos monjes consiguieran terminar el
juego, el mundo acabaría. No obstante, esta leyenda resultó ser un invento publicitario del
creador del juego, el matemático Eduard Lucas
En aquella época, era muy común encontrar matemáticos ganándose la vida de forma
itinerante con juegos de su invención, de la misma forma que los juglares lo hacían con
su música. No obstante, la falacia resultó ser tan efectista y tan bonita que ha perdurado
hasta nuestros días. Además, invita a realizarse la pregunta: «Si la leyenda fuera cierta,
¿cuándo sería el fin del mundo?».) La mínima cantidad de movimientos para resolver este
problema es de 264 – 1; si los monjes hicieran un movimiento por segundo, sin
equivocarse, los 64 discos estarían en la tercera varilla en algo menos de 585 mil millones
de años. (Como comparación para ver la magnitud de esta cifra, la Tierra tiene unos 5
mil millones de años, y el Universo, unos 14 mil millones de años de antigüedad, solo
una pequeña fracción de esa cifra.
8. Solución algorítmica aplicando el método divide y vencerás
Esta técnica es la base de los algoritmos eficientes para casi cualquier tipo de problema como, por
ejemplo, algoritmos de ordenamiento quicksort, mergesort, entre muchos otros), multiplicar
números grandes (karatsuba), análisis sintácticos (análisis sintácticos top-dowm) y la transformada
discreta de Fourier.
Por otra parte, analizar y diseñar algoritmos de DyV son tareas que lleva tiempo dominar. Al igual
que en la inducción, a veces es necesario sustituir el problema original por uno más complejo para
conseguir realizar la recursión, y no hay un método sistemático de generalización.
El nombre divide y vencerás también se aplica a veces a algoritmos que reducen cada problema a un
único subproblema, como la búsqueda binaria para encontrar un elemento en una lista ordenada (o
su equivalente en computación numérica, el algoritmo de bisección para búsqueda de raíces). Estos
algoritmos pueden ser implementados más eficientemente que los algoritmos generales de “divide y
vencerás”; en particular, si es usando una serie de recursiones que lo convierten en simples bucles.
Bajo esta amplia definición, sin embargo, cada algoritmo que usa recursión o bucles puede ser
tomado como un algoritmo de “divide y vencerás”. El nombre decremento y vencerás ha sido
propuesta para la subclase simple de problemas.
9. Proceso Histórico
La búsqueda binaria, un algoritmo de divide y vencerás en el que el problema original es partido
sucesivamente en subproblemas simples de más o menos la mitad del tamaño, tiene una larga
historia. La idea de usar una lista ordenada de objetos para facilitar su búsqueda data de la antigua
Babilonia en el 200 a. C., mientras que una descripción del algoritmo en ordenadores apareció en
1946 en un artículo de John Mauchly. Otro algoritmo de “divide y vencerás” con un único
subproblema es el algoritmo de Euclides para computar el máximo comun divisor de dos números
(mediante reducción de números a problemas equivalentes cada vez más pequeños), que data de
muchos siglos antes de Cristo.
Un ejemplo antiguo de algoritmo de “divide y vencerás” con múltiples subproblemas es la
descripción realizada por Gauss en 1805 de lo que se le llama ahora algoritmo de la rápida
transformación de Fourier cooley-Tukey (FFT), aunque él no analizó su conjunto de operaciones
cuantitativamente y los FFT no se difundieron hasta que se redescubrieron casi un siglo después.
Otro problema antiguo de 2 subdivisiones de “divide y vencerás” que fue específicamente
desarrollado para ordenadores y analizado adecuadamente es el algoritmo de merge-sort, inventado
por John von Neumann en 1945.
10. Proceso Histórico
Otro ejemplo notable es el algoritmo inventado por A. karatsuba en 1960 que
puede multiplicar dos números de n dígitos en . El algoritmo refutó la conjetura
de Andréi kolmogorov en 1956 que esa tarea requería Ω(n2) operaciones. Otro
ejemplo de algoritmo de divide y vencerás que originalmente no se usaba en
ordenador, Knuth dio el método que habitualmente una oficina de correos usa
para dirigir las cartas: las cartas se ordenan en diferentes bolsas en función de su
área geográfica, cada una de estas bolsas a su vez se ordena en diferentes lotes
para subregiones más pequeñas, y así sucesivamente hasta que son repartidas.
Esto está relacionado con el ordenamiento Radix, descrito para las máquinas de
ordenación de tarjetas perforadas a los comienzos
11. Enlace y Explicación
El objetivo del juego consiste en pasar los discos de un extremo al otro pero no de cualquier
forma sino siguiendo unas precisas y sencillas normas que son las que dictó Brahma y que
reproducimos a continuación.
Y es que como la imaginación humana no tiene límites, este juego se transformó en leyenda,
una de cuyas versiones es la que dice que cuando Brahma terminó su obra, construyó un
enorme monasterio en Benarés, en uno de los patios interiores instaló tres agujas de oro alineadas
colocando en una de las agujas extremas 64 discos de distintos diámetros tal y como
se ha indicado anteriormente. Pues bien, la leyenda continúa diciendo que Brahma reunió a
sus monjes y les dijo que a partir de ese momento deberían trabajar incesantemente para llevar
los discos situados en una aguja extrema a la aguja del otro extremo. Pero no podrían hacerlo
de cualquier forma sino que tendrían que respetar las siguientes normas:
• En cada movimiento solo podrán llevar un disco.
• El trabajo hay que hacerlo en el menor número de movimientos posibles.
• No se puede colocar nunca un disco mayor sobre otro menor.
La leyenda concluye con esta sentencia de Brahma: “Cuando paséis el último disco, vendré
con todo mi poder para llevaros al Nirvana eterno donde no existirá ni el dolor ni la ignorancia.
Después, la tierra desaparecerá”.
http://www.uterra.com/juegos/torre_hanoi.php
11
12. Conclusión
Según una leyenda, los monjes del templo de una antigua ciudad de la India tienen que mover una torre de 64 discos sagrados
de un sitio a otro. Pero los discos son frágiles así que solo uno de ellos puede moverse a la vez. Ningún disco puede colocarse
encima de otro mas pequeño. Y únicamente existe otro lugar en el templo (además del sitio original y el destino) lo
suficientemente sagrado para que una torre de discos pueda ponerse ahí.
La leyenda dice además que antes de que los mojes realicen el último movimiento para completar la torre en su nuevo lugar, el
templo se reducirá a cenizas y el mundo se acabará. Quizá esta leyenda tenga razón debido a la cantidad de movimientos
necesarios para cambiar de lugar los 64 discos.
El Problema de las torres de Hanoi se considerará con solo 3 discos, y manteniendo claro esta la cantidad de pilares (3 torres)
que se utilizan para dejar los discos, esto para facilitar el desarrollo y reducir la cantidad de movimientos y por ende de recursos
que se necesitarían para desarrollar el problema original de la leyenda.
El objetivo es mover todos los discos de la torre 1 a la torre 3. La torre 2 es para almacenamiento temporal. Manteniendo las
leyes del problema original, solo se permite realizar movimientos válidos, así que no puede moverse un disco encima de otro de
menor diámetro.
Para el desarrollo de este problema se debe considerar en un principio un estado inicial(la torre 1 con los 3 discos, la torre 2 y 3
vacías) y desde ahí realizar una serie de movimientos válidos (una combinación de estados posibles y válidos) para lograr llegar
a un estado final o estado objetivo (la torre 3 con los 3 discos, la torre 1 y 2 vacías).
Para el desarrollo del problema de las Torres de Hanoi se considero 2 tipos de solución, aquella que le dará el jugador y que
solamente depende el y otra propia del software y para la cual se utilizó un principio matemático.
Para el desarrollo del programa se utilizo la herramienta JAVA, esta opción se tomo por sobre la de usar JESS, ya que el manejo
actual que se tiene de Java es un poco mayor y en esta herramienta se logro con satisfacción el desarrollo del problema,
utilizando además el algoritmo basado en principios matemáticos el cual permite al computador resolver el problema en un
mínimo de movidas( para el caso de 3 discos se necesitan solo 7movidas).
13. ¡Hoy mejor que ayer, mañana mejor que hoy!”
su significado es que siempre es posible hacer mejor
las cosas. Ningún día debe pasar sin una cierta
mejora.
Muchas Gracias por su
Atención
13