Simulación de un Agente Carro Repartidor aplicando el algoritmo

download Simulación de un Agente Carro Repartidor aplicando el algoritmo

of 12

Transcript of Simulación de un Agente Carro Repartidor aplicando el algoritmo

Simulacin de un Agente Carro Repartidor aplicando el algoritmo A* en la bsqueda de la mejor ruta

Mara Esther Ruilova Rojas [*]

Escuela de Ciencias de la Computacin Universidad Tcnica Particular de Loja [email protected] Resumen. En este trabajo se presenta una solucin al problema de encontrar la mejor ruta en el desplazamiento de un punto a otro dentro de una ciudad. Para esto se utiliz el algoritmo A* que pertenece a la familia de algoritmos de la bsqueda informada, cuya principal caracterstica es encontrar, si la hay, la mejor ruta hacia su destino. Para tal efecto, se realiz el planteamiento del problema aplicando conceptos de Inteligencia Artificial, se efectu el desarrollo terico de la solucin planteada. Adems encontrarn la base de conocimientos del agente de la cual aprender, la misma que fue realizada en RDF. Finalmente las conclusiones que son el resultado de la ejecucin del presente proyecto.

Palabras Claves: Inteligencia Artificial, Algoritmos de Bsqueda, A*.

1. INTRODUCCINDesde hace muchos aos la Inteligencia Artificial se ha enfrentado al reto de crear agentes inteligentes, capaces de no slo hacer lo que les diga su creador sino tambin capaces de aprender de sus percepciones para tomar decisiones adecuadas e inteligentes. Pero cmo poder hacer esto? Dentro del estudio de la Inteligencia Artificial existen familias de algoritmos que permiten que los agentes encuentren su objetivo de forma ms eficaz y eficiente, logrando de esta forma ahorrar recursos de tiempo y espacio; los algoritmos de bsqueda informada manejan heursticas que nos permiten establecer lineamientos para llevar a cabo dicha bsqueda. Bsicamente, el presente proyecto se bas en la simulacin de un Carro Repartidor el cul se mueve a travs de las principales calles de la ciudad de Loja, desde cualquier punto hacia otro, estableciendo las distancias entre puntos y las distancias en lnea recta hacia cada uno de los puntos Se ha aplicado el algoritmo A*, que es un algoritmo que se caracteriza por encontrar siempre una solucin en caso que exista.

1.1 ProblemticaEl presente agente, se basa en encontrar la ruta ms corta desde un punto origen a un punto objetivo, tomado en cuenta las distancias en lnea recta desde San Sebastin (punto origen) hacia cualesquier punto y las distancias entre los diferentes puntos conectados. Como se mencion antes, el entorno son las principales calles de la ciudad de Loja establecidas previamente. El agente carro podr desplazarse desde cualquier punto origen hacia otro, sin excepcin alguna.

1.2 ObjetivosEl objetivo del presente trabajo es simular un agente inteligente aplicando tcnicas de inteligencia artificial, especialmente algoritmos de bsqueda informada, A*, y que dicho agente llegue a su objetivo con el menor costo basndose en la heurstica establecida. Determinar por qu los algoritmos de bsqueda informada son ms efectivos que los de bsqueda no informada.

2. FUNDAMENTOS TERICOS2.1 AgenteUn agente no es ms que cualquier cosa capaz de percibir su medio ambiente con la ayuda de sensores y actuar en ese medio utilizando actuadores . [1]

2.2 Agente RacionalEs aquel que hace lo correcto, para de esta manera obtener un mejor resultado.

2.3 Tipos de agentesA los agentes se los puede clasificar en 4 categoras principales [1]: Agentes reactivos Agentes reactivos basados en modelo Agentes basados en objetivos Agentes basados en utilidad

Se hace referencia a los agentes reactivos basados en objetivos ya que es el tipo de agente implementado en el presente trabajo. Es un agente basado en objetivos ya que se basa en alcanzar un objetivo (nodo objetivo), haciendo una bsqueda en funcin a la heurstica y el algoritmo aplicado, en este caso el Algoritmo A*, que pertenece a la familia de algoritmos de bsqueda informada.

