torres de hanói melany rojas

13
TORRES DE HANÓI Melany Rojas. IUP. “Santiago Mariño”

Upload: melany-rojas

Post on 27-Jun-2015

830 views

Category:

Technology


1 download

DESCRIPTION

Torres de hanói IUPSM

TRANSCRIPT

Page 1: Torres de hanói melany rojas

TORRES DE HANÓI

Melany Rojas.

IUP. “Santiago Mariño”

Page 2: Torres de hanói melany rojas

INTRODUCCIÓN

Desde la antigüedad se han visto los problemas con un grado

complejo queriendo buscar una única solución radical y exacta

al mismo, con el pasar del tiempo esta búsqueda ha dado como

resultados muchos métodos para ver y encontrarle de distintas

formas la solución de estos desde el mas pequeño hasta el mas

grande desde el mas simple hasta el mas complejo!

Uno de los principales métodos es el de Divide y Vencerás,

haciendo así la división del problema en partes para luego al

juntarlas tener una solución optima.

Page 3: Torres de hanói melany rojas

Al igual que en la programación dinámica y algoritmos

ávidos, se busca resolver un problema a través de sus

partes. La idea básica es ir dividiendo el problema en

partes (generalmente dos) e intentar resolverlas. Si las

partes son todavía demasiado complejas, se vuelven a

partir. Se repite esto recursivamente hasta que pueda

resolverse los subproblemas de manera directa. Una vez

que se tienen estas respuestas, se juntan para obtener la

solución general.

DIVIDE Y VENCERÁS

Page 4: Torres de hanói melany rojas

LAS TORRES DE HANÓI(ALGORITMOS DE HANOI)

Las torres de Hanói es un algoritmo matemático que tiene sus

orígenes en un juego de tres torres con discos de distintos

tamaños el juego consiste en mover los discos de la primera a la

ultima torre en orden creciente, el objetivo del juego es volver

armar la torre con una serie de reglas.

En la computación el algoritmo de Hanói trata de resolver

problemas mediante la programación dinámica o de recursividad,

dividiendo los problemas recursivamente hasta llegar a un único

subproblema o hasta obtener una solución compleja.

Page 5: Torres de hanói melany rojas

HISTORIA

Se cuenta que un templo de Benarés (Uttar Pradesh, India), se encontraba una cúpula que señalaba el centro del mundo. Allí estaba una bandeja sobre la cual existían tres agujas de diamante. En una mañana lluviosa, un rey mandó a poner 64 discos de oro, siendo ordenados por tamaño: el mayor en la base de la bandeja y el menor arriba de todos los discos.

Tras la 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 un disco de mayor diámetro encima de otro de menor diámetro". Hoy no existe tal templo, pero el juego aún perduró en el tiempo..

Page 6: Torres de hanói melany rojas

La búsqueda binaria, un algoritmo de divide y vencerás, 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 común 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.

Page 7: Torres de hanói melany rojas

ALGORITMO DIVIDE Y VENCERÁS

En las ciencias de la computación, el término divide y vencerás

(DYV) hace referencia a uno de los más importantes paradigmas

de diseño algorítmico. El método está basado en la resolución

recursiva de un problema dividiéndolo en dos o más

subproblemas de igual tipo o similar.

El proceso continúa hasta que éstos llegan a ser lo

suficientemente sencillos como para que se resuelvan

directamente. Al final, las soluciones a cada uno de los

subproblemas se combinan para dar una solución al problema

original.

Page 8: Torres de hanói melany rojas

DISEÑO E IMPLEMENTACIÓNLa resolución de un problema mediante esta técnica

consta fundamentalmente de los siguientes pasos:

1. Ha de plantearse el problema de forma que pueda ser

descompuesto en subproblemas del mismo tipo, pero de menor

tamaño. Es decir, si el tamaño de la entrada es n, hemos de

conseguir dividir el problema en k subproblemas (donde 1 ≤ k ≤

n), cada uno con una entrada de tamaño nk y donde 0 ≤ nk < n. A

esta tarea se le conoce como división.

2. En segundo lugar han de resolverse independientemente todos los

subproblemas, bien directamente si son elementales o bien de

forma recursiva. El hecho de que el tamaño de los subproblemas

sea estrictamente menor que el tamaño original del problema nos

garantiza la convergencia hacia los casos elementales, también

denominados casos base.

3. Por último, combinar las soluciones obtenidas en el paso anterior

para construir la solución del problema original.

Page 9: Torres de hanói melany rojas

EL PROBLEMA MATEMÁTICAMENTE

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.

Page 10: Torres de hanói melany rojas

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 queremos 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

Page 11: Torres de hanói melany rojas

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, sabemos

siempre qué pieza hay que mover y a qué columna

hay que desplazarla, luego el problema está resuelto.

Page 12: Torres de hanói melany rojas

CONCLUSIÓN El Algoritmo de Hanói y el método divide y vencerás es un gran ejemplo de como

aplicando la lógica y la matemática pueden ser resueltos grandes problemas

haciéndolos cada vez mas pequeños para así obtener una solución efectiva.

Los programadores pueden utilizar este modelo algorítmico como una

herramienta potente para solucionar problemas complejos, tales como el clásico

juego de las torres de Hanói. Todo lo que necesita este algoritmo es dividir el

problema en subproblemas más sencillos, y éstos en otros más sencillos hasta

llegar a unos subproblemas fáciles (también llamados casos base).

Una vez ahí, se resuelven y se combinan los subproblemas en orden inverso a su

inicio. Cómo dividir los problemas es, a menudo, la parte más compleja del

algoritmo. Por eso, en muchos problemas, el modelo sólo ofrece la solución más

sencilla, no la mejor.