MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Inteligencia Artificial Distribuida
Oportunidades y Desafíos
Marin Lujak
Centro para las Tecnologías Inteligentes de la Información y sus Aplicaciones CETINIA, URJC
1
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Índice
Introducción
Agentes Inteligentes y los Sistemas Multiagente
Metodologías para la IAD
Técnicas de Coordinación en la IAD
Cooperación y colaboración en la IAD
Aplicaciones de la IAD a los problemas en el mundo real
2
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Introducción a la IAD
IAD aparece en la década de los 80 como una nueva rama de la IA
estudia sistemas inteligentes formados por un conjunto de varios agentes
intenta resolver problemas donde una conducta colectiva es más eficiente que una conducta
individual.
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Introducción a la IAD
La IAD se centra en la resolución de problemas mediante aplicación tanto de técnicas de la
Inteligencia Artificial como de múltiples solucionadores de sistemas.
Los agentes funcionan como solucionadores de
problemas, son autónomos o semi-autónomos,
tienen un cierto conocimiento del problema y son
razonables.
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
¿Por qué IAD?
Cuando propuestas centralizadas para solucionar problemas mediante la IA se muestran insuficientes ante la aparición de múltiples agentes en un entorno social.
En los problemas esencialmente distribuidos.
En la integración de los sistemas de IA para mejorar la
capacidad mediante la distribución del conocimiento.
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
¿Por qué IAD?
Grandes desafíos para
desarrolladores de software:
Delegación – actuar de modo independiente.
Inteligencia – actuar del modo que represente nuestros
mejores intereses.
Sistemas que actúen de un modo efectivo y eficiente.
Sistemas con habilidad de cooperación y capaces de alcanzar consensos con otros
sistemas.
Sistemas adaptables a los
cambios en el ambiente.
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Ventajas de la IAD
Incremento de la flexibilidad: Se permite la adición de nuevos agentes.
Mejor seguridad y efectividad: Los agentes se pueden especializar en una tarea específica.
Mejor tiempo de respuesta: Los agentes pueden resolver sus
problemas particulares al mismo tiempo.
Reducción de la complejidad: Una tarea puede ser descompuesta en varias sub-tareas.
Reutilización: La solución
presentada por un agente en un
sistema puede ser incorporada a
otro.
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Agentes Software
¿Qué es un agente?
RAE
adj. Que obra o tiene virtud de obrar.
adj. Gram. Dicho de una palabra o de una expresión: que designa a la
persona, animal o cosa que realiza la acción del verbo.
m. Persona o cosa que produce un efecto.
m. Persona que obra con poder de
otra.
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Agentes Software
Es una metáfora computacional propia de la IA
Agente Inteligente: entidad
computacional con autonomía:
Reactividad: capacidad para responder a los cambios del entorno,
Proactividad: capacidad de exhibir un comportamiento dirigido a cumplir sus objetivos,
Sociabilidad: capacidad para comunicarse
y colaborar con otros agentes.
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Agentes Software
Un agente:
Percibe el entorno sensores
Actúa en el entorno efectores
Asigna percepciones a acciones
Mide lo “bien” que lo ha hecho
Entorno percibe
actúa
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Agentes artificiales
Hardware (robots):
Actúan directamente en el entorno físico
Sensores: cámaras, odómetros, etc.
Efectores: ruedas, brazos mecánicos, …
Software Robots (softbots):
Entornos virtuales (e.g.
Internet)
Sensores y efectores:
dependientes del dominio
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Áreas relacionadas con los agentes
Teoría
Programación OO
Sistemas distribuidos
Economía
Sociología
Psicología
Teoría de la decisión
Biología
…
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Áreas relacionadas con los agentes
En la práctica
Internet
Sistemas de Información
E-Commerce
Interfaces de usuario
Transporte
Redes Inteligentes, energía
Robótica y producción
Simulación de sistemas
Juegos
…
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Definiciones de agente software
Houston, we’ve got a problem!!!
No hay definición universalmente aceptada
Literatura: depende del dominio, del autor , …
Terminología diversa para referirse a lo
mismo
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Definiciones de agente software
Definición de agente [Russell & Norvig, 1995]
“Dada una sucesión de percepciones, un agente racional ideal debe realizar una acción que maximice la medida de éxito a partir de la base de evidencias que obtiene de dicha sucesión de percepciones y junto con el conocimiento que posee.”
Esta definición solo dice lo que el agente debe
hacer.
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Definiciones de agente software
The Franklin & Graesser Agent [Franklin &
Graesser, 95]
“Un agente autónomo es un sistema
situado dentro de un entorno, percibe
dicho entorno y actúa sobre él, a lo largo
del tiempo, en busca de cumplir sus
objetivos y, por tanto, para llevar a cabo lo
que percibe en el futuro”
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Agentes inteligentes
Comportamiento racional
Los agentes inteligentes interactúan racionalmente con su entorno
Secuencia de percepcioneshasta el momento actual + conocimiento a priori sobre el entorno
Seleccionan la acción que les reporta mayor utilidad
Racionalidad Omnisciencia
Autonomía
Al comienzo “sólo” la inteligencia del diseñador
Un agente es más autónomo cuanto…
… más experiencia tiene y más guía ésta su comportamiento
… menos depende de su comportamiento a priori
Agente Inteligente = Comportamiento
Racional+Autonomía
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Agentes Inteligentes
Objetivos: un agente puede mostrar un comportamiento proactivo
Concurrencia: un agente tiene su propio thread
Agentes autónomos vs. objetos activos
Objetos Activos
Controlan su estado, pero no su comportamiento
Si un método es público, será ejecutado si es invocado
La decisión está en el objeto que invoca (no en el invocado)
Agentes
Controlan su estado y su comportamiento
Pueden rechazar la ejecución de una acción
La decisión de realizar una acción está en el agente y está basada en sus intereses (racionalidad!!!)
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Agentes Inteligentes vs. Objetos
Agentes y objetos están relacionados:
En sistemas cerrados proporcionan un nivel más alto de abstracción en análisis, diseño e implementación
En sistemas abiertos el concepto de autonomía es relevante
Pero…
Programamos agentes usando lenguajes de OO
Varios agentes interactuando entre sí y con el mismo entorno
Las acciones de un agente influencian las acciones del resto (utilidad individual)
Autonomía: un agente NO puede controlar las acciones de los otros
Racionalidad: un agente SÍ puede predecir las acciones de los
otros
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Características deseables de un Agente de Software
Autonomía: Agentes operan sin la intervención de humanos.
Racionalidad: Un agente intenta cumplir sus objetivos si son viables.
Iniciativa (proactividad): Los agentes tienen un carácter emprendedor y pueden actuar guiados por sus objetivos.
Veracidad: Un agente siempre dice la verdad.
Benevolencia: Un agente ayuda a otros agentes, si al hacerlo no genera conflictos con sus propios objetivos.
Sociabilidad: Los agentes son capaces de interactuar con otros agentes (humanos o no) a través de un lenguaje de comunicación de agentes.
Reactividad: Los agentes son capaces de percibir estímulos de su entorno y de reaccionar ante dichos estímulos.
Movilidad: Capacidad de un agente de trasladarse a través de la red.
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Tipologias de Agentes
Agentes Reactivos
Son los más simples en estructura interna.
Reaccionan inmediatamente a través de una acción sencilla cuando alguna condición se cumple, al recibir un estímulo de su entorno.
Económicos en conocimiento.
Comportamientos emergentes de grupo, los cuales no estaban predefinidos
inicialmente, se producen al poner a trabajar un sistema con agentes de este tipo.
Agentes Cognitivos o Deliberativos
Poseen una estructura compleja que incluye los componentes que forman su estado mental, como son: creencias, conocimiento, comunicación, control y su funcionalidad.
Se encargan de negociar y planificar sus acciones para luego lograr la comunicación con otros agentes
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Tipos de sistemas multi-agente
Solución de Problemas Distribuidos DPS
el problema se divide entre los nodos que conforman el conjunto de agentes,
agentes cooperan y comparten conocimiento sobre el problema y la solución desarrollada,
todos los agentes tienen conocimiento homogéneo y completo del problema así como de la solución,
están interconectados y el desarrollo de la solución
se obtiene a partir de una secuencia de operaciones.
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Tipos de sistemas multi-agente
Sistemas Multi-Agente
la conducta inteligente de agentes autónomos.
Estos agentes hacen parte de una colección y pueden coordinar su conocimiento, objetivos, habilidades y planes juntamente para tomar una acción o resolver una meta global,
pueden tener conocimiento parcial sobre el problema y las soluciones.
En estos sistemas debe haber un proceso de
racionalización para la coordinación del conjunto de
agentes.
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Sistemas Multiagente, ¿algo nuevo?
¿No es lo mismo que Sistemas Distribuidos/Ingeniería del SW?
Sí, pero añadiendo autonomía + racionalidad
Coordinación no precompilada
No hay asunción de benevolencia
¿No es lo mismo que Sistemas Expertos/Inteligencia Artificial?
Sí, pero añadiendo interoperatividad + sociabilidad
Percepción, planificación, razonamiento, aprendizaje, …
Interacciones sociales: Negociación, Compromisos, Trust
¿No es lo mismo que Economía/Teoría de Juegos?
Sí, pero añadiendo computación y racionalidad limitada
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Cooperación
El objetivo de la cooperación es mejorar el modo de trabajo de los agentes.
Las formas de cooperación entre agentes, las cuales dependen del contexto de resolución de problemas y del dominio de aplicación son:
Estructura organizacional,
Planificación,
Negociación,
Intercambio de resultados intermedios, etc.
Cooperación vs. Colaboración
Cooperación: la actuación conjunta facilita los objetivos diferentes pero compatibles de los actores
Colaboración: realización conjunta de un trabajo o tarea
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Organización Social de los SMA
Sistema Jerárquico
Sistema en Red
Sistema Federado
Sistema Distribuido
Sistema Descentralizado
…
26
Sistema Federado
Sistema Jerárquico Sistema en Red
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
La coordinación en los SMA: dos perspectivas
Diseño a nivel macro Diseño a nivel micro
Varios diseñadores de agentes
Un diseñador de agentes Interés del diseñador en la coordinación
Un diseñador de agentes – agentes benévolos
– diseñar todo un sistema de resolución de problemas
“La coordinación es la integración y el ajuste del trabajo individual con el fin de
alcanzar una meta mayor”
(B. Singh)
Diseño a nivel macro
– construir sistemas de múltiples agentes con características deseadas
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Coordinación a nivel macro:
resolución distribuida de problemas
• Ejemplo: Gestión de tráfico rodado
– red de autopistas urbanas – Construir un sistema que
genere planes de
señalización en función del estado del tráfico
28
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Arquitectura multiagente para STI
agentes de resolución de problemas
cada agente es responsable de un área del problema
genera planes alternativos de señalización local y los comunica al agente coordinador
agente coordinador
resuelve las interdependencias entre los planes locales
envía los planes locales
adaptados a los agentes para su ejecución
Coordinación a nivel macro:
resolución distribuida de problemas
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Comunicación entre agentes
La comunicación entre agentes es la llave para obtener todo el potencial del paradigma de agentes
Al igual que el desarrollo del lenguaje humano fue la llave para el desarrollo de la inteligencia y de la sociedad
Los agentes emplean un lenguaje de
comunicación (ACL – Agent Communication
Language) para comunicar información y
conocimiento
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Comunicación entre agentes
Distintas formas de interaccionar:
Sistemas de pizarra
Zona de trabajo común en la que se encuentra la información a compartir
No hay comunicación directa entre los agentes
Pueden existir agentes con tareas de control específicas
Pueden existir varias pizarras
Inconveniente: comunicación centralizada
Paso de Mensajes
La comunicación se establece directamente entre dos agentes (emisor y
receptor)
Pueden existir agentes facilitadores
Ventaja: flexibilidad
Comunicación mediante el entorno
Sin comunicación (inferencia; teoría de juegos).
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Sistemas Multiagente y Simulación
SMAs: una forma conveniente para la comprensión, modelado, diseño e implementación de diferentes tipos de sistemas distribuidos.
En contextos en los que un control global es difícil o imposible de lograr.
La representación y simulación de sistemas del
mundo real o virtual que pueden ser descompuestos en unidades menores que interactúan.
32
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Modelado y Simulación para el MAS:
Simulación de sistemas complejos usado
principalmente para modelos de población, tráfico, y corporaciones.
Un ejemplo histórico es el modelo determinista
continuo propuesto por Volterra para representar la
dinámica de poblaciones de dos especies animales
(presas y depredadores).
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Simulación de animales artificiales:
Los Boids de Reynolds (1987)
Precursor de SMAs: simulación del comportamiento de manadas, reynolds.
El objetivo de Reynolds era lograr una animación creíble de una bandada de pájaros artificiales (boids).
Reynolds se inspiró en dos corrientes de investigación:
Los sistemas de partículas y
El paradigma de actor.
34
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Simulación de animales artificiales: Los Boids de Reynolds
El comportamiento de los boids debía estar influenciado por los demás para agruparse de manera coherente.
Reynolds utilizó la abstracción de "actor" para definir el comportamiento de los boids tal y como interactúan en su manada.
El impacto de los boids de Reynolds en la comunidad de agentes reactivos aún puede ser percibido hoy en día en
campos como la robótica móvil y la simulación de multitudes humanas.
35
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Simulación de animales artificiales: Los Boids de Reynolds
Un ejemplo famoso de aplicación es el uso del software TM MASSIVE de Weta Digital para los efectos especiales visuales de películas como El
Señor de los anillos, en los que hay grandes escenas de batalla).
https://www.youtube.com/watch?v=j6_vPW2-UTk
Comportamento emergente de la multitud:
https://www.youtube.com/watch?v=I09heZbBcys
https://www.youtube.com/watch?v=pmwwxX22eDg
36
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Colonias de Hormigas
En los boids, el medio ambiente no juega ningún papel en la interacción entre los agentes.
Las colonias de hormigas exhiben muchas características que se esperan de los SMA:
la auto-organización,
auto-adaptación,
robustez,
propiedades emergentes, etc.
37MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Colonias de Hormigas: Feromonas
Uso de feromonas (marcadores químicos
evaporables) para comunicarse y coordinarse indirectamente a través del medio ambiente.
Las feromonas se evaporan, por lo que el sistema puede olvidar la información obsoleta;
Este poderoso mecanismo ha sido traducido con éxito en programas de ordenador y simulaciones, definiendo de este modo el concepto de feromonas digitales que se ha utilizado en numerosos trabajos.
38
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
https://www.youtube.com/watch?v=eVKAIufS rHs
En Matlab:
https://www.youtube.com/watch?v=wrloH6FCo Eg
Introducción a las colonias de hormigas en ingles:
https://www.youtube.com/watch?v=vG- QZOTc5_Q
Colonias de Hormigas
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Sistemas Multiagente: Aplicaciones
Control aéreo,
Sistemas de transporte de empresas,
Simulación de sistemas complejos,
Control industrial,
Comercio electrónico,
Servicios Web (semánticos),
Personalización de servicios,
Exploración especial,
Computación P2P.
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Agentes robóticos autónomos
41
Competición Robocup
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Aplicaciones
Sistemas de robots múltiples
KUKA youBot - Autonomous collecting of cubes
Robots industriales sincronizados, KUKA RoboTeam
Sistemas de Fabricación Flexible (FMS)
Sistema de fabricación flexible para el montaje de rodamientos en las conchas.
FMS-200 Flexible Manufacturing System
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Aplicaciones
Sistemas Inteligentes de Transporte
Comunicación V2V
Autonomous Car Fleets
Sistemas de Fabricación Flexible (FMS)
Sistema de fabricación flexible para el montaje de rodamientos en las conchas.
FMS-200 Flexible Manufacturing System
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Bibliografía
Franklin S.; Graesser A.: “Is It an Agent, or Just a Program?: A Taxonomy for Autonomous Agents” in Proceedings of the Workshop on Intelligent Agents III, Agent Theories, Architectures, and Languages (ATAL’96). Springer-Verlag. Págs. 21-35.
Russell, S.; Norvig, P.: “Artificial Intelligence: A Modern Approach (2nd ed.)”. Prentice Hall, 2003. Chapter 2.
Wooldridge, M.: “An Introduction to Multiagent Systems”, Wiley, 2002. Chapters 1 and 2.
Ossowski, S.: “Coordination in Artificial Agent Societies”. Springer, 1999. Chapter 1.
Bratman, M. E., Israel, D., and Pollack, M., Plans and Resource-bounded Practical Reasoning, Journal of Computational Intelligence, vol. 4, no. 4, pp. 349-355, 1988.
Brenner, W., Zarnekow, R. Wittig, H. Intelligent Software Agents. Springer, 1998.
Brooks, R.A., Intelligence without representation. Artificial Intelligence, 47, 1991.
Carver, N. and Lesser, V. R.:The Evolution of Blackboard Control Architectures. Informe. Department of Computer Science, University Massachusetts. 1992
Ferber, J. Multiagent systems : an introduction to distributed artificial intelligence, Addison-Wesley, 1999.
Genesereth, M.R., Ketchpel, S.P. Software Agents. CACM, 37, 7, 1994
Jennings, N.R., On agent-based software engineering. Artificial Intelligence, 117, 2000.
Müller, J.P., The design of intelligent agents: a layered approach. Lecture Notes in Computer Science, Vol.1177, Springer- Verlag, 1996
Shoham, Y. Agent-oriented programming. Artificial Intelligence, 60, 1993.
Sycara K.P. Multiagent Systems. AI Magazine, Summer 1998.
Weiss, G. Multiagent Systems. The MIT Press, 1999.