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