Curso de doctorado:
Agentes Inteligentes
Desarrollo de Sistemas Multi-AgenteLa metodología INGENIAS
Jorge Gómez Sanz
Juan Pavón Mestras
Dep. de Sistemas Informáticos y Programación
http://grasia.fdi.ucm.es
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 2
Sistemas multi-agente (SMA)
¿Qué son?¿Por qué otro paradigma?¿Otra moda tecnológica?¿Qué hay de nuevo?¿Para qué sirven?
¿Cómo se construyen?
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 3
Sistemas multi-agente (SMA)
� Los agentes software tienen un conjunto de característicasque habrá que tener en cuenta para su desarrollo
� No son simplemente objetos distribuidos pero se puedenimplementar como tales
� Tampoco son sistemas expertos pero su comportamientopodría implementarse con conceptos similares
� Podrían verse como un tipo de componentes software perono se plantean como las técnicas actuales de componentes(J2EE, .NET, CCM)
� Son estas cosas y algo más…
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 4
SMA vs. OO
Agentes� Autonomía de decisión
� Flujo de control propio
� Encapsula la activación del comportamiento
� Estado mental: objetivos, creencias, ...
� Comportamiento: cómo decidir lo que hacer
� Interacciones: actos de habla (intencionalidad)
� Organización: relaciones sociales entre agentes
Objetos
� Ejecuta los métodos invocados
� Flujo de control del llamante
� Encapsula estado y comportamiento
� Estado: valor de variables
� Comportamiento: salida a partir de una entrada
� Mensajes invocan procedimiento
� Asociaciones entre objetos
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 5
SMA vs. Sistemas Expertos
Agentes� Interactúan con el entorno
� Distribución de la toma de decisiones:Comportamiento emergente
� Mayor grado de interacción con el usuario
� Interacción con otros agentes
Sistemas Expertos� Sistemas cerrados
� Sistemas de decisión centralizados
� Interacción con el usuario bajo petición del usuario
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 6
Sobre la utilidad de los agentes
� La primera pregunta que habrá que plantearse cuando se va a realizar un sistema es:
¿Hace falta utilizar agentes?
¿O bastaría con objetos, componentes, ...?
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 7
Sobre la utilidad de los agentes
� ¿Se trata de un sistema distribuido abierto? ¿Pueden incorporarse dinámicamente nuevos tipos de entidades en el sistema? ¿Pueden cambiar las existentes?
� ¿Es necesario considerar una evolución del comportamiento independiente para cada uno de los componentes del sistema o para una parte significativa?
� ¿Hay incertidumbre? ¿Es posible para una entidad del sistema conocer su contexto suficientemente para poder decidir con certeza el efecto de las acciones que puede realizar?
� ¿Hay personalización? ¿Un mismo servicio se puede ofrecer simultáneamente de manera distinta según las características de cada usuario?
� ¿Hace falta definir una organización de entidades que interactúan para resolver conjuntamente problemas globales?
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 8
Metodologías de desarrollo de SMA
� Una vez decidido construir un SMA habrá que ver� Qué resultados producir
• Documentación• Código, prototipos, pruebas
� Con qué lenguaje especificar el SMA• Visuales: Data Flow Diagrams, Entity-Relationship diagrams, Message Sequence Charts, UML
• Formales: Z, redes de Petri
� Qué actividades para producir los resultados• De análisis, diseño, implementación, validación, …
� Cómo: Guías� Métricas� Con qué herramientas
• Desarrollo• Entorno de ejecución
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 9
Metodologías de desarrollo de SMA
� La respuesta:
� Metodologías de desarrollo de SMA
• Pero... ¿cuál elegir?
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 10
Metodologías para desarrollar SMA
Orientación a objetos
Conceptos de agentes:
Análisis de roles
Métodos Formales
Z, lógica temporal
Sistemasexpertos
Conceptos de agentes:
BDI
SMA
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 11
Metodologías para desarrollar SMA
Orientación a objetos
Kendall, MaSE, Styx, ODAC, MASB, Adelfe,...
Análisis de roles
Gaia, AAII, ...
Métodos Formales
SMART, DESIRE,Concurrent METATEM
Sistemas expertos
MAS-CommonKADS,CoMoMAS
BDI
AAIIIntegraciIntegracióón:n:
MESSAGE, INGENIAS
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 12
Algunas metodologías
� AAII (Australian Artificial Intelligence Institute)� Basada en el modelo BDI
� Gaia� SMA como conjunto de entidades que interactúan
� MaSE� OO con conversaciones entre objetos
� Tropos� Énfasis en la gestión de requisitos
� Zeus� Entorno visual de desarrollo de agentes� Prototipos de agentes
� MAS-CommonKADS� CommonKADS extendido con OO, SDL y MSC
� MESSAGE, INGENIAS� Meta-modelado, agentes que siguen el principio de racionalidad de
Newell
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 13
Metodología AAII [Kinny, Georgeff y Rao 96](Australian Artificial Intelligence Institute)
� Modelo BDI (Beliefs, Desires, Intentions) [Bratman87]
CreenciasDeseos
Intenciones
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 14
Metodología AAII [Kinny, Georgeff y Rao 96](Australian Artificial Intelligence Institute)
� Punto de vista externo• Modelo de agentes: jerarquía de clases• Modelo de interacciones: responsabilidades de los agentes,
servicios que proporcionan, interacciones asociadas, relaciones de control entre agentes
� Basado en análisis de roles:1. Identificar roles del dominio de aplicación
• Primera definición de clases de agentes
2. Para cada role, identificar las responsabilidades asociadas y servicios que proporciona• Descompone las clases de agentes hasta el nivel de servicios
3. Para cada servicio,identificar las interacciones asociadas• Modelo interno de cada clase de agente
4. Refinar la jerarquía de agentes• Definir superclases cuando hay clases de agentes con similitud• Componer clases de agentes con herencia o agregación• Introducir clases concretas de agente teniendo en cuenta aspectos
específicos de implementación
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 15
Metodología AAII [Kinny, Georgeff y Rao 96](Australian Artificial Intelligence Institute)
� Punto de vista interno (basado en BDI)• Modelo de creencias: información sobre el entorno, estado
interno del agente y acciones que puede realizar• Modelo de objetivos: objetivos que puede adoptar el agente y
eventos a los que puede responder• Modelo de planes: secuencias de acciones que puede emplear el
agente� Basado en el análisis del propósito de los servicios y su
descomposición hasta llegar a planes:1. Analizar los medios para alcanzar los objetivos
• Descomposición de cada objetivo en acciones y subobjetivos• Generar planes
2. Construir las creencias del sistema• A partir de las condiciones que controlan la ejecución de actividades,
y requisitos de entrada y salida para cada objetivo
� El refinamiento de los modelos internos realimenta los modelos externos
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 16
GAIA [Wooldridge, Jennings y Kinny, 2000]
� Extiende la metodología Fusion [Coleman et al. 94]
� SMA como organización de entidades que interactúan� Análisis: Basado en análisis de roles en interacción
� Modelo de roles: • Para cada rol (un individuo, departamento u organización de la vida real):
• Responsabilidades: funcionalidad del agente (como propiedades de viveza y seguridad)
• Permisos: derechos a información y recursos• Actividades: acciones privadas (sin interactuar con otros agentes)• Protocolos
� Modelo de interacciones: define los protocolos (entre roles)• Atributos: propósito, iniciador, respondedor, entradas/salidas, proceso
� Diseño: Basado en agrupación de roles en agentes� Modelo de agentes: tipos de agentes (agente=conjunto de roles) y
sus instancias� Modelo de servicios: funciones de cada rol� Modelo de conocidos: con quienes puede interaccionar
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 17
GAIA [Wooldridge, Jennings y Kinny, 2000]
� Extensiones� ROADMAP [Juan, Pearce y Sterling, 2002]
• En el análisis añade:• Captura de requisitos utilizando casos de uso• Modelo de entorno• Modelo de conocimiento, derivado de los dos anteriores
• Especificación de interacciones utilizando AUML
� Gaia II [Zambonelli, Jennings y Wooldridge, 2003]
• En el análisis añade:• Modelo del entorno: representación computacional abstracta del
entorno del SMA, como una lista de recursos abstractos• Reglas organizacionales: restricciones para las actividades de los
roles
• En el diseño considera la definición de la estructura organizacional
• Definida a partir de un conjunto de patrones organizacionales
• Sigue sin considerar la implementación
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 18
MaSE [DeLoach et al. 01]
� Agentes como objetos con capacidad de coordinarse mediante conversaciones
� Agentes: clases cuyo comportamiento está definido por autómatas
� Soportado por la herramienta agentTool [DeLoach y Wood 01]
� Generación automática de código� Notación UML
� Basado en el RUP, trata especialmente las actividades de análisis y diseño
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 19
MaSE [DeLoach et al. 01]
Las conversaciones (protocolos de coordinación) se definen con dos diagramas de estados: uno para cada clase de agente participante
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 20
Tropos
� Integración de trabajo teórico previo: i*, KAOS� Proceso de desarrollo
� Análisis y Diseño basado en refinamiento de diagramas i* ampliados
� Diseño detallado empleando técnicas adicionales• AUML para modelar protocolos• Diagramas de Planes
� Implementación mediante plantillas de traducción a plataformas de agentes BDI
� Existen ejemplos de aplicación� Hay herramientas de soporte pero no son de dominio
público
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 21
Tropos
� Fases:� Requisitos iniciales
• Identifica actores relevantes con sus objetivos
� Requisitos posteriores• El sistema a desarrollar se considera un actor, y a partir de las dependencias con otros actores se identifican sus obligaciones
� Diseño arquitectural• Se introducen más actores del sistema mediante descomposición de objetivos y tareas del sistema
� Diseño detallado• Definición de los actores del sistema en detalle, incluyendo protocolos de comunicación y coordinación
� Implementación• Transforma las especificaciones en plantillas adaptadas a una plataforma de programación de agentes (p.ej. Jack)
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 22
Tropos
actor
objetivo fuerte
objetivo
plan
recurso
contribuye
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 23
Zeus [Nwana et al. 99]
� Zeus: entorno visual de desarrollo de SMA� http://more.btexact.com/projects/agents/zeus/
� Proporciona una plataforma de ejecución de agentes, prototipos de agentes, y componentes para su realización� Agentes de utilidad
• Servidor de nombres • Agentes facilitadores• Agente visualizador
� Herramienta de construcción de agentes� Librería de componentes de agentes
� El desarrollador configurará agentes genéricos mediante la definición de� Ontologías� Agentes� Tareas� Organización� Coordinación
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 24
Zeus [Nwana et al. 99]
� Etapas de desarrollo� Análisis del dominio
• Basado en el modelado de roles, utilizando diagramas de clase UML y patrones
� Diseño de los agentes• Identificación de ontologías, servicios, tareas y relaciones entre agentes
� Realización de los agentes• Definición de los elementos identificados en el diseño y su implementación
• Guiado por las herramientas gráficas de construcción de agentes de Zeus
� Soporte en tiempo de ejecución• Depuración y optimización de código con herramientas de visualización y monitorización
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 25
Zeus [Nwana et al. 99]
� Etapa de realización de agentes� Creación de la ontología (Zeus Ontology Editor)
• Conocimiento declarativo que representa los conceptos significativos dentro del dominio de la aplicación
� Creación de agente (Zeus Agent Editor)• Configuración de un agente genérico de Zeus: definición de agente, descripción de tareas, organización del agente, coordinación del agente
� Configuración de agentes de utilidad (Code GenerationEditor)• Atributos de los agentes de utilidad (plataforma de agentes)
� Configuración de agentes de tarea• Parámetros de ejecución de los agentes de tarea
� Implementación de agentes• Utilizando la herramienta de generación de código
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 26
MAS-CommonKADS [Iglesias 98]
� Extiende la metodología CommonKADS [deHoog et al. 93] de desarrollo de sistemas expertos con:� Técnicas de orientación a objetos (OMT y OOSE)� Técnicas de ingeniería de protocolos: SDL y MSC
� Modelo de ciclo de vida en espiral dirigido por riesgos� Y modelo en cascada con reutilización para proyectos pequeños
� El desarrollo de un SMA consiste en rellenar un conjunto de plantillas de un número de modelos interrelacionados� Asociada a cada plantilla hay un estado que caracteriza los hitos en el desarrollo de cada modelo• Para cada variable de estado se pueden asociar varios valores: vacío, identificado, descrito y validado
• Ejemplo de estados hito: identificación inicial de los agentes, descripción de objetivos y servicios, validación de relaciones entre un modelo y los demás
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 27
MAS-CommonKADS [Iglesias 98]
� 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 MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 28
MAS-CommonKADS [Iglesias 98]
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 29
MESSAGE [Message 2000]
� Methodology for Engineering Systems of Software AGents) Proyecto Eurescom P907
� Extiende ingeniería de software OO con conceptos del área de agentes� Que se definen en 5 meta-modelos:
• Agente• Organización• Dominio• Tareas-objetivos• Interacciones
� Adopta el Proceso Unificado de Desarrollo de Software (también conocido como Rational Unified Process)
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 30
INGENIAS
Evolución de MESSAGE
Abordando con mayor profundidad los distintos aspectos que definen la metodología:
� Notación:� Lenguaje visual para expresar el diseño de SMA y agentes
� Métodos: � Organización de entregas� Actividades relacionadas
� Herramientas: Ingenias Development Kit (IDK)� Generación de especificación� Validación de diseño� Generación de código� Generación de documentación
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 31
Planteamiento de INGENIAS
� Principios� Agentes como paradigma de modelado
• Conceptos de más alto nivel que en objetos y más cercanos al dominio
• Se pueden considerar adaptaciones específicas a dominios de aplicación particulares
• Los aspectos organizativos e intencionales reducen el salto de especificación de requisitos a implementación
� Implementación sobre distintos tipos de plataforma• Un modelo de SMA se puede implementar sobre una plataforma de agentes o sobre un entorno de objetos tradicional
• La metodología facilita y promueve el desarrollo de herramientas de generación de código que faciliten el paso del modelo (análisis y diseño) a la implementación
� Contempla la evolución de la tecnología de agentes• Adaptabilidad a nuevos lenguajes y estándares (p.ej. AUML)
� Todo ello basado en la utilización y manipulación de meta-modelos
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 32
INGENIAS
� El modelo de desarrollo con INGENIAS� El desarrollador de SMA: realiza la aplicación
Modela con el editordel IDK
Simula y valida el modelo
Implanta el SMAen la red
Genera código y valida el modelo
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 33
Editor de INGENIAS
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 34
INGENIAS
� El modelo de desarrollo con INGENIAS� Ingeniero INGENIAS: prepara las herramientas
Define metamodelodel dominio de
aplicación y puede personalizar el editor
Prepara generador de código para simulador
Crea generador de código para plataforma final
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 35
Aspectos de un SMA
SistemaMulti
Agentes
Modelo de Organización
Modelo de Agente
Modelo de Objetivos/Tareas
Modelo de Entorno
Modelo de Interacciones
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 36
Aspectos del SMA
� Modelo de organización� Estructura del SMA, roles, relaciones de poder, workflows
� Modelo de agente� Los agentes realizan tareas o persiguen objetivos� Responsabilidades, control y estado mental del agente
� Modelo de objetivos y tareas� Identificación de objetivos generales y descomposición en objetivos más concretos que se pueden asignar a agentes
� Similarmente con tareas� Objetivos: motivación ⇔ Tareas: actividad
� Modelo de interacción� Qué interacciones existen entre agentes/roles
� Modelo de entorno� Entidades y relaciones con el entorno del SMA
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 37
Modelo de organización
� La organización define una estructura donde van a existir los agentes, recursos, tareas y objetivos� Estructura. Descomposición de la organización en:
• Grupos• Flujos de trabajo
• Interrelación de tareas en flujos de trabajo• Relaciones entre agentes respecto a las tareas• Recursos disponibles y asignación
� Relaciones sociales• Relaciones de poder (p.ej. subordinación) y cliente/servidor entre agentes
• Relaciones entre grupos• Relaciones entre organizaciones
� Funcionalidad• Propósito• Tareas que debe realizar
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 38
Elementos del modelo de organización
Descripción estructural
Organización
Grupo
Agente Rol
juega
Propósitopersigue
workflow
descomponeAplicación
descompone
Recurso
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 39
Elementos del modelo de organización
Descripción social
Organización
Grupo
Agente
Rol
servicio Organización
Grupo
Agente
Rol
subordinación
servicio
subordinación
condicional/incondicional
condicional/incondicional
servicio
servicio
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 40
Elementos del modelo de organización
Descripción funcional
workflow
tarea tareaconecta
AgenteRol
Aplicación
usaresponsableconsume/produce
RecursoUnidad de interacción
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 41
Modelo de agente
� Descripción de agentes particulares� Funcionalidad del agente: Responsabilidades
• Qué tareas sabe ejecutar• Qué objetivos se compromete a alcanzar
� Comportamiento: Control del agente• Estado mental
• Agregación de entidades mentales: objetivos, creencias, compromisos, hechos
• Gestión de estado mental• Creación, destrucción, modificación de las entidades del estado
mental
• Mecanismo de decisión: procesador de estado mental• Reglas, planificación, etc.
Agente Rol<<juega>>
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 42
Control del agente
Rol
Objetivo
Tarea
Rol
Objetivo
Tarea
EvidenciaInteracciónProduce
Satisface
Satisface
Quieren satisfacer
Quieren satisfacer
puede satisfacerse ejecutando
puede satisfacerse ejecutando
Agente
Agente
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 43
Elementos del modelo de agente
Agente Rol
juega
Objetivopersigue
tareaPG
creencia
Estado mental
responsable
afectaHecho
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 44
Agente planificador
� Planificador clásico. Las tareas transforman entidades mentales para alcanzar objetivos del agente
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 45
Modelo de objetivos y tareas
� Qué consecuencias tiene la ejecución de tareas y por qué se deberían ejecutar� Justifica la ejecución de tareas basándose en objetivos� Que a su vez se van modificando tras su ejecución
� Objetivo: Situación deseada� Conjunto de estados que el agente quiere lograr, mantener, o evitar � Una función de utilidad que maximizar� Responde a ¿por qué?
� Tarea: Transiciones de estado� Conduce a la consecución de objetivos� Responde a ¿cómo?
Objetivo Tarea<<activa>>
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 46
Ciclo de vida de un objetivo
Pendiente Refinado
Resolviéndose
FalloSatisfecho
refinamiento
comienza ejecución de tarea
Evidencia de éxito Evidencia de fallo
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 47
Descomposición de objetivos
Árboles Y/O [Rich y Knight 90]
Evaluarautónomamente
No molestaral usuario
No enviarinformación indeseada
Vender más
Incrementarbeneficios
Reducircostes
O
- Reglas de transmisión de éxito o de fallo
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 48
Descomposición de objetivos
A
B C
D E
Y
O
Resolución por éxito
A
B C
D E
Y
O
Resolución por fracaso
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 49
Elementos de definición de tareas
Hecho A
Hecho Btarea
consume
consume
Hecho Cproduce
AplicaciónRecurso
usausa afecta
objetivo
precondicionespostcondiciones
produce
interacción
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 50
Relaciones entre tareas y objetivos
• Una tarea afecta a un objetivo
tarea afectaobjetivo
Crea, destruye o modifica (satisfaciendo o fallando el objetivo)
objetivotarea
SATCondición de satisfacción del objetivo
Patrón de estado mental
• La satisfacción de un objetivo justifica la elección de una tarea
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 51
tarea1
Relaciones entre tareas y objetivos
objetivotarea2
SATOtra condición
Patrón de estado mental
• La satisfacción de un objetivo justifica la elección de una tarea
SATCondición de satisfacción del objetivo
tarea3
FAILCondición de fallo
planificación
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 52
Ejemplo de tareas
� Descripción de relación productor-consumidor entre dos tareas
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 53
Modelo de interacciones
� Intercambio de conocimiento o peticiones (intencionalidad) entre agentes
� Define las interacciones entre los agentes o entre agentes y humanos� Se definen a alto nivel, en diseño se detalla el protocolo de interacción
� Se puede usar el concepto de protocolo de interacción de Agent UML o los protocolos de Gaia
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 54
Definición de interacciones
� Qué actores participan en la interacción� Cada actor debe mostrar la razón por la que participa� Roles iniciador y colaboradores
� Definición de unidades de interacción� Mensajes, actos de habla
� Orden de las unidades de interacción� Protocolos: contract net, FIPA request, específicos.� Diagramas de protocolos AUML
� Acciones ejecutadas en la interacción� Criterios para decidir cuándo ejecutar una tarea� Consecuencias de la ejecución de una tarea
� Definición del contexto de la interacción� Objetivos que persigue la interacción� Estado mental de los participantes
� Modelo de control� Mecanismos de coordinación
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 55
Comunicaciones entre agentes
� Actos del habla� Determina un conjunto de primitivas con las que se comunican los agentes• request:solicitar la ejecución de una acción• inform: modificar la informacion que almacena un agente• not-understood: no se ha comprendido el mensaje
� Necesita de un lenguaje de contenido• XML• SL0
� Una ontología• A qué se refieren los elementos que aparecen en el mensaje
� Un protocolo• Fipa-request: solicitar de un agente la ejecución de una tarea
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 56
Protocolo
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 57
Modelo de entorno
� Define las entidades del entorno del SMA con las que vaya a interactuar� Recursos
• Elementos consumibles o no consumibles:• Descriptores de ficheros, hilos de ejecución, memoria, dispositivos de
E/S, sockets, ancho de banda, etc.
� Aplicaciones• Uso más complejo, por medio de alguna interfaz• Se pueden ver como objetos o como agentes
� Agentes• Satisfacen el principio de racionalidad
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 58
Tipos de entorno [Russel y Norvig 95]
� Accesible/Inaccesible� Capacidad para percibir todo el entorno
� Determinista/No determinista� Dado un estado y una acción ejecutada, se puede predecir el siguiente estado
� Episódico/No episódico� La experiencia del agente se puede segmentar en episodios independientes
� Estático/Dinámico� 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
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 59
Formas de modelar el entorno
� Representar el mundo que rodea al agente [Ferber 99]� Tarea extremadamente difícil
� Enfoque pragmático (Situated Automata [Rosenschein y Kaelbling 95] y redes
neuronales [Zilouchian 00])
� Discretizar el entorno utilizando un conjunto finito de variables observables• Categorizar el tipo de entidades relevantes del entorno• Restringir la interacción (percepción y actuación) con estas entidades:
• Recursos• Aplicaciones• Agentes
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 60
Ejemplo de entorno
� Entorno para un asistente de ficheros en un PC
AsistenteReubicaciónficheros
6553510000 65535
HilosEjecución
12820 128
MemoriaDisponible
DiscoDuro
dameDirectoriodameFicherodameContenidoFicherodameOcupaciónDisco
ENTORNO
______MUESTREO_______dameOcupación:90min
___DiscoDuro___________ContenidoDiscoDuroCambio
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 61
Son muchos diagramas, entidades y relaciones
� Por ello definimos� Un proceso de desarrollo
• Compuesto de actividades• Y que determina entregas a realizar
� Un entorno de desarrollo que facilite la implementación
� 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)
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 62
Un proceso de desarrollo orientado a agentes
� Ejemplo: � Diseño de un sistema de recomendación usando filtradocolaborativo• Los documentos llegan a una comunidad de usuarios• Serán evaluados según los gustos mayoritarios de la comunidadde usuarios de gustos similares
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 63
Un proceso de desarrollo orientado a agentes
1. Identificar OBJETIVOS� Análisis: Qué tiene que hacer el sistema (requisitos)
• De casos de uso a objetivos
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 64
Un proceso de desarrollo orientado a agentes
2. Descomponer los OBJETIVOS en subOBJETIVOS y TAREAS� Del análisis al diseño:
� OBJETIVOS identifican requisitos (propósito)
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 65
Un proceso de desarrollo orientado a agentes
2. Descomponer los OBJETIVOS en subOBJETIVOS y TAREAS� Del análisis al diseño:
� TAREAS definen procedimientos para satisfacer OBJETIVOS
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 66
Un proceso de desarrollo orientado a agentes
3. Asignar OBJETIVOS a ROLES en la ORGANIZACIÓN� Diseño:
� ROLES definen servicios (responsabilidades y funcionalidadesperada)
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 67
Un proceso de desarrollo orientado a agentes
3. Asignar OBJETIVOS a ROLES en la ORGANIZACIÓN� Diseño:
� ORGANIZACIÓN define arquitectura (estructura, normas)
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 68
Un proceso de desarrollo orientado a agentes
4. Definir WORKFLOWS e INTERACCIONES� Diseño:
� WORKFLOWS definen relaciones entre TAREAS, ROLES y RECURSOS
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 69
Un proceso de desarrollo orientado a agentes
4. Definir WORKFLOWS e INTERACCIONES� Diseño:
� INTERACCIONES definen cómo se comunican los ROLES
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 70
Un proceso de desarrollo orientado a agentes
4. Definir WORKFLOWS e INTERACCIONES� Diseño:
� INTERACCIONES definen cómo se comunican los ROLES
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 71
Un proceso de desarrollo orientado a agentes
5. AGENTES desempeñan ROLES � Diseño:
� AGENTES tienen capacidades para desempeñar ROLES� Cada AGENTE puede tener una estrategia diferente para
satisfacer los objetivos del mismo ROLE
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 72
Un proceso de desarrollo orientado a agentes
6. Generación de código� Simulación: validar el comportamiento del sistema multi-
agente� Realización e implantación de un sistema ejecutable
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 73
Proceso de desarrollo orientado a agentes
� Hay otras posibilidades
� Centrarse y comenzar con los workflows • Cuando la organización está orientada a procesos
� Centrarse en la coordinación y las interacciones• Cuando el problema es la definición de un algoritmo distribuido• Sistemas cooperativos
� Centrarse en el entorno• Sistemas empotrados• Robótica
� Centrarse en los actores• Simulación social
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 74
INGENIAS Development Kit
� http://ingenias.sourceforge.net
� Editor de modelos� Herramienta visual (notación grasia!)� Inicialmente basado en herramienta de meta-modelado
(METAEDIT+)• Actualmente 100% Java
� Generación de modelos siguiendo los meta-modelos� Integración con módulos para procesamiento de las especificaciones� Integración con agentes (en desarrollo)
� Módulos:� Para la generación de código
• Armazones (plantillas) configurables, especificados con XML, para distintas plataformas de agentes
• Jade, Robocode, Servlets, Agentes grasia!
� Para validar especificaciones: basado en AT� Para generar documentación (HTML)� Armazón para desarrollar módulos personalizados
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 75
IDK
Descripción SMA
modelo de agentemodelo de agentemodelo de agente
modelo de organización
modelo de objetivos/tareasmodelo de objetivos/tareasmodelo de objetivos/tareas
modelo de entorno
modelo de interaccionesmodelo de interaccionesmodelo de interacciones
EditorMóduloMóduloMóduloMóduloMódulo
produce procesados por
contiene
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 76
Editor del IDK
� El editor del IDK permite� Crear y modificar modelos de SMA� Generar documentación (HTML)� Sacar snapshots de los diagramas para utilizarlos en otras aplicaciones
� Procesar las especificaciones mientras se están generando con el editor o una vez grabadas en un fichero
� Introducir explicaciones en lenguaje natural de los diferentes diagramas y de cada elemento en los diagramas, así como añadir etiquetas de texto
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 77
Manejo del Editor del IDK
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 78
Generación del editor
Goals/tasks metamodel Environmen
t metamodel
Organization
metamodel Agent
metamodel Interaction metamodel
MAS Editor
Editor template Java/XML
Metamodel Description
XML
icoicoicon
Relationship Editor Attributes (e.g. Icons)
With metamodels XML
MetaEditor
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 79
modelo SMAmodelo
SMAmodelo SMA (XML)
Específicos de una plataforma(deben reunir los elementos de los metamodelos)
Generación de código
plantilla de códigomarcado con XML
Plataforma de agentes
plantilla de códigomarcado con XML
plantilla de códigomarcado con XML
Generadorcódigo
de agentecódigode agentecódigode agente
Completar/Revisarpor el programador
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 80
Conclusiones
� El paradigma de agente extiende al de objeto:� Aprovechar las metodologías OO
• Más fácil de aceptar por los ingenieros software• Aprovecha herramientas y experiencia
� Ciclo de desarrollo iterativo e incremental, basado en casos de uso
� Extensiones: • Aspectos sociales (organización, interacciones, negociación)• Comportamiento (autonomía, estado mental, objetivos, tareas)• Concurrencia y distribución
� Modelado desde varios puntos de vista (VowelEngineering, AAII, MAS-CommonKADS, MESSAGE)� Para poder gestionar la complejidad del SMA� Modelos: Entorno, dominio/ontología, roles, objetivos/tareas, interacciones/protocolos, organización, agente
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 81
Conclusiones
� Análisis� Casos de uso para capturar requisitos funcionales� Roles y servicios para agrupar las distintas funcionalidades asociadas a un agente o grupo de agentes
� Diseño� Independiente de la arquitectura (Gaia)� Basado en una arquitectura concreta (MaSE, AAII, Zeus)� Define el modelo computacional del agente => arquitectura del agente (MAS-CommonKADS)
� Relevancia de las herramientas (Zeus, MaSE, MESSAGE, INGENIAS)
� Intentos de estandarización: FIPA Methodology TC y AgentLink AOSE TFG
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 82
Resumen
� INGENIAS proporciona� Una notación para modelar un SMA desde cinco puntos de vista:• Organización• Agente• Objetivos/Tareas• Interacciones• Entorno
� Un conjunto de actividades que se pueden enmarcar dentro de un proceso de desarrollo estándar: el Proceso Unificado
� Herramientas de soporte: Ingenias Development Kit (IDK)• Generación de código sobre distintas plataformas• En el futuro tiene que evolucionar para:
• Mejorar la usabilidad y documentación• Facilitar trabajo en equipo (esto requiere, entre otras facilidades,
control de versiones)• Identificación de patrones de diseño orientado a agentes
Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 83
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 Autonomousagents 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.
� Web sobre metodologías de agentes: http://ma.ei.uvigo.es/isoa/� Gómez Sanz, J.J. y Pavón, J. Methodologies for Developing Multi-Agent
Systems, Journal of Universal Computer Science (10) 4, 359-374Juan Pavón MestrasUCM 2004 Ingeniería del Software Orientada a Agentes 84
Bibliografía