SlideShare una empresa de Scribd logo
1 de 8
Descargar para leer sin conexión
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.
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
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
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
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
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)
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.
Agente Inteligente Paper

Más contenido relacionado

Similar a Agente Inteligente Paper

Agente Inteligente
Agente InteligenteAgente Inteligente
Agente Inteligenteluisfe
 
Agente Inteligente: Viajero Perdido
Agente Inteligente: Viajero PerdidoAgente Inteligente: Viajero Perdido
Agente Inteligente: Viajero PerdidoUTPL
 
Reporte wumpus world agentes inteligentes
Reporte wumpus world agentes inteligentesReporte wumpus world agentes inteligentes
Reporte wumpus world agentes inteligentesJoaquin Lozano
 
Inteligencia Informe
Inteligencia InformeInteligencia Informe
Inteligencia Informeluis eduardo
 
Colegio nacional nicolás esguerra trabajo
Colegio nacional nicolás esguerra trabajoColegio nacional nicolás esguerra trabajo
Colegio nacional nicolás esguerra trabajojuanjo19942000
 
trabajo del crucigrama
trabajo del crucigrama trabajo del crucigrama
trabajo del crucigrama juanjo19942000
 
Practicas de robótica
Practicas de robóticaPracticas de robótica
Practicas de robóticaemsastre
 
Manual moway por jorge cruz
Manual moway por jorge cruzManual moway por jorge cruz
Manual moway por jorge cruzalexcruz28
 
Inteligencia Artificial en los Robots Detección de Obstáculos
Inteligencia Artificial en los Robots Detección de ObstáculosInteligencia Artificial en los Robots Detección de Obstáculos
Inteligencia Artificial en los Robots Detección de ObstáculosPedro Rodas
 
yhtgh4534re23452
yhtgh4534re23452yhtgh4534re23452
yhtgh4534re23452jayerxD
 
Agentes Estimulo Respuesta, victor mamani catachura,boreasH,Inteligencia Arti...
Agentes Estimulo Respuesta, victor mamani catachura,boreasH,Inteligencia Arti...Agentes Estimulo Respuesta, victor mamani catachura,boreasH,Inteligencia Arti...
Agentes Estimulo Respuesta, victor mamani catachura,boreasH,Inteligencia Arti...victor mamani
 
Programación de Retos
Programación de RetosProgramación de Retos
Programación de RetosSilcabalceta
 
Nxt programming sensores
Nxt programming sensoresNxt programming sensores
Nxt programming sensoresluismiquintero
 

Similar a Agente Inteligente Paper (19)

Agente Inteligente
Agente InteligenteAgente Inteligente
Agente Inteligente
 
Agente Inteligente: Viajero Perdido
Agente Inteligente: Viajero PerdidoAgente Inteligente: Viajero Perdido
Agente Inteligente: Viajero Perdido
 
Reporte wumpus world agentes inteligentes
Reporte wumpus world agentes inteligentesReporte wumpus world agentes inteligentes
Reporte wumpus world agentes inteligentes
 
Estados Repetidos
Estados RepetidosEstados Repetidos
Estados Repetidos
 
Inteligencia Informe
Inteligencia InformeInteligencia Informe
Inteligencia Informe
 
Colegio nacional nicolás esguerra trabajo
Colegio nacional nicolás esguerra trabajoColegio nacional nicolás esguerra trabajo
Colegio nacional nicolás esguerra trabajo
 
trabajo del crucigrama
trabajo del crucigrama trabajo del crucigrama
trabajo del crucigrama
 
Practicas de robótica
Practicas de robóticaPracticas de robótica
Practicas de robótica
 
Manual moway por jorge cruz
Manual moway por jorge cruzManual moway por jorge cruz
Manual moway por jorge cruz
 
Inteligencia Artificial en los Robots Detección de Obstáculos
Inteligencia Artificial en los Robots Detección de ObstáculosInteligencia Artificial en los Robots Detección de Obstáculos
Inteligencia Artificial en los Robots Detección de Obstáculos
 
Presentación tei
Presentación teiPresentación tei
Presentación tei
 
yhtgh4534re23452
yhtgh4534re23452yhtgh4534re23452
yhtgh4534re23452
 
