Sie sind auf Seite 1von 9

UNIVERSIDAD TÉCNICA DE AMBATO

FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL


PERÍODO ACADÉMICO: MARZO/2017 – AGOSTO/2017

INFORME DE INVESTIGACIÓN

Carrera: Ingeniería en Sistemas


Área Académica: Desarrollo de Software
Línea de Investigación: Software
Nivel, Paralelo Octavo A
Autor: Sandoval Unapucha Marcelo Daniel
Yaguargos Castro Santiago Damián
Módulo y Docente: Optativa 3, Ing. Rubén Nogales M. Sc.

DESARROLLO

1. Título:

Desarrollo de un Sistema con el Algoritmo de Búsqueda Informada “A*” para el Juego

8 Puzzle, en leguaje de programación C++

2. Objetivos

Objetivo General:

 Desarrollar un Sistema con el Algoritmo de Búsqueda Informada “A*” para el Juego

8 Puzzle, en leguaje de programación C++

Objetivos Específicos:

- Conocer conceptos referentes al algoritmo de Búsqueda Informada A* en el campo de

la IA para ser aplicado en Teoría de Juegos.

- Investigar los fundamentos teóricos y prácticos de las Estructuras de Datos en Leguaje

C++.

- Programar funciones y métodos estructuradamente que permita minimizar el uso de

recursos en memoria.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
PERÍODO ACADÉMICO: MARZO/2017 – AGOSTO/2017

3. Resumen

El presente documento contiene información detallada del problema planteado en la

Teoría de Juegos con el proceso pertinente para estructurar el problema y la necesidad de

programar determinados algoritmos para llegar a una solución óptima, se detallan conceptos

teóricos de las Búsquedas Informadas en el campo de la Inteligencia Artificial como son:

Búsqueda Primero el Mejor, Búsqueda A* y Búsqueda Local; junto a su aplicabilidad en el

Juego 8 Puzzle. Es importante desarrollar y entender los métodos, funciones y estructuras de

datos utilizados en el algoritmo con su respectiva explicación del funcionamiento en los tipos

de Búsquedas. Finalmente, el código utilizado en el leguaje C++, mostrará el proceso que

realiza el algoritmo para el recorrido de la estructura de datos.

4. Palabras clave:

Teoría de Juegos, Búsquedas Informadas, A*, 8 Puzzle.

5. Introducción

“La Teoría de Juegos estudia de manera formal y abstracta las decisiones óptimas que deben

tomar diversos adversarios en conflicto, pudiendo definirse como el estudio de modelos

matemáticos que describen el conflicto y la cooperación entre entes inteligentes que toman

decisiones”

(Fernandez Rodriguez, 2005)

En el mundo actual de la era tecnológica, la teoría de Juegos ha ido aumentando su

importancia debido a su utilización en el campo empresarial, negocios y la economía,


UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
PERÍODO ACADÉMICO: MARZO/2017 – AGOSTO/2017

permitiendo estudiar las soluciones pertinentes en la cual se plantea una función objetivo y

esta a su vez debe ser maximizada, pero también minimizando el consumo de recursos.

La Teoría de juegos pretende que el agente inteligente se encargue de tomar la

decisión, en la cual entra el campo de la inteligencia artificial ayudando a dotar de

conocimiento a este agente, tomando un modelo de referencia.

Los conflictos que se forman a nivel mundial en cualquier campo tienen diferentes

grados de dificultad de entendimiento para proceder a su resolución, debido a varios factores

alrededor que alteran el camino hacia la solución.

Muchos investigadores pretenden implementar algoritmos óptimos para que la

Computación Evolutiva tome fuerza en la Teoría de Juegos.

Para la Computación Evolutiva y la Inteligencia Artificial, esta teoría permite crear

algoritmos específicos que permitan ayudar al agente a comprender el problema, como son

algoritmos de búsqueda, que se centran en figurar de forma lógica, grafos o arboles donde se

guardan la información inicial y todos los estados posibles al tomar una decisión. Estas

técnicas de búsqueda consisten en una serie de esquemas de representación del conocimiento,

que mediante diversos algoritmos nos permite resolver ciertos problemas desde el punto de

vista de la I.A. (Quimiz, 2014)

En la implementación de este tipo de algoritmos para Búsqueda Informadas, existe

técnicas conocidas como: Búsqueda Primero el Mejor (voraz), Búsqueda A* y Búsqueda

local, esta última conteniendo algoritmos de optimización: Ascenso de Colina, Reinicio

Aleatorio, Temple Simulado y Algoritmos Genéticos, que permiten al agente inteligente

recorrer espacios de un grafo o un árbol según la teoría de cada técnica. Cada técnica

considera elementos importantes como son: estados, acciones, función de evaluación,

heurística y coste del camino.


UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
PERÍODO ACADÉMICO: MARZO/2017 – AGOSTO/2017

Fig. 1. Esquema de un árbol de estados

Los algoritmos contienen estructuras de datos que permiten visualizar el recorrido que

el agente inteligente ejecutara para llegar a determinada solución una vez escogida la técnica

de Búsqueda.

Para el Juego de Tablero 8 Puzzle se propone permitir al agente inteligente encontrar

una solución a través de una heurística que ayuda en el proceso de búsqueda, que, a pesar de

no encontrar siempre resultados óptimos, esta búsqueda si consigue resultados de buena

calidad en un tiempo media razonable.

Fig. 2. Representación gráfica del Tablero 8 Puzzle


UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
PERÍODO ACADÉMICO: MARZO/2017 – AGOSTO/2017

Muchos de los investigadores en la computación evolutiva han incorporado como

