Desarrollo de SMA. La metodología INGENIAS y el entorno de

Anuncio
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
Descargar