You are on page 1of 21

Sistemas multi-agente (SMA)

¿Qué son?
Curso de doctorado: ¿Por qué otro paradigma?
Agentes Inteligentes ¿Otra moda tecnológica?
¿Qué hay de nuevo?
¿Para qué sirven?
Desarrollo de Sistemas Multi-Agente
La metodología INGENIAS

Jorge Gómez Sanz


¿Cómo se construyen?
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) SMA vs. OO

Objetos Agentes
 Los agentes software tienen un conjunto de características  Ejecuta los métodos invocados  Autonomía de decisión
que habrá que tener en cuenta para su desarrollo  Flujo de control propio
 Flujo de control del llamante
 Encapsula estado y  Encapsula la activación del
 No son simplemente objetos distribuidos pero se pueden comportamiento
implementar como tales comportamiento
 Tampoco son sistemas expertos pero su comportamiento  Estado: valor de variables  Estado mental: objetivos,
podría implementarse con conceptos similares creencias, ...
 Podrían verse como un tipo de componentes software pero  Comportamiento: salida a partir  Comportamiento: cómo decidir
no se plantean como las técnicas actuales de componentes lo que hacer
(J2EE, .NET, CCM) de una entrada
 Interacciones: actos de habla
 Son estas cosas y algo más…  Mensajes invocan
(intencionalidad)
procedimiento
 Organización: relaciones
 Asociaciones entre objetos
sociales entre agentes

Juan Pavón Mestras Juan Pavón Mestras


UCM 2004 Ingeniería del Software Orientada a Agentes 3 UCM 2004 Ingeniería del Software Orientada a Agentes 4
SMA vs. Sistemas Expertos Sobre la utilidad de los agentes

Sistemas Expertos Agentes  La primera pregunta que habrá que plantearse cuando se
 Sistemas cerrados  Interactúan con el entorno va a realizar un sistema es:

 Sistemas de decisión  Distribución de la toma de ¿Hace falta utilizar agentes?


centralizados decisiones:
Comportamiento emergente
¿O bastaría con objetos, componentes, ...?
 Mayor grado de interacción
 Interacción con el usuario con el usuario
bajo petición del usuario
 Interacción con otros
agentes

Juan Pavón Mestras Juan Pavón Mestras


UCM 2004 Ingeniería del Software Orientada a Agentes 5 UCM 2004 Ingeniería del Software Orientada a Agentes 6

Sobre la utilidad de los agentes Metodologías de desarrollo de SMA

 ¿Se trata de un sistema distribuido abierto?  Una vez decidido construir un SMA habrá que ver
¿Pueden incorporarse dinámicamente nuevos tipos de entidades
en el sistema?  Qué resultados producir
¿Pueden cambiar las existentes? • Documentación
• Código, prototipos, pruebas
 ¿Es necesario considerar una evolución del comportamiento  Con qué lenguaje especificar el SMA
independiente para cada uno de los componentes del sistema o
• Visuales: Data Flow Diagrams, Entity-Relationship diagrams,
para una parte significativa?
Message Sequence Charts, UML
 ¿Hay incertidumbre? • Formales: Z, redes de Petri
¿Es posible para una entidad del sistema conocer su contexto  Qué actividades para producir los resultados
suficientemente para poder decidir con certeza el efecto de las • De análisis, diseño, implementación, validación, …
acciones que puede realizar?
 Cómo: Guías
 ¿Hay personalización?  Métricas
¿Un mismo servicio se puede ofrecer simultáneamente de
 Con qué herramientas
manera distinta según las características de cada usuario?
• Desarrollo
 ¿Hace falta definir una organización de entidades que • Entorno de ejecución
interactúan para resolver conjuntamente problemas globales?
Juan Pavón Mestras Juan Pavón Mestras
UCM 2004 Ingeniería del Software Orientada a Agentes 7 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
 Metodologías de desarrollo de SMA a objetos
Métodos Sistemas
• Pero... ¿cuál elegir? Formales expertos
Z, lógica temporal

Conceptos de agentes:
Conceptos de agentes:
Análisis de BDI
roles
SMA

Juan Pavón Mestras Juan Pavón Mestras