rama de la Teoría de Juegos, la solución de problemas a través de entes dotados de

Inteligencia Artificial.

6. Materiales y Metodología

Para el desarrollo de un sistema que permita la implementación del algoritmo de

Búsqueda Informada A*, requiere:

 Conocimiento del lenguaje de programación C++

 Entorno de programación DevC++

 Conocimiento Teórico del Funcionamiento del Algoritmo

Para la solución al problema presentado, el desarrollador interactúa con el lenguaje de

programación C++, el cual permite utilizar métodos o funciones y estructuras de datos,

específicamente árboles y grafos lógicos, como también pilas y colas para la visualización de

recorridos, los cuales facilitan la programación de algoritmos de búsqueda.

Formulación del Problema

Juego de 8 Puzzle consiste en un tablero cuadrado (3x3) en el que existen 8 fichas cuadradas

numeradas de 1 a 8 y un espacio en el tablero vacío para una ficha con el cuál las fichas

adyacentes pueden moverse a esta adecuadamente para llegar a un objetivo final.

El problema mencionado para la solución del Juego permite al desarrollador implementar un

algoritmo de Búsqueda Informada el cual permita llegar al objetivo sin considerar la

optimización de búsqueda sino el camino con menor coste.

Estado Inicial:
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
PERÍODO ACADÉMICO: MARZO/2017 – AGOSTO/2017

8 fichas con números entre 1 y 8 están ubicadas aleatoriamente en un Tablero

cuadrado de 3x3 con un espacio vacío para el movimiento de fichas.

Estados:

Cada una de las posibles configuraciones del tablero

Operadores:

- Mover Arriba

- Mover Abajo

- Mover Izquierda

- Mover Derecha

- Movimientos al Espacio Vacío de Ficha

Reglas:

Una ficha adyacente al espacio vacío puede deslizarse hacia él. El juego consiste en

transformar una posición inicial en la posición final mediante el deslizamiento de las fichas.

En particular, consideramos el estado inicial y final siguientes:

Estado Final:

Las fichas del Tablero ordenadas desde el primero cuadrante superior izquierdo con la

ficha que contiene el número 1 y las fichas siguientes ordenadas hacia la derecha, dejando el

cuadrante ubicado en la esquina inferior derecha como espacio vacío.

Función de Evaluación: f(n) = g(n) + h(n):


UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
PERÍODO ACADÉMICO: MARZO/2017 – AGOSTO/2017

La función de evaluación es el coste estimado del camino para llegar al objetivo a

través de un nodo (n) ubicado en el árbol, que es el resultado de la suma de:

- g(n): coste para llegar al nodo n

- h(n): coste estimado para llegar a un nodo solución desde el nodo n.

El juego de 8 Puzzle en este caso utilizará la heurística con distacia Manhattan que

significa el número de espacios para llegar a la posición del estado objetivo de cada ficha.

Fig. 4. Ejemplo del Inicio de Árbol de estados del 8 Puzzle desde un Estado Inicial

Desarrollo de la Aplicación:

La aplicación plasma la teoría analizada en un trabajo práctico estructurado de

la siguiente manera:

Al iniciar la aplicación, se mostrará en pantalla una matriz que representa el

Tablero 8 Puzzle con un llenado aleatorio, al cual el algoritmo A* es ejecutado y

muestra el proceso que lleva para llegar al Estado Final con la Técnica de Búsqueda

Manhattan.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
PERÍODO ACADÉMICO: MARZO/2017 – AGOSTO/2017

Fig. 5 Interfaz de la Aplicación

7. Resultados y Discusión

Se implementó un sistema que representa el algoritmo de Búsquedas Informada A*

que servirá para encontrar la solución al Juego de Tablero 8 Puzzle a través de la heurística

con Búsqueda Manhattan mediante la representación de un árbol de estados en el cual el

estado inicial va formado por un estado aleatorio de fichas con números entre 1 y 8 dentro de

un tablero de 3x3, con el objetivo de llegar a un estado final el cual los números contenidos

en las fichas son ordenados en un orden adecuado como se representó en la Fig.2.

El mayor problema para la ejecución del Algoritmo A* es el espacio de memoria. Dado

que tiene que almacenar todos los posibles siguientes nodos de cada estado, la cantidad de

memoria que requerirá será exponencial con respecto al tamaño del problema.

8. Conclusiones

Se concluye que:
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
PERÍODO ACADÉMICO: MARZO/2017 – AGOSTO/2017

- Se conoce los conceptos necesarios referentes a las técnicas de búsqueda Manhattan

para el algoritmo de Búsqueda Informada A* en el campo de la IA, para ser aplicado

en Teoría de Juegos, teniendo en cuenta que es una técnica utilizada entre un conjunto

de Algoritmos de Búsqueda.

- Se investigaron los fundamentos de Estructuras de Datos en Leguaje C++ tanto en

teoría de árboles como en teoría de grafos para formar lógicamente el proceso para la

solución del problema.

- Se programaron varias funciones y métodos que permiten plasmar los diferentes

algoritmos y conocer la mejor técnica que permita minimizar el uso de recursos en

memoria al momento de su ejecución

9. Referencias bibliográficas

Alguilar, J. (s.f.). Grafos: Búsqueda y ordenamiento topológico. Obtenido de

http://docencia.udea.edu.co/regionalizacion/teoriaderedes/informaci%F3n/C3_Profundidad.pdf

Fernandez Rodriguez, F. (2005). Teoría de Juegos: análisis matemático de conflictos. Las Palmas.

Quimiz, C. (2014). Algoritmos de Búsqueda y sus tipos.

Das könnte Ihnen auch gefallen