Sunteți pe pagina 1din 8

Universidad San Martn de Porres

Inteligencia Artificial y Sistemas Expertos


[TANGRAM]
INFORME FINAL
Inteligencia Artificial y Robotica
Guevara Puente, Gladys
Leiva Olazabal, Alvaro
Ramirez Bendez, Christian
Riveros Prez, Lizzy
Zamudio Soplin, Jaime

2001113567
2001201493
2001201686
2003103928
2001200479

gladys_gp27@hotmail.com
alo113@hotmail.com
navegador84@hotmail.com
lizmila@hotmail.com
jaimemariano@hotmail.com

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:

Estado Inicial: Cuando las figuras

Los puntos importantes en la Introduccin


son:
1. Introduccin al contexto donde se va a
realizar la propuesta
2. Determinar la situacin problemtica
3. Definir el problema y los factores y
aspectos
ms
importantes
que
intervienen en el problema
4. Justificar por qu es importante resolver
ese problema
5. Explicar lo qu se ha hecho para
resolver ese problema
6. Describir el modelo de solucin del
problema
7. Establecer los posibles logros en la
solucin del problema
8. Describir la organizacin del documento

se encuentra en su posicin inicial, es


decir ninguna figura ha sido movida.

Estado Meta: Es cuando las figuras


han sido movidas, formando la silueta
deseada.

Tangram: Juego que consiste en


formar figuras geomtricas a travs de
un determinado numero de piezas

Bsqueda

heurstica:

Tcnica

empleada en los sistemas de inteligencia


artificial.
I.
En esta
describa
present
como el

No olviden incluir en donde corresponda la


motivacin, la justificacin, el alcance de la
investigacin,
los
recursos
y
las
suposiciones.

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

Universidad San Martn de Porres


Inteligencia Artificial y Sistemas Expertos
I.1.

El Problema

El Tangram (juego de los siete elementos o


tabla de la sabidura) es un juego chino muy
antiguo, consistente en formar siluetas de
figuras con la totalidad de una serie de
piezas dadas.

Mostrar la utilidad de este


curso con fines de nuestra carrera, y
en que mbitos se puede laborar.

Las 7 piezas llamadas Tans, que juntas


forman un cuadrado, son las siguientes:

5 tringulos de diferentes tamaos.


1 cuadrado.
1 paralelogramo romboide.

En cuanto al nmero de figuras que pueden


realizarse con el Tangram, la mayor parte de
los libros europeos copiaron las figuras
chinas originales que eran tan slo unos
cientos. Para 1900 se haban inventado
nuevas figuras y formas geomtricas y se
tenan aproximadamente 900. Actualmente
se pueden realizar con el Tangram alrededor
de 16.000 figuras distintas.
I.2.

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

El objetivo principal de este trabajo es


elaborar un juego llamado TAMGRAN,
en lenguaje de programacin LISP.

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.

Universidad San Martn de Porres


Inteligencia Artificial y Sistemas Expertos

Qu quiere representar cada lnea de


cdigo utilizado en la implementacin de
dicho juego?

Cules son los aspectos a tomar en


cuanta
al
resolver
un
proyecto
relacionado con Inteligencia Artificial y
Robtica?

Por qu es importante el adecuado la


adecuada elaboracin de algoritmos en
este curso?

Cuales son las principales dificultades


encontradas en la elaboracin de un
proyecto de este tipo y cuales son las
principales alternativas de solucin?

Cules son las diferencias


entre un sistema de informacin y un
agente inteligente y cuales son los
aspectos a tomar en cuenta en la
elaboracin de cada uno de ellos, cuales
son las ventajas y desventajas que
estos presentan y en que mbitos son
necesaria su implementacin; se puede
hacer una combinacin de ambos y si es
as en que casos se da?

II.

DESARROLLO TERICO

Dentro de este marco, consideramos que


esta actividad del tangram, incide en la
formacin de estructuras que hace posible
potenciar el desarrollo del pensamiento,
conjugando la accin y la reflexin en el
juego mismo.
Plantearemos de la siguiente manera:
Definimos el nmero de piezas.
Definimos las imgenes para trabajar
en el Tangram.
Mediante LIPS buscamos la manera
de resolver la imagen deseada.
Buscamos en diferentes fuentes de
informacin soluciones sobre el Tangram.
Mostramos solucin de la bsqueda.
1.3.

Es as como este juego ofrece la posibilidad


de alcanzar otros objetivos de la educacin,
que no se reducen a lo cognitivo y que son
extensivos al campo de lo afectivo y del
lenguaje, favorece la expresin del nio, el
respeto por el punto de vista del otro que
juega, establecer relaciones con sus
compaeros armoniosas y diferentes a la
agresin, aprender a vivir en la diferencia,
aprender a ganar y perder, expresar y
negociar acuerdos.

Preguntas de la investigacin

Qu tipos de algoritmo analizaremos y


cual ser el elegido y por que?

Hoy en da el tangram no se usa como un


entretenimiento, se utiliza tambin en
psicologa
y
diseo,
filosofa
y
particularmente en la pedagoga.
3

Universidad San Martn de Porres


Inteligencia Artificial y Sistemas Expertos
En el rea de enseanza de las
matemticas el tangram se usa para
introducir conceptos de geometra plana y
para promover el desarrollo de capacidades
psicomotrices e intelectuales de los nios
pues permite ligar de manera ldica la
manipulacin concreta de materiales cob la
formacin de ideas abstractas.
III.

DESARROLLO EXPERIMENTAL.

3.1.

Planteamiento de la solucin.

Ubicacin de las piezas

4
7a

2b

1a

5b

Rotacin de la figura

