Sistemas multi-agente (SMA) ¿Qué son? ¿Por qué otro paradigma? ¿Otra moda tecnológica? ¿Qué hay de nuevo? ¿Para qué sirven? Curso de doctorado: Agentes Inteligentes Desarrollo de Sistemas Multi-Agente La metodología INGENIAS ¿Cómo se construyen? Jorge Gómez Sanz Juan Pavón Mestras Dep. de Sistemas Informáticos y Programación http://grasia.fdi.ucm.es Juan Pavón Mestras UCM 2004 Sistemas multi-agente (SMA) Ingeniería del Software Orientada a Agentes SMA vs. OO Agentes Objetos Los agentes software tienen un conjunto de características que habrá que tener en cuenta para su desarrollo No son simplemente objetos distribuidos pero se pueden implementar como tales Tampoco son sistemas expertos pero su comportamiento podría implementarse con conceptos similares Podrían verse como un tipo de componentes software pero no se plantean como las técnicas actuales de componentes (J2EE, .NET, CCM) Son estas cosas y algo más… Juan Pavón Mestras UCM 2004 Ingeniería del Software Orientada a Agentes 2 3 Autonomía de decisión Ejecuta los métodos invocados Flujo de control del llamante Flujo de control propio Encapsula estado y comportamiento Encapsula la activación del comportamiento Estado: valor de variables Estado mental: objetivos, creencias, ... Comportamiento: salida a partir de una entrada Comportamiento: cómo decidir lo que hacer Mensajes invocan procedimiento Interacciones: actos de habla (intencionalidad) Asociaciones entre objetos Organización: relaciones sociales entre agentes Juan Pavón Mestras UCM 2004 Ingeniería del Software Orientada a Agentes 4 SMA vs. Sistemas Expertos Sobre la utilidad de los agentes Agentes Sistemas Expertos Sistemas cerrados Interactúan con el entorno Sistemas de decisión centralizados Distribución de la toma de decisiones: Comportamiento emergente 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, ...? Interacción con el usuario bajo petición del usuario Juan Pavón Mestras UCM 2004 Mayor grado de interacción con el usuario Interacción con otros agentes Ingeniería del Software Orientada a Agentes 5 Sobre la utilidad de los agentes Juan Pavón Mestras UCM 2004 Una vez decidido construir un SMA habrá que ver Qué resultados producir • Documentación • Código, prototipos, pruebas ¿Es necesario considerar una evolución del comportamiento independiente para cada uno de los componentes del sistema o para una parte significativa? Con qué lenguaje especificar el SMA • Visuales: Data Flow Diagrams, Entity-Relationship diagrams, Message Sequence Charts, UML • Formales: Z, redes de Petri ¿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? Qué actividades para producir los resultados Cómo: Guías Métricas Con qué herramientas • De análisis, diseño, implementación, validación, … ¿Hay personalización? ¿Un mismo servicio se puede ofrecer simultáneamente de manera distinta según las características de cada usuario? • Desarrollo • Entorno de ejecución ¿Hace falta definir una organización de entidades que interactúan para resolver conjuntamente problemas globales? Ingeniería del Software Orientada a Agentes 6 Metodologías de desarrollo de SMA ¿Se trata de un sistema distribuido abierto? ¿Pueden incorporarse dinámicamente nuevos tipos de entidades en el sistema? ¿Pueden cambiar las existentes? Juan Pavón Mestras UCM 2004 Ingeniería del Software Orientada a Agentes 7 Juan Pavón Mestras 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 a objetos Metodologías de desarrollo de SMA Métodos Formales • Pero... ¿cuál elegir? Sistemas expertos Z, lógica temporal Conceptos de agentes: Conceptos de agentes: Análisis de roles BDI SMA Juan Pavón Mestras UCM 2004 9 Ingeniería del Software Orientada a Agentes Metodologías para desarrollar SMA Juan Pavón Mestras UCM 2004 Kendall, MaSE, Styx, ODAC, MASB, Adelfe,... AAII (Australian Artificial Intelligence Institute) Gaia MaSE Tropos Zeus Sistemas expertos MAS-CommonKADS, CoMoMAS SMART, DESIRE, Concurrent METATEM Análisis de roles BDI Gaia, AAII, ... AAII Integració Integración: OO con conversaciones entre objetos Énfasis en la gestión de requisitos Entorno visual de desarrollo de agentes Prototipos de agentes MESSAGE, INGENIAS 11 SMA como conjunto de entidades que interactúan MAS-CommonKADS Ingeniería del Software Orientada a Agentes Basada en el modelo BDI MESSAGE, INGENIAS Juan Pavón Mestras UCM 2004 10 Algunas metodologías Orientación a objetos Métodos Formales Ingeniería del Software Orientada a Agentes CommonKADS extendido con OO, SDL y MSC Meta-modelado, agentes que siguen el principio de racionalidad de Newell Juan Pavón Mestras UCM 2004 Ingeniería del Software Orientada a Agentes 12 Metodología AAII [Kinny, Georgeff y Rao 96] (Australian Artificial Intelligence Institute) Modelo BDI (Beliefs, Desires, Intentions) Metodología AAII [Kinny, Georgeff y Rao 96] (Australian Artificial Intelligence Institute) [Bratman87] 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 Creencias Basado en análisis de roles: 1. Identificar roles del dominio de aplicación Deseos • 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 Intenciones 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 Mestras UCM 2004 Ingeniería del Software Orientada a Agentes 13 Metodología AAII [Kinny, Georgeff y Rao 96] (Australian Artificial Intelligence Institute) GAIA 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 Juan Pavón Mestras UCM 2004 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 Basado en el análisis del propósito de los servicios y su descomposición hasta llegar a planes: • Descomposición de cada objetivo en acciones y subobjetivos • Generar planes • A partir de las condiciones que controlan la ejecución de actividades, y requisitos de entrada y salida para cada objetivo Diseño: Basado en agrupación de roles en agentes El refinamiento de los modelos internos realimenta los modelos externos Ingeniería del Software Orientada a Agentes Modelo de interacciones: define los protocolos (entre roles) • Atributos: propósito, iniciador, respondedor, entradas/salidas, proceso 2. Construir las creencias del sistema Juan Pavón Mestras UCM 2004 14 [Wooldridge, Jennings y Kinny, 2000] 1. Analizar los medios para alcanzar los objetivos Ingeniería del Software Orientada a Agentes 15 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 Mestras UCM 2004 Ingeniería del Software Orientada a Agentes 16 GAIA MaSE [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 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] [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 [DeLoach et al. 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 • 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 Mestras UCM 2004 MaSE Ingeniería del Software Orientada a Agentes 17 Juan Pavón Mestras UCM 2004 Ingeniería del Software Orientada a Agentes 18 Tropos [DeLoach et al. 01] 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 Las conversaciones (protocolos de coordinación) se definen con dos diagramas de estados: uno para cada clase de agente participante Juan Pavón Mestras UCM 2004 Ingeniería del Software Orientada a Agentes 19 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 Mestras UCM 2004 Ingeniería del Software Orientada a Agentes 20 Tropos Tropos recurso Fases: objetivo Requisitos iniciales • Identifica actores relevantes con sus objetivos contribuye Requisitos posteriores • El sistema a desarrollar se considera un actor, y a partir de las dependencias con otros actores se identifican sus obligaciones plan 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 actor • Transforma las especificaciones en plantillas adaptadas a una plataforma de programación de agentes (p.ej. Jack) objetivo fuerte Juan Pavón Mestras UCM 2004 Zeus 21 http://more.btexact.com/projects/agents/zeus/ Análisis del dominio • Basado en el modelado de roles, utilizando diagramas de clase UML y patrones Agentes de utilidad Diseño de los agentes • Identificación de ontologías, servicios, tareas y relaciones entre agentes Herramienta de construcción de agentes Librería de componentes de 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 El desarrollador configurará agentes genéricos mediante la definición de Ontologías Agentes Tareas Organización Coordinación Juan Pavón Mestras UCM 2004 22 Etapas de desarrollo • Servidor de nombres • Agentes facilitadores • Agente visualizador Ingeniería del Software Orientada a Agentes [Nwana et al. 99] Proporciona una plataforma de ejecución de agentes, prototipos de agentes, y componentes para su realización Juan Pavón Mestras UCM 2004 Zeus [Nwana et al. 99] Zeus: entorno visual de desarrollo de SMA Ingeniería del Software Orientada a Agentes Soporte en tiempo de ejecución • Depuración y optimización de código con herramientas de visualización y monitorización Ingeniería del Software Orientada a Agentes 23 Juan Pavón Mestras UCM 2004 Ingeniería del Software Orientada a Agentes 24 Zeus MAS-CommonKADS [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 • 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 Generation Editor) Configuración de agentes de tarea Implementación de agentes Extiende la metodología CommonKADS desarrollo de sistemas expertos con: Creación de agente (Zeus Agent Editor) • Atributos de los agentes de utilidad (plataforma de agentes) 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 • Utilizando la herramienta de generación de código Ingeniería del Software Orientada a Agentes MAS-CommonKADS Fase de conceptuación Especificación del sistema (Análisis) 25 Juan Pavón Mestras UCM 2004 MAS-CommonKADS [Iglesias 98] de Técnicas de orientación a objetos (OMT y OOSE) Técnicas de ingeniería de protocolos: SDL y MSC • Parámetros de ejecución de los agentes de tarea Juan Pavón Mestras UCM 2004 [deHoog et al. 93] Modelo de ciclo de vida en espiral dirigido por riesgos [Iglesias 98] Ingeniería del Software Orientada a Agentes 26 [Iglesias 98] Definición de casos de uso 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 Modelo de experiencia (o modelo de conocimiento) Modelo de organización de la sociedad de agentes: Modelo de comunicación con el usuario Modelo de coordinación • Qué tareas pueden realizar los agentes, cómo se estructuran, objetivos, ... • Conocimiento necesario por los agentes para alcanzar sus objetivos • Organización de los agentes y su relación con el entorno • Factores de la interacción humano-agente • 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 UCM 2004 Ingeniería del Software Orientada a Agentes 27 Juan Pavón Mestras UCM 2004 Ingeniería del Software Orientada a Agentes 28 MESSAGE INGENIAS [Message 2000] Methodology for Engineering Systems of Software AGents) Proyecto Eurescom P907 Extiende ingeniería de software OO con conceptos del área de agentes Abordando con mayor profundidad los distintos aspectos que definen la metodología: Que se definen en 5 meta-modelos: • • • • • Evolución de MESSAGE Agente Organización Dominio Tareas-objetivos Interacciones Notación: Métodos: Adopta el Proceso Unificado de Desarrollo de Software (también conocido como Rational Unified Process) Ingeniería del Software Orientada a Agentes 29 Planteamiento de INGENIAS Generación de especificación Validación de diseño Generación de código Generación de documentación Juan Pavón Mestras UCM 2004 30 Ingeniería del Software Orientada a Agentes INGENIAS Principios Organización de entregas Actividades relacionadas Herramientas: Ingenias Development Kit (IDK) Juan Pavón Mestras UCM 2004 Lenguaje visual para expresar el diseño de SMA y agentes Agentes como paradigma de modelado El modelo de desarrollo con INGENIAS El desarrollador de SMA: realiza la aplicación • 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 Modela con el editor del IDK Simula y valida el modelo 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 metamodelos Juan Pavón Mestras UCM 2004 Ingeniería del Software Orientada a Agentes Genera código y valida el modelo 31 Juan Pavón Mestras UCM 2004 Ingeniería del Software Orientada a Agentes Implanta el SMA en la red 32 Editor de INGENIAS INGENIAS El modelo de desarrollo con INGENIAS Ingeniero INGENIAS: prepara las herramientas Prepara generador de código para simulador Define metamodelo del dominio de aplicación y puede personalizar el editor Juan Pavón Mestras UCM 2004 Ingeniería del Software Orientada a Agentes 33 Aspectos de un SMA Juan Pavón Mestras UCM 2004 Modelo de organización Modelo de agente Sistema Multi Agentes Modelo de Objetivos/Tareas Modelo de Entorno Ingeniería del Software Orientada a Agentes Los agentes realizan tareas o persiguen objetivos Responsabilidades, control y estado mental del agente 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 Modelo de entorno 35 Estructura del SMA, roles, relaciones de poder, workflows Juan Pavón Mestras UCM 2004 34 Modelo de objetivos y tareas Modelo de Interacciones Ingeniería del Software Orientada a Agentes Aspectos del SMA Modelo de Organización Modelo de Agente Crea generador de código para plataforma final Qué interacciones existen entre agentes/roles Entidades y relaciones con el entorno del SMA Juan Pavón Mestras UCM 2004 Ingeniería del Software Orientada a Agentes 36 Modelo de organización Elementos del modelo de organización La organización define una estructura donde van a existir los agentes, recursos, tareas y objetivos Descripción estructural Estructura. Descomposición de la organización en: • Grupos • Flujos de trabajo persigue Organización descompone Grupo Propósito • 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 workflow Aplicación Funcionalidad • Propósito • Tareas que debe realizar Juan Pavón Mestras UCM 2004 Agente 37 Ingeniería del Software Orientada a Agentes Elementos del modelo de organización servicio Rol Juan Pavón Mestras UCM 2004 Recurso 38 Ingeniería del Software Orientada a Agentes Elementos del modelo de organización Descripción social Organización descompone juega Descripción funcional Organización workflow Grupo Agente Rol Juan Pavón Mestras UCM 2004 servicio servicio subordinación condicional/incondicional Grupo conecta tarea responsable Agente servicio subordinación condicional/incondicional Ingeniería del Software Orientada a Agentes usa Aplicación Rol Agente 39 Juan Pavón Mestras UCM 2004 Rol tarea consume/produce Unidad de interacción Ingeniería del Software Orientada a Agentes Recurso 40 Modelo de agente Control del agente Descripción de agentes particulares Agente Funcionalidad del agente: Responsabilidades Quieren satisfacer • Qué tareas sabe ejecutar • Qué objetivos se compromete a alcanzar Objetivo Rol Agente <<juega>> Rol Tarea Satisface Comportamiento: Control del agente Evidencia Produce • Estado mental • Agregación de entidades mentales: objetivos, creencias, compromisos, hechos • Creación, destrucción, modificación de las entidades del estado mental Quieren satisfacer • Reglas, planificación, etc. Agente 41 Elementos del modelo de agente Objetivo Juan Pavón Mestras UCM 2004 puede satisfacerse ejecutando Ingeniería del Software Orientada a Agentes 42 Agente planificador Planificador clásico. Las tareas transforman entidades mentales para alcanzar objetivos del agente juega persigue Objetivo Tarea Rol • Mecanismo de decisión: procesador de estado mental Ingeniería del Software Orientada a Agentes Interacción Satisface • Gestión de estado mental Juan Pavón Mestras UCM 2004 puede satisfacerse ejecutando Rol Agente responsable Estado mental G P Hecho Juan Pavón Mestras UCM 2004 tarea afecta creencia Ingeniería del Software Orientada a Agentes 43 Juan Pavón Mestras UCM 2004 Ingeniería del Software Orientada a Agentes 44 Modelo de objetivos y tareas Ciclo de vida de un objetivo Qué consecuencias tiene la ejecución de tareas y por qué se deberían ejecutar Pendiente Justifica la ejecución de tareas basándose en objetivos Que a su vez se van modificando tras su ejecución refinamiento Refinado comienza ejecución de tarea 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é? Resolviéndose Tarea: Transiciones de estado Evidencia de éxito Evidencia de fallo Conduce a la consecución de objetivos Responde a ¿cómo? Fallo Satisfecho Objetivo Juan Pavón Mestras UCM 2004 <<activa>> Tarea 45 Ingeniería del Software Orientada a Agentes Descomposición de objetivos Árboles Y/O Juan Pavón Mestras UCM 2004 46 Ingeniería del Software Orientada a Agentes Descomposición de objetivos [Rich y Knight 90] No molestar al usuario Incrementar beneficios A A Y Y C B C B O O Evaluar autónomamente No enviar información indeseada Vender más D Reducir costes O E Resolución por éxito D E Resolución por fracaso - Reglas de transmisión de éxito o de fallo Juan Pavón Mestras UCM 2004 Ingeniería del Software Orientada a Agentes 47 Juan Pavón Mestras UCM 2004 Ingeniería del Software Orientada a Agentes 48 Elementos de definición de tareas Relaciones entre tareas y objetivos • Una tarea afecta a un objetivo precondiciones Hecho A postcondiciones tarea afecta objetivo consume Hecho C tarea Hecho B consume usa Aplicación usa Recurso Crea, destruye o modifica (satisfaciendo o fallando el objetivo) produce produce afecta • La satisfacción de un objetivo justifica la elección de una tarea objetivo objetivo interacción SAT Condición de satisfacción del objetivo tarea Patrón de estado mental Juan Pavón Mestras UCM 2004 49 Ingeniería del Software Orientada a Agentes Relaciones entre tareas y objetivos objetivo Ingeniería del Software Orientada a Agentes 50 Ejemplo de tareas • La satisfacción de un objetivo justifica la elección de una tarea Patrón de estado mental Juan Pavón Mestras UCM 2004 Descripción de relación productor-consumidor entre dos tareas SAT Condición de satisfacción del objetivo tarea1 planificación SAT Otra condición tarea2 FAIL Condición de fallo Juan Pavón Mestras UCM 2004 tarea3 Ingeniería del Software Orientada a Agentes 51 Juan Pavón Mestras UCM 2004 Ingeniería del Software Orientada a Agentes 52 Modelo de interacciones Definición de interacciones Intercambio de conocimiento o peticiones (intencionalidad) entre agentes Define las interacciones entre los agentes o entre agentes y humanos Qué actores participan en la interacción Definición de unidades de interacción Orden de las unidades de interacción 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 53 Comunicaciones entre agentes Criterios para decidir cuándo ejecutar una tarea Consecuencias de la ejecución de una tarea Objetivos que persigue la interacción Estado mental de los participantes Modelo de control Ingeniería del Software Orientada a Agentes Protocolos: contract net, FIPA request, específicos. Diagramas de protocolos AUML Definición del contexto de la interacción Mensajes, actos de habla Acciones ejecutadas en la interacción Juan Pavón Mestras UCM 2004 Cada actor debe mostrar la razón por la que participa Roles iniciador y colaboradores Mecanismos de coordinación Juan Pavón Mestras UCM 2004 Ingeniería del Software Orientada a Agentes 54 Ingeniería del Software Orientada a Agentes 56 Protocolo 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 Un protocolo • A qué se refieren los elementos que aparecen en el mensaje • Fipa-request: solicitar de un agente la ejecución de una tarea Juan Pavón Mestras UCM 2004 Ingeniería del Software Orientada a Agentes 55 Juan Pavón Mestras UCM 2004 Modelo de entorno Tipos de entorno Define las entidades del entorno del SMA con las que vaya a interactuar Accesible/Inaccesible Determinista/No determinista 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 Continuo/Discreto 57 Formas de modelar el entorno Representar el mundo que rodea al agente El mundo no cambia mientras el agente delibera Existe un conjunto finito de variables a observar y un conjunto finito de acciones posibles Juan Pavón Mestras UCM 2004 58 Ingeniería del Software Orientada a Agentes Ejemplo de entorno [Ferber 99] Entorno para un asistente de ficheros en un PC Tarea extremadamente difícil Enfoque pragmático neuronales [Zilouchian 00]) La experiencia del agente se puede segmentar en episodios independientes Estático/Dinámico Ingeniería del Software Orientada a Agentes Dado un estado y una acción ejecutada, se puede predecir el siguiente estado • Satisfacen el principio de racionalidad Juan Pavón Mestras UCM 2004 Capacidad para percibir todo el entorno Episódico/No episódico Agentes [Russel y Norvig 95] (Situated Automata [Rosenschein y Kaelbling 95] y redes ENTORNO Discretizar el entorno utilizando un conjunto finito de variables observables Asistente Reubicación ficheros • Categorizar el tipo de entidades relevantes del entorno • Restringir la interacción (percepción y actuación) con estas entidades: • Recursos • Aplicaciones • Agentes HilosEjecución 10000 Juan Pavón Mestras UCM 2004 Ingeniería del Software Orientada a Agentes 59 65535 Juan Pavón Mestras UCM 2004 65535 ______MUESTREO_______ dameOcupación:90min ___DiscoDuro___________ ContenidoDiscoDuroCambio DiscoDuro dameDirectorio dameFichero dameContenidoFichero dameOcupaciónDisco MemoriaDisponible 20 128 128 Ingeniería del Software Orientada a Agentes 60 Son muchos diagramas, entidades y relaciones Un proceso de desarrollo orientado a agentes Por ello definimos Un proceso de desarrollo Ejemplo: • Compuesto de actividades • Y que determina entregas a realizar • Los documentos llegan a una comunidad de usuarios • Serán evaluados según los gustos mayoritarios de la comunidad de usuarios de gustos similares Un entorno de desarrollo que facilite la implementación Y damos Diseño de un sistema de recomendación usando filtrado colaborativo 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 Mestras UCM 2004 Ingeniería del Software Orientada a Agentes 61 Un proceso de desarrollo orientado a agentes • De casos de uso a objetivos Ingeniería del Software Orientada a Agentes 62 2. Descomponer los OBJETIVOS en subOBJETIVOS y TAREAS Análisis: Qué tiene que hacer el sistema (requisitos) Juan Pavón Mestras UCM 2004 Ingeniería del Software Orientada a Agentes Un proceso de desarrollo orientado a agentes 1. Identificar OBJETIVOS Juan Pavón Mestras UCM 2004 Del análisis al diseño: OBJETIVOS identifican requisitos (propósito) 63 Juan Pavón Mestras UCM 2004 Ingeniería del Software Orientada a Agentes 64 Un proceso de desarrollo orientado a agentes Un proceso de desarrollo orientado a agentes 2. Descomponer los OBJETIVOS en subOBJETIVOS y TAREAS 3. Asignar OBJETIVOS a ROLES en la ORGANIZACIÓN Del análisis al diseño: Diseño: TAREAS definen procedimientos para satisfacer OBJETIVOS Juan Pavón Mestras UCM 2004 Ingeniería del Software Orientada a Agentes ROLES definen servicios (responsabilidades y funcionalidad esperada) 65 Un proceso de desarrollo orientado a agentes Diseño: ORGANIZACIÓN define arquitectura (estructura, normas) Ingeniería del Software Orientada a Agentes 66 4. Definir WORKFLOWS e INTERACCIONES Diseño: Juan Pavón Mestras UCM 2004 Ingeniería del Software Orientada a Agentes Un proceso de desarrollo orientado a agentes 3. Asignar OBJETIVOS a ROLES en la ORGANIZACIÓN Juan Pavón Mestras UCM 2004 WORKFLOWS definen relaciones entre TAREAS, ROLES y RECURSOS 67 Juan Pavón Mestras UCM 2004 Ingeniería del Software Orientada a Agentes 68 Un proceso de desarrollo orientado a agentes Un proceso de desarrollo orientado a agentes 4. Definir WORKFLOWS e INTERACCIONES 4. Definir WORKFLOWS e INTERACCIONES Diseño: Diseño: INTERACCIONES definen cómo se comunican los ROLES Juan Pavón Mestras UCM 2004 Ingeniería del Software Orientada a Agentes INTERACCIONES definen cómo se comunican los ROLES 69 Un proceso de desarrollo orientado a agentes AGENTES tienen capacidades para desempeñar ROLES Cada AGENTE puede tener una estrategia diferente para satisfacer los objetivos del mismo ROLE Ingeniería del Software Orientada a Agentes 70 6. Generación de código Diseño: Juan Pavón Mestras UCM 2004 Ingeniería del Software Orientada a Agentes Un proceso de desarrollo orientado a agentes 5. AGENTES desempeñan ROLES Juan Pavón Mestras UCM 2004 71 Simulación: validar el comportamiento del sistema multiagente Realización e implantación de un sistema ejecutable Juan Pavón Mestras UCM 2004 Ingeniería del Software Orientada a Agentes 72 Proceso de desarrollo orientado a agentes INGENIAS Development Kit Hay otras posibilidades Centrarse y comenzar con los workflows http://ingenias.sourceforge.net Editor de modelos • Cuando la organización está orientada a procesos Centrarse en la coordinación y las interacciones • Actualmente 100% Java • Cuando el problema es la definición de un algoritmo distribuido • Sistemas cooperativos Centrarse en el entorno • Sistemas empotrados • Robótica Herramienta visual (notación grasia!) Inicialmente basado en herramienta de meta-modelado (METAEDIT+) Módulos: • Jade, Robocode, Servlets, Agentes grasia! • Simulación social Ingeniería del Software Orientada a Agentes 73 IDK modelo de organización Juan Pavón Mestras UCM 2004 modelo de modelo de objetivos/tareas modelo de objetivos/tareas objetivos/tareas Ingeniería del Software Orientada a Agentes 74 El editor del IDK permite modelo de modelo de interacciones modelo de interacciones interacciones modelo de entorno Descripción SMA procesados por produce Juan Pavón Mestras UCM 2004 Para validar especificaciones: basado en AT Para generar documentación (HTML) Armazón para desarrollar módulos personalizados Editor del IDK modelo de modelo de modelo de agente agente agente Editor Para la generación de código • Armazones (plantillas) configurables, especificados con XML, para distintas plataformas de agentes Centrarse en los actores Juan Pavón Mestras UCM 2004 Generación de modelos siguiendo los meta-modelos Integración con módulos para procesamiento de las especificaciones Integración con agentes (en desarrollo) contiene 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 Módulo Módulo Módulo Módulo Módulo Ingeniería del Software Orientada a Agentes 75 Juan Pavón Mestras UCM 2004 Ingeniería del Software Orientada a Agentes 76 Manejo del Editor del IDK Generación del editor Goals/tasks metamodel Environmen t Organizatio metamodel n Agent metamodel metamodel Interaction metamodel Relationship Editor Attributes (e.g. Icons) With metamodels XML Metamodel Description XML MetaEditor MAS Editor ic oic icon o Editor template Java/XML Juan Pavón Mestras UCM 2004 77 Ingeniería del Software Orientada a Agentes Generación de código Juan Pavón Mestras UCM 2004 código código de agente código de agente de agente Generador 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: Completar/Revisar por el programador plantilla de código plantilla de código marcado plantilla de código con XML marcado con XML marcado con XML Específicos de una plataforma • Aspectos sociales (organización, interacciones, negociación) • Comportamiento (autonomía, estado mental, objetivos, tareas) • Concurrencia y distribución Plataforma de agentes Ingeniería del Software Orientada a Agentes Modelado desde varios puntos de vista (Vowel Engineering, AAII, MAS-CommonKADS, MESSAGE) (deben reunir los elementos de los metamodelos) Juan Pavón Mestras UCM 2004 78 Conclusiones modelo modelo SMA modelo SMA SMA (XML) Ingeniería del Software Orientada a Agentes 79 Para poder gestionar la complejidad del SMA Modelos: Entorno, dominio/ontología, roles, objetivos/tareas, interacciones/protocolos, organización, agente Juan Pavón Mestras UCM 2004 Ingeniería del Software Orientada a Agentes 80 Conclusiones Análisis Resumen Casos de uso para capturar requisitos funcionales Roles y servicios para agrupar las distintas funcionalidades asociadas a un agente o grupo de agentes • • • • • 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 Mestras UCM 2004 Ingeniería del Software Orientada a Agentes 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 81 Bibliografía Una notación para modelar un SMA desde cinco puntos de vista: Diseño INGENIAS proporciona Juan Pavón Mestras UCM 2004 Ingeniería del Software Orientada a Agentes 82 Ingeniería del Software Orientada a Agentes 84 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. 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-374 Juan Pavón Mestras UCM 2004 Ingeniería del Software Orientada a Agentes 83 Juan Pavón Mestras UCM 2004