UCM 2004 Ingeniería del Software Orientada a Agentes 9 UCM 2004 Ingeniería del Software Orientada a Agentes 10

Metodologías para desarrollar SMA Algunas metodologías

 AAII (Australian Artificial Intelligence Institute)


Orientación a objetos  Basada en el modelo BDI
 Gaia
Kendall, MaSE, Styx,
ODAC, MASB, Adelfe,...  SMA como conjunto de entidades que interactúan
Métodos Formales Sistemas expertos
 MaSE
SMART, DESIRE, MAS-CommonKADS,  OO con conversaciones entre objetos
Concurrent METATEM CoMoMAS
 Tropos
 Énfasis en la gestión de requisitos

Análisis de roles BDI  Zeus


 Entorno visual de desarrollo de agentes
Gaia, AAII, ... AAII  Prototipos de agentes
Integració
Integración:
 MAS-CommonKADS
MESSAGE, INGENIAS  CommonKADS extendido con OO, SDL y MSC
 MESSAGE, INGENIAS
 Meta-modelado, agentes que siguen el principio de racionalidad de
Newell

Juan Pavón Mestras Juan Pavón Mestras


UCM 2004 Ingeniería del Software Orientada a Agentes 11 UCM 2004 Ingeniería del Software Orientada a Agentes 12
Metodología AAII [Kinny, Georgeff y Rao 96] Metodología AAII [Kinny, Georgeff y Rao 96]
(Australian Artificial Intelligence Institute) (Australian Artificial Intelligence Institute)

 Modelo BDI (Beliefs, Desires, Intentions) [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
 Basado en análisis de roles:
Creencias 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 Juan Pavón Mestras


UCM 2004 Ingeniería del Software Orientada a Agentes 13 UCM 2004 Ingeniería del Software Orientada a Agentes 14

Metodología AAII [Kinny, Georgeff y Rao 96]


(Australian Artificial Intelligence Institute) GAIA [Wooldridge, Jennings y Kinny, 2000]

 Punto de vista interno (basado en BDI)  Extiende la metodología Fusion [Coleman et al. 94]
• Modelo de creencias: información sobre el entorno, estado  SMA como organización de entidades que interactúan
interno del agente y acciones que puede realizar
• Modelo de objetivos: objetivos que puede adoptar el agente y
 Análisis: Basado en análisis de roles en interacción
eventos a los que puede responder  Modelo de roles:
• Modelo de planes: secuencias de acciones que puede emplear el • Para cada rol (un individuo, departamento u organización de la vida real):
agente • Responsabilidades: funcionalidad del agente (como propiedades de viveza y
seguridad)
 Basado en el análisis del propósito de los servicios y su • Permisos: derechos a información y recursos
descomposición hasta llegar a planes: • Actividades: acciones privadas (sin interactuar con otros agentes)
1. Analizar los medios para alcanzar los objetivos • Protocolos
• Descomposición de cada objetivo en acciones y subobjetivos  Modelo de interacciones: define los protocolos (entre roles)
• Generar planes • Atributos: propósito, iniciador, respondedor, entradas/salidas, proceso
2. Construir las creencias del sistema
 Diseño: Basado en agrupación de roles en agentes
• A partir de las condiciones que controlan la ejecución de actividades,
y requisitos de entrada y salida para cada objetivo  Modelo de agentes: tipos de agentes (agente=conjunto de roles) y
sus instancias
 Modelo de servicios: funciones de cada rol
 El refinamiento de los modelos internos realimenta los
 Modelo de conocidos: con quienes puede interaccionar
modelos externos

Juan Pavón Mestras Juan Pavón Mestras


UCM 2004 Ingeniería del Software Orientada a Agentes 15 UCM 2004 Ingeniería del Software Orientada a Agentes 16
GAIA [Wooldridge, Jennings y Kinny, 2000] MaSE [DeLoach et al. 01]

 Extensiones  Agentes como objetos con capacidad de coordinarse


 ROADMAP [Juan, Pearce y Sterling, 2002] mediante conversaciones
• En el análisis añade:  Agentes: clases cuyo comportamiento está definido por
• Captura de requisitos utilizando casos de uso autómatas
• Modelo de entorno
• Modelo de conocimiento, derivado de los dos anteriores  Soportado por la herramienta agentTool [DeLoach y Wood 01]
• Especificación de interacciones utilizando AUML  Generación automática de código
 Gaia II [Zambonelli, Jennings y Wooldridge, 2003]  Notación UML
• En el análisis añade:  Basado en el RUP, trata especialmente las actividades de
• Modelo del entorno: representación computacional abstracta del
entorno del SMA, como una lista de recursos abstractos
análisis y diseño
• 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 Mestras Juan Pavón Mestras


UCM 2004 Ingeniería del Software Orientada a Agentes 17 UCM 2004 Ingeniería del Software Orientada a Agentes 18

MaSE [DeLoach et al. 01] 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
Las conversaciones
(protocolos de coordinación)
 Implementación mediante plantillas de traducción a
se definen con dos plataformas de agentes BDI
diagramas de estados: uno
para cada clase de agente
 Existen ejemplos de aplicación
participante  Hay herramientas de soporte pero no son de dominio
público

Juan Pavón Mestras Juan Pavón Mestras


UCM 2004 Ingeniería del Software Orientada a Agentes 19 UCM 2004 Ingeniería del Software Orientada a Agentes 20
Tropos Tropos
recurso
 Fases:
 Requisitos iniciales objetivo
• Identifica actores relevantes con sus objetivos
 Requisitos posteriores contribuye
• 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
• Transforma las especificaciones en plantillas adaptadas a una actor
plataforma de programación de agentes (p.ej. Jack)
objetivo
fuerte
Juan Pavón Mestras Juan Pavón Mestras
UCM 2004 Ingeniería del Software Orientada a Agentes 21 UCM 2004 Ingeniería del Software Orientada a Agentes 22

Zeus [Nwana et al. 99] Zeus [Nwana et al. 99]

 Zeus: entorno visual de desarrollo de SMA  Etapas de desarrollo


 http://more.btexact.com/projects/agents/zeus/  Análisis del dominio
 Proporciona una plataforma de ejecución de agentes, prototipos • Basado en el modelado de roles, utilizando diagramas de clase
de agentes, y componentes para su realización UML y patrones
 Agentes de utilidad  Diseño de los agentes
• Servidor de nombres • Identificación de ontologías, servicios, tareas y relaciones entre
• Agentes facilitadores agentes
• Agente visualizador
 Realización de los agentes
 Herramienta de construcción de agentes
• Definición de los elementos identificados en el diseño y su
 Librería de componentes de agentes implementación
 El desarrollador configurará agentes genéricos mediante la • Guiado por las herramientas gráficas de construcción de agentes
definición de de Zeus
 Ontologías  Soporte en tiempo de ejecución
 Agentes • Depuración y optimización de código con herramientas de
 Tareas visualización y monitorización
 Organización
 Coordinación
Juan Pavón Mestras Juan Pavón Mestras
UCM 2004 Ingeniería del Software Orientada a Agentes 23 UCM 2004 Ingeniería del Software Orientada a Agentes 24
Zeus [Nwana et al. 99] MAS-CommonKADS [Iglesias 98]

 Etapa de realización de agentes  Extiende la metodología CommonKADS [deHoog et al. 93] de


 Creación de la ontología (Zeus Ontology Editor) desarrollo de sistemas expertos con:
• Conocimiento declarativo que representa los conceptos  Técnicas de orientación a objetos (OMT y OOSE)
significativos dentro del dominio de la aplicación  Técnicas de ingeniería de protocolos: SDL y MSC
 Creación de agente (Zeus Agent Editor)
 Modelo de ciclo de vida en espiral dirigido por riesgos
• Configuración de un agente genérico de Zeus: definición de
agente, descripción de tareas, organización del agente,  Y modelo en cascada con reutilización para proyectos
coordinación del agente pequeños
 Configuración de agentes de utilidad (Code Generation  El desarrollo de un SMA consiste en rellenar un conjunto
Editor) de plantillas de un número de modelos interrelacionados
• Atributos de los agentes de utilidad (plataforma de agentes)  Asociada a cada plantilla hay un estado que caracteriza los
 Configuración de agentes de tarea hitos en el desarrollo de cada modelo
• Parámetros de ejecución de los agentes de tarea • Para cada variable de estado se pueden asociar varios valores:
 Implementación de agentes vacío, identificado, descrito y validado
• Utilizando la herramienta de generación de código • 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 Mestras Juan Pavón Mestras


UCM 2004 Ingeniería del Software Orientada a Agentes 25 UCM 2004 Ingeniería del Software Orientada a Agentes 26

MAS-CommonKADS [Iglesias 98] 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 Mestras Juan Pavón Mestras
UCM 2004 Ingeniería del Software Orientada a Agentes 27 UCM 2004 Ingeniería del Software Orientada a Agentes 28
MESSAGE [Message 2000] INGENIAS

 Methodology for Engineering Systems of Software AGents) Evolución de MESSAGE


