Sistemas multi-agente (SMA) SMA vs. OO - fdi.ucm.es · ¿Un mismo servicio se puede ofrecer...

21
Curso de doctorado: Agentes Inteligentes Desarrollo de Sistemas Multi-Agente La 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 Mestras UCM 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 Mestras UCM 2004 Ingeniería del Software Orientada a Agentes 3 Sistemas multi-agente (SMA) 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 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

Transcript of Sistemas multi-agente (SMA) SMA vs. OO - fdi.ucm.es · ¿Un mismo servicio se puede ofrecer...

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