Torres de Hanoi

4
Proyecto Inteligencia Artificial Torres de Hanoi Por: Guendoli Núñez Introducción Las Torres de Hanói es un rompecabezas o juego matemático inventado en 1883 por el matemático francés Edoar 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. Descripción El juego, en su forma más tradicional, consiste en tres varillas verticales. En una de las varillas se apila un número indeterminado de discos (elaborados de madera) que determinará la complejidad de la solución, por regla general se consideran ocho discos. Los discos se apilan sobre una varilla en tamaño decreciente. No hay dos discos iguales, y todos ellos están apilados de mayor a menor radio en una de las varillas, quedando las otras dos varillas vacantes. El juego consiste en pasar todos los discos de la varilla ocupada (es decir la que posee la torre) a una de las otras varillas vacantes. Para realizar este objetivo, es necesario seguir tres simples reglas: 1. Sólo se puede mover un disco cada vez. 2. Un disco de mayor tamaño no puede descansar sobre uno más pequeño que él mismo. 3. Sólo puedes desplazar el disco que se encuentre arriba en cada varilla. Existen diversas formas de realizar la solución final, todas ellas siguiendo estrategias diversas.

description

Proyecto Final de Inteligencia Artificial

Transcript of Torres de Hanoi

Page 1: Torres de Hanoi

Proyecto Inteligencia Artificial

Torres de Hanoi

Por: Guendoli Núñez

Introducción

Las Torres de Hanói es un rompecabezas o juego matemático inventado en 1883 por

el matemático francés Edoar 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.

Descripción

El juego, en su forma más tradicional,

consiste en tres varillas verticales. En una de las varillas se apila un número indeterminado de discos (elaborados de madera) que determinará la complejidad de la solución, por regla general se consideran ocho discos. Los discos se apilan sobre una varilla en tamaño decreciente. No hay dos discos iguales, y todos ellos están apilados de mayor

a menor radio en una de las varillas, quedando las otras dos varillas vacantes. El juego consiste en pasar todos los discos de la varilla ocupada (es decir la que posee la torre) a una de las otras varillas vacantes. Para realizar este objetivo, es necesario seguir tres simples reglas:

1. Sólo se puede mover un disco cada vez.

2. Un disco de mayor tamaño no puede descansar sobre uno más pequeño que él mismo.

3. Sólo puedes desplazar el disco que se encuentre arriba en cada varilla.

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

Page 2: Torres de Hanoi

Descripción del Proyecto

Objetivo del programa del juego

Implementar la inteligencia Artificial siendo la

computadora quien resuelva el algoritmo.

Supuestos y Restricciones

La solución de las torres de Hanói será con un grado de dificultad de 1 ficha hasta 8 fichas.

Software y medios a utilizar

Netbeans IDE (Lenguaje Java)

Librería Java 3D

Sonido en formato mp3

Posibles soluciones a implementar

Mediante recursividad

Este problema se suele plantear a menudo en ámbitos de programación, especialmente para explicar la recursividad. Si numeramos los discos desde 1 hasta n,

y llamamos X a la primera pila de discos (origen), Z a la tercera (destino) e Y a la intermedia (auxiliar) y a la función le llamaríamos hanoi(origen, auxiliar, destino),

Page 3: Torres de Hanoi

como parámetros, la función recibiría las pilas de discos. 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. Si 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( ,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, 0...n-

1, encima de la ficha grande (n)

5. terminar

6. El resultado es: La pila destino

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 fichas.

Iterativa

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 sólo 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:

Page 4: Torres de Hanoi

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. Una forma equivalente de resolverlo es la siguiente: coloreando los

discos pares de un color y los impares de otro; se resuelve el problema añadiendo

la siguiente regla: no colocar dos discos del mismo color juntos. De esta manera

sólo queda un movimiento posible (además del de volver hacia atrás).

Estimaciones del Proyecto

Se estima que el proyecto contará con un mes de desarrollo.

Bibliografía Consultada

http://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r89550.PDF

http://www.rodoval.com/heureka/hanoi/

http://es.wikipedia.org/wiki/Torres_de_Han%C3%B3i