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]. 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]:

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]:

¿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]: 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.

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]:

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]:

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]:

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:

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