Click here to load reader

Agente Inteligente: Viajero Perdido

  • Upload
    utpl

  • View
    1.638

  • Download
    4

Embed Size (px)

Citation preview

  • 1. Luis Feijoo
    Santiago Medina
    AGENTE INTELIGENTE: VIAJERO PERDIDO

2. ABSTRACT
El presente trabajo describe como resolver un juego con algoritmos de inteligencia artificial.
El viajero perdido el cual consiste en un carro en el que un viajero trata de conducir para encontrar el destino al cual desea llegar, para ello debe ir pasando por unas calles las cuales tienen obstculos y este deber ir sortendolos, y adems deber ir desde el inicio hasta el final siguiendo la ruta ms corta.
3. INTRODUCCIN
En los ltimos aos la inteligencia artificial a evolucionado en gran medida hasta el punto que se han construido maquinas inteligentes que inclusive tienen la capacidad de aprender.
Abarca un sinnmero de campos y conceptos entre los cuales se encuentra el concepto de agente, se dice que estos constituyen el prximo avance ms significativo en el desarrollo de sistemas y pueden ser considerados como la nueva revolucin en el software.
4. DESCRIPCIN DEL PROBLEMA
Meta: El viajero deber llegar a su destino final en un corto tiempo, de la manera ms rpida, escogiendo las calles ms cortas o ruta ms corta y adems deber evitar chocar con los obstculos que se encuentre en su camino.
Inicio: El viajero tendr un punto de partida cualquiera, tendr varias rutas para llegar a su destino, y este deber tener la capacidad para llegar al destino sorteando los obstculos colocados en su trayecto.
Obstculos: Los obstculos sern casas que las cuales estarn a lo largo de todo el trayecto.
5. INGENIERIA DEL AGENTE
Tipo de agente
Basado en Objetivos
Sensores
Sensor para detectar obstculos.
Sensor de posicin final o meta.
Sensor de posicin inicial.
Entorno
Calles.- Por donde se va a desplazar el agente
Obstculos.- Con lo que debe evitar chocar el agente.
6. Caractersticas entorno
Episdico
Ambiente dinmico
Es accesible
Ambiente continuo
Es no determinista
7. Actuadores-Acciones
8. Metas
Es el objetivo final del agente, al llegar a la meta el agente se detendr y dar por concluida su misin.
9. Algoritmo y tipo de Agente para esteproblema
Hemos determinado que la mejor opcin para resolver este problema es implementar un agente de bsqueda online.
La bsqueda online intercambia computacin con accin, y difiere en esto con las bsquedas offline, las cuales determinan una solucin antes de ejecutarla.
Una bsqueda online es necesaria para entornos dinmicos y semi-dinmicos, es por eso que son utilizados comnmente en problemas de exploracin.
10. Pasos para resolver nuestro problema:
Primeramente ubicamos la posicin de inicio o partida para ello usamos la clase que la hemos denominado Nodo y enviamos como parmetros: la partida y la casilla en cual se encuentra dicha partida.
Nodo("partida.", this.casilla_partida.Name)
En esta clase utilizamos un procedimiento llamado calcular ubicacin en el cual obtenemos la ubicacin de la partida. Para ello hemos dividido a nuestro cuadro en niveles y pasillos, los niveles son tomados en forma horizontal empezando desde cero por la parte superior, y los pasillos son tomados en forma vertical empezando desde cero por la izquierda
11. 12. Ahora que ya sabemos la ubicacin de la partida ubicamos los vecinos de esta partida. Con vecinos nos referimos a los nodos que lo rodean. Para hacer esta ubicacin enviamos como parmetro el nivel y pasillo de la partida al procediendo que lo hemos denominado Definir Vecinos. En este procedimiento, hacemos una comparacin:
si nivel = 0
no vecino hacia arriba,
si nivel = 9
no vecino hacia abajo,
si pasillo = 0
no vecino izquierda
si el pasillo = 9
no vecino derecha
13. Siguiendo los mismos pasos del 1 al 3 calculamos la ubicacin de la llegada, as mismo calculamos los vecinos de la casilla llegada.
A continuacin calculamos la heurstica y enviamos como parmetro el nodo partida ya definido su ubicacin y vecinos.
CalcularHeuristica(this.miPartida)
14. En esta heurstica calculamos la distancia que existe desde la partida, y desde cada vecino donde no existe un obstculo, para calcular la heurstica utilizamos el nivel y el pasillo en el que se encuentra cada nodo. Con la siguiente formula calculamos la heurstica:
a= nivel_nodo - nivel_llegada
b= pasillo_nodo - pasillo_llegada
h(n): a2 + b2
Math.Sqrt(Math.Pow(a, 2) + Math.Pow(b, 2))
Este algoritmo nos dice que antes de un agente poder realizar una accin debe calcular la heurstica de los nodos sucesores y as luego hacer una comparacin de que heurstica es la mejor y tomar esa para su prxima accin.
15. Creamos dos variables de tipo array una para almacenar los nodos que expandiremos del rbol, y otro para almacenar la ruta que nos llevara a la llegada.
Luego Hemos creado un procedimiento llamado BLO(Bsqueda Local Online), el cual a su vez hace un llamado a la funcin Bsqueda Local Online 1(BLO1), esta funcin BLO1 lo que nos hace es:
Verificar si la casilla en donde nos encontramos es la llegada
Llamar a la funcin expandir nodos enviando como parmetro el nodo en el cual nos encontramos actualmente.
En la funcin expandir nodo verificamos cuantos nodos hojas puede tener un nodo, haciendo una comparacin determinamos si un sucesor es un camino o es un obstculo. En caso de ser un obstculo pasamos, en caso de ser un camino hacemos el procedimiento del 1 al 3 que es de calcular su ubicacin, definir sus vecinos y calcular la heurstica.
16. 17. Una vez que definimos cada sucesor de un nodo lo ubicamos dentro en un array llamado rbol, calculando el costo desde el padre al nodo hijo en este caso desde n1 hasta s1 o desde n1 hasta s2, adems calculamos la heurstica de cada nodo hijo o sucesor.
Ya tenemos en nuestro rbol el nodo padre y sus sucesores, con sus respectivas heursticas, a continuacin creamos un array auxiliar para poder ordenar nuestro rbol, ordenamos los sucesores de un nodo tomando en cuenta la funcin heurstica en nodo con menor funcin heurstica estar primero, esto con la finalidad de escoger como primera opcin el nodo con funcin heurstica ms corta.
18. Adems debemos tomar en cuenta que no siempre un nodo con mejor funcin heurstica ser el elegido, se debe hacer todo el proceso nuevamente con ese nodo con mejor funcin heurstica para determinar si los sucesores de este son obstculos o caminos y determinar sus funciones heursticas respectivas. As es el proceso que se hace nodo a nodo hasta llegar al objetivo final.
Una vez que hemos llegado a la meta el nodo llegada tendr una bandera llamada llegada, el cual nos indicara que hemos llegado al final.
Adems para poder almacenar las rutas que sigue el agente las almacenamos en un array llamado ruta, para luego pasar esta ruta a otro array llamado mi ruta y poder presentarla en pantalla.
19. 20. Ontologa que permitir Aprender al Agente Aprenderagente
21. Algunas tripletas que obtuvimos
22. 23. 24. Validando la ontologa en la pgina http://www.w3.org/RDF/Validator/ARPServlet obtuvimos la siguiente tabla de tripletas