[SER222] Recurrences (2/7): Towers of Hanoi

Ruben Acuna
22 Sept 201706:03

Summary

TLDREn este video, se explica el juego de las Torres de Hanoi, un rompecabezas clásico en el que se deben mover discos entre tres torres siguiendo reglas específicas: solo se puede mover un disco a la vez, siempre desde la parte superior, y nunca se puede colocar un disco más grande sobre uno más pequeño. El objetivo es trasladar todos los discos de la primera torre a la tercera. Se discute el análisis de algoritmos para resolver el problema y se propone un enfoque que involucra mover torres más pequeñas en tres pasos básicos para completar el juego.

Takeaways

  • 🧩 El video introduce el juego Torres de Hanoi, un rompecabezas comúnmente visto en matemáticas discretas.
  • 🎯 El objetivo del juego es mover todos los discos de la torre izquierda a la torre derecha, siguiendo reglas específicas.
  • 🔄 La primera regla es que solo se puede mover el disco superior de cualquier torre.
  • 🛑 La segunda regla es que solo se puede mover un disco a la vez.
  • ⚖️ La tercera regla es que no se puede colocar un disco más grande sobre uno más pequeño.
  • 📊 Se plantea la posibilidad de escribir una función de crecimiento para modelar el número de movimientos necesarios según el número de discos.
  • 🧠 El video propone analizar algoritmos para resolver el problema y calcular la cantidad mínima de movimientos.
  • 🖼️ Se presenta una demostración del caso de tres discos, mostrando cómo mover los discos entre las torres de manera óptima.
  • 🔧 La estrategia general incluye mover una torre de n-1 discos a la torre intermedia, mover el disco más grande a la torre final, y luego mover la torre de n-1 discos a la torre final.
  • 💡 La resolución del problema implica tres pasos clave que pueden ser aplicados a una torre de cualquier tamaño.

Q & A

  • ¿Qué es el juego de las Torres de Hanoi?

    -El juego de las Torres de Hanoi consiste en mover una serie de discos de diferentes tamaños entre tres torres, siguiendo ciertas reglas, con el objetivo de mover todos los discos desde la torre izquierda a la torre derecha.

  • ¿Cuáles son las reglas básicas del juego?

    -Las reglas son: 1) Solo se puede mover el disco superior de una torre. 2) Solo se puede mover un disco a la vez. 3) No se puede colocar un disco más grande sobre uno más pequeño.

  • ¿Cuál es el objetivo del juego?

    -El objetivo del juego es mover todos los discos de la torre izquierda a la torre derecha, siguiendo las reglas establecidas, sin violar las restricciones.

  • ¿Qué estrategia básica se utiliza para resolver el problema de las Torres de Hanoi?

    -La estrategia básica consiste en mover una torre de tamaño n-1 desde la primera torre a la torre del medio, luego mover el disco más grande a la torre final y finalmente mover la torre n-1 a la torre final sobre el disco más grande.

  • ¿Qué representa el tamaño del problema en las Torres de Hanoi?

    -El tamaño del problema se refiere al número de discos que hay que mover, y se puede modelar para calcular cuántos movimientos serán necesarios para resolver el juego.

  • ¿Cómo se puede modelar el número de movimientos necesarios en el juego?

    -Se puede crear una función de crecimiento que modele el número de movimientos necesarios en función del número de discos que hay que mover.

  • ¿Qué pasa cuando se juega con tres discos?

    -Cuando se juega con tres discos, la secuencia básica es mover el disco más pequeño, luego mover el mediano, y finalmente mover el más grande, asegurándose de seguir las reglas en todo momento.

  • ¿Qué algoritmo se puede desarrollar a partir del juego de las Torres de Hanoi?

    -Se puede desarrollar un algoritmo recursivo en el que se mueven n-1 discos a la torre intermedia, luego se mueve el disco más grande a la torre final, y finalmente se mueven los n-1 discos restantes a la torre final.

  • ¿Qué sucede cuando se tiene flexibilidad en el movimiento de discos?

    -Cuando los discos están distribuidos entre las torres, existe una mayor flexibilidad en los movimientos, lo que facilita la reorganización de los discos para seguir progresando hacia el objetivo final.

  • ¿Qué importancia tiene el concepto de 'pasos' en la resolución del problema?

    -El problema se puede descomponer en tres pasos principales: mover la torre n-1, mover el disco más grande, y finalmente mover la torre n-1 de nuevo a la torre final. Esta estructura proporciona una base para un enfoque sistemático y algorítmico.

Outlines

00:00

🎮 Introducción al juego de las Torres de Hanoi

