ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Metodologías Para El Desarrollo De Sistemas Multi-agente

piojapotter8 de Abril de 2012

6.126 Palabras (25 Páginas)599 Visitas

Página 1 de 25

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

...

Descargar como (para miembros actualizados) txt (48 Kb)
Leer 24 páginas más »
Disponible sólo en Clubensayos.com