2.4 Estrategias de Bsqueda informadaLas tcnicas de solucin de problemas de IA, llevan incorporado un proceso de bsqueda. Este proceso de bsqueda puede visualizarse a travs de un rbol de recorrido donde constan los nodos, en este caso los distintos lugares de la ciudad, y las aristas que indican con qu lugares se conectan los puntos.

2.4.1

Bsqueda A*: minimizar el costo total estimado de la solucin

Tambin conocida como la bsqueda primero el mejor. Lo que hace es evaluar los nodos combinando g(n), el coste para alcanzar el nodo, y h(n), el coste de ir al nodo objetivo. De esta manera se tiene la heurstica: f(n)= coste ms barato estimado de la solucin a travs de n f(n)= g(n) + h(n) Bsicamente lo que hace es tomar ambos valores y expande el nodo de menor coste, considerando al final todos los valores de los nodos escogidos hasta alcanzar el objetivo. De esta manera garantiza que se encuentre la mejor solucin, es decir la de menor costo, para llegar al objetivo. Adems la principal caracterstica de este algoritmo es que siempre va a encontrar una solucin en caso de que exista.

3. ESPECIFICACIN DEL PROYECTO3.1 EntornoEl agente carro repartidor se desenvolver en un entorno totalmente observable y determinista, esto, ya que efectuar la bsqueda dentro de un entorno conocido (en este caso, las principales calles de la ciudad de Loja), para llegar a su destino. Como las rutas estn predefinidas, el agente se desenvolver en un ambiente esttico.

Fig.1. Mapa de los principales puntos de la ciudad hacia donde se puede dirigir el agente

3.2 Tipo de agenteEl agente implementado es del tipo reactivos basado en objetivos. El usuario debe indicarle al agente los puntos de origen y destino. Adems debe contemplar los costos del camino que incluyen las distancias entre los puntos ms las distancias en lnea recta hacia ese punto objetivo. Es una gente individual, ya que es un agente nico, el cual debe valerse por s mismo para llegar a su destino escogiendo la mejor ruta.

3.3 Descripcin REASEl siguiente grfico muestra la descripcin de trabajo del agente carro [1].

Fig.2. Descripcin REAS del agente

Adems, en la Fig. 3, se puede visualizar la base de conocimiento que sirvi para general la ontologa.

3.4 Especificacin del problemaLa estructura del rbol se visualiza en la fig.3, en la cual se observan los nodos y sus conexiones, esto vara dependiendo de los datos origen y destino. La especificacin para el presente problema es: Estados: Mapa con los principales puntos de la ciudad de Loja. Estado inicial: depende del estado que le indique el usuario. Estado objetivo: depende del estado que le indique el usuario. Funcin sucesor: ser el nodo expandido con el menor valor que le permita llegar a su objetivo. Test objetivo: Comprobar que el nodo objetivo ha sido alcanzado. Costo del camino: Cada paso al siguiente nodo aumenta segn las distancias en lnea recta y de un punto a otro.

4. FUNCIONAMIENTO DE LA SIMULACIN4.1 Herramienta de desarrolloPara la simulacin del agente carro repartidor, se us NetBeans, la misma que es un framework para el lenguaje java que permite crear aplicaciones de escritorio. Se tom esta herramienta ya que es ms entendible y es flexible para el desarrollo de aplicaciones.

4.2 Clases desarrolladas en la aplicacinEst empaquetado con las siguientes propiedades (Ver fig.2):

Fig.2 Paquete Carro Repartidor Al ejecutar el proyecto: Consta de una ventana distribuida en dos partes. La parte superior denominada bsquedas y permite al usuario determinar el lugar de origen y el lugar de destino, seguido est la opcin tipo de bsqueda que contiene la Bsqueda A*, seguidamente un botn Buscar camino que da inicio a la bsqueda del algoritmo. Se lo puede observar en la Fig.3.

Fig.3. Ventana generada al ejecutar el programa En la parte inferior de la ventana llamada Mapa ciudad, presenta el mapa con los puntos desde y hacia donde puede dirigirse el agente (marcadas de color rojo). Lo pueden observar en la Fig.4.