En este video, se introduce el juego de las Torres de Hanoi. Aunque no es exactamente un rompecabezas matemático, el presentador lo utiliza como un ejemplo interesante para discutir conceptos relacionados con algoritmos. El juego consiste en tres torres o postes, y varios discos que se deben mover siguiendo tres reglas: solo se puede mover el disco superior de una torre, solo se puede mover un disco a la vez, y no se puede colocar un disco más grande sobre uno más pequeño. El objetivo es trasladar todos los discos de la torre izquierda a la derecha.

05:01

🧠 Análisis algorítmico y función de crecimiento

El presentador plantea que el juego puede servir para pensar en un modelo algorítmico que calcule el número de movimientos necesarios para resolver el juego, en función de la cantidad de discos. Se podría crear una función de crecimiento para predecir cuántos movimientos se necesitan para trasladar todos los discos de una torre a otra. Se menciona que se analizará más adelante la escritura de un algoritmo que resuelva el problema y modele dicha función de crecimiento.

🔄 Solución inicial para una torre de tres discos

El presentador explica cómo resolver un caso con tres discos, comenzando con todos en la torre izquierda y moviéndolos gradualmente siguiendo las reglas del juego. Se hace un primer movimiento del disco más pequeño hacia la torre derecha, y luego se mueven los discos restantes uno a uno. El objetivo es trasladar todos los discos a la torre derecha, y el presentador describe el proceso paso a paso, haciendo pequeños avances hacia la solución final.

🔍 Reflexión sobre el proceso algorítmico

Después de resolver el caso de tres discos, el presentador invita a reflexionar sobre si existe una regla o algoritmo general que pueda resolver el problema. Sugiere un enfoque basado en dividir el problema en tres pasos: mover una torre de tamaño n-1 al poste intermedio, mover el disco más grande al último poste, y finalmente trasladar la torre n-1 del poste intermedio al último poste. Este enfoque proporciona una estructura para resolver el problema de manera algorítmica.

Mindmap

Keywords

💡Torres de Hanói

Un juego de rompecabezas matemático que consiste en mover una serie de discos de diferentes tamaños entre tres torres o postes, siguiendo ciertas reglas. En el video, el presentador utiliza este juego como ejemplo para explicar el funcionamiento de un algoritmo y su análisis. El objetivo del juego es mover todos los discos de una torre a otra sin romper las reglas.

💡Discos

Los discos son las piezas de diferentes tamaños que se deben mover entre las torres en el juego de las Torres de Hanói. Según las reglas, solo se puede mover un disco a la vez, y un disco más grande no puede colocarse sobre uno más pequeño. Estos discos representan el problema central que se resuelve en el rompecabezas, y el número de discos define la dificultad del problema.

💡Reglas

Las reglas del juego son las restricciones que limitan las posibles acciones: 1) Solo se puede mover el disco superior de una torre, 2) Solo se puede mover un disco a la vez, y 3) Un disco mayor no puede colocarse sobre uno menor. Estas reglas estructuran el rompecabezas y lo hacen un desafío interesante para analizar desde el punto de vista de un algoritmo.

💡Algoritmo

En el contexto del video, un algoritmo es una serie de pasos o instrucciones que permiten resolver el rompecabezas de las Torres de Hanói de manera eficiente. El presentador sugiere que el rompecabezas puede resolverse mediante un algoritmo que siga un patrón repetitivo: mover una torre más pequeña, luego el disco más grande, y luego nuevamente la torre más pequeña.

💡Función de crecimiento

Una función de crecimiento es una expresión matemática que modela cómo aumenta el número de movimientos necesarios para resolver las Torres de Hanói a medida que crece el número de discos. El presentador menciona la idea de escribir una función de crecimiento para prever cuántos movimientos se necesitan según el tamaño de la torre.

💡Tamaño del problema

El tamaño del problema en el video se refiere al número de discos que hay que mover. Este tamaño es un factor clave para determinar la dificultad del juego y el número de movimientos necesarios para resolverlo. En este caso, el tamaño afecta directamente la estrategia y el número de pasos del algoritmo.

💡Movimiento de discos

Los movimientos de los discos son las acciones básicas del juego de las Torres de Hanói, en las que se traslada un disco de una torre a otra. El objetivo es mover todos los discos de la torre inicial a la torre final, respetando las reglas establecidas. El video describe varios ejemplos de cómo hacer estos movimientos de forma eficiente.

💡Recursividad

La recursividad es un concepto en programación donde una función se llama a sí misma para resolver subproblemas más pequeños. En el contexto de las Torres de Hanói, el algoritmo usa la recursividad para resolver el problema al dividirlo en partes más pequeñas, moviendo torres de discos más pequeñas antes de mover el disco más grande.

