Trabajo Agente Viajero

UNIVERSIDAD NACIONAL DE LOJA “CARRERA DE INGENIERÍA EN SISTEMAS” Inteligencia Artificial Tema NOMBRE: Mariuxi Montero

Views 138 Downloads 8 File size 855KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

UNIVERSIDAD NACIONAL DE LOJA “CARRERA DE INGENIERÍA EN SISTEMAS”

Inteligencia Artificial Tema

NOMBRE: Mariuxi Montero Leonardo Caraguay Angel Quizhpe CURSO: 9NO “B” MATERIA: Inteligencia Artificial TUTOR: Ing. Oscar Cumbicuas FECHA: 03/06/2018

LOJA – ECUADOR 2018

1. Objetivos  Implementar la simulación de un agente inteligente en el lenguaje de programación java.  Identificar la importancia de los agentes en la Inteligencia Artificial.  Describir el REAS del entorno de trabajo de un sistema de agente viajero.

2. Introducción: Como ya sabemos la inteligencia artificial tiene el objetivo de estudiar entidades inteligentes, el estudio de estas entidades debe darse mediante un orden y clasificación de las diferentes entidades racionales que existen o pueden crearse para ser más clara. Los agentes inteligentes se desenvuelven en diferentes entornos dependiendo de la finalidad de estos, es por esta razón que es necesario conocer las especificaciones del entorno de trabajo, y los tipos de entornos de trabajo, conceptos que son indispensables para poder crear e identificar a los diferentes tipos de agentes, determinar a qué entornos pertenecen, y cuáles son los actuadores y sensores que estos agentes poseen. A continuación, realizaremos una simulación de un agente inteligente el cual consiste en la demostración del “problema del agente viajero”, el cual demostraremos el REAS de su entorno y lo simularemos en el lenguaje de programación JAVA.

3. Desarrollo: Antes de empezar a desarrollar nuestro agente empezaremos dando algunos conceptos que son fundamentales para la construcción de nuestro agente. ¿Qué es un agente? Un agente es un sistema situado en algún entorno, dentro del cual percibe y actúa de forma autónoma y flexible alcanzando el conjunto de objetivos para el que fue diseñado. Es un sistema que está situado y que forma parte de un determinado entorno, que percibe este entorno y que actúa en él continuamente y con su propia planificación, persiguiendo el objetivo de cambiar su propia percepción[1].

Todo agente tiene una función u objetivo. Por ejemplo, un agente humano de bolsa tiene el objetivo de comprar y vender acciones respondiendo a los estímulos iniciados por su cliente y captados por sus sentidos. Una aspiradora tiene la función de aspirar cuando capta que ha sido encendida y no aspirar cuando es apagada[2].

Un agente inteligente o racional trata de maximizar el valor de una medida de rendimiento, dada la secuencia de percepciones que ha observado hasta el momento. Repitamos lo dicho ejemplificándolo.

¿Qué es un entorno de trabajo? Se podría definir al entorno de trabajo como las condiciones que ocurren dentro del cumplimiento laborar, pero enfocando éste concepto a la Inteligencia Artificial y al diseño de agentes inteligentes o racionales, entorno de trabajo es representado por los problemas, los cuales serán solucionados por los agentes. Especificación del entorno de trabajo La inteligencia artificial debe tomar en cuenta siempre el entorno en el que los agentes se desenvolverán por lo cual se especifica el REAS que significa lo siguiente: 1. Rendimiento. - Cualidades deseables del agente, medidas de rendimiento, objetivos, metas. 2. Entorno. – Aquel sobre el cual actuará o se moverá el agente. 3. Actuadores. - Herramientas o elementos para efectuar el trabajo, acción a realizar. 4. Sensores. – Cómo percibe el ambiente el agente, con qué lo percibe. Tipos de Agentes. Los cuatro tipos básicos de agentes adoptan los principios que subyacen en casi todos los sistemas inteligentes, estos son:  Agentes reactivos simples.  Agentes reactivos basados en modelos.  Agentes basados en objetivos y metas.

 Agentes basados en utilidad. En la mayoría de las ocasiones, los agentes no son desarrollados de forma independiente sino como entidades que constituyen un sistema. A este sistema se le denomina multi-agente. En este caso los agentes no pueden interactuar entre ellos. Las interacciones más habituales como son informar o consultar a otros agentes permiten a los agentes “hablar” entre ellos, tener en cuenta lo que realiza cada uno de ellos y razonar acerca del papel jugado por los diferentes agentes que constituyen el sistema. La comunicación entre agentes se realiza por medio de un lenguaje de comunicación de agentes (ACL – Agent Communication Language)[3]. Agentes y Sistemas Multiagente. Un sistema basado en agentes, es aquel que utiliza el concepto de agente como mecanismo de abstracción. Un sistema multiagente es aquel que se diseña e implementa pensando en que estará compuesto por varios agentes que interactuarán entre sí.

Características de los Sistemas Multiagentes. Existe una colección de agentes, definido cada uno de ellos por sus propias habilidades: Adquisición de datos. Comunicación. Planificación. Actuación. El conjunto de todos los agentes tiene asignada una misión. La misión puede descomponerse en diferentes tareas independientes, de forma que se puedan ejecutar en paralelo. El conjunto de agentes debe ser capaz de asignarse las tareas apropiadas a cada uno en función de la adecuación del agente a esa tarea y la realización de la misión en común. Cada agente tiene un conocimiento limitado. Esta limitación puede ser tanto: Del conocimiento del entorno. De la misma del grupo. De las intenciones de los demás agentes a la hora de realizar sus propias tareas. Cada agente tiene una mayor facilidad para hacer determinadas tareas, en función de: Lo que conoce. La capacidad de proceso. La habilidad requerida.

