Informe Final de Robotica
Informe Final de Robotica
Informe Final de Robotica
2001113567
2001201493
2001201686
2003103928
2001200479
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
46 J
45 J
46 J
45 J
45 J
Resumen.
El presente trabajo del Curso de Inteligencia Artificial y Robtica, en el cual plasmaremos
consideraciones para dar una solucin al juego de Tamgram; generando un programa para una
mejor y efectiva forma de resolverlo, proponiendo mejores y simples tcnicas a las variantes ya
establecidas para una optima solucin; todo ello con el aprovechamiento de los conocimientos
que obtendremos en el curso.
La particularidad que presentemos ser la bsqueda por darle mayor versatilidad y tambin
ms dinmica al mismo tiempo. Concibiendo de manera conjunta una apreciacin del problema
y de las opciones mltiples para la solucin, llegando as a lograr un planteamiento uniforme;
con la documentacin, el plan de estudio, los algoritmos, y la implementacin de la solucin
final con el lenguaje Lisp.
problema a resolver, la forma propuesta de
resolver, algunos antecedentes, entre otros.
Palabras Claves:
Bsqueda
heurstica:
Tcnica
INTRODUCCIN
seccin se espera que el autor
en forma ms amplia a como se
en el Resumen, algunos aspectos
contexto de la investigacin, el
1
El Problema
Se requiere la implementacin de un
programa que resuelva cualquier silueta de
figuras, definiendo una adecuada estructura
para los datos que tomarn en cuenta sobre
la ubicacin de las mismas.
Las variaciones que se realicen con los
movimientos de las siluetas de figuras se
evaluarn para determinar si se ha llegado a
una solucin y en tal caso se le felicitar al
usuario.
1.2.
Objetivos.
Objetivo Principal
Objetivo Secundario
Mostrar el funcionamiento
adecuado del juego mediante una
demostracin de la resolucin de un
problema propuesto, con su debido
solucionarlo.
Desarrollar un algoritmo que
nos permita desarrollar la lgica del
juego a implementar.
2
Modelo de solucin.
II.
DESARROLLO TERICO
Preguntas de la investigacin
DESARROLLO EXPERIMENTAL.
3.1.
Planteamiento de la solucin.
4
7a
2b
1a
5b
Rotacin de la figura
Giro 45 =
1
(0 0 0 0 0 0
0)
Giro 90 =
2
Triangulo Pequeo B
Triangulo Mediano
Triangulo Grande A
Triangulo Grande B
Cuadrado
1 = +/- 45
3 = +/- 135
4 = +/- 180
4 = +/- 180
0 = 0
Giro 0 = 0
0 = 0
Giro 135 =
3
Giro 180 =
4
Desarrollo experimental.
HEMOS
UTILIZADO
HEURISTICO
3.3.
EL
METODO
Implementacin.
PROGRAMA DE TANGRAM
;===================================
;declaramos nuestros operadores
;===================================
(setq operadores (make-array 7
:initial-contents '((1 0 0 0 0 0 0)
(0 1 0 0 0 0 0)
(0 0 1 0 0 0 0) (0 0 0 1 0 0 0) (0 0
0 0 1 0 0)
(0 0 0 0 0 1 0) (0 0 0 0 0 0 1))))
;===================================
;///////////////////////////////////
;FUNCIONES DE BUSUEDA EN GENERAL
;///////////////////////////////////
;===================================
(defun nuevos-sucesores (nodo
abiertos cerrados)
(elimina-duplicados (sucesores nodo)
abiertos cerrados))
(defun sucesores (nodo)
(let ((resultado ()))
(loop for operador in *operadores*
do
(let ((siguiente (sucesor nodo
operador)))
(when siguiente (push siguiente
resultado))))
(nreverse resultado)))
(defun sucesor (nodo operador)
;===================================
;En esta funcion el estado nodo es
aplicado
;por el operador y luego al
siguiente estado.
;===================================
(let ((siguiente-estado
(aplica operador (estado nodo))))
(when siguiente-estado
(crea-nodo :estado siguiente-estado
:camino (cons operador
(camino nodo))))))
;===================================
;Se elimina los nodos duplicados
;Se obtine el camino mas adecuado
;Luego se evalua los nodos abiertos
;===================================
(defun elimina-duplicados (nodos
abiertos cerrados)
(loop for nodo in nodos
when (and (not (recursiva nodo
abiertos))
(not (recursiva nodo cerrados)))
collect nodo))
(defun recursiva (nodo lista-denodos)
(let ((estado (estado nodo)))
(loop for n in lista-de-nodos
thereis (equalp estado (estado
n)))))
;===================================
;Definiendo la estructura del nodo,
en la anchura
;la ruta por mejor para llegar a la
respuesta,
;actualiza los nosdos abiertos
;===================================
(defun busqueda-anchura ()
(actual nil)
(nuevos-sucesores nil))
;===================================
;De esta forma se invoca a la
funcin
;que genera la bsqueda
;===================================
(tangram ei ef)
EJEMPLO 1
CL-USER 1 >
;=================================
; asignamos operadores al estado inicial y
;final
;=================================
(setq EI '(0 0 0 0 0 0 0))
(0 0 0 0 0 0 0)
CL-USER 13 > (setq EF '(1 3 2 1 4 2 3))
(1 3 2 1 4 2 3)
;=================================
;De esta forma se invoca a la funcin
;que genera la bsqueda
El mtodo que hemos empleado es
heurstica porque si utilizamos el mtodo de
profundidad seria ms tedioso al igual el del
mtodo de anchura.
(t (setf nuevos-sucesores
(nuevos-sucesores actual abiertos
cerrados))
(setf abiertos
(append nuevos-sucesores
abiertos))))))
)
3.4.
Anlisis de Resultados.
;===================================
(0 0 0 0 0 0 0)
(1 0 0 0 0 0 0)
(1 1 0 0 0 0 0)
(1 2 0 0 0 0 0)
(1 3 0 0 0 0 0)
(1 3 1 0 0 0 0)
(1 3 2 0 0 0 0)
(1 3 2 1 0 0 0)
(1 3 2 1 1 0 0)
(1 3 2 1 2 0 0)
(1 3 2 1 3 0 0)
(1 3 2 1 4 0 0)
(1 3 2 1 4 1 0)
(1 3 2 1 4 2 0)
(1 3 2 1 4 2 1)
(1 3 2 1 4 2 2)
(1 3 2 1 4 2 3)
4.1.
Conclusiones.
4.2.
Recomendaciones.
BIBLIOGRAFA.
http://es.wikipedia.org/wiki/Tangram
http://www.pedagogica.edu.co/storag
e/rce/articulos/pag212_218.pdf
http://www.docente.mendoza.edu.ar/
matematica/Tangram.htm
8
http://redescolar.ilce.edu.mx/redescc
olar/act_permanentes/mate/imagin
a/mate3z.htm
http://www.espaciologopedico.com/tie
nda/detalle?Id_articulo=1075
http://jgarcia.wordpress.com/2006/11/
26/el -tangram
http://www.bibliovalle.gov.co/articulo.
php?ArticulosID=273
http://Tangram.web.com.co/
http://weblog.euc.ar/educaciontics/cuerpoentrevista.php?
IdEntrev=70