Metodologías Para El Desarrollo De Sistemas Multi-agente
Enviado por piojapotter • 8 de Abril de 2012 • 6.126 Palabras (25 Páginas) • 581 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
...