Hacia una estandarización de los marcos de trabajo para Sistemas
Multi-Agentes
por Roberto
A. Flores-Mendez
Traddución por
Jordi Cabot
Introducción
Los agentes están por todas partes. La gente se encuentra diariamente
con agentes inteligentes, agentes de información, agentes móviles,
agentes asistentes personales, y algunos tipos más de agentes. Uno
puede preguntarse si se puede sacar algo en claro de esta aparente anarquía.
¿Qué es lo que caracteriza a un agente? ¿Tienen algo
en común? ¿Cómo podemos organizarlos para llevar a
cabo tareas?
Afortunadamente, no somos los primeros en hacernos estas preguntas,
y los investigadores ya han definido algunos conceptos de gran ayuda.
En primer lugar, es comúnmente aceptado que los agentes son entidades
dentro de un entorno, y que pueden sentir y actuar (no necesariamente en
este orden). Esto significa que los agentes no son entidades isoladas,
sino que son capaces de comunicarse y colaborar con otras entidades. Simplemente,
los agentes que no sean capaces de trabajar conjuntamente con otros agentes
(humanos incluidos) están destinados a ser virtualmente inútiles.
Una vez que los agentes están a punto para empezar a colaborar,
necesitan encontrar otros agentes con los que llevar a cabo la colaboración.
Ésta es una tarea fácil si saben exactamente qué agentes
contactar y dónde contactarlos. No obstante, una distribución
estática de los agentes es muy difícil que exista: la gente
está normalmente en movimiento y no siempre está disponible
para interactuar con los demás. Esto también es verdad para
los sistemas multi-agentes dinámicos: los agentes necesitan soporte
para encontrar a otros agentes.
La naturaleza dinámica de la distribución de los agentes
promueve la existencia de grupos que trabajen en la estandarización
de los sistemas de colaboración de multi-agentes dinámicos.
Algunos de estos grupos son Foundation for Intelligent Physical Agents
(FIPA), el Object Management Group (OMG), el Knowlegde-able Agent Oriented
System (KAoS) y el grupo General Magic.
Este artículo describe brevemente los esfuerzos de estos grupos
encaminados hacia la estandarización de las arquitecturas para sistemas
multi-agentes, y esboza el incipiente trabajo en la Universidad de Calgary
para definir estas arquitecturas. No obstante, el principal objetivo de
este artículo es dar al lector un visión básica de la
historia y la terminología en esta excitante área de investigación.
Historia
Aunque los investigadores en agentes vienen de una gran variedad de campos
diferentes, las comunidades de la Inteligencia Artificial Distribuida
(DAI- Distributed Artificial Intelligence) y la Computación
Distribuida (DC - Distributed Computing) sobresalen como las áreas
tradicionales de la investigación de agentes.
Mediada la década de los 70, investigadores de la DAI empezaron
a formular algunas de las teorías, arquitecturas y experimentos
básicos que mostraron (computacionalmente hablando) como la interacción
y la división del trabajo podían ser realmente aplicadas
a la resolución de problemas [15]. Los experimentos
mostraron que el comportamiento inteligente y racional no es exclusivo
de componentes aislados, sino que es un resultado que emerge de la interacción
de entidades con comportamientos simples [4,
10].
Mas recientemente, DC se ha convertido en una disciplina activa en la
investigación sobre agentes. DC tiene el reto de integrar componentes
informáticos heterogéneos, con una amplia autonomía
y que se expanden varias generaciones como parte de un entorno colaborador.
Desde esta perspectiva, los agentes son usados como entidades que interaccionen
para mediar en las diferencias entre componentes, proveyendo una sintaxis
uniforme y un papel de intermediario semánticamente consistente.
[21].
Visión general de los agentes
El término agente es difícil de definir. Los agentes son
normalmente definidos como entidades con atributos considerados útiles
en un dominio particular. Éste es el caso de los agentes inteligentes,
donde los agentes son vistos como entidades que emulan procesos mentales
o simulan un comportamiento racional; asistentes personales, donde los
agentes son entidades que ayudan a los usuarios a realizar una tarea; agentes
móviles, donde las entidades son capaces de vagar por una red para
conseguir sus objetivos; agentes de información, donde los agentes
filtran y organizan de forma coherente dados dispersos y no relacionados;
y agentes autónomos, donde los agentes son capaces de cumplir acciones
no supervisadas.
Atributos versus Atribuciones
Algunos investigadores han intentado dar una clasificación comprensible
de los atributos que un agente puede tener. Una lista de los atributos
comunes en los agentes se muestra a continuación [2].
-
Adaptación: la habilidad de aprender y mejorar con la experiencia.
-
Autonomía: Dirigidos por el objetivo, preactivos y
con un comportamiento propio.
-
Comportamiento colaborador: la habilidad de trabajar con otros agentes
para conseguir un objetivo común.
-
Capacidad de inferencia : la habilidad de actuar con especificaciones
abstractas.
-
Habilidad de comunicación a nivel de conocimiento: la habilidad
de comunicarse con otros agentes con un lenguaje más parecido a
los actos de comunicación humanos que a la típica comunicación
a nivel de símbolo de los protocolos entre programas.
-
Movilidad: la habilidad de migrar de la plataforma que lo contiene
a otra por su propia decisión.
-
Personalidad: la habilidad de manifestar atributos de un comportamiento
humano creíble.
-
Reactividad: la habilidad de sentir y actuar de una forma selectiva.
-
Continuidad temporal: persistencia de la identidad y del estado
durante largos periodos de tiempo.
De acuerdo con estos atributos, los agentes podrían ser clasificados
según mostraran de forma débil o fuerte el concepto de agencia
[24]. La idea débil de agencia
, que proviene de DC y DAI, ve a los agentes como el paradigma de una automatismo
cooperativo basado en red. La noción fuerte de agencia, proveniente
de la Artificial Intelligence (AI), lleva hacia una visión antropomórfica,
donde los agentes son vistos como entidades que tienen sensaciones, percepciones
y emociones como los humanos [26].
A pesar de todo, se ha establecido que los agentes no pueden estar caracterizados
solamente por sus atributos; necesitan estar clasificados basado en como
estos atributos son percibidos por los humanos. Se puede clasificar, de
forma simple, la manera de predecir el comportamiento según tres
puntos de vista [9]:
-
Punto de vista físico: las predicciones están basadas
en características y leyes físicas.
-
Punto de vista de diseño: las predicciones están basadas
en lo que el sistema está diseñado para hacer.
-
Punto de vista intencional: las predicciones están basadas
en asunciones de una agencia racional (creencias, intenciones, deseos,
etc).
Es interesante notar como la percepción humana de un comportamiento
inteligente influencia la definición de agencia:
``Nos ayuda a entender el porqué el llegar a una definición
definitiva del concepto de agente es tan difícil: lo que para
una persona es un agente inteligente para otra es una objeto listo; y lo
que hoy es un objeto listo, mañana será un programa inútil.
La clave de esta distinción está en nuestras expectativas
y en nuestro punto de vista" [2].
¿Qué queremos decir con agente?
Un aspecto de los agentes que es ampliamente mencionado en la literatura
es la noción de agente como una entidad interactiva que existe como
parte de un entorno compartido con otros agentes. Esta definición
de agente es cogida de las descripciones dadas por varios autores, que
describen los agentes como entidades conceptuales que perciben y actúan
[4, 33] de una forma
preactiva o reactiva [24] en un ambiente
dónde otros agentes existen y interactúan [34]
basados en una comunicación y representación del conocimiento
común [14].
Objetos versus Agentes
Los agentes y los objetos comparten muchas características; cosa
que a veces hace difícil el poder diferenciarlos. Por ejemplo,
la programación orientada a agentes (AOP- agent-oriented programming)
podría ser considerada como una especialización del paradigma
de la programación orientada a objetos (OOP - Object Oriented Programming).[34].
OOP ve los sistemas como un conjunto de objetos comunicándose entre
ellos para realizar operaciones internas, mientras que AOP se especializa
en ver agentes (en lugar de objetos), cuyas operaciones internas se basan
en creencias, capacidades y elecciones, que se comunican a los otros usando
mensajes adoptados de la teoría de la comunicación.
A pesar de que esta visión permite ver las similitudes entre
los agentes y los objetos, sus diferencias son menos obvias. Se han identificado
tres diferencias principales entre los agentes y los objetos:
``La primera es el grado en el que los agentes y los objetos
son autónomos. No pensamos en los agentes como invocadores de métodos
entre ellos, sino pidiendo la realización de acciones. En el caso
orientado a objetos, la decisión recae en el objeto que invoca el
método. En el caso de los agentes, la decisión recae en el
agente que recibe la petición.
``La segunda distinción importante... es respecto a la noción
de un comportamiento autónomo y flexible (reactivo, preactivo, social)
``La tercera distinción importante... es que se considera que
cada agente tiene su propio flujo de control ... en el modelo de objetos
estándar, hay un único flujo de control para todo el sistema''
[23].
Visión general de los Sistemas Multi-Agentes
Terminología
Como parte del estudio de los sistemas de agentes, los investigadores empezaron
a desarrollar (a propósito o no) terminología sobre agentes.
Algunos de estos términos son descritos a continuación [21]:
-
Las Arquitecturas de Agentes analizan los agentes como entidades
reactivas/preactivas independientes. Las arquitecturas de agentes conceptualizan
los agentes como un agregado de componentes de percepción, acción
y razonamiento. Los componentes de percepción alimentan los de razonamiento,
los cuales gobiernan las acciones de los agentes, incluyendo lo que se
va a percibir a continuación.
-
Las Arquitecturas de Sistemas de Agentes analizan los agentes como
entidades interactivas que proporcionan y consumen servicios. Las arquitecturas
de sistemas facilitan las operaciones y las interacciones de los agentes
bajo las restricciones del entorno, y les permiten aprovechar las facilidades
y los servicios disponibles.
-
Los Marcos de Trabajo de Agentes son herramientas de programación
para la construcción de agentes. Ejemplos de estas herramientas
son Voyager [30], Aglets [22],
y Odyssey [16].
-
Las Infraestructuras de los Agentes proporcionan las regulaciones
que los agentes siguen para comunicarse y entenderse entre ellos, permitiendo
así la compartición del conocimiento. Las infraestructuras
de los agentes se ocupan de los siguientes aspectos:
-
Ontologías: permiten a los agentes ponerse de acuerdo sobre
el significado de los conceptos.
-
Protocolos de comunicación: describen los lenguajes para
la comunicación entre agentes.
-
Infraestructuras de Comunicación: especifica los canales
para la comunicación entre agentes.
-
Protocolos de interacción: describe las convenciones para
la interacción entre agentes.
¿Qué es un Sistema Multi-Agente?
Se han propuesto varias definiciones , procedentes de diferentes disciplinas,
para el término sistema multi-agente (MAS: Multi-Agent System).
Visto por la DAI, un sistema multi-agente es una red poco acoplada de entidades
capaces de solucionar problemas, que trabajan conjuntamente para encontrar
respuesta a problemas que están más allá de la capacidad
y el conocimiento individual de cada entidad [11].
Más recientemente, se ha dado al termino sistema multi-agente un
significado más general, y actualmente es usado para definir todos
los tipos de sistemas compuestos por múltiples componentes autónomos
que poseen las siguientes características [23]:
-
Cada agente tiene capacidad para solucionar parcialmente el problema
-
No hay un sistema global de control
-
Los datos no están centralizados
-
La computación es asíncrona
Uno de los factores actuales ( y sin discusión uno de los más
importantes) que promueven la investigación en MAS, es la creciente
popularidad de Internet, que proporciona la base para un entorno o ambiente
abierto donde los agentes interactúan para conseguir sus objetivos
individuales o colectivos. Para interactuar en este entorno, los agentes
tiene que superar dos problemas: tienen que ser capaces de encontrarse
(los agentes pueden aparecer, desaparecer o moverse en cualquier momento)
unos a otros; y tienen que ser capaces de interactuar [23].
Encontrando Agentes
Es necesario un mecanismo para avisar, encontrar, fusionar, usar, presentar,
gestionar y actualizar los servicios y la información de los agentes.
Se propuso la noción de agentes intermedios (middle agents)[7]
para proporcionar estas necesidades. Los agentes intermedios son entidades
a las que otros agentes comunican sus capacidades y que ni proveen ni solicitan
servicios desde el punto de vista de la transacción que se está
considerando en ese momento. La ventaja de los agentes intermedios es que
permiten a los MAS operar de una forma robusta a pesar de tener que afrontar
la aparición, desaparición y movilidad de los agentes.
Hay varios tipos de agentes que entran dentro la definición de
agentes intermedios. Estos tipos de agentes, descritos a continuación,
están definidos tan vagamente que a veces es difícil hacer
una diferenciación clara entre ellos.
-
Facilitadores: agentes a los cuales otros agentes subordinan su
autonomía a cambio de sus servicios [2].
Los facilitadores pueden coordinar las actividades de los agentes y pueden
satisfacer peticiones en beneficio de sus agentes subordinados.
-
Mediadores: agentes que explotan el conocimiento codificado para
crear servicios de más alto nivel para las aplicaciones [37].
-
Brokers: agentes que reciben peticiones y realizan acciones usando
servicios de otros agentes en conjunción con sus propios recursos
[8].
-
Buscadores de pareja (Matchmakers) y Páginas amarillas: agentes
que asisten a los que solicitan un servicio para buscar un proveedor de
servicios, basándose en las capacidades comunicadas anteriormente
[3, 8].
-
Pizarras: Repositorio de agentes que recibe y trata peticiones de
proceso para otros agentes [28, 6].
Interacciones entre Agentes
La capacidad de interacción es una de las más importantes
de los agentes [29]. Dicho de otra forma, los agentes
interaccionan de forma recurrente para compartir información y realizar
las tareas para conseguir sus objetivos. Los investigadores en lenguajes
de comunicación entre agentes mencionan tres elementos clave para
conseguir la interacción multi-agente [14,
21,
32]:
-
Un lenguaje y un protocolo de comunicación común.
-
Un formato común del contenido de la comunicación
-
Una ontología compartida
Lenguaje de comunicación entre agentes
Hay dos aproximaciones principales para diseñar un lenguaje de comunicación
entre agentes [17]. La primera aproximación
es procedural, donde la comunicación se basa en un contenido
ejecutable. Esto podría hacerse usando lenguajes de programación
como Java [1] o Tcl [30].
La segunda aproximación es declarativa, donde la comunicación
está basada en sentencias declarativas, como definiciones, asunciones,
etc. Debido a las limitaciones de las aproximaciones procedimentales (e.g.
el contenido ejecutable es difícil de controlar, coordinar y mezclar),
los lenguajes declarativos son los preferidos para el diseño de
lenguajes de comunicación entre agentes. La mayor parte de las implementaciones
de lenguajes declarativos están basadas en actos ilocutivos,
como peticiones o órdenes; a estas acciones se les llama normalmente performativas.
Uno de los lenguajes declarativos más populares es KQML.
KQML
KQML, acrónimo de Knowledge Query and Manipulation Language
[18], fue concebido tanto como un
formato de mensajes como un protocolo de manejo de mensajes para el soporte
de la comunicación en tiempo real para el intercambio de conocimiento
entre agentes [14]. Este lenguaje puede verse
dividido en tres capas: una capa de comunicaciones (que describe los parámetros
de la comunicación a bajo nivel, como el emisor, el receptor, y
los identificadores de la comunicación); la capa de mensajes (que
contiene una performativa y que indica el protocolo de la interpretación);
y la capa de contenidos (que contiene información relativa a la
performativa enviada).
(register
:sender agentA
:receiver agentB
:reply-with message2
:language common_language
:ontology common_ontology
:content ``(ServiceProvision Manufacturing:TaskDecomposition)''
)
Figura 1. Ejemplo de un mensaje en KQML .
El formato de un mensaje en KQML se muestra en la Figura
1. El mensaje del ejemplo empieza con la palabra "register" , que es
la acción (Performativa) que intenta el mensaje. El resto del mensaje
contiene las palabras clave para las capas de mensaje y comunicación.
Las palabras clave usadas en los mensajes KQML se definen de la siguiente
manera [25]:
-
sender: agente que envía el mensaje.
-
receiver: agente que recibe el mensaje.
-
from: emisor original; usado cuando el mensaje es enviado a través
de agentes intermediarios.
-
to: receptor final; usado cuando el mensaje es enviado a través
de agentes intermediarios.
-
in-reply-to: identificador del mensaje que ha disparado el envío
de este mensaje.
-
reply-with: identificador usado por el mensaje que conteste a este
mensaje.
-
language: lenguaje para interpretar la información en el
campo de contenido de este mensaje.
-
ontology: identifica la ontología para interpretar la información
en el campo de contenido de este mensaje.
-
content: Información específica del contexto que permite
describir las características específicas del mensaje.
Ontologías
Las ontologías se definen como los esquemas de especificación
dónde se describen los conceptos y sus relaciones en el dominio
del discurso [14]. Es importante que los agentes
no sólo tengan ontologías para conceptuar un dominio, sino
que además tengan ontologías con parecidas construcciones.
Estas ontologías, si existen son llamadas ontologías comunes.
Una vez que los agentes que interaccionan se han puesto de acuerdo en una
ontología común, se espera que usen esta ontología
para interpretar las comunicaciones durante la interacción, llegando
a una comprensión mútua (y en última instancia) a
un comportamiento predecible. La ontolingua [20]
es normalmente mencionada como un sistema que proporciona el vocabulario
para la definición de ontologías reusables, portables y compartibles.
Las definiciones de ontolingua son descritas usando una sintaxis y una
semántica similar a la del Knowledge Interchange Format
[19], también conocido como KIF, que es
un formato para estandarizar los esquemas de representación del
conocimiento basado en la lógica de primer orden.
Revisión de las Arquitecturas MAS
El diseño de los programas de ordenador como sistemas multi-agentes,
presenta un paradigma útil de la ingeniería del software
donde los sistemas son descritos como agentes resolvedores de problemas
individuales, persiguiendo objetivos de más alto nivel. A pesar
de que esta abstracción parece prometedora, todavía no ha
sido adoptada masivamente por los diseñadores de sistemas. Una razón
es que el desarrollo de MAS es técnicamente difícil. Los
esfuerzos no sólo tienen que superar el desafío que representan
los problemas de la programación distribuida, sino que también
tienen que superar las complexidades asociadas al soporte de la colaboración
entre agentes.
Si el paradigma orientado al agente tiene éxito, se necesitarán
metodologías sistemáticas para especificar y estructurar
aplicaciones como sistemas multi-agentes. Una vez haya un acuerdo respecto
a estas metodologías, será sólo cuestión de
tiempo que aparezcan entornos para el desarrollo de MAS y que la tecnología
de agentes sea accesible a una amplia variedad de desarrolladores de software.
Estandarización de las Arquitecturas MAS
A pesar de que la investigación en agentes empezó hace más
de dos décadas, muy pocos esfuerzos se han dirigido a conseguir
una arquitectura MAS aceptable. Es posible que una de las razones de esta
ausencia de consenso sea el error común en círculos de investigación,
de que los marcos de trabajo y las arquitecturas MAS necesitan ser
diseñados desde el principio para poder soportar los requerimientos
del proyecto [39]. Aunque este enfoque
puede ser eficiente en tiempo para proyectos individuales, crea sistemas
incompatibles que son difíciles de reutilizar de un proyecto a otro.
Además puede esperarse que la amplia adopción de la tecnología
MAS sólo empezará después de la formalización
y estandarización de las arquitecturas, mecanismos y protocolos
que soporten una interacción distribuida entre agentes [35].
Recientemente, algunos grupos de investigación y grupos industriales
independientes empezaron a perseguir la estandarización de la tecnología
multi-agente. Esfuerzos importantes, como los del Object Manager
Group (OMG), la Foundation for Physical Agents (FIPA), el grupo Knowledge-able
Agent-oriented System (KAoS), y el grupo General Magic, se describen brevemente
a continuación.
El Modelo OMG
El grupo OMG propone un modelo de referencia como pauta para el desarrollo
de las tecnologías de agentes [35].
Este modelo esboza las características de un entorno de agentes
compuesto por agentes (i.e., componentes) y agencias (i.e., lugares) como
entidades que colaboran usando patrones generales y políticas de
interacción. Bajo este modelo, los agentes se caracterizan por sus
capacidades (e.g., inferencia, planificación, etc), el tipo de interacción
(e.g., síncrona, asíncrona), y la movilidad (e.g., estática,
movible con o sin estado). Las agencias, por otro lado, soportan la ejecución
concurrente de los agentes y su movilidad, entre otras cosas.
El Modelo FIPA
La Foundation for Intelligent Physical Agents (FIPA) es un grupo multi-disciplinar
que persigue la estandarización de las tecnologías de agentes.
Esta organización ha puesto a disposición una serie de especificaciones
para dirigir el desarrollo de sistemas multi-agentes. Particularmente importante
son las especificaciones de su Agent Management [12]
y su Agent Communication Language [13]. La aproximación
de FIPA al desarrollo de MAS es basado en "un mínimo marco para
la gestión de los agentes en un entorno abierto.'' Este marco de
trabajo es descrito usando un modelo de referencia (que especifica la normativa
del entorno donde los agentes existen y operan), y una plataforma de agentes
(que especifica una infraestructura para el despliegue y la interacción
de los agentes).
El Modelo KAoS
Otro esfuerzo de estandarización importante es el perseguido por
los investigadores del Knowledge-able Agent-oriented System [3].
Este sistema, también conocido como KAoS, es descrito como ``una
arquitectura distribuida abierta para los agentes software". La arquitectura
de KAoS describe las implementaciones de los agentes (empezando por
la noción de un agente simple y genérico, hasta los agentes
con el papel de mediadores y buscadores de pareja) y describe ampliamente
las interacciones dinámicas entre agentes a través de la
comunicación por mensajes, usando políticas de conversación.
El Modelo General Magic
General Magic es un esfuerzo comercial en el campo de la investigación
en tecnología para agentes móviles para el comercio electrónico.
Conceptualmente, esta tecnología modela un MAS como un mercado electrónico
dónde los consumidores y los proveedores de bienes y servicios pueden
encontrarse y realizar transacciones comerciales. Este mercado se modela
como una red de computadores soportando una colección de sitios
que ofrecen servicios a los agentes móviles. Los agentes móviles,
que son entidades que residen en un lugar particular en un momento concreto,
tienen las siguientes características [36]:
-
Pueden viajar de un lugar a otro
-
Pueden encontrarse con otros agentes, lo que les permite invocar el uno
al otro sus procedimientos
-
Pueden crear conexiones, para permitir a un agente comunicarse con
otro en un lugar diferente
-
Tienen autoridad para representar individuos y organizaciones del mundo real
-
Tienen permisos para indicar las capacidades de los agentes
Diseño de una Arquitectura MAS
Los departamentos de Informática y de Ingeniería Mecánica
de la Universidad de Calgary, han creado recientemente un grupo de investigación
para estudiar los sistemas multi-agentes. Este grupo, llamado Collaborative
Agents Group [5], ha adoptado algunas ideas de los modelos
descritos en las secciones anteriores para definir una arquitectura para
sistemas multi-agentes dinámicos y colaboradores. Esta arquitectura
será probada mapeando arquitecturas de fabricación multi-agentes
de más alto nivel, como MetaMorph [27],
en un entorno de agentes colaboradores.
La arquitectura modela un entorno abierto compuesto por áreas
de distribución lógicas, donde los agentes existen. Los agentes
básicos en esta arquitectura son los agentes mínimos, los
coordinadores locales de área, los servidores de páginas
amarillas, y los servidores de dominio cooperativos. Estos agentes son
descritos como:
-
Agentes mínimos: Son el común denominador abstracto
de todos los agentes de la arquitectura. Implementan la funcionalidad de
comunicación básica, necesaria en un interacción entre
agentes.
-
Coordinadores locales de área: Hay un coordinador local por
área. Los coordinadores locales de área coordinan y representan
a los agentes en su área, y les ayudan a iniciar interacciones entre
ellos. Además también proporcionan un servicio de directorio
de "páginas blancas" para los agentes del área.
-
Servidores de páginas amarillas: Son responsables de guardar
y tener disponible información sobre los servicios ofrecidos por
los agentes.
-
Servidores de dominio cooperativos: Proporcionan un entorno virtual
que soporta la comunicación y el intercambio de información
multi-agente. Estos entornos, llamados dominios cooperativos, permiten
a los agentes suscribir, intercambiar mensajes, y acceder a información
compartida.
Simplificando, un MAS es un entorno compuesto por áreas. Cada área
tiene que tener un coordinador local de área, que es un agente que
ayuda a los demás agentes del área. Los agentes pueden identificarse
como presentes en el área si se han registrado con el coordinador
local del área. Los agentes usarán los servicios de los coordinadores
locales del área para acceder a otros agentes del sistema. Los agentes
pueden notificar sus servicios y descubrir cuáles son los servicios
que ofrecen otros agentes a través de los servidores de páginas
amarillas. Los agentes que necesiten compartir datos con otros agentes
pueden juntarse en entornos virtuales llamados dominios cooperativos, soportados
por los agentes servidores de dominios cooperativos.
Conclusiones
El paradigma de los sistemas multi-agentes promete ser una abstracción
de la ingeniería del software valiosa para el desarrollo de sistemas
informáticos. Además, la amplia adopción de Internet
como un entorno abierto y la creciente popularidad de los lenguajes de
programación independientes de plataforma, como Java, hacen de la
amplia adopción de la tecnología multi-agente un objetivo
asequible.
En consecuencia, puede valer la pena invertir tiempo en leer y entender
los conceptos de este tema. Lecturas más serias sobre los agentes
son las compilaciones de artículos de investigación publicados
anteriormente en conferencias y jornadas especializadas. La naturaleza
técnica de estos artículos hace difícil al lector
no iniciado conseguir una integración coherente de la información
para formarse una marco de trabajo a alto nivel. Debido a esto, la
motivación de este artículo era proporcionar a los lectores
una perspectiva global sobre la investigación en sistemas multi-agentes.
Además, este artículo introduce brevemente algunas de
las nociones básicas en el diseño de arquitecturas para sistemas
multi-agente desarrolladas en la Universidad de Calgary, esfuerzo que promete
ser una contribución fructífera al área de investigación
en agentes.
Agradecimientos
Me gustaría agradecer al Collaborative Agents Group (CAG) en la
Universidad de Calgary, especialmente a mis supervisores (Rob Kremer, Niek
Wijngaards y Douglas Norrie) sus invalorables comentarios, sugerencias
y soporte, que me ayudaron a entender mejor las partes intrínsecas
de la investigación en multi-agentes. Parte del soporte para este
trabajo ha sido proporcionado por una donación de Smart Technologies,
Inc.
Referencias
-
1
-
Arnold, K. and Gosling, J. The
Java Programming Language. Addison-Wesley Publishing Co., second
edition. 1998.
-
2
-
Bradshaw, J.M. An Introduction to Software Agents. In: Software
Agents, J.M. Bradshaw (Ed.), Menlo Park, Calif., AAAI Press, 1997,
pages 3-46.
-
3
-
Bradshaw, J.M., Dutfield, S., Benoit, P. and Woolley, J.D. KAoS: Toward
An Industrial-Strength Open Agent Architecture. In: Software
Agents, J.M. Bradshaw (Ed.), Menlo Park, Calif., AAAI Press, 1997,
pages 375-418.
-
4
-
Brooks, R. A. Intelligence Without Reason. Massachusetts Institute
of Technology, Artificial Intelligence Laboratory, A.I. Memo Number 1293,
April, 1991.
-
5
-
CAG Collaborative Agents Group. 1998. Web site: http://sern.ucalgary.ca/cag/
(publications forthcoming)
-
6
-
Cohen, P.R., Cheyer, A., Wang, M., and Baeg, S.C. An open agent architecture.
In: Proceedings of the AAAI Spring Symposium. 1994.
-
7
-
Decker, K., Sycara, K. and Williamson, M. Middle-Agents for the Internet.
In: Proceedings of the International Joint Conferences on Artificial
Intelligence (IJCAI-97), January, 1997.
-
8
-
Decker, K., Williamson, M. and Sycara, K. Matchmaking and Brokering. In:
Proceedings
of the Second International Conference on Multi-Agent Systems (ICMAS-96),
December, 1996.
-
9
-
Dennett, D.C. The
Intentional Stance. MIT Press, Cambridge, Mass. 1987.
-
10
-
Durfee, E.H. What Your Computer Really Needs to Know, You Learned in Kindergarten.
In: Proceedings of the Tenth National Conference on Artificial Intelligence,
July 1992, pages 858-864.
-
11
-
Durfee, E.H., Lesser, V.R. and Corkill, D.D. Trends in Cooperative Distributed
Problem Solving. In: IEEE Transactions on Knowledge and Data Engineering,
March 1989, KDE-1(1), pages 63-83.
-
12
-
FIPA FIPA 97 Specification, Part 1: Agent Management. Foundation
for Intelligent Physical Agents, Version 1.2, October 10, 1997.
-
13
-
FIPA FIPA 97 Specification, Part 2: Agent Communication Language.
Foundation for Intelligent Physical Agents, Version 1.2, October 10, 1997.
-
14
-
Finin, T., Labrou, Y. and Mayfield, J. KQML as an Agent Communication Language.
In: Software
Agents, J.M. Bradshaw (Ed.), Menlo Park, Calif., AAAI Press, 1997,
pages 291-316.
-
15
-
Gasser, L. Foreword. In: Readings
in Agents, Huhns, M.N. and Singh, M.P. (Eds.), San Francisco, Calif.,
Morgan Kaufmann Publishers, 1998, pages v-vi.
-
16
-
General Magic Odyssey. 1998. Web site: http://www.genmagic.com/technology/odyssey.html
-
17
-
Genesereth, M. An Agent-based Framework for Interoperability. In: Software
Agents, J.M. Bradshaw (Ed.), Menlo Park, Calif., AAAI Press, 1997,
pages 317-345.
-
18
-
Genesereth, M. and Fikes, R. Knowledge Interchange Format, Version 3.0
Reference Manual, Technical Report, Computer Science Department, Stanford
University, USA., 1992.
-
19
-
Ginsberg, M. The Knowledge Interchange Format: The KIF of Death. In: AAAI
Magazine, Fall 1991, Volume 12, Issue 3, pages 57-63.
-
20
-
Gruber, T.R. A Translation Approach to Portable Ontology Specifications.
In: Proceedings of the Knowledge Acquisition for Knowledge-Based Systems
(KAW'93), Gaines, B.R. and Musen, M. (Eds.), Banff, Canada, 1993, pages
199-220.
-
21
-
Huhns, M.N. and Singh, M.P. Agents and Multi-agent Systems: Themes, Approaches,
and Challenges. In: Readings
in Agents, Huhns, M.N. and Singh, M.P. (Eds.), San Francisco, Calif.,
Morgan Kaufmann Publishers, 1998, pages 1-23.
-
22
-
IBM Aglets. 1998. Web page: http://www.trl.ibm.co.jp/aglets/
-
23
-
Jennings, N.R., Sycara, K. and Wooldridge, M. A Roadmap of Agent Research
and Development. In: Autonomous Agents and Multi-Agent Systems Journal,
N.R. Jennings, K. Sycara and M. Georgeff (Eds.), Kluwer Academic Publishers,
Boston, 1998, Volume 1, Issue 1, pages 7-38.
-
24
-
Jennings, N.R. and Wooldridge, M. Intelligent Agents: Theory and Practice.
In: The Knowledge Engineering Review, 1995, Volume 10, Number 2,
pages 115-152.
-
25
-
Labrou, Y. and Finin, T. A Proposal for a new KQML Specification.
TR CS-97-03, Computer Science and Electrical Engineering Department, University
of Maryland Baltimore County, Baltimore, February 1997.
-
26
-
Mamdani, A. The Social Impact of Software Agents. In: Proceedings of
the Workshop on The Impact of Agents on Communications and Ethics: What
do and don't we know?, Program presentation, Foundation for Intelligent
Physical Agents (FIPA), Dublin, July 15, 1998.
-
27
-
Maturana, F., Shen, W. and Norrie, D.H. MetaMorph: An Adaptive Agent-Based
Architecture for Intelligent Manufacturing. In: International Journal
of Production Research, 1998. (in press)
-
28
-
Nii, H.P. Blackboard Systems. In: The
Handbook of Artificial Intelligence, A. Barr, P.R. Cohen and E.A.
Feingenbaum (Eds.), Addison-Wesley, New York, 1989, Volume IV, chapter
XVI, pages 1-82.
-
29
-
Nwana, H.S. Software Agents: An Overview. In: The Knowledge Engineering
Review, October/November 1996, Volume 11, Number 3, pages 205-244.
-
30
-
ObjectSpace Voyager 2.0, User Guide. 1998. Web page: http://www.objectspace.com/developers/voyager/
-
31
-
Ousterhout J.K. Tcl: An Embedded Command Language. In: Proceedings of
the USENIX Conference, Winter 1990, pages 133-146.
-
32
-
Peng, Y., Finin, T., Labrou, Y., Chu, B., Long, J., Tolone, W.J. and Boughannam,
A. A Multi-Agent System for Enterprise Integration. In: Proceedings
of the Third International Conference and Exhibition on the Practical Application
of Intelligent Agents and Multi-Agent Technology, H.S. Nwana and D.T.
Ndumu (Eds.), London, UK, March, 1998, pages 155-169.
-
33
-
Russell, S.J. and Norvik, P. Artificial
Intelligence: A Modern Approach, Prentice Hall, Englewood Cliffs,
N.J., 1995.
-
34
-
Shoham, Y. An Overview on Agent-oriented Programming. In: Software
Agents, J.M. Bradshaw (Ed.), Menlo Park, Calif., AAAI Press, 1997,
pages 271-290.
-
35
-
Virdhagriswaran, S., Osisek, D. and O'Connor, P. Standardizing Agent Technology.
In: ACM StandardView, 1995, Volume 3, Number 3, pages 96-101.
-
36
-
White, J.E. Mobile Agents. In: Software
Agents, J.M. Bradshaw (Ed.), Menlo Park, Calif., AAAI Press, 1997,
pages 437-472.
-
37
-
Wiederhold, G. Mediators in the Architecture of Future Information Systems.
In: IEEE Computer, March 1992, pages 38-49.
-
38
-
Wiederhold, G. and Genesereth, M. Basis for Mediation. In: Proceedings
of the Third International Conference on Cooperative Information Systems
(COOPIS'95), Vienna, Austria, May 1995, pages 138-155.
-
39
-
Wooldridge, M.J. and Jennings, N.R. Pitfalls of Agent-Oriented Development.
In: Proceedings of the Second International Conference on Autonomous
Agents (Agents '98), K. P. Sycara and M. Wooldridge (Eds.), ACM Press,
May 1998.
Roberto A. Flores-Mendez es un estudiante de la Universidad de Calgary,
Canadá, donde está haciendo un doctorado en Ciencias de la
Computación. Sus áreas de interés incluyen los agentes
software, el diseño de sistemas multi-agentes, y temas de la informática
distribuida. Algunos de sus méritos anteriores incluyen un título
de Ingeniero en Sistemas de Computadores por el Instituto Tecnológico
y de Estudios Superiores de Monterrey (México) y un Master
en Ingeniería del Software por la Universidad de Calgary (Canadá).
En 1997, Roberto ganó el primer premio en el concurso ACM/IBM Quest
for Java por su herramienta de mapping jKSImapper. Puede contactar con él
vía mail a través de robertof@cpsc.ucalgary.ca
Copyright 1999 Roberto A. Flores-Mendez
¿Quiere más artículos de Crossroads acerca de
la Inteligencia Artificial? Vaya al
índice
al siguiente o al
anterior.
Last Modified:
Location: www.acm.org/crossroads/espanol/xrds5-4/multiagent.html