💡Solución óptima

La solución óptima se refiere a la manera más eficiente de resolver el rompecabezas, es decir, con el menor número de movimientos posibles. En el caso de las Torres de Hanói, la solución óptima sigue un patrón específico que minimiza el número de movimientos respetando las reglas del juego.

💡Matemáticas discretas

Las matemáticas discretas son un área de la matemática que estudia estructuras que son fundamentalmente discretas en lugar de continuas. En el video, se menciona que el juego de las Torres de Hanói es un ejemplo típico en cursos de matemáticas discretas, ya que implica análisis de algoritmos y patrones de crecimiento que son temas comunes en esta disciplina.

Highlights

Introduction to the Towers of Hanoi game and its basic rules.

Description of the game board: three towers or pegs, and discs that need to be moved.

Objective of the game: move all discs from the left-hand tower to the right-hand tower.

Rule 1: Only the top disc can be moved, and no access to the discs below.

Rule 2: Only one disc can be moved at a time.

Rule 3: A larger disc cannot be placed on top of a smaller disc.

The puzzle can be related to algorithms and analysis, focusing on the number of moves required to solve the game for a given number of discs.

Goal: to model the number of moves necessary to transfer all discs to the right-hand tower.

First demonstration: Moving the smallest disc to the right-hand tower.

Step-by-step explanation of solving a three-disc puzzle, starting from moving discs around the towers.

Explanation of partial progress by moving smaller discs to other towers.

Final solution for a three-disc tower: successfully moving all discs to the right-hand side.

Introduction of a general algorithmic strategy based on solving smaller subproblems.

Breakdown of the problem into three steps: move an n-1 sized tower, move the largest disc, and move the n-1 sized tower again.

Proposed algorithm: Use recursion to solve the problem in steps, based on the size of the tower (number of discs).

Transcripts

play00:05

- Okay, so in this video,

play00:06

I'm going to talk about the Towers of Hanoi game.

play00:08

So this isn't really our puzzle, I suppose

play00:10

this isn't really gonna be a video about algorithms per se

play00:13

or math, per se,

play00:14

but we'll use this as an interesting example.

play00:17

So you may have already seen this

play00:18

if you took discrete mathematics.

play00:19

So here up on the screen, I have basically the game board.

play00:23

So what I have is three towers, right, or pegs.

play00:26

Dolls, whatever.

play00:28

And those three things basically I have on top of that

play00:31

these different discs that can be set.

play00:32

And there's a certain number of these discs.

play00:34

And I can move them between those pegs.

play00:37

My goal in this game is to say, okay,

play00:39

I have this initial set up,

play00:40

here I have all of my discs on the left.

play00:43

And I might wanna try and move them

play00:44

all to the right-hand side.

play00:45

And so there's a puzzle

play00:47

where I have to follow these rules

play00:48

and gradually move those discs from the left side

play00:50

to the right-hand side.

play00:52

So there's three different rules.

play00:54

First of all, if I want to move a disc between those towers,

play00:57

between those rods.

play00:58

I can only take the topmost one,

play01:00

I can't reach the bottom and take something from there.

play01:02

I only have access to the one on top.

play01:05

Second thing, I can move only one disc at a time.

play01:10

I'm not allowed to pick up two or three or four,

play01:11

I have to move only one thing at a time.

play01:14

The last rule is that I can never place a smaller disc

play01:16

on top of a larger disc.

play01:18

It's supposed to be a tower, right,

play01:19

you're building upwards.

play01:21

So those are the rules of the game,

play01:22

the way it's played is basically you pick up a valid disc

play01:26

from one of the towers you have available,

play01:28

you have to pick from the top,

play01:28

and place it onto another tower

play01:30

provided that is a valid location to place it

play01:31

meaning you're not placing it onto something

play01:33

that's smaller than itself.

play01:35

So, that's our game.

play01:39

Maybe to think about algorithms and analysis for a second

play01:42

we could think to ourselves

play01:43

hey, you know what would be neat?

play01:44

It would be neat to write a growth function

play01:46

that models the number of moves

play01:47

that are necessary for a tower of a specific size.

play01:50

So our problem size, right,

play01:52

could be something like the number of discs.

play01:53

How tall is the tower?

play01:55

And then based on the tower, can I predict or model

play01:58

how many different moves or how many times

play02:00

do I need to move a disc in order to move that entire thing

play02:03

on the left-hand side over to the right-hand side.

play02:07

So algorithmically, that's what we can think about

play02:08

in the back of our head and later we'll look

play02:10

at writing an algorithm to do that

play02:11

and then also writing a growth function

play02:13

to model that algorithm.

play02:15

So this is the game.

play02:16

