Torre Hanoi

SOLUCIÓN DE LA TORRE HANOI DE 4 DISCOS A TRAVÉS DE MATLAB Aldo Jair Gamboa Cedeño [email protected] Daniel Sebastián

Views 109 Downloads 0 File size 577KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

SOLUCIÓN DE LA TORRE HANOI DE 4 DISCOS A TRAVÉS DE MATLAB

Aldo Jair Gamboa Cedeño [email protected] Daniel Sebastián Noboa Rivera [email protected] ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO

SOLUCIÓN DE LA TORRE HANOI DE 4 DISCOS A TRAVÉS DE MATLAB

ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO FACULTAD DE INFORMÁTICA Y ELECTRÓNICA ESCUELA DE ELECTRÓNICA

Aldo Jair Gamboa Cedeño [email protected] Daniel Sebastián Noboa Rivera [email protected] ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO

RESUMEN: El algoritmo desarrollado trata de resolver la torre hanoi de 4 discos y visualizar su proceso, para esto se requiere conocer el numero de movimientos que se deben realizar al momento de resolver la torre que en este caso son 15 deacuerdo a la condición 2n−1 Donde n es el número de discos de la torre. También se debe tomar en cuenta que solo se puede mover un disco a la vez y no se puede colocar un disco encima de otro de menor tamaño.

INTRODUCCIÓN:

 Encontrar un método para la resolucion del problema.

MATLAB es un lenguaje de alto nivel con un entorno interactivo entre sus prestaciones básicas se hallan: la manipulación de matrices, la representación de datos y funciones, la implementación de algoritmos, la creación de interfaces de usuario entre otros. En la realización de proyectos basados en la utilización del control inteligente se presentan varios campos de utilización de herramientas en este caso el software Matlab el cual nos ayudara en el modelamiento de ciertos parámetros necesarios en la realización de nuestro proyecto. OBJETIVOS:  Obtener la solución de la torre Hanoi mediante un algoritmo generado en Matlab.  Utilizar las herramientas de Matlab para generar el algoritmo.

CONTROL INTELIGENTE

Página 2

MARCO TEORICO: TORRE HANOI La Torre de Hanoi es un juego que consiste en tres estacas montadas en una tabla y n discos de varios tamaños con agujeros en sus centros. Se supone que si un disco está en una estaca, sólo un disco de diámetro más pequeño se puede colocar encima de él. Si se tienen todos los discos apilados en una estaca específica inicial, el problema consiste transferir los discos a otra estaca moviendo un disco a la vez.

ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO FACULTAD DE INFORMÁTICA Y ELECTRÓNICA ESCUELA DE ELECTRÓNICA

CONCLUSIONES:  Es de gran importancia saber utilizar la herramienta de Matlab ya que esta nos ayuda en la fácil elaboración de cálculos y procesos lógicos.

REGLAS PARA LA TORRE HANOI  

Sólo se puede mover un disco a la vez de una aguja a otra. No se puede colocar un disco encima de otro de menor tamaño.



 Debemos resolver el problema propuesto antes de desarrollar el algoritmo ya que de esta manera podremos encontrar un método o estrategia para su resolucion.  Es necesario obtener las coordenadas de cada celda para de esta manera analizar su posicion, y relacionarlo con las piezas de la torre y seguirlas ubicando conforme a las condiciones planteadas.

REFERENCIAS: [1]https://deista.wordpress.com/2010/05/09/ juego-matematico-las-torres-de-hanoi/ [2]http://torredehanoisolucionorlando.blogs pot.com/p/solucion.html TORRE 4 DISCOS

[3]http://dalila.sip.ucm.es/~manuel/Informa tica/TorresdeHanoi.pdf

Se requieren 15 Movimientos: 1B-2C-1C-3B-1A-2B-1B-4C-1C-2A1A-3C-1B-2C-1C  



Se llevan n-1 discos de la varilla origen a la auxiliar. Se lleva un solo disco (el que queda) de la varilla origen a la destino. Se traen los n-1 discos de la varilla auxiliar a la destino.

