Diana Ahogado Ana María Reinemer Proyecto de Investigación I Febrero 14 del 2002 SISTEMAS MULTIAGENTES El objetivo principal de la Inteligencia Artificial consiste en estudiar y construir Agentes Racionales. Al ser esta la línea de investigación escogida para la realización de nuestro proyecto, pretendemos dar en este documento una explicación general de nuestro entendimiento acerca de lo que es un agente racional y, más allá, enfocarnos en el tema de los sistemas multiagentes. Hablaremos de su definición, sus áreas de aplicación y las relaciones que existen en estos. Un agente racional es una entidad física (robot) o virtual (software), capaz de actuar de manera correcta según se lo indica su condición de racionalidad. Esto quiere decir, que al obtener una serie de percepciones del entorno en el que se encuentra, y teniendo en cuenta sus recursos y conocimientos, reacciona fijándose un objetivo que siempre debe cumplir logrando el mejor desempeño. Los agentes perciben su ambiente de una forma limitada y de esta manera tienen una representación parcial del mismo, la cual ayuda en la determinación de la acción que deben llevar a cabo. En el diseño de un agente ideal se debe especificar que tipo de acción tomar como respuesta a una determinada secuencia de percepciones. Si se coloca en una tabla la lista de acciones que este puede realizar según la cantidad de secuencias de percepciones que puede tener, se dice que se está realizando un mapeo. En la construcción de un programa de agente se debe implantar el mapeo que le permite actuar. Para hacerlo se pueden utilizar diferentes clases de lenguajes de programación: Lenguajes de implementación, de comunicación, para describir comportamientos y reglas del ambiente, para representar conocimiento y para cuestiones de formalización y especificación. Existen dos tipos de agentes: los cognitivos y los reactivos. Los cognitivos son aquellos a los que llamamos “inteligentes” aunque este calificativo es muy relativo a la definición de inteligencia que se use. Por lo cual, se dice, mas bien, que los agentes cognitivos son los que muestran acciones racionales para lograr sus objetivos. Por otro lado, los agentes reactivos son los que cuentan desde la creación de su programa con las instrucciones que deben ejecutar. Principios de los sistemas Multiagentes Los agentes son entidades relativamente independientes y autónomas que se relacionan entre sí por medio de cooperación, conflicto y competencia. Esta autonomía se puede medir en términos de comportamiento y uso de los recursos propios. La Kenética es una disciplina científica cuyo interés es la interacción de los agentes (en sistemas Multiagentes). Para esto, debe crear, planear y diseñar universos u organizaciones de agentes. Los universos creados por la Kenética son puramente artificiales y sus parámetros pueden ser controlados por el diseñador. Un sistema Multiagentes está compuesto por los siguientes elementos: Un ambiente, un conjunto de objetos (que pueden ser afectados por los agentes), un conjunto de agentes (que también son objetos), relaciones entre los agentes y/o los objetos, operaciones (que permiten a los agentes producir, consumir, transformar y manipular los objetos) y operadores que representan la aplicación de las operaciones y la reacción del mundo a los intentos de modificación por parte de los agentes. Las áreas de aplicación de los sistemas Multiagentes son muchas, estas se pueden clasificar en cinco grandes grupos: La solución de problemas, la simulación de sistemas Multiagentes, construcción de mundos sintéticos, la robótica colectiva y el diseño de programas en Kenética. La aplicación a la solución de problemas, consiste en la solución de problemas de manera distribuida, problemas distribuidos y técnicas distribuidas para resolver problemas; estas se explican a continuación. La solución de problemas de manera distribuida se refiere a situaciones en las cuales los agentes se especializan cada uno en un área específica y entre todos llevan a cabo los objetivos. Por su parte, la solución de problemas distribuidos es visualizable en casos en los cuales se maneja un sistema físicamente distribuido. Por último, las técnicas distribuidas de resolución de problemas se usan cuando existe un problema que por naturaleza es centralizado y los agentes se encargan de dividirlo para tratarlo entre ellos. Cuando se trata el tema de los robots en un sistema y estos desempeñan diversas funciones se esta hablando de Robótica colectiva. En esta área se tratan situaciones como la robótica celular (el manejo de un solo robot como un SMA) y la robótica móvil (cuando se encuentran dos o más robots en el sistema). El diseño de programas de Kenética se lleva a cabo desarrollando software distribuido y sistemas computacionales capaces de evolucionar con la interacción de agentes funcionando en universos distribuidos físicamente. Con esto se llega a la creación de una nueva concepción del software donde cada unidad de programa se desempeña como un agente. Interacciones y Cooperación Entre los agentes existen varios tipos de relaciones. Una de estas son las interacciones. Una interacción se da entre dos o mas agentes y es una relación dinámica mediante acciones reciprocas. Para que se de una interacción deben existir los siguientes elementos: agentes autónomos capaces de actuar y/o comunicarse entre si, situaciones que jueguen el papel de punto de encuentro de los agentes y elementos dinámicos (como comunicación, impacto, repulsión, atracción) que permitan las relaciones entre los agentes. Una interacción se define en términos de objetivos compatibles o incompatibles, relación con los recursos y capacidades de los agentes en relación con las tareas que se le han asignado. Cuando un objetivo es incompatible para dos agentes, implica que para lograr el objetivo, solo uno de ellos podrá hacerlo. La relación con los recursos hace referencia a los conflictos que pueden llegar a ocasionarse cuando dos agentes necesitan el mismo recurso. Este problema se soluciona usando técnicas de coordinación. Existen tareas para las cuales los agentes necesitan de la ayuda de otros agentes por que sus capacidades no son suficientes para desarrollar la tarea que le asignaron. La siguiente tabla explica las relaciones de estos componentes en la clasificación de los tipos de interacción: Objetivos Compatibles Compatibles Compatibles Compatibles Incompatibles Incompatibles Incompatibles Incompatibles Recursos Suficientes Suficientes Insuficientes Insuficientes Suficientes Suficientes Insuficientes Insuficientes Habilidades Suficientes Insuficientes Suficientes Insuficientes Suficientes Insuficientes Suficientes Insuficientes Tipo de Interacción Independencia Colaboración Simple Obstrucción Colaboración Coordinada Competencia Individual Competencia Colectiva Conflictos Individuales por recursos Conflictos colectivos por recursos Otra de las formas en que se relacionan los agentes es por medio de la colaboración. Esta se trata de identificar una meta común a los agentes y la realización de las acciones para llegar a cumplirla La cooperación se define en términos de los siguientes indicadores: coordinación de las acciones, grado de paralelismo, recursos compartidos, robustez del sistema, acciones no-redundantes y conflictos no-perceptibles. Para que se pueda afirmar que existe una relación de cooperación, esta debe cumplir al menos una de las siguientes condiciones: La suma de un agente al sistema debe aumentar el rendimiento del grupo. La acción de los agentes debe servir para evitar o solucionar un conflicto potencial o actual del sistema. Cuando en un sistema hay cooperación entre los agentes, se puede lograr la realización de tareas que sin cooperación podrían ser imposibles. Tener cooperación en el sistema también es bueno por que aumenta el rendimiento y productividad de cada agente, aumenta el número de tareas que se pueden realizar en un cierto periodo de tiempo o reduce el tiempo que toma realizar una tarea, y optimiza el uso de los recursos disponibles mediante la aplicación de algoritmos de balanceo de carga. Bibliografía: Rusell N, Inteligencia Artificial: Un enfoque moderno, Prentice Hall, 1996 Ferber J, Multi-Agent Systems : An introduction to Distributed Artificial Intelligence, Adison Wesley, 1999