Agentes Estimulo Respuesta, victor mamani catachura,boreasH,Inteligencia Arti...
Agentes Estimulo Respuesta, victor mamani catachura,boreasH,Inteligencia Arti...Agentes Estimulo Respuesta, victor mamani catachura,boreasH,Inteligencia Arti...
Agentes Estimulo Respuesta, victor mamani catachura,boreasH,Inteligencia Arti...
 
Programación de Retos
Programación de RetosProgramación de Retos
Programación de Retos
 
Nxt programming sensores
Nxt programming sensoresNxt programming sensores
Nxt programming sensores
 
Sensoresslide
SensoresslideSensoresslide
Sensoresslide
 
Sensores2
Sensores2Sensores2
Sensores2
 
Ia
IaIa
Ia
 
cosimir Sensor
cosimir Sensorcosimir Sensor
cosimir Sensor
 

Más de luisfe

Reconocimiento de caracteres atravez de redes neuronales
Reconocimiento de caracteres atravez de redes neuronalesReconocimiento de caracteres atravez de redes neuronales
Reconocimiento de caracteres atravez de redes neuronalesluisfe
 
Descripcion de algoritmo
Descripcion de algoritmoDescripcion de algoritmo
Descripcion de algoritmoluisfe
 
Clustering
ClusteringClustering
Clusteringluisfe
 
Clustering
ClusteringClustering
Clusteringluisfe
 
DescripcióN De Codigo Y Interfaz
DescripcióN De Codigo Y InterfazDescripcióN De Codigo Y Interfaz
DescripcióN De Codigo Y Interfazluisfe
 
Agente Inteligente Ontologia y Tripletas
Agente Inteligente Ontologia y TripletasAgente Inteligente Ontologia y Tripletas
Agente Inteligente Ontologia y Tripletasluisfe
 
Open Innovation
Open InnovationOpen Innovation
Open Innovationluisfe
 
ReplicacióN Base De Datos
ReplicacióN  Base De DatosReplicacióN  Base De Datos
ReplicacióN Base De Datosluisfe
 
Ubuntu
UbuntuUbuntu
Ubuntuluisfe
 
Modelos De Carros
Modelos De CarrosModelos De Carros
Modelos De Carrosluisfe
 
Modelo Descrptivos Del Proceso Del Sofware
Modelo Descrptivos  Del  Proceso Del SofwareModelo Descrptivos  Del  Proceso Del Sofware
Modelo Descrptivos Del Proceso Del Sofwareluisfe
 
Mi Empresa
Mi EmpresaMi Empresa
Mi Empresaluisfe
 

Más de luisfe (12)

Reconocimiento de caracteres atravez de redes neuronales
Reconocimiento de caracteres atravez de redes neuronalesReconocimiento de caracteres atravez de redes neuronales
Reconocimiento de caracteres atravez de redes neuronales
 
Descripcion de algoritmo
Descripcion de algoritmoDescripcion de algoritmo
Descripcion de algoritmo
 
Clustering
ClusteringClustering
Clustering
 
Clustering
ClusteringClustering
Clustering
 
DescripcióN De Codigo Y Interfaz
DescripcióN De Codigo Y InterfazDescripcióN De Codigo Y Interfaz
DescripcióN De Codigo Y Interfaz
 
Agente Inteligente Ontologia y Tripletas
Agente Inteligente Ontologia y TripletasAgente Inteligente Ontologia y Tripletas
Agente Inteligente Ontologia y Tripletas
 
Open Innovation
Open InnovationOpen Innovation
Open Innovation
 
ReplicacióN Base De Datos
ReplicacióN  Base De DatosReplicacióN  Base De Datos
ReplicacióN Base De Datos
 
Ubuntu
UbuntuUbuntu
Ubuntu
 
Modelos De Carros
Modelos De CarrosModelos De Carros
Modelos De Carros
 
Modelo Descrptivos Del Proceso Del Sofware
Modelo Descrptivos  Del  Proceso Del SofwareModelo Descrptivos  Del  Proceso Del Sofware
Modelo Descrptivos Del Proceso Del Sofware
 
Mi Empresa
Mi EmpresaMi Empresa
Mi Empresa
 

Agente Inteligente Paper

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