Download - Des Arrollo Sma
-
Curso de doctorado:
Agentes Inteligentes
Desarrollo de Sistemas Multi-AgenteLa metodologa INGENIAS
Jorge Gmez Sanz
Juan Pavn Mestras
Dep. de Sistemas Informticos y Programacin
http://grasia.fdi.ucm.es
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 2
Sistemas multi-agente (SMA)
Qu son?Por qu otro paradigma?Otra moda tecnolgica?Qu hay de nuevo?Para qu sirven?
Cmo se construyen?
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 3
Sistemas multi-agente (SMA)
Los agentes software tienen un conjunto de caractersticasque habr que tener en cuenta para su desarrollo
No son simplemente objetos distribuidos pero se puedenimplementar como tales
Tampoco son sistemas expertos pero su comportamientopodra implementarse con conceptos similares
Podran verse como un tipo de componentes software perono se plantean como las tcnicas actuales de componentes(J2EE, .NET, CCM)
Son estas cosas y algo ms
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 4
SMA vs. OO
Agentes Autonoma de decisin
Flujo de control propio
Encapsula la activacin del comportamiento
Estado mental: objetivos, creencias, ...
Comportamiento: cmo decidir lo que hacer
Interacciones: actos de habla (intencionalidad)
Organizacin: relaciones sociales entre agentes
Objetos
Ejecuta los mtodos 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 Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 5
SMA vs. Sistemas Expertos
Agentes Interactan con el entorno
Distribucin de la toma de decisiones:Comportamiento emergente
Mayor grado de interaccin con el usuario
Interaccin con otros agentes
Sistemas Expertos Sistemas cerrados
Sistemas de decisin centralizados
Interaccin con el usuario bajo peticin del usuario
Juan Pavn MestrasUCM 2004 Ingeniera 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 bastara con objetos, componentes, ...?
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 7
Sobre la utilidad de los agentes
Se trata de un sistema distribuido abierto? Pueden incorporarse dinmicamente nuevos tipos de entidades en el sistema? Pueden cambiar las existentes?
Es necesario considerar una evolucin 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 personalizacin? Un mismo servicio se puede ofrecer simultneamente de manera distinta segn las caractersticas de cada usuario?
Hace falta definir una organizacin de entidades que interactan para resolver conjuntamente problemas globales?
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 8
Metodologas de desarrollo de SMA
Una vez decidido construir un SMA habr que ver Qu resultados producir
Documentacin Cdigo, 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 anlisis, diseo, implementacin, validacin,
Cmo: Guas Mtricas Con qu herramientas
Desarrollo Entorno de ejecucin
-
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 9
Metodologas de desarrollo de SMA
La respuesta:
Metodologas de desarrollo de SMA
Pero... cul elegir?
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 10
Metodologas para desarrollar SMA
Orientacin a objetos
Conceptos de agentes:
Anlisis de roles
Mtodos Formales
Z, lgica temporal
Sistemasexpertos
Conceptos de agentes:
BDI
SMA
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 11
Metodologas para desarrollar SMA
Orientacin a objetos
Kendall, MaSE, Styx, ODAC, MASB, Adelfe,...
Anlisis de roles
Gaia, AAII, ...
Mtodos Formales
SMART, DESIRE,Concurrent METATEM
Sistemas expertos
MAS-CommonKADS,CoMoMAS
BDI
AAIIIntegraciIntegracin:n:
MESSAGE, INGENIAS
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 12
Algunas metodologas
AAII (Australian Artificial Intelligence Institute) Basada en el modelo BDI
Gaia SMA como conjunto de entidades que interactan
MaSE OO con conversaciones entre objetos
Tropos nfasis en la gestin 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 Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 13
Metodologa AAII [Kinny, Georgeff y Rao 96](Australian Artificial Intelligence Institute)
Modelo BDI (Beliefs, Desires, Intentions) [Bratman87]
CreenciasDeseos
Intenciones
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 14
Metodologa AAII [Kinny, Georgeff y Rao 96](Australian Artificial Intelligence Institute)
Punto de vista externo Modelo de agentes: jerarqua de clases Modelo de interacciones: responsabilidades de los agentes,
servicios que proporcionan, interacciones asociadas, relaciones de control entre agentes
Basado en anlisis de roles:1. Identificar roles del dominio de aplicacin
Primera definicin 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 jerarqua de agentes Definir superclases cuando hay clases de agentes con similitud Componer clases de agentes con herencia o agregacin Introducir clases concretas de agente teniendo en cuenta aspectos
especficos de implementacin
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 15
Metodologa AAII [Kinny, Georgeff y Rao 96](Australian Artificial Intelligence Institute)
Punto de vista interno (basado en BDI) Modelo de creencias: informacin 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 anlisis del propsito de los servicios y su
descomposicin hasta llegar a planes:1. Analizar los medios para alcanzar los objetivos
Descomposicin de cada objetivo en acciones y subobjetivos Generar planes
2. Construir las creencias del sistema A partir de las condiciones que controlan la ejecucin de actividades,
y requisitos de entrada y salida para cada objetivo
El refinamiento de los modelos internos realimenta los modelos externos
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 16
GAIA [Wooldridge, Jennings y Kinny, 2000]
Extiende la metodologa Fusion [Coleman et al. 94] SMA como organizacin de entidades que interactan Anlisis: Basado en anlisis de roles en interaccin
Modelo de roles: Para cada rol (un individuo, departamento u organizacin de la vida real):
Responsabilidades: funcionalidad del agente (como propiedades de viveza y seguridad)
Permisos: derechos a informacin y recursos Actividades: acciones privadas (sin interactuar con otros agentes) Protocolos
Modelo de interacciones: define los protocolos (entre roles) Atributos: propsito, iniciador, respondedor, entradas/salidas, proceso
Diseo: Basado en agrupacin 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 Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 17
GAIA [Wooldridge, Jennings y Kinny, 2000]
Extensiones ROADMAP [Juan, Pearce y Sterling, 2002]
En el anlisis aade: Captura de requisitos utilizando casos de uso Modelo de entorno Modelo de conocimiento, derivado de los dos anteriores
Especificacin de interacciones utilizando AUML
Gaia II [Zambonelli, Jennings y Wooldridge, 2003] En el anlisis aade:
Modelo del entorno: representacin computacional abstracta del entorno del SMA, como una lista de recursos abstractos
Reglas organizacionales: restricciones para las actividades de los roles
En el diseo considera la definicin de la estructura organizacional
Definida a partir de un conjunto de patrones organizacionales
Sigue sin considerar la implementacin
Juan Pavn MestrasUCM 2004 Ingeniera 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 autmatas
Soportado por la herramienta agentTool [DeLoach y Wood 01] Generacin automtica de cdigo Notacin UML
Basado en el RUP, trata especialmente las actividades de anlisis y diseo
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 19
MaSE [DeLoach et al. 01]
Las conversaciones (protocolos de coordinacin) se definen con dos diagramas de estados: uno para cada clase de agente participante
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 20
Tropos
Integracin de trabajo terico previo: i*, KAOS Proceso de desarrollo
Anlisis y Diseo basado en refinamiento de diagramas i* ampliados
Diseo detallado empleando tcnicas adicionales AUML para modelar protocolos Diagramas de Planes
Implementacin mediante plantillas de traduccin a plataformas de agentes BDI
Existen ejemplos de aplicacin Hay herramientas de soporte pero no son de dominio
pblico
-
Juan Pavn MestrasUCM 2004 Ingeniera 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
Diseo arquitectural Se introducen ms actores del sistema mediante descomposicin de objetivos y tareas del sistema
Diseo detallado Definicin de los actores del sistema en detalle, incluyendo protocolos de comunicacin y coordinacin
Implementacin Transforma las especificaciones en plantillas adaptadas a una plataforma de programacin de agentes (p.ej. Jack)
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 22
Tropos
actor
objetivo fuerte
objetivo
plan
recurso
contribuye
Juan Pavn MestrasUCM 2004 Ingeniera 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 ejecucin de agentes, prototipos de agentes, y componentes para su realizacin Agentes de utilidad
Servidor de nombres Agentes facilitadores Agente visualizador
Herramienta de construccin de agentes Librera de componentes de agentes
El desarrollador configurar agentes genricos mediante la definicin de Ontologas Agentes Tareas Organizacin Coordinacin
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 24
Zeus [Nwana et al. 99]
Etapas de desarrollo Anlisis del dominio
Basado en el modelado de roles, utilizando diagramas de clase UML y patrones
Diseo de los agentes Identificacin de ontologas, servicios, tareas y relaciones entre agentes
Realizacin de los agentes Definicin de los elementos identificados en el diseo y su implementacin
Guiado por las herramientas grficas de construccin de agentes de Zeus
Soporte en tiempo de ejecucin Depuracin y optimizacin de cdigo con herramientas de visualizacin y monitorizacin
-
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 25
Zeus [Nwana et al. 99]
Etapa de realizacin de agentes Creacin de la ontologa (Zeus Ontology Editor)
Conocimiento declarativo que representa los conceptos significativos dentro del dominio de la aplicacin
Creacin de agente (Zeus Agent Editor) Configuracin de un agente genrico de Zeus: definicin de agente, descripcin de tareas, organizacin del agente, coordinacin del agente
Configuracin de agentes de utilidad (Code GenerationEditor) Atributos de los agentes de utilidad (plataforma de agentes)
Configuracin de agentes de tarea Parmetros de ejecucin de los agentes de tarea
Implementacin de agentes Utilizando la herramienta de generacin de cdigo
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 26
MAS-CommonKADS [Iglesias 98]
Extiende la metodologa CommonKADS [deHoog et al. 93] de desarrollo de sistemas expertos con: Tcnicas de orientacin a objetos (OMT y OOSE) Tcnicas de ingeniera de protocolos: SDL y MSC
Modelo de ciclo de vida en espiral dirigido por riesgos Y modelo en cascada con reutilizacin para proyectos pequeos
El desarrollo de un SMA consiste en rellenar un conjunto de plantillas de un nmero 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: vaco, identificado, descrito y validado
Ejemplo de estados hito: identificacin inicial de los agentes, descripcin de objetivos y servicios, validacin de relaciones entre un modelo y los dems
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 27
MAS-CommonKADS [Iglesias 98]
Fase de conceptuacin Definicin de casos de uso
Especificacin del sistema (Anlisis) 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, cmo se estructuran, objetivos, ...
Modelo de experiencia (o modelo de conocimiento) Conocimiento necesario por los agentes para alcanzar sus objetivos
Modelo de organizacin de la sociedad de agentes: Organizacin de los agentes y su relacin con el entorno
Modelo de comunicacin con el usuario Factores de la interaccin humano-agente
Modelo de coordinacin Interacciones entre agentes software
Modelo de diseo Arquitectura y diseo del SMA como paso previo a su implementacin
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 28
MAS-CommonKADS [Iglesias 98]
-
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 29
MESSAGE [Message 2000]
Methodology for Engineering Systems of Software AGents) Proyecto Eurescom P907
Extiende ingeniera de software OO con conceptos del rea de agentes Que se definen en 5 meta-modelos:
Agente Organizacin Dominio Tareas-objetivos Interacciones
Adopta el Proceso Unificado de Desarrollo de Software (tambin conocido como Rational Unified Process)
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 30
INGENIAS
Evolucin de MESSAGE
Abordando con mayor profundidad los distintos aspectos que definen la metodologa:
Notacin: Lenguaje visual para expresar el diseo de SMA y agentes
Mtodos: Organizacin de entregas Actividades relacionadas
Herramientas: Ingenias Development Kit (IDK) Generacin de especificacin Validacin de diseo Generacin de cdigo Generacin de documentacin
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 31
Planteamiento de INGENIAS
Principios Agentes como paradigma de modelado
Conceptos de ms alto nivel que en objetos y ms cercanos al dominio
Se pueden considerar adaptaciones especficas a dominios de aplicacin particulares
Los aspectos organizativos e intencionales reducen el salto de especificacin de requisitos a implementacin
Implementacin 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 metodologa facilita y promueve el desarrollo de herramientas de generacin de cdigo que faciliten el paso del modelo (anlisis y diseo) a la implementacin
Contempla la evolucin de la tecnologa de agentes Adaptabilidad a nuevos lenguajes y estndares (p.ej. AUML)
Todo ello basado en la utilizacin y manipulacin de meta-modelos
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 32
INGENIAS
El modelo de desarrollo con INGENIAS El desarrollador de SMA: realiza la aplicacin
Modela con el editordel IDK
Simula y valida el modelo
Implanta el SMAen la red
Genera cdigo y valida el modelo
-
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 33
Editor de INGENIAS
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 34
INGENIAS
El modelo de desarrollo con INGENIAS Ingeniero INGENIAS: prepara las herramientas
Define metamodelodel dominio de
aplicacin y puede personalizar el editor
Prepara generador de cdigo para simulador
Crea generador de cdigo para plataforma final
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 35
Aspectos de un SMA
SistemaMulti
Agentes
Modelo de Organizacin
Modelo de Agente
Modelo de Objetivos/Tareas
Modelo de Entorno
Modelo de Interacciones
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 36
Aspectos del SMA
Modelo de organizacin 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 Identificacin de objetivos generales y descomposicin en objetivos ms concretos que se pueden asignar a agentes
Similarmente con tareas Objetivos: motivacin Tareas: actividad
Modelo de interaccin Qu interacciones existen entre agentes/roles
Modelo de entorno Entidades y relaciones con el entorno del SMA
-
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 37
Modelo de organizacin
La organizacin define una estructura donde van a existir los agentes, recursos, tareas y objetivos Estructura. Descomposicin de la organizacin en:
Grupos Flujos de trabajo
Interrelacin de tareas en flujos de trabajo Relaciones entre agentes respecto a las tareas Recursos disponibles y asignacin
Relaciones sociales Relaciones de poder (p.ej. subordinacin) y cliente/servidor entre agentes
Relaciones entre grupos Relaciones entre organizaciones
Funcionalidad Propsito Tareas que debe realizar
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 38
Elementos del modelo de organizacin
Descripcin estructural
Organizacin
Grupo
Agente Rol
juega
Propsitopersigue
workflow
descomponeAplicacin
descompone
Recurso
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 39
Elementos del modelo de organizacin
Descripcin social
Organizacin
Grupo
Agente
Rol
servicio Organizacin
Grupo
Agente
Rol
subordinacin
servicio
subordinacin
condicional/incondicional
condicional/incondicional
servicio
servicio
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 40
Elementos del modelo de organizacin
Descripcin funcional
workflow
tarea tareaconecta
AgenteRol
Aplicacin
usaresponsable consume/produce
RecursoUnidad de interaccin
-
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 41
Modelo de agente
Descripcin de agentes particulares Funcionalidad del agente: Responsabilidades
Qu tareas sabe ejecutar Qu objetivos se compromete a alcanzar
Comportamiento: Control del agente Estado mental
Agregacin de entidades mentales: objetivos, creencias, compromisos, hechos
Gestin de estado mental Creacin, destruccin, modificacin de las entidades del estado
mental
Mecanismo de decisin: procesador de estado mental Reglas, planificacin, etc.
Agente Rol
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 42
Control del agente
Rol
Objetivo
Tarea
Rol
Objetivo
Tarea
EvidenciaInteraccinProduce
Satisface
Satisface
Quieren satisfacer
Quieren satisfacer
puede satisfacerse ejecutando
puede satisfacerse ejecutando
Agente
Agente
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 43
Elementos del modelo de agente
Agente Rol
juega
Objetivopersigue
tareaPG
creencia
Estado mental
responsable
afectaHecho
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 44
Agente planificador
Planificador clsico. Las tareas transforman entidades mentales para alcanzar objetivos del agente
-
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 45
Modelo de objetivos y tareas
Qu consecuencias tiene la ejecucin de tareas y por qu se deberan ejecutar Justifica la ejecucin de tareas basndose en objetivos Que a su vez se van modificando tras su ejecucin
Objetivo: Situacin deseada Conjunto de estados que el agente quiere lograr, mantener, o evitar Una funcin de utilidad que maximizar Responde a por qu?
Tarea: Transiciones de estado Conduce a la consecucin de objetivos Responde a cmo?
Objetivo Tarea
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 46
Ciclo de vida de un objetivo
Pendiente Refinado
Resolvindose
FalloSatisfecho
refinamiento
comienza ejecucin de tarea
Evidencia de xito Evidencia de fallo
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 47
Descomposicin de objetivos
rboles Y/O [Rich y Knight 90]
Evaluarautnomamente
No molestaral usuario
No enviarinformacin indeseada
Vender ms
Incrementarbeneficios
Reducircostes
O
- Reglas de transmisin de xito o de fallo
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 48
Descomposicin de objetivos
A
B C
D E
Y
O
Resolucin por xito
A
B C
D E
Y
O
Resolucin por fracaso
-
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 49
Elementos de definicin de tareas
Hecho A
Hecho Btarea
consume
consume
Hecho Cproduce
AplicacinRecurso
usausa afecta
objetivo
precondicionespostcondiciones
produce
interaccin
Juan Pavn MestrasUCM 2004 Ingeniera 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
SATCondicin de satisfaccin del objetivo
Patrn de estado mental
La satisfaccin de un objetivo justifica la eleccin de una tarea
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 51
tarea1
Relaciones entre tareas y objetivos
objetivotarea2
SATOtra condicin
Patrn de estado mental
La satisfaccin de un objetivo justifica la eleccin de una tarea
SATCondicin de satisfaccin del objetivo
tarea3
FAILCondicin de fallo
planificacin
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 52
Ejemplo de tareas
Descripcin de relacin productor-consumidor entre dos tareas
-
Juan Pavn MestrasUCM 2004 Ingeniera 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 diseo se detalla el protocolo de interaccin
Se puede usar el concepto de protocolo de interaccin de Agent UML o los protocolos de Gaia
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 54
Definicin de interacciones
Qu actores participan en la interaccin Cada actor debe mostrar la razn por la que participa Roles iniciador y colaboradores
Definicin de unidades de interaccin Mensajes, actos de habla
Orden de las unidades de interaccin Protocolos: contract net, FIPA request, especficos. Diagramas de protocolos AUML
Acciones ejecutadas en la interaccin Criterios para decidir cundo ejecutar una tarea Consecuencias de la ejecucin de una tarea
Definicin del contexto de la interaccin Objetivos que persigue la interaccin Estado mental de los participantes
Modelo de control Mecanismos de coordinacin
Juan Pavn MestrasUCM 2004 Ingeniera 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 ejecucin de una accin 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 ontologa A qu se refieren los elementos que aparecen en el mensaje
Un protocolo Fipa-request: solicitar de un agente la ejecucin de una tarea
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 56
Protocolo
-
Juan Pavn MestrasUCM 2004 Ingeniera 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 ejecucin, memoria, dispositivos de
E/S, sockets, ancho de banda, etc.
Aplicaciones Uso ms complejo, por medio de alguna interfaz Se pueden ver como objetos o como agentes
Agentes Satisfacen el principio de racionalidad
Juan Pavn MestrasUCM 2004 Ingeniera 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 accin ejecutada, se puede predecir el siguiente estado
Episdico/No episdico La experiencia del agente se puede segmentar en episodios independientes
Esttico/Dinmico 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 Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 59
Formas de modelar el entorno
Representar el mundo que rodea al agente [Ferber 99] Tarea extremadamente difcil
Enfoque pragmtico (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 interaccin (percepcin y actuacin) con estas entidades:
Recursos Aplicaciones Agentes
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 60
Ejemplo de entorno
Entorno para un asistente de ficheros en un PC
AsistenteReubicacinficheros
6553510000 65535
HilosEjecucin
12820 128
MemoriaDisponible
DiscoDuro
dameDirectoriodameFicherodameContenidoFicherodameOcupacinDisco
ENTORNO
______MUESTREO_______dameOcupacin:90min
___DiscoDuro___________ContenidoDiscoDuroCambio
-
Juan Pavn MestrasUCM 2004 Ingeniera 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 implementacin
Y damos Ejemplos de modelado Una tesis doctoral que describe la notacin y el proceso siguiendo el planteamiento del proceso unificado
Actualmente Revisin para adaptar al paradigma de Desarrollo de software dirigido por modelos (MDD, Model Driven Development)
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 62
Un proceso de desarrollo orientado a agentes
Ejemplo: Diseo de un sistema de recomendacin usando filtradocolaborativo Los documentos llegan a una comunidad de usuarios Sern evaluados segn los gustos mayoritarios de la comunidadde usuarios de gustos similares
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 63
Un proceso de desarrollo orientado a agentes
1. Identificar OBJETIVOS Anlisis: Qu tiene que hacer el sistema (requisitos)
De casos de uso a objetivos
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 64
Un proceso de desarrollo orientado a agentes
2. Descomponer los OBJETIVOS en subOBJETIVOS y TAREAS Del anlisis al diseo:
OBJETIVOS identifican requisitos (propsito)
-
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 65
Un proceso de desarrollo orientado a agentes
2. Descomponer los OBJETIVOS en subOBJETIVOS y TAREAS Del anlisis al diseo:
TAREAS definen procedimientos para satisfacer OBJETIVOS
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 66
Un proceso de desarrollo orientado a agentes
3. Asignar OBJETIVOS a ROLES en la ORGANIZACIN Diseo:
ROLES definen servicios (responsabilidades y funcionalidadesperada)
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 67
Un proceso de desarrollo orientado a agentes
3. Asignar OBJETIVOS a ROLES en la ORGANIZACIN Diseo:
ORGANIZACIN define arquitectura (estructura, normas)
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 68
Un proceso de desarrollo orientado a agentes
4. Definir WORKFLOWS e INTERACCIONES Diseo:
WORKFLOWS definen relaciones entre TAREAS, ROLES y RECURSOS
-
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 69
Un proceso de desarrollo orientado a agentes
4. Definir WORKFLOWS e INTERACCIONES Diseo:
INTERACCIONES definen cmo se comunican los ROLES
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 70
Un proceso de desarrollo orientado a agentes
4. Definir WORKFLOWS e INTERACCIONES Diseo:
INTERACCIONES definen cmo se comunican los ROLES
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 71
Un proceso de desarrollo orientado a agentes
5. AGENTES desempean ROLES Diseo:
AGENTES tienen capacidades para desempear ROLES Cada AGENTE puede tener una estrategia diferente para
satisfacer los objetivos del mismo ROLE
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 72
Un proceso de desarrollo orientado a agentes
6. Generacin de cdigo Simulacin: validar el comportamiento del sistema multi-
agente Realizacin e implantacin de un sistema ejecutable
-
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 73
Proceso de desarrollo orientado a agentes
Hay otras posibilidades
Centrarse y comenzar con los workflows Cuando la organizacin est orientada a procesos
Centrarse en la coordinacin y las interacciones Cuando el problema es la definicin de un algoritmo distribuido Sistemas cooperativos
Centrarse en el entorno Sistemas empotrados Robtica
Centrarse en los actores Simulacin social
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 74
INGENIAS Development Kit
http://ingenias.sourceforge.net
Editor de modelos Herramienta visual (notacin grasia!) Inicialmente basado en herramienta de meta-modelado
(METAEDIT+) Actualmente 100% Java
Generacin de modelos siguiendo los meta-modelos Integracin con mdulos para procesamiento de las especificaciones Integracin con agentes (en desarrollo)
Mdulos: Para la generacin de cdigo
Armazones (plantillas) configurables, especificados con XML, para distintas plataformas de agentes
Jade, Robocode, Servlets, Agentes grasia!
Para validar especificaciones: basado en AT Para generar documentacin (HTML) Armazn para desarrollar mdulos personalizados
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 75
IDK
Descripcin SMA
modelo de agentemodelo de agentemodelo de agente
modelo de organizacin
modelo de objetivos/tareasmodelo de objetivos/tareasmodelo de objetivos/tareas
modelo de entorno
modelo de interaccionesmodelo de interaccionesmodelo de interacciones
EditorMduloMduloMduloMduloMdulo
produce procesados por
contiene
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 76
Editor del IDK
El editor del IDK permite Crear y modificar modelos de SMA Generar documentacin (HTML) Sacar snapshots de los diagramas para utilizarlos en otras aplicaciones
Procesar las especificaciones mientras se estn 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 aadir etiquetas de texto
-
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 77
Manejo del Editor del IDK
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 78
Generacin 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 Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 79
modelo SMAmodelo
SMAmodelo SMA (XML)
Especficos de una plataforma(deben reunir los elementos de los metamodelos)
Generacin de cdigo
plantilla de cdigomarcado con XML
Plataforma de agentes
plantilla de cdigomarcado con XML
plantilla de cdigomarcado con XML
Generadorcdigo
de agentecdigode agentecdigode agente
Completar/Revisarpor el programador
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 80
Conclusiones
El paradigma de agente extiende al de objeto: Aprovechar las metodologas OO
Ms fcil de aceptar por los ingenieros software Aprovecha herramientas y experiencia
Ciclo de desarrollo iterativo e incremental, basado en casos de uso
Extensiones: Aspectos sociales (organizacin, interacciones, negociacin) Comportamiento (autonoma, estado mental, objetivos, tareas) Concurrencia y distribucin
Modelado desde varios puntos de vista (VowelEngineering, AAII, MAS-CommonKADS, MESSAGE) Para poder gestionar la complejidad del SMA Modelos: Entorno, dominio/ontologa, roles, objetivos/tareas, interacciones/protocolos, organizacin, agente
-
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 81
Conclusiones
Anlisis Casos de uso para capturar requisitos funcionales Roles y servicios para agrupar las distintas funcionalidades asociadas a un agente o grupo de agentes
Diseo 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 estandarizacin: FIPA Methodology TC y AgentLink AOSE TFG
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 82
Resumen
INGENIAS proporciona Una notacin para modelar un SMA desde cinco puntos de vista: Organizacin Agente Objetivos/Tareas Interacciones Entorno
Un conjunto de actividades que se pueden enmarcar dentro de un proceso de desarrollo estndar: el Proceso Unificado
Herramientas de soporte: Ingenias Development Kit (IDK) Generacin de cdigo sobre distintas plataformas En el futuro tiene que evolucionar para:
Mejorar la usabilidad y documentacin Facilitar trabajo en equipo (esto requiere, entre otras facilidades,
control de versiones) Identificacin de patrones de diseo orientado a agentes
Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 83
Bibliografa
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). Definicin de una metodologa 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, 5671.
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 metodologas de agentes: http://ma.ei.uvigo.es/isoa/ Gmez Sanz, J.J. y Pavn, J. Methodologies for Developing Multi-Agent
Systems, Journal of Universal Computer Science (10) 4, 359-374Juan Pavn MestrasUCM 2004 Ingeniera del Software Orientada a Agentes 84
Bibliografa