Proyecto Eurescom P907
 Extiende ingeniería de software OO con conceptos del área Abordando con mayor profundidad los distintos aspectos que
de agentes definen la metodología:
 Que se definen en 5 meta-modelos:  Notación:
• Agente  Lenguaje visual para expresar el diseño de SMA y agentes
• Organización
 Métodos:
• Dominio
 Organización de entregas
• Tareas-objetivos
• Interacciones  Actividades relacionadas
 Adopta el Proceso Unificado de Desarrollo de Software  Herramientas: Ingenias Development Kit (IDK)
(también conocido como Rational Unified Process)  Generación de especificación
 Validación de diseño
 Generación de código
 Generación de documentación

Juan Pavón Mestras Juan Pavón Mestras


UCM 2004 Ingeniería del Software Orientada a Agentes 29 UCM 2004 Ingeniería del Software Orientada a Agentes 30

Planteamiento de INGENIAS INGENIAS

 Principios  El modelo de desarrollo con INGENIAS


 Agentes como paradigma de modelado  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 Modela con el editor Simula y valida
de agentes o sobre un entorno de objetos tradicional
del IDK el modelo
• 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- Genera código y


modelos Implanta el SMA
valida el modelo
Juan Pavón Mestras Juan Pavón Mestras
en la red
UCM 2004 Ingeniería del Software Orientada a Agentes 31 UCM 2004 Ingeniería del Software Orientada a Agentes 32
Editor de INGENIAS INGENIAS

 El modelo de desarrollo con INGENIAS


 Ingeniero INGENIAS: prepara las herramientas

