2. Estado del Arte
2.3. Sistemas Multi-Agentes (SMA)
2.3.2. Modelos para la construcci´ on de sistemas Multi-agentes
Para el desarrollo de los sistemas Multi-agentes, se han propuesto va- rios modelos con la intenci´on de facilitar y soportar el desarrollo de sistemas distribuidos complejos. Por lo tanto, cuando se plantea la construcci´on de una aplicaci´on de agentes es importante decidir qu´e modelo se va a utilizar. Estos modelos definen elementos que sirven para agrupar las distintas funcionalidades asociadas a un agente o a un grupo de agentes.
A continuaci´on en la Cuadro 2.3, se muestra el an´alisis de algunos mode- los para desarrollar sistemas Multi-agentes.
36 CAP´ITULO 2. ESTADO DEL ARTE
Modelo Modelos Impl´ıcitos
MaSE [33] Objetivos, roles, tareas, comunicaci´on
ZEUS[34] An´alisis del dominio, Roles ada a agentes
INGENIAS [35] Organizaci´on, Tareas/objetivos
GAIAI [27] Roles, Interacci´on, dise˜no de alto nivel, agentes, servicios
Vowel Engineering (Vocales) [36] Agente, entorno, organizaci´on, interacci´on
MAS-CommonKADS [37] Agentes, tareas, experiencia, coordinaci´on, comunicaci´on, organizaci´on, dise˜no
BDI [38] Jerarqu´ıa de herencia de clases y estructura del estado de informaci´on y
motivaci´on de los agentes
JADE [39] Agentes, comportamiento y comunicaci´on
JACAMO [40] Agentes, Entorno, Interacci´on y Organizaci´on
Cuadro 2.3: Modelos para la construcci´on de Sistemas Multi-agentes A continuaci´on se explica cada uno de los modelos de la tabla anterior de una manera m´as extensa.
MaSE
MaSE (Multi-agent system Software Engineering) [33] parte del paradig- ma orientado a objetos y asume que un agente es s´olo una especializaci´on de un objeto. La especializaci´on consiste en que los agentes se coordinan unos con otros v´ıa conversaciones y act´uan proactivamente para alcanzar metas individuales y del sistema.
En esta metodolog´ıa los agentes son s´olo una abstracci´on conveniente, que puede o no poseer inteligencia. En este sentido, los componentes inteligen- tes y no inteligentes se gestionan igualmente dentro del mismo armaz´on. El proceso de desarrollo de MaSE es un conjunto de pasos, la mayor´ıa de los cuales se ejecutan dentro de la herramienta de soporte MaSE, AgentTool [33].
El an´alisis en MaSE consta de tres pasos: capturar los objetivos, capturar los casos de uso y refinar roles. Como productos de estas etapas se es- peran: diagramas de objetivos, que representan los requisitos funcionales del sistema; diagramas de roles que identifican roles, tareas asociadas y comunicaciones entre roles y tareas; y casos de uso que son enumeraciones de los casos de uso considerados con la posibilidad de usar diagramas de secuencia para detallarlos.
El dise˜no consta de cuatro pasos: crear clases de agentes, construir conver- saciones, ensamblar clases de agentes y dise˜no de sistema. Como producto de estas etapas se espera: diagramas de clases de agentes, que enumeran los agentes del sistema, roles jugados e identifican conversaciones entro los mismos; descomposici´on del sistema (agente) en subsistemas (componen- tes del agente) e interconexi´on de los mismos (definici´on de la arquitectura del agente mediante componentes); diagramas UML de despliegue para in- dicar cu´antos agentes habr´a en el sistema y de qu´e tipo.
Las comunicaciones entre diferentes elementos (componente-componente, agente-agente, rol-rol, tarea-tarea) se refieren al env´ıo de est´ımulos desde
2.3. SISTEMAS MULTI-AGENTES (SMA) 37 una m´aquina de estados a otra. En el caso de las tareas, a estas m´aquinas las denominan en MaSE diagramas de tareas concurrentes.
La herramienta de soporte, agentTool [33], permite generar c´odigo au- tom´aticamente a partir de la especificaci´on del sistema, que en MaSE es el conjunto final de diagramas. La generaci´on de c´odigo es independien- te del lenguaje de programaci´on utilizado, ya que se realiza recorriendo las estructuras de datos generadas en la especificaci´on y generando texto como salida.
Dentro de la misma herramienta, MaSE incorpora utilidades para verificar la correcci´on de los protocolos que utilicen los agentes.
ZEUS
ZEUS consta de una herramienta [34] y una metodolog´ıa [41]. Desde su aparici´on, se ha convertido en referencia de c´omo debe ser una herramienta para el desarrollo multi-agente. Sobre todo, por la forma en que combinan los distintos resultados de investigaci´on en agentes en un sistema ejecu- table. De hecho, la aplicaci´on genera incluso programas para arrancar el sistema especificado e incluye herramientas de monitorizaci´on como el Vi- sor de sociedad que muestra los agentes existentes y sus relaciones, la Herramienta de Control para ver o modificar remotamente el estado de los agentes y los Generadores de Informes para obtener estad´ısticas de funcionamiento e informes de actuaci´on de la sociedad de agentes. ZEUS propone un desarrollo en cuatro etapas [41]: el an´alisis del dominio, el dise˜no de los agentes, la realizaci´on de los agentes y el soporte en tiempo de ejecuci´on. Las etapas soportadas por la herramienta son la de realiza- ci´on de los agentes y la de soporte en tiempo de ejecuci´on. Estas etapas se basan en el uso de roles para analizar el dominio y en su asignaci´on de agentes.
Los resultados a producir a lo largo del proceso de desarrollo son los si- guientes:
• An´alisis del dominio. Se orienta a obtener el modelo de roles. El modelo de roles se compone de diagramas UML de clases para repre- sentar roles, diagramas UML de colaboraci´on para indicar qu´e men- sajes se intercambian y fichas para describir los roles.
• Dise˜no del agente. Consiste en determinar qu´e necesita cada agente para poder desempe˜nar su cometido. Esto incluye revisar las tecno- log´ıas y disciplinas relacionadas con el dise˜no de agentes.
• Implementaci´on de los agentes y soporte en tiempo de eje- cuci´on. Se trata de utilizar la herramienta ZEUS para trasladar los conceptos de dise˜no dentro de la plataforma que ZEUS tiene ya im- plementada. El resultado es un modelo ejecutable del sistema.
38 CAP´ITULO 2. ESTADO DEL ARTE
La metodolog´ıa INGENIAS [35] es la evoluci´on de la metodolog´ıa ini- cial llamada MESSAGE. INGENIAS define un conjunto de meta-modelos (una descripci´on de alto nivel de los elementos que contiene un mode- lo) con los que hay que describir el sistema. Estos meta-modelos indican qu´e hace falta para describir: agentes aislados, organizaciones de agentes, el entorno, interacciones entre agentes o roles, tareas y objetivos.
Los meta-modelos se construyen mediante un lenguaje meta-modelo lla- mado GOPRR. En la su construcci´on se integran resultados de investiga- ci´on en forma de entidades y relaciones entre entidades. Su instanciaci´on produce diagramas, los modelos similares a los que se usa en UML, con la diferencia de que estos se han creado exclusivamente para definir el sistema multi-agente.
La instanciaci´on de los meta-modelos es sencilla de identificar, existen muchas entidades y relaciones a identificar, adem´as de dependencias en- tre distintos modelos. Es por ello, que INGENIAS define un conjunto de actividades cuya ejecuci´on termina en un conjunto de modelos. A su vez, estas actividades se organizan siguiendo un paradigma el paradigma de ingenier´ıa del Software llamado Proceso Unificado.
La ejecuci´on de actividades para producir modelos se basa en la herramien- ta llamada INGENIAS IDE, esta almacena la especificaci´on del sistema utilizando XML.
GAIA
GAIA [27] es una metodolog´ıa para el dise˜no de sistemas basados en agen- tes cuyo objetivo es obtener un sistema que maximice alguna medida de calidad global, la cual no se llega a detallar. Esta metodolog´ıa pretende ayudar al analista a ir sistem´aticamente desde unos requisitos iniciales a un dise˜no que est´e lo suficientemente detallado como para ser implementado directamente.
Aqu´ı se entiende que el objetivo del an´alisis es conseguir comprender el sistema y su estructura sin referenciar ning´un aspecto de implementaci´on. Esto lo obtiene a trav´es de la idea de organizaci´on. Una organizaci´on es una colecci´on de roles, los cuales mantienen ciertas relaciones con otros y toman parte de patrones institucionalizados de interacci´on con otros roles. Los roles agrupan cuatro aspectos: responsabilidades del agente, los recursos que se le permite utilizar, las tareas asociadas e interacciones. GAIA propone se trabaje inicialmente con un an´alisis de alto nivel en el que se usan dos modelos, el modelo de roles para identificar los roles clave en el sistema junto con sus propiedades definitorias y el modelo de interacciones que define las interacciones mediante una referencia a un modelo institucionalizado de intercambio de mensajes.
Tras esta etapa, se pasar´ıa al dise˜no a alto nivel, su objetivo es generar tres modelos: el modelo de agentes que define los tipos de agente que existen, cu´antas instancias de cada tipo y qu´e papeles juega cada agente, el modelo de servicios que identifica los servicios (funciones del agente)
2.3. SISTEMAS MULTI-AGENTES (SMA) 39 asociados a cada rol, y un modelo de conocidos, que define los enlaces de comunicaciones que existen entre los agentes.
Esta metodolog´ıa s´olo busca especificar c´omo una sociedad de agentes co- labora para alcanzar los objetivos del sistema, y qu´e se requiere de cada uno para lograr esto ´ultimo.
Vowel Engineering (Vocales)
El t´ermino Vowel Engineering viene de que el sistema final depende de la ordenaci´on y agrupamiento de aspectos identificados por cuatro vocales. A( por agentes), E (por entorno), I (por interacciones) y O (por organi- zaci´on). Para cada aspecto, se utilizan componentes t´ecnicas espec´ıficas. Para representar agentes se usan desde simples aut´omatas hasta comple- jos sistemas basados en conocimiento. La forma de ver las interacciones van desde modelos f´ısicos (propagaci´on de onda en el medio f´ısico) hasta los actos del habla (speech acts). Las organizaciones van desde aquellas inspiradas en modelos biol´ogicos hasta las gobernadas por leyes sociales basadas en modelos sociol´ogicos.
Figura 2.15: Arquitectura de capas del Sistema Multi-Agente en Vowel Engi- neering [36]
El prop´osito de esta metodolog´ıa es lograr librer´ıas de componentes que den soluciones al dise˜no de casa uno de estos aspectos, para que posterior- mente, el dise˜nador seleccione un modelo de agente, un modelo de entorno, un modelo de interacciones y modelos de organizaci´on a instanciar (ver Figura 2.15).
Como ejemplo, Demazeau [36] propone para aspectos de interacci´on un lenguaje para la descripci´on de protocolos de interacci´on basados en pro- cesos de comunicaci´on s´ıncronos o as´ıncronos donde la sem´antica es muy similar a la de los actos del habla. La representaci´on en s´ı se hace mediante redes de transici´on en las que los arcos se corresponden con los mensajes intercambiados y los estados reflejan la situaci´on global.
El proceso de desarrollo consiste en tener en cuenta los elementos se˜nala- dos por las vocales en un cierto orden. El orden se decide en funci´on del
40 CAP´ITULO 2. ESTADO DEL ARTE
tipo de sistema que queramos tener. Por ejemplo, si se empieza por la vocal O, se tendr´a un sistema en el que las relaciones sociales son lo m´as importante. Si se empieza por la A, se tendr´a un sistema en el que proba- blemente la organizaci´on surja como resultado de la interacci´on de agentes aislados.
MAS-CommonKADS
MAS-CommonKADS extiende CommonKADS [42] aplicando ideas de me- todolog´ıas orientadas a objetos para su aplicaci´on a la producci´on de sis- temas multi-agentes [37]. Esta metodolog´ıa gira en torno del modelo de experiencia y est´a pensada para desarrollar sistemas expertos que inter- act´uen con el usuario. Considera s´olo dos agentes b´asicos: el usuario y el sistema. Extiende los modelos de CommonKADS para tener en cuenta la posibilidad de que dos o m´as componentes del sistema interact´uen. Fue la primera metodolog´ıa en plantear un desarrollo de SMA integrado con un ciclo de vida de software, concretamente con el ciclo de vida espiral dirigido por riesgos.
Propone siete modelos para la definici´on del sistema: agente, tareas, ex- periencia, coordinaci´on, comunicaci´on, organizaci´on y dise˜no. El modelo parte de una descripci´on gr´afica que luego se completa con explicaciones en lenguaje natural de cada elemento. Cada modelo cuenta con una des- cripci´on de las dependencias respecto a otros modelos y de las actividades involucradas. Estos modelos se describen en lenguaje natural, comple- ment´andose con otras notaciones para describir el comportamiento de los agentes cuando interaccionan.
BDI
Las arquitecturas BDI se inspiran en un modelo cognitivo del ser humano [38]. Seg´un esta teor´ıa, los agentes utilizan un modelo del mundo, una re- presentaci´on de c´omo se les muestra el entorno. El agente recibe est´ımulos a trav´es de sensores ubicados en el mundo. Estos est´ımulos modifican el modelo del mundo que tiene el agente. Para guiar sus acciones, el agente tiene Deseos. Un deseo es un estado que el agente quiere alcanzar a trav´es de intenciones. ´Estas son acciones especiales que pueden abortarse debido a cambios en el modelo del mundo.
Para especificar el sistema de agentes, se emplean un conjunto de modelos que operan a dos niveles de abstracci´on: externo e interno. Desde el punto de vista externo, un sistema se modela como una jerarqu´ıa de herencia de clases de agentes, de la que los agentes individuales son instancias. Las clases de agente se caracterizan por su prop´osito, sus responsabilidades, los servicios que ejecutan, la informaci´on acerca del mundo que necesitan y las interacciones externas. Desde el punto de vista interno, se emplean un conjunto de modelos que permiten imponer una estructura sobre el estado de informaci´on y motivaci´on de los agentes y las estructuras de control
2.3. SISTEMAS MULTI-AGENTES (SMA) 41 que determinan a su comportamiento (creencias, objetivos y planes en este caso).
En esta metodolog´ıa la integraci´on con el ciclo de vida de software es re- ducida.
JADE
JADE implementa un modelo integrado por tres elementos principales: agentes, comportamiento y comunicaci´on.
En la secci´on de Agentes se definen aquellos agentes que integrar´an el SMA. Estos son entidades de software que est´an localizadas en una ´unica plataforma. Una plataforma de agentes es un entorno de ejecuci´on en donde los agentes est´an ejecut´andose.
El comportamiento de los agentes consiste en una asignaci´on directa de las tareas que van a realizar, indicadas de manera individual. Tambi´en ofre- ce un elemento de comunicaci´on que permite el enlace entre los diversos agentes dentro de la plataforma.
JaCaMo
El modelo utilizado por JaCaMo consiste en la integraci´on de 4 dimensio- nes: Agentes, Entorno, Interacci´on y Organizaci´on.
La dimensi´on Agente consiste en la definici´on de todos los agentes necesa- rios para el funcionamiento del SMA a implementar. Los agentes contienen planes, intenciones y creencias ´utiles para actuar y comunicarse dentro de su entorno.
La dimensi´on entorno consiste en la definici´on abstracta de la actividad realizada mediante la definici´on de artefactos que son la representaci´on de objetos utilizados desarrollo de la actividad.
Dentro de la dimensi´on de Interacci´on se definen todas las interacciones necesarias para que los agentes trabajen en conjunto, pueden darse me- diante intercambio de mensajes.
Por ´ultimo esta la dimensi´on de Organizaci´on, esta es una estructura que describe las interacciones y otras relaciones con el fin de cumplir con un objetivo en com´un entre los integrantes de la organizaci´on. Se tiene una estructura basada en roles, una definici´on funcional donde se definen las tareas que deben realizar y por ´ultimo se definen reglas que indican el funcionamiento de la actividad colaborativa entre agentes.
De los modelos anteriormente descritos se resalta JADE y JaCaMo, ya que estos proporcionan una tecnolog´ıa particular para el desarrollo de SMA.
JADE( Java Agent Development Framework), es un framework que es implementado en Java. Simplifica el desarrollo de sistemas multi-agentes, en base en especificaciones que la Foundation for Intelligent Physical Agents (FI- PA) a establecido. Proporciona un conjunto de interfaces para el desarrollo de
42 CAP´ITULO 2. ESTADO DEL ARTE
agentes implementados en Java. Usa el lenguaje de comunicaci´on de agentes FIPA, haciendo uso de una combinaci´on de socket, RMI y CORBA.
Por otro lado JaCaMo [40] es un framework para la programaci´on de SMA que combina tres tecnolog´ıas:Jasonpara la programaci´on de la dimensi´on de agentes aut´onomos, CartAgo para programar la dimensi´on entorno mediante artefactos y Moise que permite la programaci´on de la dimensi´on de organizaci´on de multi-agentes. Una visi´on general de c´omo JaCaMo combina estar tecnolog´ıas en diferentes niveles de abstracci´on se puede observar en la Figura 2.16.
Figura 2.16: Visi´on general de JaCaMo [40]
Jason es una extensi´on de AgentSpeak (L) y est´a basado en la arqui- tectura BDI compuesta por una base de creencias, metas, planes y eventos. Las creencias representan el estado actual del agente y de los dem´as agentes as´ı como tambi´en la informaci´on del medio ambiente en el que se est´a situado, estas son representadas por una colecci´on de literales como en la l´ogica tradicio- nal de la programaci´on. Las metas corresponden a la tarea que el agente tiene que lograr. Los planes son cursos de acci´on, ya sean internos o externos, son desencadenados por eventos que los agentes pueden tener din´amicamente, son instanciados y ejecutados para alcanzar los objetivos de los agentes. Los eventos est´an relacionados con los cambios de la base de creencias de los agentes o sus objetivos.
CartAgopermite programar el entorno de trabajo en t´erminos de un con- junto de entidades llamadas artefactos. Cada artefacto representa un recurso o herramienta que los agentes necesitan para lograr sus metas, estos pueden crear instancias, compartir, usar y percibir en tiempo de ejecuci´on. Los artefactos son similares a los objetos en el paradigma orientado a objetos, estos permiten a los agentes interactuar con su ambiente desde una capa de abstracci´on de alto nivel.
2.4. TRABAJOS RELACIONADOS 43 Los agentes y artefactos se comunican por medio de acciones y percepciones. Un artefacto est´a compuesto por un conjunto de operaciones y un conjunto de propiedades observables. Las operaciones de los artefactos representan acciones externas provistas por el agente para el ambiente. Las propiedades observables y las se˜nales equivalen las percepciones del agente. Los artefactos pueden li- garse entre s´ı, de manera de que un artefacto pueda disparar la ejecuci´on de operaciones de otro artefacto .
Moisees la tecnolog´ıa que permite programar la dimensi´on para el modelo organizacional de un sistema multi-agente. Una organizaci´on se describe desde el punto de vista estructural en t´erminos de grupos y roles; desde un punto de vista funcional en t´erminos de esquema social que incluye las metas sociales que un agente debe cumplir y las misiones que agrupan las metas. Y desde el punto de vista normativo que contiene las normas, estas hacen relaci´on a las misiones que realizar´an los roles que adopten los agentes.
2.4.
Trabajos Relacionados
En la literatura actual, existen trabajos relacionados, que integran la tec- nolog´ıa Multi-agente en ambientes distribuidos como lo son las herramientas Groupware. Se rescatan tres trabajos [43],[44] y [45].A continuaci´on se mencio-