(setq estado-inicial '(0 0 0 0 0 0 0))


; se toma como posiciones iniciales a
las del cuadrado
Palelogramo romboide
Triangulo Pequeo A

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

MODELOS PARA RESOLVER


Los valores que hemos definido para
cada rotacin, van desde el 0 = 0 4 =
+/- 180
2 = +/- 90
3 = +/- 135
2 = +/- 90

1 = +/- 45

3 = +/- 135

4 = +/- 180

4 = +/- 180

0 = 0

Giro 0 = 0

0 = 0

Giro 135 =
3

Giro 180 =
4

Universidad San Martn de Porres


Inteligencia Artificial y Sistemas Expertos
3.2.

Desarrollo experimental.

En el caso de sistemas expertos los


mecanismos usados para la identificacin de
predicados, discretizacin de valores
numricos en rangos, apoye esta seccin
con cuadros y grficos.
En el caso de sistemas expertos los
mecanismos usados para la identificacin de
predicados, discretizacin de valores
numricos en rangos, apoye esta seccin
con cuadros y grficos.

HEMOS
UTILIZADO
HEURISTICO
3.3.

EL

METODO

Implementacin.

Lenguaje de programacin, pseudocdigo, representacin de estados como


estructuras de datos, implementacin de
las colas, pseudo-cdigo de cada
heurstica usada, mecanismos para el
control de estados repetidos.

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

Universidad San Martn de Porres


Inteligencia Artificial y Sistemas Expertos
;===================================
;"procesando" es la encargada de
procesar
;los operadores asignados
;===================================
(defun procesando (z)
(aref operadores z))
;===================================
;la funcion "comprueba" verfica si
es que se puede
;seguir por el camino indicado o no
;===================================
(defun comprueba(efe ea)
(setq res (mapcar #'- efe ea))
(setq res1 (mapcar #'negativo res))
(cond ((member T res1) NIL)
(T T)))
;===================================
;Esta obtiene el resultado entre
estado ei y ef
;===================================
(defun tangram(ei ef)
(setf ea ei)
(setf ef1 (mapcar #'+ ef '( 0 0 0 0
0 0 1)))
;===================================
;se comprueba la no rebundar y
seguir el camino
;correcto
;===================================
(defun negativo(z)
(< z 0))
;===================================
;Luego que se comprueba, se
procedera a procesar el
;nodo con el operador respectivo
;===================================
(defun procesando-estado(ei op)
(mapcar #'+ ei (procesando op)))
;===================================
;busca el siguiente estado y avanza
;===================================
(defun siguiente-estado(ei ef op)
(setf ea ei)
(setf eant ei)
(do ((cnt 1))
((not (comprueba ef ea)) eant)
(setf eant ea)
(setf ea (procesando-estado ea
op))
(if (comprueba ef ea) (print
eant) () ))
)
;===================================
;Devuelve una lista con los
resultados de la
;aplicacion adiciona al ef.
;===================================
(do ((cnt 0 (+ cnt 1)))
((equal cnt 7) ())
(setf ea (siguiente-estado ea
ef1 cnt)))
)

;===================================
;///////////////////////////////////
;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 ()

Universidad San Martn de Porres


Inteligencia Artificial y Sistemas Expertos
(let ((abiertos (list (crea-nodo
:estado *estado-inicial*
:camino nil)))
(cerrados nil)

;asignamos operadores al estado


inicial y final
;===================================
(setq EI '(0 0 0 0 0 0 0))
(setq EF '(1 4 3 2 4 5 2))

(actual nil)
(nuevos-sucesores nil))

;===================================
;De esta forma se invoca a la
funcin
;que genera la bsqueda
;===================================
(tangram ei ef)

(loop until (null abiertos) do


(setf actual (first abiertos))
(setf abiertos (rest abiertos))
(setf cerrados (cons actual
cerrados))
(cond ((es-estado-final (estado
actual))
(return actual))
(t (setf nuevos-sucesores
(nuevos-sucesores actual abiertos
cerrados))
(setf abiertos
(append abiertos nuevossucesores))))))
)
;===================================
;busca y retorna al estado actual si
;es q no hay nodos abiertos y
cerrados
;===================================
(defun busqueda-profundidad ()
(let ((abiertos (list (crea-nodo
:estado *estado-inicial*
:camino nil)))
(cerrados nil)
(actual nil)
(nuevos-sucesores nil))

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.

(loop until (null abiertos) do


(setf actual (first abiertos))
(setf abiertos (rest abiertos))
(setf cerrados (cons actual
cerrados))
(cond ((es-estado-final (estado
actual))
(return actual))

El resultado nos muestra los giros que


han dado las diferentes figuras, y la
posicin final en la que quedan:

(t (setf nuevos-sucesores
(nuevos-sucesores actual abiertos
cerrados))
(setf abiertos
(append nuevos-sucesores
abiertos))))))
)

3.4.

Anlisis de Resultados.

Hemos podido observar que el estado inicial


EI (0 0 0 0 0 0 0) y el nuevo estado final

;===================================

Universidad San Martn de Porres


Inteligencia Artificial y Sistemas Expertos

establecido por el grupo EF (1 3 2 1 4 2 3) al


compilar el cdigo se comprob que cumple
con el objetivo planteado (EF), donde nos
muestra los diferentes giros que cada figura
ha dado.

CL-USER 1 > (TANGRAM EI EF)

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

Considere los siguientes puntos no son


conclusiones:
1. Podemos llegar a representar figuras
tales como: personas, animales, objetos.
2. El trabajo nos ayuda a entender como es
que trabaja un agente y que
aplicaciones practicas le podemos dar
en el campo de inteligencia artificial.

4.2.

Recomendaciones.

Las mejor manera de resolverlo es


implementando un medio de bsqueda por
profundidad y anchura por el grado
complejidad que esto conlleva.
VI.

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

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