Define metamodelo Prepara


del dominio de generador de
aplicación y puede código para
personalizar el editor simulador

Crea generador
de código para
Juan Pavón Mestras Juan Pavón Mestras
plataforma final
UCM 2004 Ingeniería del Software Orientada a Agentes 33 UCM 2004 Ingeniería del Software Orientada a Agentes 34

Aspectos de un SMA Aspectos del SMA

 Modelo de organización
Modelo de
 Estructura del SMA, roles, relaciones de poder, workflows
Organización
 Modelo de agente
 Los agentes realizan tareas o persiguen objetivos
 Responsabilidades, control y estado mental del agente
Modelo de  Modelo de objetivos y tareas
Modelo de
Sistema Objetivos/Tareas  Identificación de objetivos generales y descomposición en
Agente
Multi objetivos más concretos que se pueden asignar a agentes
Agentes  Similarmente con tareas
 Objetivos: motivación ⇔ Tareas: actividad
 Modelo de interacción
Modelo de Modelo de  Qué interacciones existen entre agentes/roles
Interacciones Entorno  Modelo de entorno
 Entidades y relaciones con el entorno del SMA

Juan Pavón Mestras Juan Pavón Mestras


UCM 2004 Ingeniería del Software Orientada a Agentes 35 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 Descripción estructural


los agentes, recursos, tareas y objetivos
 Estructura. Descomposición de la organización en:
• Grupos
• Flujos de trabajo persigue Organización
• Interrelación de tareas en flujos de trabajo Propósito
• Relaciones entre agentes respecto a las tareas
• Recursos disponibles y asignación
 Relaciones sociales descompone Grupo
• Relaciones de poder (p.ej. subordinación) y cliente/servidor entre
agentes
workflow
• Relaciones entre grupos
• Relaciones entre organizaciones
Aplicación descompone
 Funcionalidad
