Sunteți pe pagina 1din 6

SOLUCIN DE LA TORRE HANOI DE 4 DISCOS A

TRAVS DE MATLAB

Aldo Jair Gamboa Cedeo


aldo_jgc@hotmail.com
Daniel Sebastin Noboa Rivera
danwar_@hotmail.com
ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO

SOLUCIN DE LA TORRE HANOI DE 4 DISCOS A TRAVS DE MATLAB

ESCUELA SUPERIOR POLITCNICA DE CHIMBORAZO


FACULTAD DE INFORMTICA Y ELECTRNICA
ESCUELA DE
ELECTRNICA

Aldo Jair Gamboa Cedeo


aldo_jgc@hotmail.com
Daniel Sebastin 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 condicin
2n1 Donde n es el nmero de discos de la torre. Tambin 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 tamao.

INTRODUCCIN:

Encontrar un mtodo para la


resolucion del problema.

MATLAB es un lenguaje de alto nivel con


un entorno interactivo entre sus prestaciones
bsicas se hallan: la manipulacin de
matrices, la representacin de datos y
funciones, la implementacin de algoritmos,
la creacin de interfaces de usuario entre
otros.
En la realizacin de proyectos
basados en la utilizacin del control
inteligente se presentan varios
campos
de
utilizacin
de
herramientas en este caso el
software Matlab el cual nos
ayudara en el modelamiento de
ciertos parmetros necesarios en la
realizacin de nuestro proyecto.
OBJETIVOS:
Obtener la solucin de la torre
Hanoi mediante un algoritmo
generado en Matlab.
Utilizar las herramientas de
Matlab
para
generar
el
algoritmo.

CONTROL INTELIGENTE

Pgina 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
tamaos con agujeros en sus
centros. Se supone que si un disco
est en una estaca, slo un disco
de dimetro ms pequeo se
puede colocar encima de l. Si se
tienen todos los discos apilados en
una estaca especfica inicial, el
problema consiste transferir los
discos a otra estaca moviendo un
disco a la vez.

ESCUELA SUPERIOR POLITCNICA DE CHIMBORAZO


FACULTAD DE INFORMTICA Y ELECTRNICA
ESCUELA DE
ELECTRNICA

CONCLUSIONES:
Es de gran importancia saber
utilizar
la
herramienta
de
Matlab ya que esta nos ayuda
en la fcil elaboracin de
clculos y procesos lgicos.

REGLAS PARA LA TORRE HANOI

Slo se puede mover un disco a


la vez de una aguja a otra.
No se puede colocar un disco
encima de otro de menor
tamao.

Debemos resolver el problema


propuesto antes de desarrollar
el algoritmo ya que de esta
manera podremos encontrar un
mtodo 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

Pgina 3

ANEXOS:
CDIGO 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 POLITCNICA DE CHIMBORAZO


FACULTAD DE INFORMTICA Y ELECTRNICA
ESCUELA DE
ELECTRNICA
%
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
pequea)
%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

Pgina 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 POLITCNICA DE CHIMBORAZO


FACULTAD DE INFORMTICA Y ELECTRNICA
ESCUELA DE
ELECTRNICA
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

Pgina 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 POLITCNICA DE CHIMBORAZO


FACULTAD DE INFORMTICA Y ELECTRNICA
ESCUELA DE
ELECTRNICA
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

Pgina 6

ESTADO FINAL DE LA TORRE

S-ar putea să vă placă și