Professional Documents
Culture Documents
¿Qué son?
Curso de doctorado: ¿Por qué otro paradigma?
Agentes Inteligentes ¿Otra moda tecnológica?
¿Qué hay de nuevo?
¿Para qué sirven?
Desarrollo de Sistemas Multi-Agente
La metodología INGENIAS
http://grasia.fdi.ucm.es
Objetos Agentes
Los agentes software tienen un conjunto de características Ejecuta los métodos invocados Autonomía de decisión
que habrá que tener en cuenta para su desarrollo Flujo de control propio
Flujo de control del llamante
Encapsula estado y Encapsula la activación del
No son simplemente objetos distribuidos pero se pueden comportamiento
implementar como tales comportamiento
Tampoco son sistemas expertos pero su comportamiento Estado: valor de variables Estado mental: objetivos,
podría implementarse con conceptos similares creencias, ...
Podrían verse como un tipo de componentes software pero Comportamiento: salida a partir Comportamiento: cómo decidir
no se plantean como las técnicas actuales de componentes lo que hacer
(J2EE, .NET, CCM) de una entrada
Interacciones: actos de habla
Son estas cosas y algo más… Mensajes invocan
(intencionalidad)
procedimiento
Organización: relaciones
Asociaciones entre objetos
sociales entre agentes
Sistemas Expertos Agentes La primera pregunta que habrá que plantearse cuando se
Sistemas cerrados Interactúan con el entorno va a realizar un sistema es:
¿Se trata de un sistema distribuido abierto? Una vez decidido construir un SMA habrá que ver
¿Pueden incorporarse dinámicamente nuevos tipos de entidades
en el sistema? Qué resultados producir
¿Pueden cambiar las existentes? • Documentación
• Código, prototipos, pruebas
¿Es necesario considerar una evolución del comportamiento Con qué lenguaje especificar el SMA
independiente para cada uno de los componentes del sistema o
• Visuales: Data Flow Diagrams, Entity-Relationship diagrams,
para una parte significativa?
Message Sequence Charts, UML
¿Hay incertidumbre? • Formales: Z, redes de Petri
¿Es posible para una entidad del sistema conocer su contexto Qué actividades para producir los resultados
suficientemente para poder decidir con certeza el efecto de las • De análisis, diseño, implementación, validación, …
acciones que puede realizar?
Cómo: Guías
¿Hay personalización? Métricas
¿Un mismo servicio se puede ofrecer simultáneamente de
Con qué herramientas
manera distinta según las características de cada usuario?
• Desarrollo
¿Hace falta definir una organización de entidades que • Entorno de ejecución
interactúan para resolver conjuntamente problemas globales?
Juan Pavón Mestras Juan Pavón Mestras
UCM 2004 Ingeniería del Software Orientada a Agentes 7 UCM 2004 Ingeniería del Software Orientada a Agentes 8
Metodologías de desarrollo de SMA Metodologías para desarrollar SMA
La respuesta:
Orientación
Metodologías de desarrollo de SMA a objetos
Métodos Sistemas
• Pero... ¿cuál elegir? Formales expertos
Z, lógica temporal
Conceptos de agentes:
Conceptos de agentes:
Análisis de BDI
roles
SMA
Punto de vista interno (basado en BDI) Extiende la metodología Fusion [Coleman et al. 94]
• Modelo de creencias: información sobre el entorno, estado SMA como organización de entidades que interactúan
interno del agente y acciones que puede realizar
• Modelo de objetivos: objetivos que puede adoptar el agente y
Análisis: Basado en análisis de roles en interacción
eventos a los que puede responder Modelo de roles:
• Modelo de planes: secuencias de acciones que puede emplear el • Para cada rol (un individuo, departamento u organización de la vida real):
agente • Responsabilidades: funcionalidad del agente (como propiedades de viveza y
seguridad)
Basado en el análisis del propósito de los servicios y su • Permisos: derechos a información y recursos
descomposición hasta llegar a planes: • Actividades: acciones privadas (sin interactuar con otros agentes)
1. Analizar los medios para alcanzar los objetivos • Protocolos
• Descomposición de cada objetivo en acciones y subobjetivos Modelo de interacciones: define los protocolos (entre roles)
• Generar planes • Atributos: propósito, iniciador, respondedor, entradas/salidas, proceso
2. Construir las creencias del sistema
Diseño: Basado en agrupación de roles en agentes
• A partir de las condiciones que controlan la ejecución de actividades,
y requisitos de entrada y salida para cada objetivo Modelo de agentes: tipos de agentes (agente=conjunto de roles) y
sus instancias
Modelo de servicios: funciones de cada rol
El refinamiento de los modelos internos realimenta los
Modelo de conocidos: con quienes puede interaccionar
modelos externos
Fase de conceptuación
Definición de casos de uso
Especificación del sistema (Análisis)
Modelo de agente
• Un agente es cualquier actor: humano, agente software, sistemas
software (e.g. BD)
• Capacidades de razonamiento, habilidades, servicios, sensores, efectores,
grupos de agentes a los que pertenece y clase de agente
Modelo de tareas
• Qué tareas pueden realizar los agentes, cómo se estructuran, objetivos, ...
Modelo de experiencia (o modelo de conocimiento)
• Conocimiento necesario por los agentes para alcanzar sus objetivos
Modelo de organización de la sociedad de agentes:
• Organización de los agentes y su relación con el entorno
Modelo de comunicación con el usuario
• Factores de la interacción humano-agente
Modelo de coordinación
• Interacciones entre agentes software
Modelo de diseño
• Arquitectura y diseño del SMA como paso previo a su implementación
Juan Pavón Mestras Juan Pavón Mestras
UCM 2004 Ingeniería del Software Orientada a Agentes 27 UCM 2004 Ingeniería del Software Orientada a Agentes 28
MESSAGE [Message 2000] INGENIAS
Crea generador
de código para
Juan Pavón Mestras Juan Pavón Mestras
plataforma final
UCM 2004 Ingeniería del Software Orientada a Agentes 33 UCM 2004 Ingeniería del Software Orientada a Agentes 34
Modelo de organización
Modelo de
Estructura del SMA, roles, relaciones de poder, workflows
Organización
Modelo de agente
Los agentes realizan tareas o persiguen objetivos
Responsabilidades, control y estado mental del agente
Modelo de Modelo de objetivos y tareas
Modelo de
Sistema Objetivos/Tareas Identificación de objetivos generales y descomposición en
Agente
Multi objetivos más concretos que se pueden asignar a agentes
Agentes Similarmente con tareas
Objetivos: motivación ⇔ Tareas: actividad
Modelo de interacción
Modelo de Modelo de Qué interacciones existen entre agentes/roles
Interacciones Entorno Modelo de entorno
Entidades y relaciones con el entorno del SMA
workflow
Grupo servicio Grupo
servicio
subordinación tarea conecta tarea
condicional/incondicional
Agente Agente responsable usa consume/produce
servicio Aplicación
subordinación Unidad de Recurso
Rol condicional/incondicional Rol Rol interacción
Agente
responsable
Estado
mental G
tarea
P
afecta
Hecho
creencia
<<activa>>
Objetivo Tarea
SAT
Aplicación objetivo objetivo
Condición de
Recurso satisfacción del
tarea
interacción objetivo
Patrón de estado
mental
Juan Pavón Mestras Juan Pavón Mestras
UCM 2004 Ingeniería del Software Orientada a Agentes 49 UCM 2004 Ingeniería del Software Orientada a Agentes 50
• La satisfacción de un objetivo justifica la elección de una tarea Descripción de relación productor-consumidor entre dos
tareas
objetivo SAT
Otra condición tarea2
FAIL
Condición de
fallo
tarea3
Define las entidades del entorno del SMA con las que vaya Accesible/Inaccesible
a interactuar Capacidad para percibir todo el entorno
Recursos Determinista/No determinista
• Elementos consumibles o no consumibles: Dado un estado y una acción ejecutada, se puede predecir el
• Descriptores de ficheros, hilos de ejecución, memoria, dispositivos de
E/S, sockets, ancho de banda, etc.
siguiente estado
Aplicaciones Episódico/No episódico
• Uso más complejo, por medio de alguna interfaz La experiencia del agente se puede segmentar en episodios
• Se pueden ver como objetos o como agentes independientes
Agentes Estático/Dinámico
• Satisfacen el principio de racionalidad El mundo no cambia mientras el agente delibera
Continuo/Discreto
Existe un conjunto finito de variables a observar y un
conjunto finito de acciones posibles
Representar el mundo que rodea al agente [Ferber 99] Entorno para un asistente de ficheros en un PC
Tarea extremadamente difícil
Enfoque pragmático (Situated Automata [Rosenschein y Kaelbling 95] y redes
ENTORNO
neuronales [Zilouchian 00])
______MUESTREO_______ DiscoDuro
Discretizar el entorno utilizando un conjunto finito de dameOcupación:90min
variables observables ___DiscoDuro___________ dameDirectorio
Asistente
• Categorizar el tipo de entidades relevantes del entorno ContenidoDiscoDuroCambio dameFichero
Reubicación
• Restringir la interacción (percepción y actuación) con estas dameContenidoFichero
ficheros
entidades: dameOcupaciónDisco
• Recursos
• Aplicaciones
• Agentes HilosEjecución MemoriaDisponible
65535 128
10000 65535 20 128
Y damos
Ejemplos de modelado
Una tesis doctoral que describe la notación y el proceso
siguiendo el planteamiento del proceso unificado
Actualmente
Revisión para adaptar al paradigma de Desarrollo de software
dirigido por modelos (MDD, Model Driven Development)
Módulo
Editor Módulo
Módulo
contiene
Módulo
Módulo
Goals/tasks
metamodel
Environmen
t Metamodel
Organizatio Description
metamodel
n XML
Agent
metamodel
metamodel
Interaction
metamodel Relationship
Editor Attributes
(e.g. Icons)
With metamodels
XML
MetaEditor MAS
Editor
ic
oicicon
o
Editor
template
Java/XML
Bibliografía Bibliografía
Bratman, M. E. (1987) Intentions, Plans, and Practical Reason. Harvard University Press.
DeLoach, S. 2001. Analysis and Design using MaSE and agentTool.. Proceedings of the 12th
Midwest Artificial Intelligence and Cognitive Science Conferece (MAICS).
Ferber, J., 1999. Multi-Agent System: An Introduction to Distributed Artificial Intelligence.
Addison Wesley Longman.
Iglesias, C. (1998). Definición de una metodología para el desarrollo de sistemas multiagente,
Tesis Doctoral, UPM.
Juan, T., Pearce, A. y Sterling, L. (2002). ROADMAP: Extending the Gaia Methodology for
Complex Open Systems. Proceedings of the first international joint conference on Autonomous
agents and multiagent systems (AAMAS2002), Bologna, Italia, 3-10.
Kinny, D., Georgeff, M. y Rao, A. (1996). A methodology and modelling technique for systems of
BDI agents. En Agents Breaking Away: Proceedings of the Seventh European Workshop on
Modelling Autonomous Agents in a Multi-Agent World, LNAI 1038, 56–71.
Nwana, H. S. et al. (1999) ZEUS: A Toolkit for Building Distributed Multi-Agent Systems, Applied
Artificial Intelligence Journal, vol. 1, no. 13, pp. 129-185.
Russell, S. y Norvig, P. (1995) Artificial Intelligence: a modern approach. Prentice Hall.
Weiss, G. Multiagent Systems. The MIT Press, 1999.
Wooldridge, M., Jennings, N. R. y Kinny, D (2000). The Gaia Methodology for Agent-Oriented
Analysis and Design, Journal of Autonomous Agents and Multi-Agent Systems, 3 (3), 285-312.
Zambonelli, F., Jennings, N. y Wooldridge, M. (2003) The Gaia methodology for agent-oriented
analysis and design. ACM TOSEM.