• Propósito juega
• Tareas que debe realizar Agente Rol
Recurso

Juan Pavón Mestras Juan Pavón Mestras


UCM 2004 Ingeniería del Software Orientada a Agentes 37 UCM 2004 Ingeniería del Software Orientada a Agentes 38

Elementos del modelo de organización Elementos del modelo de organización

Descripción social Descripción funcional

Organización servicio Organización

workflow
Grupo servicio Grupo

servicio
subordinación tarea conecta tarea
condicional/incondicional
Agente Agente responsable usa consume/produce

servicio Aplicación
subordinación Unidad de Recurso
Rol condicional/incondicional Rol Rol interacción
Agente

Juan Pavón Mestras Juan Pavón Mestras


UCM 2004 Ingeniería del Software Orientada a Agentes 39 UCM 2004 Ingeniería del Software Orientada a Agentes 40
Modelo de agente Control del agente

 Descripción de agentes particulares Agente


 Funcionalidad del agente: Responsabilidades
• Qué tareas sabe ejecutar Quieren satisfacer
Objetivo puede satisfacerse ejecutando
• Qué objetivos se compromete a alcanzar
Rol
Tarea
<<juega>>
Agente Rol Satisface

 Comportamiento: Control del agente Evidencia Produce Interacción


• Estado mental
• Agregación de entidades mentales: objetivos, creencias,
compromisos, hechos
Satisface
• Gestión de estado mental
• Creación, destrucción, modificación de las entidades del estado Tarea
Rol
mental
• Mecanismo de decisión: procesador de estado mental Quieren satisfacer
puede satisfacerse ejecutando
• Reglas, planificación, etc. Objetivo
Agente
Juan Pavón Mestras Juan Pavón Mestras
UCM 2004 Ingeniería del Software Orientada a Agentes 41 UCM 2004 Ingeniería del Software Orientada a Agentes 42

Elementos del modelo de agente Agente planificador

 Planificador clásico. Las tareas transforman entidades


mentales para alcanzar objetivos del agente
persigue juega
Objetivo Agente Rol

responsable
Estado
mental G
tarea
P
afecta
Hecho
creencia

Juan Pavón Mestras Juan Pavón Mestras


UCM 2004 Ingeniería del Software Orientada a Agentes 43 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 refinamiento
Pendiente Refinado
 Justifica la ejecución de tareas basándose en objetivos
 Que a su vez se van modificando tras su ejecución
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 Resolviéndose
 Responde a ¿por qué?
 Tarea: Transiciones de estado Evidencia de éxito Evidencia de fallo
 Conduce a la consecución de objetivos
 Responde a ¿cómo?
Satisfecho Fallo

<<activa>>
Objetivo Tarea

Juan Pavón Mestras Juan Pavón Mestras


UCM 2004 Ingeniería del Software Orientada a Agentes 45 UCM 2004 Ingeniería del Software Orientada a Agentes 46

Descomposición de objetivos Descomposición de objetivos

Árboles Y/O [Rich y Knight 90]


A A
No molestar Incrementar Y
al usuario beneficios Y
B C B C
O
O O

Evaluar No enviar Vender Reducir


D E D E
autónomamente información indeseada más costes

Resolución por éxito Resolución por fracaso

- Reglas de transmisión de éxito o de fallo

Juan Pavón Mestras Juan Pavón Mestras


UCM 2004 Ingeniería del Software Orientada a Agentes 47 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 objetivo
postcondiciones tarea afecta
Hecho A
consume
Hecho C
tarea Crea, destruye o
produce
Hecho B consume modifica (satisfaciendo o
fallando el objetivo)

usa usa afecta produce


• La satisfacción de un objetivo justifica la elección de una tarea

SAT
Aplicación objetivo objetivo
Condición de
Recurso satisfacción del
tarea
interacción objetivo

Patrón de estado
mental
Juan Pavón Mestras Juan Pavón Mestras
UCM 2004 Ingeniería del Software Orientada a Agentes 49 UCM 2004 Ingeniería del Software Orientada a Agentes 50

Relaciones entre tareas y objetivos Ejemplo de tareas