CONTROL INTELIGENTE

Página 3

ANEXOS: CÓDIGO FUENTE: Color=[0.0 0.0 0.0;1.0 1.0 1.0;1.0 0.0 0.0;0.0 1.0 0.0;0.0 0.0 1.0;1.0 1.0 0.0;];% mapa de colores

ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO FACULTAD DE INFORMÁTICA Y ELECTRÓNICA ESCUELA DE ELECTRÓNICA % negro blanco rojo verde azul amarillo colormap(Color);%toma la matriz de colores asignados con los valores %1= color nregro %2= color blanco %3= color rojo %4= color verde %5= color azul %6= color amarillo

if (M(3,2)==3 && M(4,2)==4 && M(5,2)==5); M(5,5)=3; %Damos el valor de la pieza a la estaca B M(3,2)=2; %Una vez generado el movimiento quitamos la pieza en donde se encontraba image (M) %Visualizamos el proceso realizado pause(2) %Pausa de 2 segundos para la visualizacion del proceso end

%Creamos una matriz para generar nuestro espacio de trabajo con valores %para indicar sus colores M=[1 1 1 1 1 1 1 1 1; 1 6 1 1 2 1 1 2 1; 1 3 1 1 2 1 1 2 1; 1 4 1 1 2 1 1 2 1; 1 5 1 1 2 1 1 2 1;];

%Condicion para generar el movimiento 1-B if (M(4,2)==4 && M(5,2)==5 && M(5,8)==6); M(4,5)=6; %Damos el valor de la pieza a la estaca B M(5,8)=2; %Una vez generado el movimiento quitamos la pieza en donde se encontraba image (M) %Visualizamos el proceso realizado pause(2) %Pausa de 2 segundos para la visualizacion del proceso end

%6= PIEZA pequeña) %3= PIEZA %4= PIEZA %5= PIEZA grande)