Fig.4. Mapa ciudad con enlaces

Adems se puede observar los enlaces entre los diferentes puntos que se encuentran dentro de la ciudad de Loja. As mismo, se efectu el clculo de las distancias en lnea recta hacia todos los puntos para poder tomar como referencia cualquier punto dentro de la ciudad. Se lo hizo en funcin a los primeros valores calculados los cuales fueron tomados como referencia. Estos valores se anexan al final en su respectiva tabla de anexos. El resultado, que son los nodos visitados, lo pinta en dolor azul.

Fig.5. Muestra resultados tomando como inicio San Sebastin hacia EERSA.

4.3 Interfaz Prototipo El software del agente trabajar con una base de datos previamente ingresada que son las distancias entre puntos y las distancias en lnea recta. El usuario podr escoger el punto de origen y el punto de destino, para posteriormente efectuar la bsqueda A*.

El software consta de dos paquetes, bsquedas y carro repartidor. La clase Algoritmo Bsqueda contiene variables privadas para cargar los nodos y grafos (enlaces entre puntos).

Fig.6. Clase abstracta AlgoritmoBusqueda para cargar nodos y enlaces

La clase BsquedaAStar, es la encargada de ejecutar el recorrido tomando la mejor ruta para llegar al objetivo. Est compuesta por los mtodos: Buscar: que llama a la funcin inicializar() para obtener los nodos objetivo y destino y crear nuevas instancias de ListaOrdenada para cargar los nodos. Nodos iguales recibe los nodos N1 (visitados) y N2 (destino), hace una comparacin entre ellos para ver si son iguales y de esta manera terminar a bsqueda en caso de que lo sean, retornando el objetivo para posteriormente marcar el recorrido resultante. generarSucesoresDirigidos: toma el nodo actual para buscar los nodos adyacentes, los mismos que sern expandidos en la funcin PropagaG. En estimacin hace los clculos de ambas distancias (lnea recta y de punto a punto) para hacer el anlisis porsteriormente.

Fig.7. Clase BusquedaStar que hereda de la clase AlgoritmoBusqueda

5. Base de conocimientoEl crecimiento de la informacin en la web ha provocado un aumento en el hecho pr instrumentos como los tesauros, clasificadores y las ontologas. Los profesionales cada vez ms, entienden que es urgente la construccin y aplicacin de sistemas de organizacin y representacin del conocimiento. Estos lenguajes colaboran en la descripcin de los diferentes recursos de la informacin, y en su posterior recuperacin, lo que tambin debiera mejorar la recuperacin de informacin en la web, en trminos de efectividad, rapidez y facilidad de acceso a la informacin [3]. Se basa en tener un lenguaje comn para interpretar el agente como nico. La base de conocimiento est implcita en los buscadores semnticos que permiten hacer bsquedas avanzadas, donde dichos buscadores nos presentan resultados esperados concretos, y no los tpicos resultados arrojados por bsquedas tontas que no nos llevan a ningn lado. Es por esto que es necesario que el agente tenga conocimiento del lenguaje natural para que acte de forma correcta.

Se dan algunos conceptos fundamentales para entender de mejor manera esto, ya que el presente agente posee su base de conocimiento la misma que ser presentada en los anexos respctivos. RDF (Resouce Description Framework) Tambin conocido como Marco de Descripcin de Recursos, fue desarrollado por el W3C como lenguaje para aadir metadatos legibles para la mquina a datos existentes en la web. RDF usa XML para su serializacin de modo que se haga uso del famoso pastel de capas definido por la Web Semntica. [2] RDF est compuesto por propiedades, clases e instancias. Su moldeo bsico son las tripletas Sujeto-PredicadoObjeto [2]. RDF permite una forma de reificacin (una declaracin de una declaracin), que significa que cualquier declaracin de RDF puede ser usada como sujeto en una tripleta. En la figura siguiente se muestra un ejemplo de grafo RDF.[2]

Fig.8. Ejemplo de grafo RDF El modelo de RDF mostrado en la Fig. 9 muestra como est formado el modelo.