• La satisfacción de un objetivo justifica la elección de una tarea  Descripción de relación productor-consumidor entre dos
tareas

Patrón de estado SAT


mental Condición de tarea1
satisfacción del
objetivo
planificación

objetivo SAT
Otra condición tarea2

FAIL
Condición de
fallo
tarea3

Juan Pavón Mestras Juan Pavón Mestras


UCM 2004 Ingeniería del Software Orientada a Agentes 51 UCM 2004 Ingeniería del Software Orientada a Agentes 52
Modelo de interacciones Definición de interacciones

 Intercambio de conocimiento o peticiones  Qué actores participan en la interacción


(intencionalidad) entre agentes  Cada actor debe mostrar la razón por la que participa
 Roles iniciador y colaboradores
 Define las interacciones entre los agentes o entre agentes
y humanos  Definición de unidades de interacción
 Mensajes, actos de habla
 Se definen a alto nivel, en diseño se detalla el protocolo de
interacción  Orden de las unidades de interacción
 Se puede usar el concepto de protocolo de interacción de  Protocolos: contract net, FIPA request, específicos.
Agent UML o los protocolos de Gaia  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 Mestras Juan Pavón Mestras


UCM 2004 Ingeniería del Software Orientada a Agentes 53 UCM 2004 Ingeniería del Software Orientada a Agentes 54

Comunicaciones entre agentes 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
• 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 Mestras Juan Pavón Mestras


UCM 2004 Ingeniería del Software Orientada a Agentes 55 UCM 2004 Ingeniería del Software Orientada a Agentes 56
Modelo de entorno Tipos de entorno [Russel y Norvig 95]

 Define las entidades del entorno del SMA con las que vaya  Accesible/Inaccesible
a interactuar  Capacidad para percibir todo el entorno
 Recursos  Determinista/No determinista
• Elementos consumibles o no consumibles:  Dado un estado y una acción ejecutada, se puede predecir el
• Descriptores de ficheros, hilos de ejecución, memoria, dispositivos de
E/S, sockets, ancho de banda, etc.
siguiente estado
 Aplicaciones  Episódico/No episódico
• Uso más complejo, por medio de alguna interfaz  La experiencia del agente se puede segmentar en episodios
• Se pueden ver como objetos o como agentes independientes
 Agentes  Estático/Dinámico
• Satisfacen el principio de racionalidad  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 Mestras Juan Pavón Mestras


UCM 2004 Ingeniería del Software Orientada a Agentes 57 UCM 2004 Ingeniería del Software Orientada a Agentes 58

Formas de modelar el entorno Ejemplo de entorno

 Representar el mundo que rodea al agente [Ferber 99]  Entorno para un asistente de ficheros en un PC
 Tarea extremadamente difícil
 Enfoque pragmático (Situated Automata [Rosenschein y Kaelbling 95] y redes
ENTORNO
neuronales [Zilouchian 00])
______MUESTREO_______ DiscoDuro
 Discretizar el entorno utilizando un conjunto finito de dameOcupación:90min
variables observables ___DiscoDuro___________ dameDirectorio
Asistente
• Categorizar el tipo de entidades relevantes del entorno ContenidoDiscoDuroCambio dameFichero
Reubicación
• Restringir la interacción (percepción y actuación) con estas dameContenidoFichero
ficheros
entidades: dameOcupaciónDisco
• Recursos
• Aplicaciones
• Agentes HilosEjecución MemoriaDisponible

65535 128
10000 65535 20 128

Juan Pavón Mestras Juan Pavón Mestras


UCM 2004 Ingeniería del Software Orientada a Agentes 59 UCM 2004 Ingeniería del Software Orientada a Agentes 60
Son muchos diagramas, entidades y relaciones Un proceso de desarrollo orientado a agentes

 Por ello definimos  Ejemplo:


 Un proceso de desarrollo  Diseño de un sistema de recomendación usando filtrado
• Compuesto de actividades colaborativo
• Y que determina entregas a realizar • Los documentos llegan a una comunidad de usuarios
 Un entorno de desarrollo que facilite la implementación • Serán evaluados según los gustos mayoritarios de la comunidad