NUMERO 1 (pieza mas NUMERO 2 NUMERO 3 NUMERO 4 (pieza mas

image (M) %imprimo la matriz inicial con todas las piezas en la primera estaca pause(3) %Pausa de 3 segundos para la visualizacion del proceso %Condicion para generar el movimiento 1-C if (M(2,2)==6 && M(3,2)==3 && M(4,2)==4 && M(5,2)==5); M(5,8)=6; %Damos el valor de la pieza a la estaca C M(2,2)=2; %Una vez generado el movimiento quitamos la pieza en donde se encontraba image (M) %Visualizamos el proceso realizado pause(2) %Pausa de 2 segundos para la visualizacion del proceso end %Condicion para generar el movimiento 2-B

CONTROL INTELIGENTE

Página 4

%Condicion para generar el movimiento 3-C if (M(4,2)==4 && M(5,2)==5 && M(5,8)==2); M(5,8)=4; %Damos el valor de la pieza a la estaca C M(4,2)=2; %Una vez generado el movimiento quitamos la pieza en donde se encontraba image (M) %Visualizamos el proceso realizado pause(2) %Pausa de 2 segundos para la visualizacion del proceso end %Condicion para generar el movimiento 1-A if (M(5,5)==3 && M(4,5)==6 && M(5,8)==4); M(4,2)=6; %Damos el valor de la pieza a la estaca A M(4,5)=2; %Una vez generado el movimiento quitamos la pieza en donde se encontraba image (M) %Visualizamos el proceso realizado pause(2) %Pausa de 2 segundos para la visualizacion del proceso

ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO FACULTAD DE INFORMÁTICA Y ELECTRÓNICA ESCUELA DE ELECTRÓNICA end %Condicion para generar el movimiento 2-C if (M(5,5)==3 && M(5,8)==4); M(4,8)=3; %Damos el valor de la pieza a la estaca C M(5,5)=2; %Una vez generado el movimiento quitamos la pieza en donde se encontraba image (M) %Visualizamos el proceso realizado pause(2) %Pausa de 2 segundos para la visualizacion del proceso end %Condicion para generar el movimiento 1-C if (M(5,5)==2 && M(5,8)==4 && M(4,8)==3); M(3,8)=6; %Damos el valor de la pieza a la estaca C M(4,2)=2; %Una vez generado el movimiento quitamos la pieza en donde se encontraba image (M) %Visualizamos el proceso realizado pause(2) %Pausa de 2 segundos para la visualizacion del proceso end %Condicion para generar el movimiento 4-B if (M(5,2)==5 && M(5,5)==2 && M(3,8)==6); M(5,5)=5; %Damos el valor de la pieza a la estaca B M(5,2)=2; %Una vez generado el movimiento quitamos la pieza en donde se encontraba image (M) %Visualizamos el proceso realizado pause(2) %Pausa de 2 segundos para la visualizacion del proceso end %Condicion para generar el movimiento 1-B if (M(5,2)==2 && M(5,5)==5 && M(3,8)==6); M(4,5)=6; %Damos el valor de la pieza a la estaca B M(3,8)=2; %Una vez generado el movimiento quitamos la pieza en donde se encontraba

CONTROL INTELIGENTE

Página 5

image (M) %Visualizamos el proceso realizado pause(2) %Pausa de 2 segundos para la visualizacion del proceso end %Condicion para generar el movimiento 2-A if (M(4,5)==6 && M(4,8)==3 && M(5,2)==2); M(5,2)=3; %Damos el valor de la pieza a la estaca A M(4,8)=2; %Una vez generado el movimiento quitamos la pieza en donde se encontraba image (M) %Visualizamos el proceso realizado pause(2) %Pausa de 2 segundos para la visualizacion del proceso end %Condicion para generar el movimiento 1-A if (M(5,5)==5 && M(4,5)==6 && M(5,2)==3); M(4,2)=6; %Damos el valor de la pieza a la estaca A M(4,5)=2; %Una vez generado el movimiento quitamos la pieza en donde se encontraba image (M) %Visualizamos el proceso realizado pause(2) %Pausa de 2 segundos para la visualizacion del proceso end %Condicion para generar el movimiento 3-B if (M(4,2)==6 && M(5,8)==4 && M(5,5)==5); M(4,5)=4; %Damos el valor de la pieza a la estaca B M(5,8)=2; %Una vez generado el movimiento quitamos la pieza en donde se encontraba image (M) %Visualizamos el proceso realizado pause(2) %Pausa de 2 segundos para la visualizacion del proceso end %Condicion para generar el movimiento 1-C if (M(4,5)==4 && M(4,2)==6 && M(5,8)==2);

ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO FACULTAD DE INFORMÁTICA Y ELECTRÓNICA ESCUELA DE ELECTRÓNICA M(5,8)=6; %Damos el valor de la pieza a la estaca C M(4,2)=2; %Una vez generado el movimiento quitamos la pieza en donde se encontraba image (M) %Visualizamos el proceso realizado pause(2) %Pausa de 2 segundos para la visualizacion del proceso end

ESTADO INICIAL DE LA TORRE:

%Condicion para generar el movimiento 2-B if (M(5,8)==6 && M(5,2)==3 && M(4,5)==4); M(3,5)=3; %Damos el valor de la pieza a la estaca B M(5,2)=2; %Una vez generado el movimiento quitamos la pieza en donde se encontraba image (M) %Visualizamos el proceso realizado pause(2) %Pausa de 2 segundos para la visualizacion del proceso end %Condicion para generar el movimiento 1-B if (M(3,5)==3 && M(5,8)==6); M(2,5)=6; %Damos el valor de la pieza a la estaca B M(5,8)=2; %Una vez generado el movimiento quitamos la pieza en donde se encontraba image (M) %Visualizamos el proceso realizado pause(2) %Pausa de 2 segundos para la visualizacion del proceso end

CONTROL INTELIGENTE

Página 6

ESTADO FINAL DE LA TORRE