4. Procedimiento: En esta sección abordaremos la construcción de nuestro agente “Agente Viajero”, mismo que definiremos su entorno de trabajo REAS y lo simularemos en el lenguaje de programación Java. Para la simulación de nuestro agente es importante tener conocimiento de los conceptos de un Agente Viajero:

¿Agente viajero? También conocido como problema del viaje del comercio (TSP). El agente viajero, parte de un nodo origen (Ciudades, Almacenes, centros de producción, centros de distribución, etc.), y deben recorrerse todos los nodos de la red (Bodegas, Hogares, Empresas, Oficinas, Barrios, etc.), volviendo al origen, de modo de minimizar la longitud del viaje, se debe recorrer todos sin pasar más de una vez por cada lugar, volviendo al lugar inicial. Se trata de encontrar en qué orden recorrer los nodos de la red, de modo de minimizar la distancia total recorrida. Este método busca minimizar costo, tiempo o distancia, dependiendo de qué es lo que se busca minimizar. El problema del agente viajero tiene una variación importante, y esta depende de que las distancias entre un nodo y otro sean simétricas o no, es decir, que la distancia entre A y B sea igual a la distancia entre B y A, puesto que en la práctica es muy poco probable que así sea[4].

Métodos de solución La complejidad del cálculo del problema del agente viajero ha despertado múltiples iniciativas por mejorar la eficiencia en el cálculo de rutas. El método más básico es el conocido con el nombre de fuerza bruta, que consiste en el cálculo de todos los posibles recorridos, lo cual se hace extremadamente ineficiente y casi que se imposibilita en redes de gran tamaño. También existen heurísticos que se han desarrollado por la complejidad en el cálculo de soluciones óptimas en redes robustas, es por ello que existen métodos como el vecino más cercano, la inserción más barata y el doble sentido. Por último, se encuentran los algoritmos que proporcionan soluciones óptimas, como el método de branch and bound (ramificación y poda), que trabaja el problema como un algoritmo de asignación y lo resuelve por medio del método simplex.

Para la simulación de nuestro agente en el lenguaje de programación se ha utilizado el método de la fuerza bruta. El método de la fuerza bruta no implica la aplicación de ningún algoritmo sistemático, tan solo consiste en explorar todos los recorridos posibles. Considerando la siguiente red simétrica, los caminos posibles se reducen a la mitad:

Posibles rutas A - B - D - C - A = 9 + 15 + 4 + 7 = 35 km A - B - C - D - A = 9 + 10 + 4 + 8 = 31 km A - C - B - D - A = 7 + 10 + 15 + 8 = 40 km Rutas simétricas A - D - C - B - A = 8 + 4 + 10 + 9 = 31 km A - C - D - B - A = 7 + 4 + 15 + 9 = 35 km A - D - B - C - A = 8 + 15 + 10 +7 = 40 km Construcción del entorno de trabajo (REAS)

AGENTE Sistema de Agente viajero

MEDIDAS DE RENDIMIENTO  Minimizar costo  Minimizar tiempo  Minimizar distancia

ENTORNO  Rutas  Distanci as  Lugares

ACTUADORES    

Mapas Vehículos Nodos Cálculos matemáticos

SENSORES  Búsqueda de lugares  Mouse y teclado para entrada de datos  Pantalla

A continuación, procederemos a diseñar el simulador del Agente Viajero 1. Creamos en Netbeans un proyecto como AgenteViajero. 2. Diseñamos una interfaz, tal como se muestra en la figura:

3. Al dar clic en la interfaz del mapa creara los nodos el cual, forma el ambiente para poder realizar los cálculos al presionar en Aceptar, como se muestra en la figura:

4. A continuación, se muestra la ejecución del código:

En las anteriores imágenes observamos cómo se muestra los cálculos del Agente viajero, el cual se realiza un recorrido completo que conecte todos los nodos de una red visitándolos tan solo una vez y volviendo al punto de partida, y que además minimice la distancia total de la ruta, o el tiempo total del recorrido.

5. Conclusiones: Luego de realizar el trabajo se establece las siguientes conclusiones:  Lo primero que se concluye es que: primordialmente con los agentes se debe determinar el entorno de trabajo, un entorno de trabajo se encuentra constituido por el REAS (Rendimiento, Entorno, Actuadores y Sensores), los entornos de trabajo se deben describir de la manera más completa posible, un agente puede poseer más de una medida de rendimiento, entorno, actuador y sensor, además de esto cabe destacar que un agente puede ser parte de varios tipos de entorno de trabajo.

 Existen entornos considerados ideales, en los cuales un agente no tendría mayor problema en desenvolverse, algunos agentes se desenvuelven en estos entornos y otros sin embargo se desenvuelven en ambientes con un nivel mayor de dificultad, lo cual indica que es necesario que un programador o diseñador de un agente inteligente tenga el conocimiento necesario acerca de los entornos de trabajo para de esta manera aseguré el máximo rendimiento de un agente inteligente.

6. Bibliografía: [1]

Á. Arroyo Castillo, “Agentes Inteligentes,” pp. 1–35, 2005.

[2]

“Agentes Inteligentes en Java,” pp. 1–13, 2017.

[3]

Jose Velasco, Inteligencia artificial. 2013.

[4]

M. A. Erasmo López, Salas Óscar, “El Problema Del Agente Viajero: Un Algoritmo Determinístico Usando Búsqueda Tabú,” Rev. Matemática, vol. 21, no. 1, pp. 127–144, 2014.