Fig.9. Modelo RDF El modelo del agente carro se encuentra en los anexos, que por cuestiones de espacio no se puso aqu. OWL (Ontology Web Languaje) Es un lenguaje expresivo de ontologas que extiende RDFs[2]. Est compuesto por tres lenguajes de expresividad crecientes [2]: OWL Lite: El sublenguaje menos expresivo. Comparado con RDFS, aade restricciones de rango local, restricciones existenciales, restricciones de cardinalidad simple y varios tipos de propiedades (inversa, transitiva y simtrica)[2]. OWL DL: Comparada con OWL Lite, aade soporte total a la negacin, disyuncin, restricciones de cardinalidad, enumeraciones y restricciones de valor. El elemento "DL" viene por su semejanza a un lenguaje expresivo de lgica de descripciones[2]. OWL Full: Mientras que OWL Lite y OWL DL imponen restricciones al uso de vocabulario y el uso de declaraciones RDF, OWL Full no tiene tales restricciones. Por ello, OWL Full permite tanto la especificacin de clases como instancias, as como el uso de construcciones del lenguaje, que por tanto modifica ste[2].

Una ontologa est formada por cuatro conceptos fundamentales: clases, relaciones entre clases, propiedades de clases, y restricciones entre las relaciones entre clases y propiedades de clase [2]. Objetivos de las ontologas

Partiendo de Noy y McGuinness, se puede decir que las ontologas tienen los siguientes objetivos: Compartir la comprensin comn de la estructura de la informacin entre personas o agentes software, lo que debe revertir de forma positiva y casi necesaria la extraccin y recuperacin de informacin, en pginas web, de contenidos conectados temticamente. Permitir la reutilizacin del conocimiento perteneciente a un dominio. Por ejemplo, al momento de iniciar la elaboracin de una ontologa. Permite hacer explcitos los supuestos de un dominio. Esta aseveracin puede conducir a conclusiones muy interesantes para la representacin del conocimiento ms all de consideraciones tcnicas, operativas e informticas. Separa el conocimiento de un dominio del conocimiento que se puede denominar operacional. Con esto se alude a que, en ocasiones, el conocimiento que se est representando se puede implicar en diferentes reas al pertenecer ms a un conocimiento relacionado con procesos. Hace posible analizar el conocimiento de un campo, por ejemplo en lo que se refiere al estudio de los trminos y relaciones que lo configuran ya sea formalmente o no.

En el contexto de uso actual de las ontologas Torres1 [4] apunta varias de las utilidades de las ontologas, entre las que se destacan, en primer lugar, la mejora de la comunicacin, habida cuenta de su dedicacin a reducir la confusin terminolgica y conceptual en un nico marco de trabajo. En segundo lugar, menciona la interoperatividad. En efecto, las ontologas, en principio, han de potenciar el intercambio de datos en contextos informticos y digitales gracias a los fundamentos semnticos que se encuentran en ellos. [3] Para la base de conocimiento del agente carro, se dise en el programa CmapTools v5.0.03, se valid correctamente, para posteriormente exportarla a lenguaje de ontologas owl en el programa protege v4.0. El entorno de CmapTools se muestra en la fig. 10.

Fig.10. Entorno de CmapTools con la plantilla de Agente Carro para la base de conocimiento.

Torres Rodrguez, N. Imgenes en la web semntica: estndares, aplicaciones y organizacin de sitios en la red. Universidad Carlos III de Madrid, 2003. (Tesina)

1

5.1 Herramientas para generar el RDFCmapTools CmapTools es un software multiplataforma para crear mapas conceptuales, por medio de unas aplicaciones escritas en Java. Permite tanto el trabajo local individual, como en red, ya sea local, o en internet, con lo que facilita el trabajo en grupo o colaborativo. [6] (Ver fig. 11). Protg Es libre, es un framework para edicin y base de conocimiento de ontologas. Esta plataforma soporta dos maneras principales de modelamiento de ontologas va editores Protg-Frames y Protg-OWL. Las ontologas protg pueden ser exportadas en una variedad de formatos incluyendo RDFs. OWL, y XML Schema. [7] Est basado en Java, fcil de manejar y entender.

