AGENTE INTELIGENTE: VIAJERO PERDIDO
                                       Santiago Medina-Luis Feijoo
                   ...
4.1.2. Sensores                                  Ambiente dinámico ya que cada vez
                                      ...
principal es llegar al destino final                pasillos, los niveles son tomados en
     siempre y cuando lo haga sig...
n:0                                        a) Verificar si la casilla en donde
                                           ...
nuestro árbol, ordenamos los
           sucesores de un nodo tomando           6.1. Verdino
           en cuenta la funció...
de control interno que procesa los datos en
tiempo real. “Verdino” está programado
para     circular   por    carreteras  ...
Dobreta (165, 299)
Eforie (562, 293)
Fagaras(305, 449)
Giurgiu  (375, 270)
Hirsova (534, 350)
Iasi (473, 506)
Lugoj...
Agente Inteligente Paper
Upcoming SlideShare
Loading in …5
×

Agente Inteligente Paper

2,398 views

Published on

Paper inteligencia artificial
Luis Feijoo
Santiago Medina

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,398
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
103
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Agente Inteligente Paper

  1. 1. AGENTE INTELIGENTE: VIAJERO PERDIDO Santiago Medina-Luis Feijoo Loja-08 de Febrero del 2010 Teléfono: 2571753 Av. Paltas y Estados Unidos. Mail: sfmedina@utpl.edu.ec, luisfe101@hotmail.com 1. ABSTRACT Inicio: El viajero tendrá un punto de partida cualquiera, tendrá varias rutas para llegar a El presente trabajo describe como resolver un su destino, y este deberá tener la juego con algoritmos de inteligencia artificial. capacidad para llegar al destino sorteando El viajero perdido el cual consiste en un carro los obstáculos colocados en su trayecto. El en el que un viajero trata de conducir para camino escogido debe ser el más corto encontrar el destino al cual desea llegar, para para minimizar tiempo. ello debe ir pasando por unas calles las cuales tienen obstáculos y este deberá ir Obstáculos:Los obstáculos serán casas sorteándolos, y además deberá ir desde el que las cuales estarán a lo largo de todo el inicio hasta el final siguiendo la ruta más corta. trayecto. Estos obstáculos permanecen Aquí se debe analizar que puede existir un estáticos, no varían cuando el viajero se caso en el que el viajero no encuentre una ruta desplaza. en este caso no existe solución. 4. INGENIERIA DEL AGENTE 2. INTRODUCCIÓN 4.1. DESCRIPCIÓN DEL AGENTE En los últimos años la inteligencia artificial a Una vez que hemos dado una breve evolucionado en gran medida hasta el punto descripción de lo que se trata el que se han construido maquinas inteligentes problema de este juego pasaremos a que inclusive tienen la capacidad de aprender. analizar la ingeniería del agente. Abarca un sinnúmero de campos y conceptos entre los cuales se encuentra el concepto de 4.1.1. Tipo de agente agente, se dice que estos constituyen el próximo avance más significativo en el Basado en Objetivos desarrollo de sistemas y pueden ser considerados como la nueva revolución en el El objetivo principal de este agente es software. La característica quizá más llegar a su destino final pero puede importante de un agente inteligente es la existir el caso en el que no exista una autonomía, quizá la mayoría de personas se ruta para llegar a su destino final, ya preguntarán si maquinas con inteligencia que el camino está lleno de obstáculos artificial llegarán a superar la mente humana, y no tiene salida. quizá estén dotadas de mucha inteligencia pero pensamos que será muy difícil superar la El agente al tener un camino el cual inteligencia de los humanos tiene un largo recorrido debería establecer puntos de control, avanzar 3. DESCRIPCIÓN DEL PROBLEMA por cada calle será un punto de control, por ejemplo avanzar hasta la siguiente Meta: El viajero deberá llegar a su destino calle el punto de control es verificar que final en un corto tiempo, de la manera más avanzo hasta esa calle. rápida, escogiendo las calles más cortas o ruta más corta y además deberá evitar chocar con los obstáculos que se encuentre en su camino.
  2. 2. 4.1.2. Sensores  Ambiente dinámico ya que cada vez se puede jugar cambiando de Los sensores son los que nos ayudaran posición los obstáculos o la meta, a interactuar o responder con acciones cada vez que se ejecute el juego correctas ante los eventos o tendrá baja probabilidad de percepciones provocados por el medio parecerse en la ubicación de dichos en el cual se desenvuelve el agente, obstáculos o peor aun de la ruta a proporcionarán información de cuál seguir, esto obligara al agente a sería la posible ruta a seguir. A intentar prever los movimientos de continuación describimos estos dichos elementos. sensores:  Es accesible porque los sensores no tienen ningún tipo de restricción a la  Sensor para detectar obstáculos: hora de determinar el estado del Percibirá si alrededor del agente se ambiente que rodea al agente, encuentra un obstáculo o si el excepto los inherentes a la camino está libre, y así nos dará capacidad del sensor para percibir información si está en peligro de según qué cosas, como por ejemplo chocar con algún obstáculo. la distancia máxima del sensor de  Sensor de posición final o meta: Este obstáculos. sensor será muy útil ya que nos dirá  Ambiente continuo ya que cada vez que el agente llego al punto final y ya que el agente avance una calle no debe seguir recorriendo mas tendrá altas probabilidades de recibir distancia, además dará la ubicación percepciones. exacta del punto final, y esto  Es no determinista ya que sobre el ayudara a guiar al viajero por las ambiente intervienen otros calles. elementos ajenos a nuestro agente  Sensor de posición inicial.- No dará por lo que sus acciones no la dirección desde donde salió el determinan el estado del mismo. agente para en caso de retroceder sepa el punto de inicio. 4.1.4. Actuadores-Acciones 4.1.3. Entorno Los actuadores son las acciones que debe llevar a cabo el agente al recibir Ya hemos determinado el tipo de cierta percepción por parte de los agente, los sensores que tendrá, ahora sensores. Aquí describimos las vamos a dar características del entorno acciones a llevar a cabo, las cuales son en el cual se desenvolverá. motrices. Calles.- Por donde se va a desplazar el Actuadores Acción agente Dirección Girar Norte Obstáculos.- Con lo que debe evitar Girar Sur chocar el agente. Girar Este Girar Oeste Características entorno Adelante Freno Parar  Episódico ya que cada vez que el Freno Retroceder agente avanza una calle debe volver Motor a rastrear para determinar si existen obstáculos a su alrededor y no 4.1.5. Metas importa lo que haya hecho Es el objetivo final del agente, al llegar a anteriormente. la meta el agente se detendrá y dará por concluida su misión. La meta
  3. 3. principal es llegar al destino final pasillos, los niveles son tomados en siempre y cuando lo haga siguiendo la forma horizontal empezando desde cero ruta más corta sin chocar con los por la parte superior, y los pasillos son obstáculos que están puestos en su tomados en forma vertical empezando camino desde cero por la izquierda niveles p a s i l l o s Por ejemplo en la siguiente casilla estamos ubicados en el nivel 4 pasillo 0 Cuadro FigFigura1.- Plano inicial del ambiente en el cual actúa el agente. 5. Algoritmo y tipo de Agente para este problema 4,0 Hemos determinado que la mejor opción para resolver este problema es implementar un agente de búsqueda online. La búsqueda online intercambia Entonces con la función dicha computación con acción, y difiere en esto anteriormente calculamos en qué nivel y con las búsquedas offline, las cuales pasillo se encuentra nuestro inicio determinan una solución antes de enviando como parámetro el número de ejecutarla. casilla en donde se encuentra la partida. Una búsqueda online es necesaria para 3. Ahora que ya sabemos la ubicación de entornos dinámicos y semi-dinámicos, es la partida ubicamos los vecinos de esta por eso que son utilizados comúnmente en partida. Con vecinos nos referimos a los problemas de exploración. nodos que lo rodean. Para hacer esta ubicación enviamos como parámetro el Para resolver nuestro problema seguimos nivel y pasillo de la partida al los siguientes pasos: procediendo que lo hemos denominado 1. Primeramente ubicamos la posición de ‘Definir Vecinos’. En este procedimiento, inicio o partida para ello usamos la hacemos una comparación: clase que la hemos denominado Nodo y si nivel = 0 enviamos como parámetros: la partida y no vecino hacia arriba, la casilla en cual se encuentra dicha si nivel = 9 partida no vecino hacia abajo, Nodo("partida", this.casilla_partida.Name) si pasillo = 0 2. En esta clase utilizamos un no vecino izquierda procedimiento llamado ‘calcular si el pasillo = 9 ubicación’ en el cual obtenemos la no vecino derecha ubicación de la partida. Para ello hemos dividido a nuestro cuadro en niveles y
  4. 4. n:0 a) Verificar si la casilla en donde nos encontramos es la llegada b) Llamar a la función expandir p:0 p:9 nodos enviando como parámetro el nodo en el cual nos encontramos actualmente. c) En la función expandir nodo n:9 verificamos cuantos nodos hojas puede tener un nodo, haciendo 4. Siguiendo los mismos pasos del 1 al 3 una comparación determinamos calculamos la ubicación de la llegada, si un sucesor es un camino o es así mismo calculamos los vecinos de la un obstáculo. En caso de ser un casilla llegada. obstáculo pasamos, en caso de 5. A continuación calculamos la heurística ser un camino hacemos el y enviamos como parámetro el nodo procedimiento del 1 al 3 que es partida ya definido su ubicación y de calcular su ubicación, definir vecinos. sus vecinos y calcular la CalcularHeuristica(this.miPartida) heurística. En esta heurística calculamos la distancia que existe desde la partida, y desde cada vecino donde no existe un obstáculo, para calcular la heurística utilizamos el nivel y el pasillo en el que n1: S2 se encuentra cada nodo. Con la (4,0) siguiente formula calculamos la S1 heurística: a= nivel_nodo - nivel_llegada b= pasillo_nodo - pasillo_llegada h(n): a2 + b2 Llegada Math.Sqrt(Math.Pow(a, 2) + Math.Pow(b, 2)) Partida Este algoritmo nos dice que antes de un agente poder realizar una acción debe Sucesores de n1 calcular la heuristica de los nodos n1 sucesores y asi luego hacer una comparación de que heuristica es la S1 S2 mejor y tomar esa para su proxima acción. d) Una vez que definimos cada sucesor de un nodo lo ubicamos 6. Creamos dos variables de tipo array dentro en un array llamado árbol, una para almacenar los nodos que calculando el costo desde el expandiremos del árbol, y otro para padre al nodo hijo en este caso almacenar la ruta que nos llevara a la desde n1 hasta s1 o desde n1 llegada. hasta s2, además calculamos la 7. Luego Hemos creado un procedimiento heurística de cada nodo hijo o llamado BLO(Búsqueda Local Online), sucesor. el cual a su vez hace un llamado a la e) Ya tenemos en nuestro árbol el función Búsqueda Local Online nodo padre y sus sucesores, con 1(BLO1), esta función BLO1 lo que nos sus respectivas heurísticas, a hace es: continuación creamos un array auxiliar para poder ordenar
  5. 5. nuestro árbol, ordenamos los sucesores de un nodo tomando 6.1. Verdino en cuenta la función heurística en nodo con menor función Un equipo de ingenieros de la Universidad heurística estará primero, esto de La Laguna (ULL), en Canarias, ha con la finalidad de escoger como diseñado a “Verdino”, un vehículo primera opción el nodo con autoguiado que detecta la carretera función heurística más corta. utilizando una técnica denominada f) Además debemos tomar en ‘Optimización de Colonia de Hormigas’ cuenta que no siempre un nodo (OCH). con mejor función heurística será el elegido, se debe hacer todo el Este método se basa en el comportamiento proceso nuevamente con ese que emplean las hormigas para encontrar nodo con mejor función el camino más corto entre su hormiguero y heurística para determinar si los las fuentes de alimentación. El autor sucesores de este son principal del estudio, Rafael Arnay, del obstáculos o caminos y Departamento de Ingeniería de Sistemas y determinar sus funciones Automática y Arquitectura y Tecnología de heurísticas respectivas. Así es el Computadores de la ULL, explica a SINC proceso que se hace nodo a que los algoritmos de OCH se emplean nodo hasta llegar al objetivo final. para resolver “problemas de optimización g) Una vez que hemos llegado a la combinatoria” y se inspiran directamente en meta el nodo llegada tendrá una el modo en que lo hacen las hormigas. bandera llamada ‘llegada’, el cual nos indicara que hemos llegado En la naturaleza, estos insectos depositan al final. feromonas en sus desplazamientos, h) Además para poder almacenar dejando un rastro oloroso que puede ser las rutas que sigue el agente las seguido por los miembros de la colonia. almacenamos en un array llamado ruta, para luego pasar Las feromonas se evaporan con el tiempo, esta ruta a otro array llamado mi por lo que el camino que recorren las ruta y poder presentarla en hormigas que van y vienen al alimento por pantalla. la distancia más corta es el que queda más reforzado con estas sustancias químicas, y el que acaban seleccionando las otras hormigas. “De un modo similar, la técnica de OCH se basa en una colonia de hormigas artificiales, esto es, unos agentes computacionales que trabajan de manera cooperativa y se comunican mediante rastros de feromonas también artificiales”, indica Arnay. Esta técnica es la que han elegido los 6. TRABAJOS RELACIONADOS DEL ingenieros canarios para que “Verdino” PRESENTE AGENTE detecte correctamente la carretera sin necesidad de ser dirigido por ningún Agentes como el que planteamos en este conductor. El prototipo se parece a los documento han sido realizados pero mucho vehículos utilizados en los campos de golf, más avanzados y con otros objetivos, y a pero lleva incorporada una cámara que su vez aplicando nuevas técnicas lo cual recoge los datos visuales necesarios para los hace mucho más interesantes. aplicar los algoritmos, así como un sistema
  6. 6. de control interno que procesa los datos en tiempo real. “Verdino” está programado para circular por carreteras no estructuradas, es decir, aquellas sin líneas dibujadas en la calzada o con bordes irregulares debido a la invasión de montones de tierra o de vegetación. Actualmente los ingenieros están probando el pequeño coche como medio de transporte interno para unir 25 viviendas y un centro de visitantes en una urbanización bioclimática que el Instituto Tecnológico y de Energías Renovables está construyendo en el sur de Tenerife, y consideran los primeros resultados como “muy prometedores”. (4) 6.2. Búsqueda aplicada al Problema de las 8-reynas Esta búsqueda fue implementada en Matlab, donde se trató que dada una configuración inicial de las reynas, éstas se posicionen de tal forma que no se ataquen directamente o indirectamente entre pares de reynas, como sabemos las reynas se 6.3. Búsqueda aplicada al mapa de atacan en forma vertical, horizontal y Romania (6) diagonal. Se busca las posiciones más optimas y esto se puede observar al Implementamos dos casos, uno para el obtener como h(n), es decir número de par caso en que de todas las ciudades llegan a de reinas atacándose, igual a "0" o cercano bucharest (como el dado en Clase y libro a él como: "1". de Russell) y usando las distancias en línea recta (para las heurísticas) las mismas Los algoritmos usados para determinar el dadas, y otro suponiendo que cada ciudad nº de colisiones de reinas fueron tiene unas ciertas posiciones (X,Y), para recopilados de Algoritmos para el problema calcular las distancias en línea recta, como: de las n-reinas. (5) Arad  (91, 492) Bucarest (400, 327) Craiova  (253, 288)
  7. 7. Dobreta (165, 299) Eforie (562, 293) Fagaras(305, 449) Giurgiu  (375, 270) Hirsova (534, 350) Iasi (473, 506) Lugoj (165, 379) Mehadia (168, 339) Neamt (406, 537) Oradea  (131, 571) Pitesti (320, 368) Rimnicu (233, 410) Sibiu  (207, 457) Timisoara (94, 410) Urziceni (456, 350) Vaslui  (509, 444) Zerind (108, 531) A continuación algunas muestras de pantalla de la interfaz, seleccionando una Bibliografía ciudad, ejecutando el algoritmo y los 1. Norvig, Stuart Russell-Peter. Inteligencia Artificial Un resultados obtenidos: Enfoque Moderno. Madrid : Pearson, 2007. 978-84-205- 4003-0. 2. J.A. Martíın Meseguer, M.A. Zamora Izquierdo, H. Martínez Barberá. Planificación de Trayectorias en un Mapa de Celdillas Difusas. [En línea] [Citado el: 06 de 02 de 2010.] http://ants.dif.um.es/~humberto/papers/2003-waf- 2.pdf. 3. Diaz, Jorge Luis Guevara. Búsqueda Informada y Exploracion II. [En línea] [Citado el: 06 de 02 de 2010.] http://jorge.sistemasyservidores.com/si_2008i/clases/cl ase5iabusquedainformadaii.pdf. 4. Dirección de Tecnología – U.A.T. [En línea] 17 de Septiembre de 2008. [Citado el: 25 de 01 de 2010.] http://www.ditae.uat.edu.mx/index.php/the-news/1- latest-news/401-ingenieros-canarios-disenan-un- vehiculo-autoguiado-que-se-orienta-como-las- hormigas. 5. León, Leissi Castañeda. Inteligencia Artificial.Universidad de Trujillo. [En línea] 2 de Junio de 2008. [Citado el: 23 de 01 de 2010.] 6. —. Busqueda Informada. [En línea] 2 de Junio de 2008. [Citado el: 23 de 01 de 2010.] http://nineil-leissi- cs.blogspot.com/2008/06/laboratorio-2.html.

×