de usuarios de gustos similares

 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 Mestras Juan Pavón Mestras


UCM 2004 Ingeniería del Software Orientada a Agentes 61 UCM 2004 Ingeniería del Software Orientada a Agentes 62

Un proceso de desarrollo orientado a agentes Un proceso de desarrollo orientado a agentes

1. Identificar OBJETIVOS 2. Descomponer los OBJETIVOS en subOBJETIVOS y TAREAS


 Análisis: Qué tiene que hacer el sistema (requisitos)  Del análisis al diseño:
• De casos de uso a objetivos  OBJETIVOS identifican requisitos (propósito)

Juan Pavón Mestras Juan Pavón Mestras


UCM 2004 Ingeniería del Software Orientada a Agentes 63 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  ROLES definen servicios (responsabilidades y funcionalidad
esperada)

Juan Pavón Mestras Juan Pavón Mestras


UCM 2004 Ingeniería del Software Orientada a Agentes 65 UCM 2004 Ingeniería del Software Orientada a Agentes 66

Un proceso de desarrollo orientado a agentes Un proceso de desarrollo orientado a agentes

3. Asignar OBJETIVOS a ROLES en la ORGANIZACIÓN 4. Definir WORKFLOWS e INTERACCIONES


 Diseño:  Diseño:
 ORGANIZACIÓN define arquitectura (estructura, normas)  WORKFLOWS definen relaciones entre TAREAS, ROLES y
RECURSOS

Juan Pavón Mestras Juan Pavón Mestras


UCM 2004 Ingeniería del Software Orientada a Agentes 67 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  INTERACCIONES definen cómo se comunican los ROLES

Juan Pavón Mestras Juan Pavón Mestras


UCM 2004 Ingeniería del Software Orientada a Agentes 69 UCM 2004 Ingeniería del Software Orientada a Agentes 70

Un proceso de desarrollo orientado a agentes Un proceso de desarrollo orientado a agentes

5. AGENTES desempeñan ROLES 6. Generación de código


 Diseño:  Simulación: validar el comportamiento del sistema multi-
 AGENTES tienen capacidades para desempeñar ROLES agente
 Cada AGENTE puede tener una estrategia diferente para  Realización e implantación de un sistema ejecutable
satisfacer los objetivos del mismo ROLE

Juan Pavón Mestras Juan Pavón Mestras


UCM 2004 Ingeniería del Software Orientada a Agentes 71 UCM 2004 Ingeniería del Software Orientada a Agentes 72
Proceso de desarrollo orientado a agentes INGENIAS Development Kit

 Hay otras posibilidades  http://ingenias.sourceforge.net

 Centrarse y comenzar con los workflows  Editor de modelos


• Cuando la organización está orientada a procesos  Herramienta visual (notación grasia!)
 Inicialmente basado en herramienta de meta-modelado
(METAEDIT+)
 Centrarse en la coordinación y las interacciones • Actualmente 100% Java
• Cuando el problema es la definición de un algoritmo distribuido  Generación de modelos siguiendo los meta-modelos
• Sistemas cooperativos  Integración con módulos para procesamiento de las especificaciones
 Integración con agentes (en desarrollo)
 Centrarse en el entorno
 Módulos:
• Sistemas empotrados
 Para la generación de código
• Robótica • Armazones (plantillas) configurables, especificados con XML, para distintas
plataformas de agentes
• Jade, Robocode, Servlets, Agentes grasia!
 Centrarse en los actores
 Para validar especificaciones: basado en AT
• Simulación social
 Para generar documentación (HTML)
 Armazón para desarrollar módulos personalizados
Juan Pavón Mestras Juan Pavón Mestras
UCM 2004 Ingeniería del Software Orientada a Agentes 73 UCM 2004 Ingeniería del Software Orientada a Agentes 74

IDK Editor del IDK

 El editor del IDK permite


modelo de modelo de modelo de
modelo de organización
modelo de
objetivos/tareas
modelo de
 Crear y modificar modelos de SMA
agente
modelo de objetivos/tareas
agente
agente objetivos/tareas  Generar documentación (HTML)
 Sacar snapshots de los diagramas para utilizarlos en otras