Fig.11. Plantilla para la base de conocimiento generada en CmapTools.

6. AplicacionesAlgunas aplicaciones del software del agente se dan en los siguientes casos: Gestin de trfico a travs de los agentes TRACK-R los cuales poseen un conocimiento acerca de todos los elementos relevantes del rea que controla, es decir, la informacin de ciudades, carreteras, cruces de carreteras y puntos de kilmetros [5]. En la fig.12 se muestra el entorno del agente. Su base de conocimientos se ha codificado con Ciao Prolog [8].

Fig.12. Nodo de Bilbao y sus alrededores Desarrollo de servicios tursticos a usuarios, donde le permite al usuario planificar su itinerario de visitas en determinada ciudad, visitando lugares de su inters. Est basado en sistemas multiagentes. Como podemos observar su objetivo es encontrar la ruta adecuada para llegar al objetivo del usuario [9].

Fig.13. Los tres tipos de agentes usados y sus respectivas comunicaciones Usa la plataforma JadeLeap [8], la cual permite la portabilidad de la plataforma Jade a dispositivos mviles. Dicho agente puede ser instalado en un dispositivo mvil, como PDA, o una PC. Ofrece servicios de bsqueda, reserva, planificar da.

7. ConclusionesComo se podrn dar cuenta, en el apartado de aplicaciones, si bien es cierto, que mantienen temas diferentes, todos llegan a un comn denominador, que es el de encontrar la mejor ruta para efectuar determinada actividad. Tomando en cuenta que deben minimizar el uso de recursos para maximizar sus medidas de rendimiento. El agente carro repartidor, va desde un punto a otro, cuya funcionen de utilidad es el menor costo del camino. Gracias a la bsqueda que efecta el algoritmo A*, logra esto en el menor tiempo y con el menor de recursos consumibles. No existe regla general acerca del uso de determinado algoritmo, ms bien, depende de la necesidad que se tenga, y de las acciones que va a realizar.

El funcionamiento correcto del agente, depende fundamentalmente, en definir correctamente el REAS (Medidas de Rendimiento, Entrono, Actuadores y Sensores) para el agente, seguidamente, el establecer que tcnicas de Inteligencia Artificial sern utilizadas para su implementacin. Posee una base de conocimiento, la misma que fue valida en la pgina oficial de la W3.[10]

Referencias[1] Inteligencia Artificial [2. Agentes Inteligentes] / aut. RUSSELL STUART NORVIG PETER // Un Enfoque Moderno. - Madrid : Pearson, 2003. - Vol. II. [2] Gestin del Conocimiento [En lnea] / aut. CONOCIMIENTO GESTIN DEL. - 1. - 2 de Febrero de 2010. - http://www.gestiondelconocimiento.es/rdf-skos-owl.asp. [3] Gestin del Conocimiento [En lnea] / aut. CONOCIMIENTO GESTIN DEL. - 1. - 2 de Febrero de 2010. - http://www.gestiondelconocimiento.es/rdf-skos-owl.asp. [4] Imgenes en la web semntica: [Tesina. Universidad Carlos III de Madrid] / aut. TORES RODRIGUEZ N. // Estndares, aplicaciones y organizacin de sitios en la red.. - Madrid : [s.n.], 2003. [5] Agentes Inteligentes en el Tercer Milenio [Conferencia] / aut. MORENO ANTONIO UNIVERSIDAD ROVIRA I VIRGILI // CAEPIA-2003. - Tarragona : [s.n.], 2003. http://www.informatik.uni-trier.de/~ley/db/conf/caepia/caepia2003.html [6] IHMC CmapTools [En lnea] / aut. IHMC // Sitio oficial. - http://cmap.ihmc.us/. [7] PROTG [En lnea]. - Stanford - California. Sitio oficial.- http://protege.stanford.edu/. [8] LEAP [En lnea]. - Lightweight Extensible Agent Platform (LEAP), IST-199-10211. - 15 de Enero de 2010. - http://leap.crm-paris.com. [9] www.clip.dia.fi.ump.es [10] Sitio Validador RDF [En lnea] / aut. W3C. - http://www.w3.org/RDF/Validator/ARPServlet.