Agentes y Sistemas Multiagente
Agentes y Sistemas Multiagente
Agentes y Sistemas Multiagente
multiagente
Antonio Moreno i Ribas
PID_00200714
© FUOC • PID_00200714 Agentes y sistemas multiagente
Ninguna parte de esta publicación, incluido el diseño general y la cubierta, puede ser copiada,
reproducida, almacenada o transmitida de ninguna forma, ni por ningún medio, sea éste eléctrico,
químico, mecánico, óptico, grabación, fotocopia, o cualquier otro, sin la previa autorización escrita
de los titulares del copyright.
© FUOC • PID_00200714 Agentes y sistemas multiagente
Índice
Introducción............................................................................................... 5
Objetivos....................................................................................................... 6
1. Agentes inteligentes.......................................................................... 7
1.1. Características de un agente ....................................................... 7
1.2. Agentes deliberativos frente a agentes reactivos ......................... 9
1.2.1. Agentes reactivos ........................................................... 9
1.2.2. Arquitecturas de sistemas reactivos ............................... 11
1.2.3. Agentes deliberativos ..................................................... 12
1.2.4. Arquitectura BDI ............................................................ 13
1.3. Tipos de agentes .......................................................................... 15
1.3.1. Agentes de interfaz ........................................................ 16
1.3.2. Agentes de información ................................................ 19
2. Sistemas multiagente........................................................................ 23
2.1. Ventajas de los sistemas multiagente ......................................... 23
2.2. Técnicas de comunicación .......................................................... 25
2.2.1. Sistemas de pizarra ........................................................ 25
2.2.2. Paso de mensajes ........................................................... 27
2.3. Foundation for Intelligent Physical Agents ................................ 28
2.3.1. Arquitectura de un sistema multiagente ....................... 28
2.3.2. Lenguaje de comunicación entre agentes ..................... 30
2.3.3. Protocolos de comunicación ......................................... 32
2.4. Ontologías ................................................................................... 35
2.4.1. Objetos ........................................................................... 35
2.4.2. Acciones ......................................................................... 38
2.5. Cooperación entre agentes ......................................................... 39
2.5.1. Planificación global parcial ........................................... 40
Resumen....................................................................................................... 43
Actividades.................................................................................................. 45
Ejercicios de autoevaluación.................................................................. 45
Solucionario................................................................................................ 47
Glosario........................................................................................................ 51
Bibliografía................................................................................................. 52
© FUOC • PID_00200714 5 Agentes y sistemas multiagente
Introducción
Objetivos
2. Conocer las diferencias entre los sistemas reactivos y los deliberativos, y sa-
ber en qué circunstancias hay que utilizar cada uno de estos sistemas.
1. Agentes inteligentes
Normalmente, se suelen definir una serie de propiedades que deben tener los Nota
programas para que se los pueda considerar "agentes". Las más habituales son
Notad la importante diferencia
las siguientes: respecto a la "programación
orientada a objetos", ya que
un objeto no puede ignorar la
• Autonomía: un agente tiene que trabajar sin la intervención directa de hu- activación de sus métodos.
manos, y tiene que mantener el control sobre su estado interno y sus ac-
ciones (es decir, no se puede obligar a un agente a hacer una acción de-
terminada; en función de quién se lo pida, de su estado interno y de las
circunstancias externas, puede decidir si quiere llevar a cabo una acción
o no).
• Movilidad: un agente móvil podrá pasar físicamente de un ordenador a otro Web recomendada
por una red electrónica, y continuar su ejecución en el nuevo entorno.
En esta asignatura no trata-
remos del tema de los agen-
• Proactividad: un agente tiene que tener capacidad de tomar la iniciativa, y tes móviles. El lector in-
teresado puede encontrar
ser capaz de llevar a cabo acciones que puedan ser útiles para alcanzar sus más información en http://
agent.cs.dartmouth.edu/tuto-
objetivos sin que se le haya pedido explícitamente que las haga.
rials.
• Aprendizaje: un agente tiene que ser capaz de utilizar técnicas de aprendi- Ved también
zaje automático para ir mejorando su eficiencia y aumentar el rango de
Recordad el módulo anterior
problemas que es capaz de resolver. de "Aprendizaje".
La idea básica del modelo reactivo es que se pueden desarrollar sistemas inte-
ligentes a partir de agentes muy simples, que no tienen modelos simbólicos
internos del entorno. El comportamiento inteligente del sistema aparece de
manera emergente a partir de las interacciones entre estos agentes básicos.
Ejemplo: una hormiga individual es una entidad sin ninguna inteligencia ni capacidad
de razonamiento. En cambio, una colonia de hormigas es un sistema altamente comple-
jo, estructurado y eficiente, con un comportamiento global bastante inteligente. Dentro
del hormiguero no hay ningún lugar donde se tenga un modelo de la colonia y sus alre-
dedores, ni nadie que planifique la actividad de cada hormiga. El comportamiento inte-
ligente emana de manera natural a partir de las interacciones simples entre las hormigas
individuales.
• Dentro del sistema no se tiene una representación simbólica interna del en- Ved también
torno en el que está el agente (no se guarda ninguna representación del
Repasad el apartado 2.1 del
mundo en un conjunto de fórmulas de lógica de primer orden o en un módulo "Qué es la inteligencia
sistema basado en marcos). Recordad que la IA clásica está basada en la artificial" de la asignatura Inteli-
gencia artificial.
hipótesis del sistema de símbolos físicos, que afirma que se puede obtener un
© FUOC • PID_00200714 10 Agentes y sistemas multiagente
• Cada agente está formado por una colección de módulos que operan de
manera autónoma y son responsables de diferentes tareas (p. ej., recibir
información de sensores, controlar la actividad motora del agente, hacer
cómputos simples sobre los datos recibidos). Hay una comunicación mí-
nima, y de bajo nivel, entre los módulos. No hay ningún modelo global
del sistema en ninguno de los agentes, ni ningún módulo planificador ni
director de la actividad de un agente o del sistema.
Con estas características se pretende conseguir que los sistemas reactivos ex-
hiban una serie de propiedades interesantes:
Como no hay nadie encargado de planificar las actividades del sistema, la falta
o el fallo de alguno de los agentes del sistema no tendría que tener consecuen-
cias demasiado importantes.
b) Flexibilidad, adaptabilidad.
Los sistemas reactivos, como están guiados por reglas simples que se aplican
sobre los valores de los sensores, están pensados para adaptarse fácilmente a
los cambios dinámicos en su entorno. Por contra, los sistemas basados en el
© FUOC • PID_00200714 11 Agentes y sistemas multiagente
Como no hay ningún modelo del mundo, no se pueden llevar a cabo tareas
de razonamiento costosas o de planificación de secuencias de acciones. Sólo
hay que ejecutar la regla que trate el estado actual del mundo. Los sistemas
reactivos confían en que la mayor parte de la actividad diaria es rutinaria,
repetitiva, y no requiere mucho razonamiento.
• No es obvio cómo se tienen que diseñar estos sistemas para que emerja el
comportamiento global esperado.
• El diseñador tiene que pensar en todas las reglas necesarias para reaccionar
ante los datos que llegan del entorno. Hay que anticipar todas las situa-
ciones posibles futuras y la manera de actuar delante de cada una.
Brooks, del MIT, definió una arquitectura reactiva más compleja, conocida co- Nota
mo la arquitectura de subsunción. En este sistema, un agente está formado por
Notad que las tareas de cada
un conjunto de módulos. Cada uno de los módulos se encarga de hacer una ta- módulo dependen del domi-
rea específica (p. ej., evitar obstáculos o mover un objeto). Cada módulo mo- nio, mientras que el motor de
inferencia de un sistema basa-
nitoriza continuamente su entorno para detectar la aparición de ciertos tipos do en el conocimiento era in-
dependiente del dominio de
de situaciones y poder iniciar una reacción directa (p. ej., cuando se interpone aplicación.
un objeto delante del robot se puede activar el módulo de evitar obstáculos,
que determinará la acción que se tiene que hacer para no chocar con el objeto).
Los módulos de los niveles más bajos se encargan de tareas primitivas simples,
mientras que los módulos de los niveles más altos implementan patrones de
comportamiento más complejos. Puede haber una comunicación (muy limi-
tada y simple) entre dos módulos consecutivos. Cada módulo puede monito-
rizar las entradas y salidas del módulo inferior; eso permite que los módulos
superiores subsuman el comportamiento de los módulos inferiores (de ahí el
nombre de la arquitectura).
información del dominio. Estos dos elementos se toman como la base a partir
de la cual se puede llegar a obtener un comportamiento inteligente. Estos sis-
temas son los más habituales, y su capacidad de inferencia y planificación les
permite abordar problemas de gran dificultad en dominios complejos. A pesar
de eso, presentan una serie de inconvenientes que no tienen los reactivos:
• Hay que llegar a un compromiso entre la expresividad del lenguaje de repre- Ved también
sentación y la eficiencia de los procesos de razonamiento y planificación.
Repasad estos conceptos bási-
Por ejemplo, la lógica de primer orden es un lenguaje de representación de cos de la asignatura Lógica.
conocimiento bastante potente, pero no se puede decidir saber si una fór-
mula es una consecuencia lógica de un conjunto de fórmulas. En cambio,
la lógica proposicional es un mecanismo de representación mucho más
débil pero tiene mecanismos de razonamiento rápidos, completos y fáci-
les de implementar, como la resolución. Además, hay que tener en cuenta
que la tarea de planificar la secuencia de acciones que se tienen que hacer
para alcanzar un determinado objetivo se convierte en casi intratable en
dominios complejos reales.
(1)
El modelo más utilizado para hablar de agentes deliberativos es conocido co- BDI es el acrónimo en inglés de
1 beliefs-desires-intentions (creen-
mo arquitectura BDI . En este modelo, el estado interno del agente tiene tres cias-deseos-intenciones).
componentes básicos: las creencias, los deseos y las intenciones. A estos elemen-
tos básicos podemos añadir los importantes conceptos de objetivos y planes
(ved la figura 2).
• Deseos: son las situaciones futuras a las cuales el agente quiere llegar. Pue-
den ser irrealizables (si el agente no tiene la capacidad o los recursos nece-
sarios para llegar) o, incluso, contradictorios (un agente puede tener deseos
incompatibles entre sí). Los deseos dependen de las creencias del agente.
• Objetivos: subconjunto de los deseos sobre los cuales el agente puede actuar
para intentar cumplirlos. Para un agente ya no sería razonable tener obje-
tivos contradictorios. Conforman el procesamiento potencial del agente,
porque representan las alternativas que se tienen que considerar en un
cierto momento.
© FUOC • PID_00200714 14 Agentes y sistemas multiagente
• Planes: secuencias de acciones que el agente ejecuta para llevar a cabo sus
intenciones.
El módulo de interfaz recibe los datos del entorno (medidas de sensores, infor-
mación recibida de otros agentes). El receptor recoge estos datos y actualiza las
creencias del agente (su base de conocimientos que contiene el modelo sim-
bólico explícito del mundo). El módulo de razonamiento genera los deseos,
objetivos e intenciones del agente a partir de los que ya tenía y del estado ac-
tual de las creencias. El planificador recoge las intenciones y las combina en
un plan global consistente. En este proceso dinámico, los planes se adaptan
según las intenciones que se generan (el planificador controla las dependen-
cias entre las intenciones nuevas y los planes previos). El planificador de tareas
(scheduler) recibe los planes (secuencias de acciones) y decide su orden de eje-
© FUOC • PID_00200714 15 Agentes y sistemas multiagente
cución concreto (p. ej., es posible la ejecución de dos acciones a la vez). Una
de sus tareas principales es controlar que los recursos necesarios estén dispo-
nibles en el momento previsto para cada acción. Finalmente, el ejecutor es
quien realmente lleva a cabo cada acción y monitoriza el resultado esperado.
• Agentes de interfaz.
• Agentes de información.
• Agentes colaborativos.
Letizia
A causa del gran crecimiento anual en el número de páginas web, la búsqueda Nota
de información en Internet cada vez es más compleja. La manera habitual de
Si buscamos información sobre
buscar algún dato concreto es ir a un buscador, hacer una consulta explícita y "interface agents", obtenemos
examinar los resultados obtenidos. El problema es que estos buscadores, mu- el número siguiente de resulta-
dos: AllTheWeb (6.210), Goo-
chas veces, devuelven miles de páginas, y la mayoría no tienen exactamente gle (9.120), Lycos (11.325),
Yahoo! (15.800).
la información que se busca.
Para ayudar en esta tarea de búsqueda de información, el año 1995 Lieber- Web complementaria
mann desarrolló en el MIT un agente de interfaz llamado Letizia. El propósito
Podéis leer una explica-
de este agente es ayudar a un usuario cuando navega por Internet, y establece ción más detallada de Leti-
zia en la página web http://
una colaboración entre el usuario (que sabe exactamente qué está buscando y lieber.www.media.mit.edu/
si una página es adecuada o no) y el agente (que puede examinar el contenido people/lieber/Lieberary/Leti-
zia/Letizia-Intro.html
de las páginas a mucha más velocidad que el usuario). Letizia monitoriza el
comportamiento del usuario cuando navega por Internet, va observando sus
acciones y saca conclusiones a partir de éstas. De esta manera puede deducir
progresivamente los intereses del usuario. Algunos razonamientos que puede
hacer Letizia son del estilo siguiente:
• Si un usuario sigue un enlace que está en el medio de una página, eso nos
indica que no le han interesado los enlaces que había antes.
• Si el usuario hace una búsqueda explícita en un buscador, las palabras que Nota
da indican el tipo de información que busca.
Es interesante ver que Letizia
construye el perfil del usuario
Haciendo este tipo de razonamientos, Letizia se puede dar cuenta de qué pá- sin que éste deba gastar tiem-
po en explicarle sus preferen-
ginas son interesantes para el usuario. Mirando el contenido de estas páginas, cias explícitamente.
puede averiguar cuáles son las palabras que se repiten con más frecuencia, y
así ir descubriendo los intereses del usuario (p. ej., si en un porcentaje elevado
de las páginas que visita el usuario aparece la palabra tenis, parece claro que
el usuario es un aficionado a este deporte; si en muchas de las páginas de las
que vuelve atrás inmediatamente aparece la palabra gato, seguramente no está
© FUOC • PID_00200714 18 Agentes y sistemas multiagente
Después Letizia puede usar la información sobre las preferencias del usuario Recorrido en anchura
para ayudarlo cuando utiliza un navegador. Mientras el usuario lee una pági-
Este recorrido en anchura tra-
na, el agente va haciendo un recorrido en anchura de las páginas accesibles si- ta las páginas más cercanas a
guiendo los enlaces de la página actual. Si se examina el contenido de estas la página actual, y compensa
la manera habitual de navegar
páginas, el agente puede dar indicaciones al usuario de cuáles son los enla- por Internet, que es un recorri-
do en profundidad.
ces de la página actual que no llevan a ninguna página (enlaces muertos, muy
abundantes), cuáles son los que llevan a páginas que no parecen interesantes
y, sobre todo, cuáles son los que llevan a páginas potencialmente útiles para
el usuario (páginas en las que aparecen las palabras que coinciden con los in-
tereses del usuario).
Jasper
El usuario indica explícitamente cuáles son estos documentos. Para cada uno
se guardan, entre otras cosas, las palabras clave, su URL, el nombre del usuario,
un comentario y la fecha.
Agrupación de palabras
donde ndocs(cp) es el número de documentos en los que aparecen todas las palabras del
conjunto cp.
Klusch comenta que, para poder hacer este trabajo, un agente de información
tiene que ser capaz de hacer las actividades siguientes:
Amalthaea
(2)
• Agentes de filtrado de información2 En inglés, information filtering
agents.
Estos agentes se encargan de la tarea de personalización, es decir, modeli-
zar, monitorizar y adaptarse a los intereses del usuario. Cada uno de estos
agentes está interesado en documentos que contienen unas ciertas pala-
bras clave (p. ej., uno de estos agentes puede estar interesado en las pala-
bras [montaña, excursión, escalada, Pirineos, Alpes]).
(3)
• Agentes de descubrimiento de información3 En inglés, information discovery
agents.
Estos agentes son los responsables de recoger la información de las fuentes
de información4 disponibles. Cada uno tiene dos parámetros: la fuente (4)
En inglés, information sources.
de información que utiliza y el número de palabras clave que tiene que
utilizar (p. ej., uno de estos agentes se podría encargar de hacer consultas
en el buscador Google utilizando tres palabras clave).
• Se utiliza la puntuación dada por el usuario para saber cuáles son los agen-
tes de filtrado que han dejado pasar documentos interesantes y cuáles son
© FUOC • PID_00200714 22 Agentes y sistemas multiagente
los agentes de descubrimiento que habían encontrado estos documentos. Ved también
Entonces, se utilizan técnicas de algoritmos genéticos para generar una nue-
Podéis ver el apartado 7 "Algo-
va población de agentes de filtrado y una nueva población de agentes de ritmos genéticos" del módu-
descubrimiento. Concretamente, se seleccionan los agentes con más éxi- lo "Resolución de problemas y
búsqueda" de Inteligencia arti-
to y se combinan utilizando los operadores genéticos de cruce doble y de ficial.
mutación.
Actividad
2. Sistemas multiagente
Hay que hacer notar que, cuando se habla de sistemas multiagente en la bi-
bliografía, en general no se asume que los componentes del sistema tengan
que ser necesariamente colaborativos. De hecho, podemos tener muchas si-
tuaciones en las que los agentes compitan entre sí por unos ciertos recursos (p.
ej., varios agentes que intentan comprar un objeto en una subasta electrónica).
uno de los agentes del sistema puede estar especializado en solucionar una
parte específica del problema, y sólo precisa el conocimiento necesario
para esta parte.
(5)
• Reutilización: cuando se implementa un sistema multiagente, se pueden Agentizar quiere decir transfor-
mar un sistema informático en un
aprovechar sistemas informáticos construidos previamente (p. ej., un sis-
agente, de manera que se pueda
tema experto o una base de datos). La manera más habitual de agentizar
5 incorporar dentro un sistema mul-
tiagente.
un sistema ya existente es construir una envoltura6, que sepa traducir ex-
presiones entre el lenguaje de comunicación entre agentes y las entradas (6)
En inglés, wrapper.
© FUOC • PID_00200714 24 Agentes y sistemas multiagente
y salidas del sistema. Por ejemplo, se puede hacer una envoltura de una
base de datos, que sepa transformar consultas escritas en un lenguaje de
comunicación entre agentes en consultas sobre la base de datos en SQL, y
después vuelva a traducir la respuesta de la base de datos al lenguaje que
entiendan los agentes.
• Globalización: si se siguen unas normas estándar de alcance mundial cuan- Ved también
do se implementan los agentes, éstos serán capaces de comunicarse con
En el apartado 2.3 se comen-
cualquier otro agente que siga las mismas convenciones y coordinarse en- tan las normas estándar pro-
tre sí (p. ej., podemos hacer un agente comprador de libros que se entienda puestas por una organización
llamada FIPA.
con el agente vendedor de una librería electrónica americana).
Teniendo en cuenta estas características, se puede ver que los sistemas multi-
agente serán aplicables a:
(7)
Los sistemas de pizarra7 son un tipo de comunicación que es tradicional dentro En inglés, blackboard systems.
La idea básica es que hay una estructura de datos centralizada, llamada piza-
rra, que proporciona a todos los agentes de un sistema multiagente una área
común de trabajo en la que pueden intercambiar datos, información o cono-
cimiento de cualquier tipo. Como se puede ver en la figura, los agentes no se
comunican directamente entre sí; todo el paso de información entre los dife-
rentes agentes se hace mediante la pizarra común. Todos los agentes pueden
acceder a la pizarra cuando quieran para escribir datos o para leer todo lo que
hayan escrito los otros agentes del sistema (aunque habitualmente primero
un agente se tiene que registrar en un lugar concreto para recibir autorización
para acceder a la pizarra).
En la pizarra puede haber todo tipo de información que sea útil para que
los componentes del sistema puedan resolver de manera cooperativa un
problema. Los dos tipos de información básicos que podemos obtener
en una pizarra son tareas y resultados.
Por ejemplo, puede haber datos concretos del problema a resolver, información sobre
el estado de resolución de una parte del problema por parte de un agente, resultados
intermedios, la tarea actual de cada agente, las tareas que quedan pendientes de hacer,
un anuncio del tipo de problemas que sabe resolver un agente concreto, etc.
Las ventajas principales de esta arquitectura son la simplicidad del paso de in-
formación entre todos los componentes del sistema, la flexibilidad que permi-
te este mecanismo para poder implementar diferentes tipos de algoritmos de
cooperación y coordinación, y la independencia con respecto a la arquitectura
de los agentes. A pesar de estas interesantes propiedades, la manera de funcio-
nar de este tipo de sistemas presenta una serie de problemas importantes:
• Nadie avisa a los agentes cuando otros agentes escriben algo en la pizarra.
Por lo tanto, hace falta que todos los agentes vayan revisando periódica-
mente la estructura para ver si alguien ha introducido un nuevo dato que
les interese. Eso puede provocar que el acceso a la pizarra se convierta en
el cuello de botella del sistema, si muchos agentes intentan acceder a ella
muy a menudo.
(8)
• El distribuidor8 es un agente encargado de avisar a los demás agentes regis- En inglés, dispatcher.
trados en una pizarra de los cambios que se producen y que les puedan
interesar. Con el uso de este agente no hace falta que todos los agentes
estén continuamente monitorizando el estado de la pizarra.
Podemos estar pasando información, haciendo una pregunta, pidiendo que el Nota
receptor haga una determinada acción, haciendo una propuesta al receptor,
Un mensaje no es un simple
aceptando o rechazando una propuesta que el receptor nos ha enviado antes, paso de datos de un agente a
etc. Un lenguaje de comunicación entre agentes lo bastante expresivo tiene otro. El agente emisor puede
tener diferentes intenciones a
que permitir la posibilidad de enviar mensajes de diferentes tipos, de manera la hora de enviar un mensaje,
similares a las que tenemos los
que se puedan representar las posibles intenciones del emisor. humanos cuando decimos una
frase a alguien.
(10)
El elemento principal de esta arquitectura es la plataforma de agentes (agent En inglés, message transport sys-
tem.
platform), que proporciona la infraestructura básica sobre la cual se pueden
crear y ejecutar los agentes. Una plataforma puede contener un número inde-
terminado de agentes, y puede estar situada en un único ordenador o distri-
buida entre diferentes ordenadores. De la misma manera, en un único orde-
nador podemos tener diferentes plataformas. Un agente se puede comunicar
con otros programas (p. ej., puede acceder a una base de datos), con agentes
de la misma plataforma o con agentes de otras plataformas. En este último
10
caso, hay que utilizar un sistema de transporte de mensajes que se ocupe de
este tipo de comunicación; este sistema hace que, para el implementador de
los agentes, sea transparente el hecho de si el receptor de un mensaje está o
no en la misma plataforma o en el mismo ordenador.
En la figura anterior se puede ver que toda plataforma de agentes tiene que
contener dos agentes especiales que ayudan a gestionarla:
(11)
• Facilitador de directorio11(DF): es un agente que proporciona un servicio de En inglés, directory facilitator.
páginas amarillas dentro del sistema, porque conoce los servicios que pue-
den ofrecer los diferentes agentes del SMA (los agentes tienen que regis-
trarse en el DF para hacer publicidad de sus servicios). Este agente es espe-
cialmente importante, ya que consultar su información es la única mane-
ra que tiene un agente del sistema de saber qué otros agentes de un tipo
concreto hay en el sistema en un momento determinado.
© FUOC • PID_00200714 30 Agentes y sistemas multiagente
(12)
• Sistema de gestión de agente12 (AMS): es el agente que controla el acceso y En inglés, agent management
system.
uso de la plataforma. Almacena las direcciones de los agentes y ofrece un
servicio de páginas blancas.
(13)
La FIPA ha definido un lenguaje estándar de comunicación entre agentes, lla- En inglés, FIPA agent communi-
13 cation language.
mado FIPA-ACL . Según esta propuesta, en un mensaje aparecen una serie de
parámetros, los más importantes de los cuales son los siguientes:
• Performative: tipo de acción comunicativa que se hace con el mensaje (en- Ved también
viar datos, hacer una propuesta, hacer una pregunta, etc.).
Podéis ver el apartado 2.3.3,
en el que se comentan algunos
• Sender: emisor del mensaje. protocolos de comunicación
definidos por la FIPA, y el apar-
tado 2.4, en el que se comenta
el tema de las ontologías.
• Receiver: receptor del mensaje. Puede ser un agente o un conjunto de agen-
tes.
(14)
• CFP (call for proposals14): el emisor pide al receptor una propuesta para ha- En español, solicitud de pro-
puestas.
cer una acción (por ejemplo, un agente comprador pregunta a un agente
vendedor bajo qué condiciones vende un producto concreto).
• Refuse: el emisor rehúsa hacer alguna acción pedida antes por el receptor.
• Failure: el emisor indica al receptor que ha habido algún error cuando es-
taba intentando hacer una acción que le había pedido.
(REQUEST
:sender (agent-identifier :name agpersonal@pc0:1099/JADE)
:receiver (set ((agent-identifier :name restauranteArcs@pc0:1099/
JADE))
:content
((action (agent-identifier :name cliente1@pc0:1099/JADE :addresses )
(reserva-mesa 5
(fecha-reserva :minuto 30 :hora 22 :día 24 :mes 9 :año 2001)
(info-usuario :nombre "Alberto Ríos" :teléfono "677869656" )
)))
:reply-with Req1001620481740
:language FIPA-SL
:ontology onto-restaurantes
:protocol fipa-request
:conversation-id Req1001620481740
)
El emisor es el agente agpersonal, que sería el agente personal del usuario Alberto Ríos,
y el receptor es el agente restauranteArcs, que sería el agente asociado a un restaurante.
En este mensaje, el emisor pide (request) al agente del restaurante que ejecute la acción
reserva-mesa, para reservar una mesa para cinco personas, a las diez y media del 24-9-2001,
a nombre de Alberto Ríos. El lenguaje utilizado para escribir el campo content es FIPA-SL
(FIPA semantic language), que es un lenguaje propuesto por la FIPA para representar el
contenido de los mensajes. En la ontología onto-restaurantes estarían definidos aspectos
como los parámetros necesarios para la acción reserva-mesa, o los campos que tiene que
tener un objeto del tipo fecha o del tipo info-usuario (el tema de las ontologías se trata
más detalladamente en el apartado 2.4).
FIPA-Query
En este protocolo, un agente envía una pregunta (un mensaje del tipo query)
a otro. Este agente, si sigue el protocolo, sólo puede dar una de estas cuatro
respuestas: not-understood (si no ha entendido la pregunta, p. ej., si no conoce
la ontología que se utiliza), refuse (si no quiere contestar la pregunta, p. ej., si
el agente que la hace no está autorizado a pedir aquella información), failure
(si no puede contestar la pregunta, p. ej., porque ha habido algún error en el
acceso a una base de datos donde estaba la respuesta) o inform (con la respuesta
a la pregunta).
FIPA-Request
Este protocolo se utiliza cuando un agente quiere pedir a otro que haga una
acción determinada. Tiene el aspecto siguiente:
En este protocolo, un agente envía un mensaje del tipo request a otro, pidién-
dole que ejecute una cierta acción. El agente receptor puede contestar not-un-
derstood (si no entiende el mensaje), refuse (si se niega a hacer aquel servicio) o
agree (si está de acuerdo en hacer aquella tarea). En este último caso el agente
intentará hacer la acción, y enviará un segundo mensaje que puede ser de ti-
po failure (si, por alguna razón, no ha podido completar la tarea pedida) o de
tipo inform (indicando simplemente que ya ha hecho la acción o, si es el caso,
dando algún resultado concreto de esta ejecución).
© FUOC • PID_00200714 34 Agentes y sistemas multiagente
FIPA-Contract Net
(15)
El FIPA-Contract Net15 es un protocolo más complejo, en el cual se coordinan En castellano, red de contratos
Por ejemplo: tenemos un agente que quiere comprar un libro en alguna librería electró-
nica. Lo que haría es preguntar en todas las librerías electrónicas que le interesen en qué
condiciones venden el libro. Algunas librerías pueden contestar que no tienen aquel libro
disponible. Las que sí que lo tienen darán diferentes precios según diferentes condicio-
nes: tipo de edición (bolsillo, tapa dura, segunda mano, de lujo con ilustraciones), tiempo
de entrega (inmediato, días, semanas, meses), coste del envío (nacional/internacional,
normal / urgente / con mensajero). El agente comprador tiene que decidir, ante las con-
diciones de cada una de las librerías, en cuál quiere comprar el libro. Tiene que comunicar
a esta librería que acepta sus condiciones y a las otras que no les comprará el libro.
que pide el servicio quiere cancelar su petición, puede enviar un mensaje del
tipo cancel al agente con quien había acordado el servicio antes de que éste
acabe de llevarlo a cabo.
2.4. Ontologías
Para que dos agentes se puedan comunicar y coordinar sus acciones, hace falta
que se puedan entender. Eso significa que el agente receptor y el agente emisor
tienen que compartir una ontología común.
Como hemos apuntado antes, para que los agentes se puedan comunicar sin
ambigüedades necesitan compartir un mismo lenguaje y ontología. La onto-
logía define el vocabulario y las acciones que, mediante un acto comunicativo
de tipo request, se pueden solicitar a un agente.
2.4.1. Objetos
Restaurante
Con esta definición del objeto restaurante, se indica de qué características del
restaurante podrán hablar los agentes y qué otras no nos interesan (p. ej., no
guardamos en ningún sitio si el restaurante tiene aire acondicionado o un jar-
dín infantil). Hemos definido el nombre y el tipo de cada uno de los atributos
que componen este objeto. En algunos casos, en un atributo se puede guardar
un conjunto (set) de valores (p. ej., un conjunto de cadenas de caracteres que
denotan las especialidades culinarias del restaurante). El objeto es una repre-
sentación estructurada, ya que algunos de los atributos tienen un tipo com-
plejo y no predefinido (p. ej., el atributo carta es del tipo restaurante-carta).
cinfo
dirección
restaurante-precios
restaurante-carta
El plato es la pieza mínima del menú. Para cada plato tenemos el nombre y
el precio.
plato
El objeto primeros clasifica los primeros platos en cinco categorías: pastas, so-
pas, verduras, legumbres y arroz. Estas subdivisiones nos permitirán trabajar
con estas partes de la carta de manera individual.
primeros
segundos
segundos
2.4.2. Acciones
Los agentes de tipo restaurante tendrían que ser capaces de recibir (y atender de Ved también
manera adecuada) solicitudes de reserva de mesas. Así, tienen que ofrecer un
Este mensaje ya se ha mostra-
servicio que llamaremos reserva-mesa. Cuando un agente personal le pide a un do en el apartado 2.3.2.
agente restaurante este servicio, le tendrá que pasar algunos parámetros (p. ej.,
el día de la reserva, o el número de comensales). Para pedir el servicio, el agente
personal enviaría un request al agente restaurante, pidiéndole la ejecución de
la acción reserva-mesa. Esta acción estaría definida así:
reserva-mesa
fecha
Info-usuario
• lleno: nos avisa de que el restaurante aquel día y a aquella hora está lleno.
• error: objeto que servirá para indicar cualquier otra condición de error.
Franklin propone dividir los sistemas multiagente en independientes o coopera- Ved también
tivos, según el estilo de cooperación que utilicen. Los primeros estarían forma-
Un ejemplo de sistemas con
dos por agentes independientes, que perseguirían de manera individual sus cooperación emergente serían
objetivos. Dentro de este tipo de sistemas podríamos distinguir entre los dis- los sistemas reactivos vistos en
el apartado 1.2.1.
cretos (donde no hay relación entre los objetivos de los agentes y, por lo tanto,
no hay ningún mecanismo de cooperación) y los que presentan cooperación
emergente. En estos sistemas cada agente tiene su objetivo, pero el conjunto
global da la impresión externa de estar formado por un conjunto de unidades
colaborativas.
© FUOC • PID_00200714 40 Agentes y sistemas multiagente
Cada agente hace su plan local para resolver las tareas que tenga asignadas.
Estos planes se tienen que hacer de manera que se puedan adaptar dinámica-
mente en el futuro, dependiendo de la información que vayan obteniendo
otros agentes. Para conseguir esta flexibilidad habitualmente se tienen los pla-
nes en dos niveles de detalle: en alto nivel, con la estructura general de los
pasos más importantes que se tienen que hacer para solucionar el problema,
y en bajo nivel, con información detallada para cada subproblema concreto.
2) Intercambio de planes
© FUOC • PID_00200714 41 Agentes y sistemas multiagente
Los agentes del sistema intercambian sus planes locales. Cada agente tiene que
tener conocimiento sobre la estructura jerárquica del sistema multiagente, de
manera que pueda determinar cuál es el papel de cada agente en la resolución
del problema y saber qué información tiene que enviar a qué agente (normal-
mente no hay que enviar todo el plan local a todos los otros agentes).
Una vez que cada agente ha recibido los planes parciales locales de los otros
agentes, los tiene que combinar en un plan global parcial. El trabajo principal
es el de comprobar si hay dependencias entre la información recibida y sus
planes. Los componentes del plan global parcial son éstos:
• Mapa de actividades: estructura que incluye las tareas de los otros agentes
(estado actual, detalles, resultado esperado, recursos necesarios, etc.).
• Estado: otra información relevante para el plan global parcial (p. ej., refe-
rencias a los planes recibidos por otros agentes).
A partir del plan local actual y el mapa de actividades, se genera un nuevo plan
local (optimizado utilizando el conocimiento actual del sistema) y se mejora
el grafo de construcción de la solución (introduciendo detalles concretos de
cuando se tienen que enviar planes específicos a otros agentes del sistema).
Actividad
Resumen
Actividades
1. Dentro del campo de la ingeniería del software, se pasó de la programación estructurada a
la programación orientada a objetos. En los últimos años se ha evolucionado hacia una progra-
mación orientada a agentes. Reflexionad sobre las semejanzas y diferencias que hay entre un
objeto y un agente (algunos puntos concretos donde se puede concentrar la comparación son
éstos: autonomía ante el entorno, proactividad, capacidad de comunicación, control del es-
tado interno).
2. Imaginad que queréis construir una librería electrónica, al estilo de la librería Amazon.
Pensad qué información podríais extraer de la navegación del usuario dentro de vuestro sis-
tema para poder construir un perfil que permita personalizar la interacción de la librería con
el usuario lo máximo posible. ¿Qué atributos almacenaríais en el perfil del usuario? ¿Cómo
obtendríais los valores de estos atributos a partir de la observación de la actividad del usuario?
¿Qué tipo de acciones podría emprender el agente de interfaz de vuestra librería de manera
proactiva?
3. Demostrad que la función de semejanza entre palabras utilizada por el sistema Jasper re-
torna un número real en el intervalo [0, 1]. Identificad en qué casos se obtendrían los valores
0 y 1.
4. Comentad cómo se pueden utilizar los métodos de inteligencia artificial que hemos visto
antes de este módulo (búsqueda, representación del conocimiento, sistemas basados en el
conocimiento, razonamiento aproximado, aprendizaje automático) cuando se implementa
un agente (por ejemplo, a qué módulos de la arquitectura BDI se podrían aplicar estas técni-
cas). Comentad también las relaciones que podáis encontrar entre el uso de estos mecanis-
mos y las propiedades que tiene que tener un agente (por ejemplo, probablemente será más
reactivo ante un entorno dinámico un agente que utilice técnicas de aprendizaje automático
para ir captando las características variables del entorno que uno que siempre se comporte
siguiendo un algoritmo fijo).
5. Reflexionad sobre las semejanzas y diferencias que hay entre la inteligencia artificial dis-
tribuida clásica (solucionar un problema con técnicas de inteligencia artificial con módulos
que se están ejecutando en diferentes máquinas) y los sistemas multiagente.
6. En los sistemas multiagente cooperativos con negociación, ¿cómo se puede utilizar el pro-
tocolo Contract Net para resolver un problema complejo de manera distribuida entre dife-
rentes agentes, si cada uno sabe resolver sólo una parte del problema y hay que utilizar re-
cursos compartidos dinámicamente por todos los agentes del sistema?
Ejercicios de autoevaluación
1. Asistente de lector de correo electrónico.
Pensad en el tipo de razonamiento que podría hacer un agente de interfaz que quisiera ave-
riguar los intereses de un usuario a partir del análisis de la interacción del usuario con su
lector de correo electrónico. Dad algunas reglas de inferencia que pudiera utilizar este agente
(del estilo de las que se han utilizado para el sistema Letizia). ¿Qué tipo de acciones podría
hacer este asistente de correo de manera proactiva?
Se quiere diseñar un sistema multiagente que sirva para gestionar los quirófanos y los equi-
pos médicos encargados de hacer operaciones en un hospital. En el hospital hay una serie
de quirófanos disponibles. Cuando se tiene que hacer una operación en alguno, hay que
hacer una reserva previamente para que todo el mundo sepa que el quirófano estará ocupa-
do durante aquellas horas. En el hospital trabajan médicos, anestesistas y enfermeras. Cada
médico tiene una única especialidad, y sólo puede hacer operaciones asociadas con aquella
especialidad. Las enfermeras y anestesistas pueden participar en cualquier operación. Cada
tipo de operación tiene una duración diferente, y requiere un cierto número de médicos,
enfermeras y anestesistas. Cada médico tiene unas determinadas horas de la semana ocupa-
das en consultas, y no puede operar en aquellos momentos. Desde su ordenador personal,
el médico tiene que poder indicar si estará fuera del hospital en algún momento (p. ej., si
va a un congreso médico en el extranjero). Cada enfermera y anestesista tiene un horario
concreto de trabajo, marcado en su contrato. Un anestesista sólo puede participar en una
operación cada día. El sistema multiagente tiene que tener un agente encargado de guiar la
coordinación. Este agente recibirá un mensaje indicando el tipo de operación que tiene que
hacer y un intervalo horario en el que se tiene que llevar a cabo. El sistema tiene que intentar
encontrar un quirófano disponible dentro del intervalo dado, y un conjunto de personas
(médicos, anestesistas y enfermeras) que puedan hacer la operación en aquel momento. Si
© FUOC • PID_00200714 46 Agentes y sistemas multiagente
• Diseño del sistema multiagente, indicando los tipos de agentes que hay en el sistema, la
cantidad de cada tipo de agentes y el conocimiento que tendría cada uno de ellos.
• Datos que tendría el directory facilitator.
• Descripción del funcionamiento del sistema, que indique el flujo de mensajes entre los
diferentes agentes.
3. Ontología de cines
Se quiere implementar un sistema multiagente que proporcione información sobre las pe-
lículas que se pueden ver en los cines de una determinada comarca. Habrá un agente que
encapsula la información de cada cine, y el agente personal del usuario hará consultas a es-
tos agentes para encontrar la información que necesite. Diseñad una ontología que defina
el tipo de objetos que podrán utilizar los agentes usuarios y los cines en su comunicación.
Esta ontología tiene que permitir hablar de características de los cines (p. ej., si tienen acceso
para minusválidos, o si disponen de zona de aparcamiento) y de las películas que se ofrecen
(p. ej., para poder preguntar si hacen películas de ciencia-ficción o películas protagonizadas
por Michelle Pfeiffer).
© FUOC • PID_00200714 47 Agentes y sistemas multiagente
Solucionario
1. Un agente de interfaz que hiciera las funciones de asistente de lector de correo electrónico
podría hacer razonamientos sobre la actividad del usuario cuando lee el correo. Algunos datos
con los que podría trabajar son éstos:
A partir del análisis de estos datos, el agente podría extraer mucha información con la que
construir el perfil del usuario. Algunas reglas que podría seguir (¡se pueden pensar muchas
otras!) son éstas:
• Las palabras que se repiten con más frecuencia en el contenido y en el tema de los men-
sajes enviados señalan temas de interés del usuario.
• Los mensajes recibidos que son leídos en breves segundos y borrados no interesan mucho
al usuario.
• Los mensajes que son borrados sin leer son de procedencia desconocida o de un tema
que claramente no interesa al usuario.
• Los mensajes que se envían a una lista de direcciones (o a direcciones que forman parte
de una misma lista) deben tener un contenido relativo a un área específica de interés
del usuario.
• El usuario tiene un interés especial en los mensajes recibidos de personas que pertenecen
a su lista de direcciones.
• Los mensajes que el usuario contesta muy rápidamente son de temas que tienen una
relevancia especial para él.
Una de las tareas que podría hacer el agente es la de analizar el contenido y los subjects
de los mensajes enviados y de los mensajes leídos con más atención por el usuario, para
identificar los temas que le interesan y construir el perfil (utilizando técnicas como las que
se han apuntado en la descripción de Letizia y Jasper).
Algunas acciones concretas que podría hacer el agente asistente de lector de correo de manera
automática y proactiva, sin instrucciones explícitas del usuario, son éstas (¡también se pueden
pensar otras!):
• Clasificar los mensajes recibidos en los directorios más convenientes, en función del te-
ma, contenido y/o remitente.
Por ejemplo, el agente puede aprender que todos los mensajes que tengan en el tema la
palabra journal se tienen que poner en el directorio "revistas de investigación", y todos
los mensajes que provienen de la dirección jefe-departamento@empresa.com se tienen que
poner en el directorio "departamento".
• Borrar los mensajes que provienen de sitios poco fiables, o tratan de un tema que no
interesa al usuario, o tienen ficheros adjuntos susceptibles de contener virus.
Por ejemplo, el agente se podría dar cuenta de que el usuario borra sin leer todos los
mensajes en cuyo tema aparece la palabra Viagra, y podría hacer esta tarea automática-
mente. Podría pasar lo mismo con todos los mensajes que tengan añadido un fichero
con extensión .exe.
• Avisar inmediatamente al usuario cuando le llega un mensaje que puede ser de especial
relevancia.
Por ejemplo, el asistente se puede dar cuenta de que el usuario contesta rápidamente
todos los mensajes con la palabra urgente en el tema, o los que le llegan de la dirección
jefe-departamento@empresa.com, y le puede avisar rápidamente cuando llega un mensaje
de estas características.
• Ordenar los mensajes recibidos por orden de importancia.
El agente puede leer el tema y el contenido de los mensajes recibidos, y comparar las
palabras clave de las preferencias del usuario con ellos, para ver en qué mensajes aparecen
estas palabras y en cuáles no. Así, se podría definir una función que, dado un mensaje
y un perfil de usuario, determinara el interés potencial del usuario en aquel mensaje.
La valoración dada por esta función se podría utilizar para ordenar los mensajes por la
prioridad (así, el usuario no tendría que perder el tiempo pasando por treinta mensajes
irrelevantes antes de llegar a un mensaje que le interesa).
Figura 12
Como se ve en la figura 12, tendríamos seis agentes coordinadores, más el mismo número
de agentes que quirófanos, médicos, enfermeras y anestesistas hubiera en el hospital.
• CD, CE y CA envían los resultados obtenidos a CEM. Este agente, como sabe cuántos
médicos, enfermeras y anestesistas hacen falta, analiza todas las posibilidades recibidas
para ver si hay algún intervalo de la duración de la operación en el que estén disponibles
todas las personas necesarias. Si es así, envía todas las posibilidades a CG. Si no es así,
envía un mensaje a CG indicándole que no es posible montar un equipo médico com-
pleto para hacer la operación en el intervalo dado (en este mensaje se puede indicar si
faltan médicos, o faltan anestesistas, o faltan enfermeras, o simplemente no encajan los
horarios libres del personal).
• Por otra parte, CQ también habrá enviado a CG los huecos disponibles en los horarios
de quirófanos para hacer la operación (o un mensaje indicando que no hay ningún qui-
rófano disponible el tiempo suficiente en el intervalo dado, si es el caso).
• En este punto, CG ya ha recibido las posibilidades de CEM y CQ. Entonces CG intenta
encontrar un momento en que encaje la disponibilidad de un quirófano libre con la
posibilidad de montar un equipo médico. Si eso no es posible (o CEM y/o CQ ya no
habían podido encontrar ningún hueco), CG retornaría un mensaje de error e indicaría
que no se ha podido completar la gestión de la operación, y por qué razón (carece de
quirófano, de personal, o no se han podido coordinar entre sí).
• Si CG encuentra diversas opciones, puede utilizar el número de operaciones hechas por
cada médico en el último mes para asignar la operación al médico que lleve menos.
Después de escoger una opción, la comunicará a CEM y CQ. CEM la transmitirá a CD,
CE y CA. Finalmente, CQ, CD, CE y CA avisarán a los agentes asignados que han sido
escogidos para hacer la operación, y al resto les notificarán que no han sido escogidos.
3. En la ontología pedida tenemos que definir los objetos necesarios para que los agentes
puedan intercambiar información de cines, salas y películas. El elemento básico de la onto-
logía será el objeto de tipo cine, que tendrá la información que queremos utilizar de cada
cine. Este objeto podría estar definido de la manera siguiente:
cine
cine-precios
sala
película
exhibición
Glosario
agente m Entidad de software que se comporta de manera inteligente en un cierto entorno
para intentar alcanzar un cierto conjunto de objetivos. Idealmente, tendría que ser autóno-
mo, reactivo, proactivo y con capacidad de razonamiento, planificación y aprendizaje.
agente deliberativo m Agente que mantiene una representación interna simbólica del
mundo que lo rodea, y que razona sobre este modelo para planificar las acciones que tiene
que llevar a cabo para alcanzar los objetivos.
agente reactivo m Agente que no guarda ninguna representación explícita del mundo, y
que tiene un comportamiento guiado por reglas simples del tipo estímulo => respuesta.
arquitectura BDI f Modelo de los agentes deliberativos basado en los conceptos de creen-
cias, deseos e intenciones.
Foundation for Intelligent Physical Agents f Organización sin ánimo de lucro que se
ocupa de definir estándares asociados a la tecnología de los sistemas multiagente (p. ej., un
lenguaje de comunicación entre agentes).
sigla FIPA
ontología f Vocabulario que define los conceptos básicos que se quieren considerar en un
cierto dominio. Puede incluir clases de objetos, sus atributos o las acciones que se pueden
hacer en el dominio.
performativa f Tipo de mensaje que envía un agente a otro. Indica la intención del emisor
del mensaje (p. ej., hacer una pregunta o pedir que el receptor haga una acción).
protocolo m Secuencia de mensajes predeterminada que tienen que seguir dos agentes o
más que mantienen una conversación, encaminada a hacer una acción concreta (p. ej., pedir
la ejecución de un servicio).
Bibliografía
Bibliografía básica
Weiss, G. (ed.) (1999). Multiagent Systems: a modern approach to Distributed Artificial Intelli-
gence. Cambridge, Massachusetts: MIT Press. En especial el capítulo 1 de este libro, Intelligent
Agents (M. Wooldridge).
Bibliografía complementaria
Brenner, W.; Zarnekow, R.; Wittig, H. (1998). Intelligent Software Agents. Berlín: Springer.
Doran, J.; Franklin, S.; Jennings, N.; Norman, T. (1996). On cooperation in multi-
agent systems. First UK workshop on foundations of multiagent systems. Warwich: Michael Luck.
Disponible en la página web http://www.ecs.soton.ac.uk/~nrj/download-files/FOMAS-PA-
NEL-KER.ps.
Klusch, M. (2001). "Information Agent Technology for the Internet: a Survey". Data and
Knowledge Engineering (vol. 36, núm. 3, pág. 337-372). Amsterdam: Elsevier science B.V.
Wooldridge, M.; Jennings, N. (1995). "Intelligent Agents: Theory and Practice". Knowled-
ge Engineering Review (vol. 10, núm. 2, pág. 115-152). Cambridge, Reino Unido: Cambridge
University Press.