IUPSM EXTENSIÓN CARACAS
Alejandra Bravo C.I: 24.439.938
Introducción
 La siguiente presentación hace referencia al juego
matemático las torres de Hanói, inventado en 1883 por
Édouard Lucas.
 Se puede resolver utilizando diferentes métodos, entre
ellos está la técnica de diseño de algoritmos llamada
“divide y vencerás” que realiza la descomposición del
problema en varios sub-problemas más sencillos, para
luego resolver éstos mediante un cálculo simple. Por
último, se combinan los resultados de cada sub-problema
para obtener la solución del problema original.
¿Qué son las torres de Hanói?
Es un rompecabezas o juego
matemático conformado por varios
discos de radio creciente que deben
apilarse en una de las tres estacas de
un tablero. El objetivo del juego es
crear la pila en otra de las estacas
siguiendo 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.
Reseña histórica
 Se cuenta que en un templo de Benarés (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.
Explicación del juego
El juego consiste en tres varillas verticales. En una de
las varillas se apila un número indeterminado de
discos que determinará la complejidad de la
solución, por regla general se utilizan 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:
 Sólo se puede mover un disco cada vez.
 Un disco de mayor tamaño no puede descansar
sobre uno más pequeño que él mismo.
 Sólo puedes desplazar el disco que se encuentre
arriba en cada varilla.
Solución algorítmica aplicando el
método divide y vencerás
Para aplicar una estrategia divide y
vencerás al problema sería necesario que
los subproblemas tuvieran un tamaño
aproximadamente mitad, es decir,
debemos expresar la solución en función
de mover n/2 discos.
El mover los n/2 discos superiores no
plantea dificultades, ya que se dispone de
cuatro postes accesibles. Sin embargo, al
mover los n/2 discos inferiores sólo
disponemos de tres postes, ya que uno no
es accesible al contener la subtorre con
los n/2 discos superiores.
Una forma de afrontar el problema es
mover los n/2 discos inferiores utilizando
el algoritmo de las torres de Hanói con tres
postes. De esa forma, el algoritmo
utilizado sería el que se muestra en la
animación:
 Este algoritmo se podría implementar de la siguiente
forma:
procedure Hanoi4(N: integer; Orig,Dest,Aux1,Aux2: char);
var M : integer;
begin
if N = 0 then
{ En este caso base no se hace nada }
else if N = 1 then
writeln(output,Orig,' -> ',Dest)
else
begin
M := N div 2;
Hanoi4(N-M,Orig,Aux1,Dest,Aux2);
Hanoi3(M,Orig,Dest,Aux2);
Hanoi4(N-M,Aux1,Dest,Orig,Aux2);
end
end;
La relación de recurrencia que se obtiene ahora es:
T(0) = 0
T(1) = 1
T(n) = 2*T(n/2) + Q(2n)
Enlace del juego
 http://www.uterra.com/juegos/torre_hanoi.php
Conclusión
 El juego las torres de Hanói y el método de divide y
vencerás son herramientas beneficiosas para el ser
humano debido a que permiten desarrollar habilidades
de razonamiento y solución de problemas en la mínima
cantidad de tiempo posible, lo cual resulta útil para la
vida cotidiana.

Las torres de hanói

  • 1.
  • 2.
    Introducción  La siguientepresentación hace referencia al juego matemático las torres de Hanói, inventado en 1883 por Édouard Lucas.  Se puede resolver utilizando diferentes métodos, entre ellos está la técnica de diseño de algoritmos llamada “divide y vencerás” que realiza la descomposición del problema en varios sub-problemas más sencillos, para luego resolver éstos mediante un cálculo simple. Por último, se combinan los resultados de cada sub-problema para obtener la solución del problema original.
  • 3.
    ¿Qué son lastorres de Hanói? Es un rompecabezas o juego matemático conformado por varios discos de radio creciente que deben apilarse en una de las tres estacas de un tablero. El objetivo del juego es crear la pila en otra de las estacas siguiendo 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.
  • 4.
    Reseña histórica  Secuenta que en un templo de Benarés (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.
  • 5.
    Explicación del juego Eljuego consiste en tres varillas verticales. En una de las varillas se apila un número indeterminado de discos que determinará la complejidad de la solución, por regla general se utilizan 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:  Sólo se puede mover un disco cada vez.  Un disco de mayor tamaño no puede descansar sobre uno más pequeño que él mismo.  Sólo puedes desplazar el disco que se encuentre arriba en cada varilla.
  • 6.
    Solución algorítmica aplicandoel método divide y vencerás Para aplicar una estrategia divide y vencerás al problema sería necesario que los subproblemas tuvieran un tamaño aproximadamente mitad, es decir, debemos expresar la solución en función de mover n/2 discos. El mover los n/2 discos superiores no plantea dificultades, ya que se dispone de cuatro postes accesibles. Sin embargo, al mover los n/2 discos inferiores sólo disponemos de tres postes, ya que uno no es accesible al contener la subtorre con los n/2 discos superiores. Una forma de afrontar el problema es mover los n/2 discos inferiores utilizando el algoritmo de las torres de Hanói con tres postes. De esa forma, el algoritmo utilizado sería el que se muestra en la animación:
  • 7.
     Este algoritmose podría implementar de la siguiente forma: procedure Hanoi4(N: integer; Orig,Dest,Aux1,Aux2: char); var M : integer; begin if N = 0 then { En este caso base no se hace nada } else if N = 1 then writeln(output,Orig,' -> ',Dest) else begin M := N div 2; Hanoi4(N-M,Orig,Aux1,Dest,Aux2); Hanoi3(M,Orig,Dest,Aux2); Hanoi4(N-M,Aux1,Dest,Orig,Aux2); end end; La relación de recurrencia que se obtiene ahora es: T(0) = 0 T(1) = 1 T(n) = 2*T(n/2) + Q(2n)
  • 8.
    Enlace del juego http://www.uterra.com/juegos/torre_hanoi.php
  • 9.
    Conclusión  El juegolas torres de Hanói y el método de divide y vencerás son herramientas beneficiosas para el ser humano debido a que permiten desarrollar habilidades de razonamiento y solución de problemas en la mínima cantidad de tiempo posible, lo cual resulta útil para la vida cotidiana.