Let's maybe try working through a small solution

play02:19

for it first.

play02:20

So here I have basically the start.

play02:23

Right?

play02:23

So everything is on the left, versus the end,

play02:25

everything is on the right.

play02:28

So how would I play this game?

play02:30

Well, I could start with the following.

play02:32

I could say, okay, my tower that I need to move over,

play02:36

I can do something like move this top piece over here.

play02:40

I also had the choice to move it to the middle,

play02:42

but just for the sake of playing through the game

play02:44

in the fewest number of moves,

play02:46

I'll move it all the way to the right.

play02:47

So I put the smallest piece over there.

play02:48

That's fine.

play02:50

And that gets me this picture over here.

play02:54

So now my smallest piece is over here,

play02:56

my two remaining pieces are on the initial rod.

play02:59

It looks good.

play03:00

Following the rules, playing the game,

play03:01

I made a little bit of progress towards my goal

play03:03

of moving all the discs to the final tower.

play03:05

And then I could maybe move this one.

play03:08

So I could move my middle piece to the middle rod

play03:10

or the middle tower.

play03:13

I mean, we're not really making progress here.

play03:15

But we are moving things around.

play03:17

So hopefully it gets us something.

play03:20

Continue to play this game,

play03:21

right now everything's spread out.

play03:22

And in this case, right, we can think to ourselves,

play03:24

our final goal is to move the tower in its entirety

play03:28

to the right-hand side.

play03:29

So what can I do?

play03:30

Now that everything's spread out.

play03:31

I have a bunch of flexibility now.

play03:32

What I can think about,

play03:33

is I can think about hey, I can move this small one

play03:36

on top of the middle one

play03:37

and get a basically two-tall tower there.

play03:40

And that frees me up

play03:41

to move the largest piece to the largest disc, final tower.

play03:46

So there, all right, all of a sudden

play03:47

I made some concrete progress.

play03:48

Right.

play03:49

The resulting picture over here has

play03:51

basically the two pieces in the middle,

play03:52

which are still out of order, right,

play03:54

I want everything to be on the right-hand side.

play03:55

But also, the biggest piece is now on the final doll.

play03:59

The right-hand side one.

play04:00

So I've actually made progress towards my goal.

play04:02

Okay so that's good.

play04:03

Now I only have to worry about these two.

play04:05

Well, over here, the rules obligate me to make only one move

play04:08

so I move the smallest one here over to the left-hand side.

play04:11

Gets me to this picture over here.

play04:14

Everything's spread out again,

play04:15

and now you can see,

play04:16

it's pretty easy to reassemble this thing.

play04:18

I move the middle token to the far right,

play04:22

and then the first piece, the last disc

play04:26

to the very top of that last tower.

play04:29

And so I get at the end, all these things stacked

play04:32

one on top of the other.

play04:33

So that's the game.

play04:34

That's how I could solve a case of size three.

play04:36

Right, with three discs to move over.

play04:38

So maybe stop and think for a second,

play04:41

is there any kind of general rule or mechanism

play04:44

behind the scenes here that we could use?

play04:46

Is there any sort of algorithm that we could maybe have

play04:48

to solve this?

play04:49

So think for one second.

play04:52

So here's an idea.

play04:54

What is we said that this was comprised

play04:56

mainly of three steps?

play04:58

The first step would be to move

play05:01

a n-1 sized tower from the first doll to the middle doll.

play05:10

Right, so it's gonna move from here to here.

play05:12

That's maybe one step.

play05:14

Because that frees me to move the final disc,

play05:17

the biggest one.

play05:18

And the final disc, we said right, gets moved

play05:21

to that final tower,

play05:23

that would maybe be one thing that I do afterwards.

play05:26

So my first move is to move n-1 disc from the first tower

play05:30

to the middle tower,

play05:31

then my second move is to move the biggest disc

play05:34

from the first tower to the last tower.

play05:36

And then the last thing I would do

play05:38

is move the smaller n-1 tower from the middle

play05:41

to the final position, right.

play05:44

On top of the largest disc that I just moved.

play05:46

So if I do those two things, move an n-1 tower,

play05:49

move a disc, move another n-1 sized tower

play05:52

then at the end of the day,

play05:53

I'll have migrated all of my discs from the first tower

play05:55

to the last one.

play05:57

So that's the idea we'll stick with,

play05:59

and that'll give us some sort of algorithm

play06:00

that we can use to solve this problem.

Rate This

5.0 / 5 (0 votes)

Related Tags
Torres de Hanoialgoritmosmatemáticasjuegos de lógicarompecabezasestrategiadiscosanálisisfunciones de crecimientoresolución de problemas
Do you need a summary in English?