Metodologías Para El Desarrollo De Sistemas Multi-agente
piojapotter8 de Abril de 2012
6.126 Palabras (25 Páginas)599 Visitas
Inteligencia Artificial, Revista Iberoamericana de Inteligencia Artificial. No.18 (2003), pp. 51-63.
ISSN: 1137-3601. © AEPIA (http://www.aepia.dsic.upv.es/).
Metodologías para el desarrollo de sistemas multi-agente
Jorge J. Gómez Sanz
Departamento de Sistemas Informáticos y Programación
Facultad de Informática, Universidad Complutense,
Avda. Complutense s/n
Madrid, 28001
jjgomez@sip.ucm.es
Resumen
Apoyándose en los resultados de la investigación en agentes y Sistemas Multi-Agente, surge una línea de
trabajo cuyo propósito es consolidar la experiencia adquirida en forma de metodologías. Estas metodologías
proporcionan medios para construir Sistemas Multi-Agente de forma disciplinada y repetible. En este trabajo
se presenta un resumen de lo que proponen las metodologías actuales. Ante la imposibilidad de revisar todas y
cada una de las existentes, se ha optado por seleccionar un conjunto significativo cercano a las prácticas de
ingeniería del software. La selección atiende a la presencia de un proceso de desarrollo, el combinar diferentes
vistas para describir el sistema, e incorporar elementos asociados al área de los agentes. Como resultado, se
tienen siete metodologías relevantes. A lo largo del artículo, se estudian las aportaciones de estas metodologías
cara a un desarrollo.
Palabras clave: metodologías, agentes, sistemas multi-agente, ingeniería del software
1 Introducción
En la última década ha cobrado fuerza la hipótesis
de que si los programas que componen los sistemas
distribuidos fueran inteligentes, si pudiesen
reorganizar sus funciones para corregir o tolerar los
fallos y si su coordinación pudiese estructurarse en
términos intuitivos, el diseño y el mantenimiento de
dichos sistemas sería más fácil de elaborar, más
adaptable y más fiable.
En la construcción de estos programas se está
aplicando una tecnología íntimamente relacionada
con la inteligencia artificial. Se trata de los agentes
que, de momento, se entenderán como programas
autónomos e inteligentes. Bajo el punto de vista de
esta tecnología, los sistemas distribuidos pasan a ser
Sistemas Multi-Agente (SMA). Los SMA se
desarrollan sobre middleware1 y proporcionan un
nuevo nivel de abstracción más intuitivo. El diseño
de SMA, generalmente, se aborda pensando en los
agentes como entes con motivación. En lugar de
modelar un sistema con componentes que ejecutan
métodos, el desarrollador tiene que pensar en los
objetivos que los comp onentes deben alcanzar y en
las tareas necesarias para que lo consigan. Al
desarrollar los componentes así, se espera que el
proceso sea más intuitivo ya que esta forma de
modelar y de razonar se halla más cerca del
pensamiento humano que los paradigmas de
programación tradicionales [Bratman 87].
La construcción de SMA integra tecnologías de
distintas áreas de conocimiento: técnicas de
ingeniería del software para estructurar el proceso
de desarrollo; técnicas de inteligencia artificial para
dotar a los programas de capacidad para tratar
situaciones imprevistas y tomar decisiones, y
programación concurrente y distribuida para tratar
la coordinación de tareas ejecutadas en diferentes
máquinas bajo diferentes políticas de planificación.
Debido a esta combinación de tecnologías, el
desarrollo de SMA se complica.
Existen plataformas de desarrollo que dan
soluciones parciales al modelado de
comportamiento y a la coordinación de agentes. El
rango de estas soluciones va desde proporcionar
servicios básicos (gestión de agentes, librerías de
algoritmos, localización de agentes o movilidad),
como JADE [Bellifemine et al. 01], Grasshopper
[Baümer et al. 00] o ABLE [IBM 03], hasta
1 Se denomina middleware a software cuyo cometido
es unir o mediar entre varios programas
aislados
entornos de desarrollo donde se parametrizan
armazones (framework) software, como ZEUS
[Nwana et al. 99] o AgenTool [Wood et al. 00].
Aunque facilitan el proceso, las plataformas de
desarrollo quedan incompletas sin un proceso de
desarrollo de software especializado para agentes
que haga similar la creación de SMA a la
producción de software convencional. Las técnicas
convencionales de ingeniería (Unified Process
[Jacobson et al. 00], CommonKADS [Tansley et al.
93]) no tienen en cuenta las necesidades de
especificación de los SMA, como la especificación
de planificación de tareas, intercambio de
información con lenguajes de comunicación
orientados a agentes, movilidad del código o
motivación de los componentes del sistema. Por
ello, se plantean nuevas metodologías basadas en
agentes (BDI [Kinny et al. 97], Vowel Engineering
[Ricordel 01], MAS-CommonKADS [Iglesias
98][Iglesias et al. 98b], GAIA [Wooldridge et al.
00]). Estas metodologías parten de un modelo,
informal en la mayoría de casos, de cómo debe ser
un SMA y dan guías para su construcción. En las
primeras metodologías, las guías consistían en una
lista breve de pasos a seguir. Las más modernas,
aunque han progresado en la integración con la
ingeniería del software clásica, aún no muestran la
madurez que se puede encontrar en metodologías
convencionales como el Unified Process. El motivo
principal es que siguen faltando herramientas de
soporte y un lenguaje para la especificación del
SMA que permitan trabajar de forma similar a como
se trabaja en Rational Rose, TogetherJ o Paradigm+.
De entre las metodologías existentes, se ha
seleccionado un conjunto utilizando tres criterios:
utilización de diferentes vistas para la especificación
del sistema, incorporar la idea de proceso de
desarrollo, e integrar técnicas de ingeniería y teoría
de agentes. De acuerdo con estos criterios, se han
identificado siete metodologías. La primera es la
ingeniería de vocales (vowel engineering)
[Demazeau 95] que fue una de las primeras en
considerar diferentes aspectos (agentes, entorno,
interacciones y organización) en el desarrollo de
SMA. La segunda es MAS-CommonKADS
[Iglesias 98][Iglesias et al. 98b] que, debido a su
origen (CommonKADS [Tansley et al. 93]), se trata
de una metodología orientada al desarrollo
utilizando experiencia en sistemas expertos. A
continuación el diseño basado en BDI [Kinny et al.
97] que ha influido notablemente en la forma de
concebir el control de los agentes. Después, se
estudian dos metodologías soportadas por
herramientas: ZEUS [Nwana et al. 99] y MaSE
[DeLoach 01]. Seguidamente, se estudia GAIA
[Wooldridge al. 00], de gran influencia, que estudia
la definición de vistas en una metodología y trata de
integrarse en un ciclo de vida de software tipo
cascada. Por último, INGENIAS [Gomez et al.
02][Gomez 02], creada a partir del trabajo de
MESSAGE [Caire et al. 02] en la que el autor de
este trabajo participó activamente.
Tras la presentación de estas metodologías, se
presenta una sección para orientar en la elección de
una metodología, otra en la que se dan referencias
de trabajos en la evaluación de metodologías y una
última orientada a proporcionar más información y
otros puntos de vista acerca de las metodologías
existentes.
2 Vowel Engineering
Se trata de la metodología seguida en el grupo
MAGMA [MAGMA 03]. El término vowel
engineering viene de que el sistema final depende
de la ordenación y agrupamiento de aspectos
identificados por cuatro vocales: A (por agentes),
E(por entorno), I (por interacciones) y O (por
organización). Para cada aspecto, se utilizan
componentes y técnicas específicas. Para representar
agentes se u desde simples autómatas hasta
complejos sistemas basados en conocimiento. La
forma de ver las interacciones van desde modelos
físicos (propagación de onda en el medio físico)
hasta los actos del habla (speech acts). Las
organizaciones van desde aquellas inspiradas en
modelos biológicos hasta las gobernadas por leyes
sociales basadas en modelos sociológicos.
Figura 1. Arquitectura de capas del Sistema
Multi-Agente en Vowel Engineering
El propósito de Vowel engineering es lograr
librerías de comp onentes que den soluciones al
diseño de cada uno de estos aspectos, para que
posteriormente, el diseñador seleccione un modelo
de agente, un modelo de entorno, un modelo de
interacciones y modelos de organización a instanciar
(ver figura 1).
Como ejemplo, [Demazeau 95] propone para
aspectos de interacción un lenguaje para la
descripción de protocolos de interacción basados en
procesos de comunicación síncronos o asíncronos
donde
...