Está en la página 1de 6

SOLUCIÓN DE LA TORRE HANOI DE 4 DISCOS A

TRAVÉS DE MATLAB

Aldo Jair Gamboa Cedeño


aldo_jgc@hotmail.com
Daniel Sebastián Noboa Rivera
danwar_@hotmail.com
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


aldo_jgc@hotmail.com
Daniel Sebastián Noboa Rivera
danwar_@hotmail.com
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
MARCO TEORICO:
matrices, la representación de datos y
funciones, la implementación de algoritmos,
TORRE HANOI
la creación de interfaces de usuario entre
otros.
La Torre de Hanoi es un juego que
En la realización de proyectos
consiste en tres estacas montadas
basados en la utilización del control
en una tabla y n discos de varios
inteligente se presentan varios
tamaños con agujeros en sus
campos de utilización de
centros. Se supone que si un disco
herramientas en este caso el
está en una estaca, sólo un disco
software Matlab el cual nos
de diámetro más pequeño se
ayudara en el modelamiento de
puede colocar encima de él. Si se
ciertos parámetros necesarios en la
tienen todos los discos apilados en
realización de nuestro proyecto.
una estaca específica inicial, el
problema consiste transferir los
OBJETIVOS: discos a otra estaca moviendo un
disco a la vez.
 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


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  Debemos resolver el problema
propuesto antes de desarrollar
 Sólo se puede mover un disco a el algoritmo ya que de esta
la vez de una aguja a otra. manera podremos encontrar un
 No se puede colocar un disco método o estrategia para su
encima de otro de menor resolucion.
tamaño.
 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-2A-
1A-3C-1B-2C-1C ANEXOS:

 Se llevan n-1 discos de la varilla


origen a la auxiliar. CÓDIGO FUENTE:
 Se lleva un solo disco (el que
queda) de la varilla origen a la
destino. 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
 Se traen los n-1 discos de la 1.0 0.0;];% mapa de colores
varilla auxiliar a la destino.
CONTROL INTELIGENTE Página 3
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO
FACULTAD DE INFORMÁTICA Y ELECTRÓNICA ESCUELA DE
ELECTRÓNICA

% negro blanco if (M(3,2)==3 && M(4,2)==4 &&


rojo verde azul M(5,2)==5);
amarillo M(5,5)=3; %Damos el valor de la
colormap(Color);%toma la matriz de pieza a la estaca B
colores asignados con los valores M(3,2)=2; %Una vez generado el
%1= color nregro movimiento quitamos la pieza en
%2= color blanco donde se encontraba
%3= color rojo image (M) %Visualizamos el
%4= color verde proceso realizado
%5= color azul pause(2) %Pausa de 2 segundos
%6= color amarillo para la visualizacion del proceso
end

%Creamos una matriz para generar %Condicion para generar el


nuestro espacio de trabajo con movimiento 1-B
valores if (M(4,2)==4 && M(5,2)==5 &&
%para indicar sus colores M(5,8)==6);
M=[1 1 1 1 1 1 1 1 1; M(4,5)=6; %Damos el valor de la
1 6 1 1 2 1 1 2 1; pieza a la estaca B
1 3 1 1 2 1 1 2 1; M(5,8)=2; %Una vez generado el
1 4 1 1 2 1 1 2 1; movimiento quitamos la pieza en
1 5 1 1 2 1 1 2 1;]; donde se encontraba
image (M) %Visualizamos el
%6= PIEZA NUMERO 1 (pieza mas proceso realizado
pequeña) pause(2) %Pausa de 2 segundos
%3= PIEZA NUMERO 2 para la visualizacion del proceso
%4= PIEZA NUMERO 3 end
%5= PIEZA NUMERO 4 (pieza mas
grande) %Condicion para generar el
movimiento 3-C
image (M) %imprimo la matriz inicial if (M(4,2)==4 && M(5,2)==5 &&
con todas las piezas en la primera M(5,8)==2);
estaca M(5,8)=4; %Damos el valor de la
pieza a la estaca C
M(4,2)=2; %Una vez generado el
pause(3) %Pausa de 3 segundos para movimiento quitamos la pieza en
la visualizacion del proceso donde se encontraba
image (M) %Visualizamos el
%Condicion para generar el proceso realizado
movimiento 1-C pause(2) %Pausa de 2 segundos
if (M(2,2)==6 && M(3,2)==3 && para la visualizacion del proceso
M(4,2)==4 && M(5,2)==5); end
M(5,8)=6; %Damos el valor de la
pieza a la estaca C %Condicion para generar el
M(2,2)=2; %Una vez generado el movimiento 1-A
movimiento quitamos la pieza en if (M(5,5)==3 && M(4,5)==6 &&
donde se encontraba M(5,8)==4);
image (M) %Visualizamos el proceso M(4,2)=6; %Damos el valor de la
realizado pieza a la estaca A
pause(2) %Pausa de 2 segundos M(4,5)=2; %Una vez generado el
para la visualizacion del proceso movimiento quitamos la pieza en
end donde se encontraba
image (M) %Visualizamos el
%Condicion para generar el proceso realizado
movimiento 2-B pause(2) %Pausa de 2 segundos
para la visualizacion del proceso

CONTROL INTELIGENTE Página 4


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

end image (M) %Visualizamos el proceso


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

CONTROL INTELIGENTE Página 5


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 ESTADO INICIAL DE LA TORRE:
pause(2) %Pausa de 2 segundos
para la visualizacion del proceso
end

%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 ESTADO FINAL DE LA TORRE
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

También podría gustarte