modelo de modelo de
modelo de
aplicaciones
entorno interacciones
modelo de
interacciones  Procesar las especificaciones mientras se están generando
interacciones
Descripción SMA con el editor o una vez grabadas en un fichero
 Introducir explicaciones en lenguaje natural de los diferentes
procesados por diagramas y de cada elemento en los diagramas, así como
produce añadir etiquetas de texto

Módulo
Editor Módulo
Módulo
contiene
Módulo
Módulo

Juan Pavón Mestras Juan Pavón Mestras


UCM 2004 Ingeniería del Software Orientada a Agentes 75 UCM 2004 Ingeniería del Software Orientada a Agentes 76
Manejo del Editor del IDK Generación del editor

Goals/tasks
metamodel
Environmen
t Metamodel
Organizatio Description
metamodel
n XML
Agent
metamodel
metamodel
Interaction
metamodel Relationship
Editor Attributes
(e.g. Icons)
With metamodels
XML
MetaEditor MAS
Editor
ic
oicicon
o

Editor
template
Java/XML

Juan Pavón Mestras Juan Pavón Mestras


UCM 2004 Ingeniería del Software Orientada a Agentes 77 UCM 2004 Ingeniería del Software Orientada a Agentes 78

Generación de código Conclusiones

 El paradigma de agente extiende al de objeto:


modelo  Aprovechar las metodologías OO
código • Más fácil de aceptar por los ingenieros software
modelo
SMA código
modelo Generador de agente
código
SMA de agente • Aprovecha herramientas y experiencia
SMA (XML) de agente
 Ciclo de desarrollo iterativo e incremental, basado en casos
de uso
 Extensiones:
Completar/Revisar • Aspectos sociales (organización, interacciones, negociación)
por el programador • Comportamiento (autonomía, estado mental, objetivos, tareas)
• Concurrencia y distribución
plantilla de código
plantilla de código
marcado
plantilla de código con XML  Modelado desde varios puntos de vista (Vowel
marcado con XML
marcado con XML Engineering, AAII, MAS-CommonKADS, MESSAGE)
Plataforma de agentes  Para poder gestionar la complejidad del SMA
Específicos de una plataforma  Modelos: Entorno, dominio/ontología, roles, objetivos/tareas,
(deben reunir los elementos de los metamodelos)
interacciones/protocolos, organización, agente
Juan Pavón Mestras Juan Pavón Mestras
UCM 2004 Ingeniería del Software Orientada a Agentes 79 UCM 2004 Ingeniería del Software Orientada a Agentes 80
Conclusiones Resumen

 Análisis  INGENIAS proporciona


 Casos de uso para capturar requisitos funcionales  Una notación para modelar un SMA desde cinco puntos de
 Roles y servicios para agrupar las distintas funcionalidades vista:
asociadas a un agente o grupo de agentes • Organización
• Agente
 Diseño • Objetivos/Tareas
 Independiente de la arquitectura (Gaia) • Interacciones
 Basado en una arquitectura concreta (MaSE, AAII, Zeus) • Entorno
 Define el modelo computacional del agente => arquitectura  Un conjunto de actividades que se pueden enmarcar dentro
del agente (MAS-CommonKADS) de un proceso de desarrollo estándar: el Proceso Unificado
 Herramientas de soporte: Ingenias Development Kit (IDK)
 Relevancia de las herramientas (Zeus, MaSE, MESSAGE, • Generación de código sobre distintas plataformas
INGENIAS) • En el futuro tiene que evolucionar para:
• Mejorar la usabilidad y documentación
 Intentos de estandarización: FIPA Methodology TC y • Facilitar trabajo en equipo (esto requiere, entre otras facilidades,
control de versiones)
AgentLink AOSE TFG • Identificación de patrones de diseño orientado a agentes

Juan Pavón Mestras Juan Pavón Mestras


UCM 2004 Ingeniería del Software Orientada a Agentes 81 UCM 2004 Ingeniería del Software Orientada a Agentes 82

Bibliografía 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 Juan Pavón Mestras
UCM 2004 Ingeniería del Software Orientada a Agentes 83 UCM 2004 Ingeniería del Software Orientada a Agentes 84

You might also like