Algunas metodologia para el desarrollo de Agentes

Anuncio
Metodologías de diseño de un SMA
La construcción de un SMA integran tecnologías de diferentes áreas del conocimiento:
- Técnicas de ingeniería de software para estructurar el proceso de desarrollo
- Técnicas de inteligencia artificial para adoptar a los programas de capacidad para tratar
situaciones imprevistas y tomar decisiones.
- Técnicas de programación concurrente y distribuidos para tratar la coordinación de tareas
ejecutadas en diferentes maquinas bajo diferentes políticas de planificación.
Existen plataformas de desarrollo que dan soluciones parciales al modelado de comportamiento y a
la coordinación de agentes. El rango va desde proporcionar servicios básicos (gestión de agentes,
librerías de algoritmo, localización de agentes o movilidad), como JADE, Grasshopper o ABBLE,
hasta entornos de desarrollo donde se configuran armazones (frameworks) software como ZEUS o
agentTool.
A continuación se describiran algunas metodologías que pueden ser utilizadas para el diseño de un
sistema multiagente (SMA).
AAII/BDI
Dentro de esta metodología se consideran dos puntos de vistas:
- externo – en el que se identifican los agentes y sus interacciones
- interno – que describe el comportamiento de cada uno de los agentes
El desarrollo de un SMA está guiado por la elaboración y refinamiento de estos puntos de vistas. El
proceso consta de varias iteraciones, considerando primero el punto de vista externo, seguido del
punto de vista interno.
El propósito del punto de vista externo es identificar una jerarquía de clases de agentes (el modelo
de agentes) y un conjunto de relaciones entre agentes (modelo de interacciones). Este proceso
permite asignar funcionalidad (servicios) a los agentes y determinar sus relaciones (de servicio e
interacciones).
El punto de vista interno, está basado en el modelo BDI, partiendo de los servicios proporcionados
por el agente y las interacciones y eventos asociados al agente, lo que permite determinar los
objetivos del agente, y mediante su descomposición se van identificando sus subobjetivos hasta
llegar a un nivel suficiente de detalle en el que se pueden asociar planes par su ejecución.
Ingeniería de las vocales
Esta metodología considera cinco puntos de vista:
- Agente
- Entorno
- Interacciones
- Organización
- Usuario
Rol – aparece de forma natural cuando se considera el aspecto organizacional del sistema, como es
el caso de los SMA. Los roles identifican la funcionalidad, en términos de servicios, y las
características de las partes en las interacciones. Los agentes representan roles en el sistema, tiene
capacidades para realizar los servicios correspondientes.
MESSAGE e INGENIAS
MESSAGE (Methodology for Engineering Systems of Software Agents), ésta es una metodología
orientada a agentes la cual incorpora técnicas de ingeniería del software cubriendo el análisis y
diseño de sistemas multiagente. La metodología provee un lenguaje, un método y unas guías de
1
cómo aplicar la metodología, centrándose en las fases de análisis y diseño y lanzando ideas sobre el
resto de etapas como implementación, pruebas e implantación.
MESSAGE hace uso de un metamodelo para el modelado del SMA. Un agente es definido a partir
de un conjunto de características que deben tener aquellas entidades etiquetadas como agentes.
Estas características son:
- Un agente tiene cierto conocimiento del mundo donde vive.
- Un agente es responsable de alcanzar y mantener ciertos objetivos que caracterizan su conducta.
- Un agente es capaz de observar el estado de ciertos objetos en el entorno y de sentir ciertos
eventos.
- Las interacciones entre agentes son descritas en términos de acciones comunicativas.
- Un agente puede ejecutar acciones que afecten a los objetos del entorno.
Una extensión de los metamodelos y su validación mediante la experimentación y el desarrollo de
varios casos de estudio, es la metodología INGENIAS.
INGENIAS, como MESSAGE, define un conjunto de meta-modelos (una descripción de alto nivel
de qué elementos tiene un modelo) con los que hay que describir el sistema. Los meta-modelos
indican qué hace falta para describir: agentes aislados, organizaciones de agentes, el entorno,
interacciones entre agentes o roles, tareas y objetivos. Estos metamodelos se construyen mediante
un lenguaje de meta-modelado, el GOPRR (Graph, Object, Property, Relationship, and Role). En la
construcción de estos meta-modelos se integran resultados de investigación en forma de entidades y
relaciones entre entidades. La instanciación de estos meta-modelos produce diagramas, los modelos,
similares a los que se usa en UML, con la diferencia de que estos diagramas se han creado
exclusivamente para definir el sistema multiagente.
El proceso de instanciación de los meta-modelos no es trivial. Existen muchas entidades y
relaciones a identificar, además de dependencias entre distintos modelos. Por ello, INGENIAS
define un conjunto de actividades cuya ejecución termina en un conjunto de modelos. Estas
actividades a su vez se organizan siguiendo un paradigma de ingeniería del software, el Proceso
Unificado.
INGENIAS considera cinco puntos de vista para el diseño del SMA:
- Agente – describe las responsabilidades con tareas y roles, control del agente definiendo sus
objetivos y estados mentales.
- Organización – marco en el que existen agentes, recursos, tareas y propósitos del sistema. Para
definir la organización hay que considerar su estructura, relaciones sociales y funcionalidad.
- Entorno – define sensores y actuadotes de los agentes, identificando recursos, agentes y
aplicaciones con las que tiene interacción el agente (Web, BD, API´s).
- Tareas y objetivos – descomposición de tareas y objetivos.
- Interacciones – coordinación entre agentes.
MASSIVE
MASSIVE (Multi-Agent SystemS Iterative View Engineering) está constituido por un conjunto de
vistas diferentes del sistema a construir (siete puntos de vista) donde el desarrollo que se sigue
consiste en una visión iterativa del mismo. En él se combinan procesos de reingeniería junto con un
método en cascada mejorado que permite realizar refinamientos. Los puntos de vistas son:
- Entorno
- Tareas
- Sistema
- Roles
- Interacciones
- Sociedad
- Arquitectura
2
ODAC
Esta metodología considera utiliza los puntos de vista definidos en el estándar ODP (Open
Distributed Processing), los cuales son:
- Empresa
- Información
- Computacional
- Tecnología
- Ingeniería
Tropos
En Tropos se presenta una metodología de desarrollo de software basado en agentes mediante
extensiones de UML y empleando un entorno de modelado denominado i*. El concepto principal
sobre el que se desarrolla el proceso de análisis y modelado es el de actor, así como sus objetivos y
posibles dependencias con otros actores. Maneja los puntos de vista siguientes:
- Requerimientos iniciales
- Requerimientos finales
(modelo actores y organziacion)
- Diseño arquitectónico (refinado y creación de agentes)
- Diseño detallado (modelo interno de agentes)
MaSE
MaSE (Multiagent System Engineering), es una metodología desarrollada en el Air Force Institute
of Technology. Dicha metodología trata de cubrir todas la etapas en el proceso de construcción de
un sistema multiagente, partiendo de la especificación del mismo hasta su implementación. Dispone
de un lenguaje de especificación basado en UML+OCL y una herramienta de desarrollo
denominada AgentTool que trata de cubrir la totalidad de fases de la metodología pero que por el
momento se queda en sólo una parte de ellas.
Un agente es visto como una abstracción útil para resolver problemas en dominios específicos.
Según esto, un agente vendría caracterizado por lo siguiente:
- Los agentes son entidades que están distribuidas.
- Los agentes son entidades autónomas, dirigidas por objetivos y sociales.
- Los agentes comparten información con otros agentes de forma interactiva, conformando sistemas
multiagente.
Puntos de vista manejados en MaSE:
- Captura de objetivos
- Aplicación de casos de uso
- Transformación de roles
- Creación de clases de agente
- Construcción de conversaciones
- Ensamblado clase de agentes
- Diseño del sistema
MAS-CommonKADS
Esta metodología extiende CommonKADS aplicando ideas de metodologías orientadas a objetos
para su aplicación a la producción de SMA. La metodología CommonKADS gira alrededor del
modelo de experiencia y está pensada para desarrollar sistemas expertos que interactuen con el
usuario. De hecho considera sólo dos agentes básicos: el usuario y el sistema. MASCommonKADS
extiende los modelos de CommonKADS para tener en cuenta la posibilidad de que dos o más
componentes del sistema interactúen.
3
MAS-CommonKADS ha sido la primera en plantear un desarrollo de SMA integrado con un ciclo
de vida de software, concretamente el espiral dirigido por riesgos. Propone siete modelos para la
definición del sistema:
- agente
- tareas
- experiencia
- coordinación
-comunicación
-organización
- diseño
Cada modelo presenta referencias a la teoría sobre la que se basa. El modelo en sí parte de una
descripción gráfica que luego se complementa con explicaciones en lenguaje natural de cada
elemento. Existe por cada modelo una descripción de las dependencias respecto de otros modelos y
de las actividades involucradas. Estos modelos se hayan descritos ampliamente en lenguaje natural,
complementándose con otras notaciones como SDL (Specification and Description Language) o
MSC (Message Sequence Chart) para describir el comportamiento de los agentes cuando
interaccionan.
Regresando a sus principios, CommonKADS es una metodología diseñada para el desarrollo de
sistemas basados en conocimiento (SBC) de forma análoga a los métodos empleados en ingeniería
software. El desarrollo de esta metodología ha sido financiado por la Comunidad Europea entre
1983 y 1994 a través de varios proyectos. Esta metodología sigue una aproximación al desarrollo de
SBC como la construcción de un número de modelos interrelacionados que capturan los principales
rasgos del sistema y de su entorno. El proceso de desarrollo de SBC consiste en rellenar un conjunto
de “plantillas” de los modelos. Asociados a estas plantillas, CommonKADS define “estados” de los
modelos que caracterizan hitos en el desarrollo de cada modelo. Estos estados permiten la gestión
del proyecto, cuyo desarrollo se realiza de una forma cíclica dirigida por riesgos. Hay seis modelos
definidos en esta metodología:
- Modelo de la Organización (OM): es una herramienta para analizar la organización en que
el SBC va a ser introducido.
- Modelo de Tarea (TM): describe a un nivel general las tareas que son realizadas o serán realizadas
en el entorno organizativo en que se propone instalar el SBC y proporciona el marco para la
distribución de tareas entre los agentes.
- Modelo de Agente (AM): un agente es un ejecutor de una tarea. Puede ser humano, software o
cualquier otra entidad capaz de realizar una tarea. Este modelo describe las capacidades y
características de los agentes.
- Modelo de Comunicaciones (CM): detalla el intercambio de información entre los diferentes
agentes involucrados en la ejecución de las tareas descritas en el modelo de tarea.
- Modelo de la Experiencia (EM): éste es el corazón de la metodología y modela el conocimiento de
resolución de problemas empleado por un agente para realizar una tarea.
El Modelo de la Experiencia distingue entre el conocimiento de la aplicación y el conocimiento de
resolución del problema. El conocimiento de la aplicación se divide en tres subniveles: nivel del
dominio (conocimiento declarativo sobre el dominio), nivel de inferencia (una biblioteca de
estructuras genéricas de inferencia) y nivel de tarea (orden de las inferencias).
- Modelo de Diseño (DM): mientras que los otros cinco modelos tratan del análisis del SBC, este
modelo se utiliza para describir la arquitectura y el diseño técnico del SBC como paso previo a su
implementación.
En el caso de MAS-CommonKADS se proponen los siguientes modelos para el desarrollo de SMA:
- Modelo de Agente (AM): específica las características de un agente: sus capacidades de
razonamiento, habilidades, servicios, sensores, efectores, grupos de agentes a los que pertenece y
4
clase de agente. Un agente puede ser un agente humano, software, o cualquier entidad capaz de
emplear un lenguaje de comunicación de agentes.
- Modelo de Organización (OM): es una herramienta para analizar la organización humana en que
el sistema multiagente va a ser introducido y para describir la organización de los agentes software
y su relación con el entorno.
- Modelo de Tareas (TM): describe las tareas que los agentes pueden realizar: los objetivos de cada
tarea, su descomposición, los ingredientes y los métodos de resolución de problemas para resolver
cada objetivo.
- Modelo de la Experiencia (EM): describe el conocimiento necesitado por los agentes para
alcanzar sus objetivos. Sigue la descomposición de CommonKADS y reutiliza las bibliotecas de
tareas genéricas.
- Modelo de Comunicación (CM): describe las interacciones entre un agente humano y un
agente software. Se centra en la consideración de factores humanos para dicha interacción.
- Modelo de Coordinación (CoM): describe las interacciones entre agentes software.
- Modelo de Diseño (DM): mientras que los otros cinco modelos tratan del análisis del sistema
multiagente, este modelo se utiliza para describir la arquitectura y el diseño del sistema multiagente
como paso previo a su implementación.
El modelo de ciclo de vida para el desarrollo de sistemas multiagente con CommonKADS sigue las
siguientes fases:
- Conceptuación: tarea de elicitación (extracción o adquisición de conocimiento) para obtener una
primera descripción del problema y la determinación de los casos de uso que pueden ayudar a
entender los requisitos informales y a probar el sistema.
- Análisis: determinación de los requisitos de nuestro sistema partiendo del enunciado del problema.
Durante esta fase se desarrollan los siguientes modelos: organización, tareas, agente, comunicación,
coordinación y experiencia.
- Diseño: determinación de cómo los requisitos de la fase de análisis pueden ser logrados mediante
el desarrollo del modelo de diseño. Se determinan las arquitecturas tanto de la red
multiagente como de cada agente.
- Codificación y prueba de cada agente.
- Integración: el sistema completo es probado.
- Operación y mantenimiento.
El modelo de ciclo de vida propuesto para desarrollar estas tareas en la metodología es el modelo en
espiral dirigido por riesgos, siguiendo la gestión de proyectos de CommonKADS. Tanto para
proyectos pequeños como para el aprendizaje de la metodología, se propone seguir otro modelo de
ciclo de vida, basado en un modelo en cascada con reutilización.
Los proyectos pequeños, desarrollados por una única persona y con un número reducido de
agentes, pueden emplear un ciclo de vida convencional en el que se incluye la utilización de
componentes, que también se incluye en los proyectos grandes.
El desarrollo basado en componentes es un movimiento de la ingeniería software orientada a
objetos cuya base es el ensamblaje de componentes software previamente desarrollados y probados.
Para poder realizar este ensamblaje entre componentes heterogéneos, la tecnología de componentes
software debe basarse en estándares para componentes software como OpenDoc, CORBA u
OLE2.0. El paradigma de agentes tiene también como objetivo la interoperabilidad del software, y
parece apropiado hacer énfasis en el empleo de reutilización.
En un sistema multiagente se pueden identificar varios tipos de componentes: el agente, las
ontologías, los métodos de resolución de problemas, los servicios de un agente, y sus objetivos y
sus planes. En el caso de esta metodología, la tarea de búsqueda y clasificación de componentes se
lleva a cabo mediante la definición de plantillas textuales para cada componente desarrollado en
cada modelo de ésta.
5
Pasos de la metodología
- Conceptuación -- El objetivo de esta fase es comprender mejor cuál es el sistema que desea el
cliente. Los principales resultados de esta fase serán una identificación de los objetivos que debe
satisfacer el sistema desde el punto de vista del usuario, junto con la identificación de los actores
que interactúan con el sistema.
- Análisis -- El resultado de esta fase es la especificación del sistema compuesto a través del
desarrollo de los modelos descritos anteriormente. Sólo las extensiones a CommonKADS erán
desarrolladas en esta sección. Los pasos de esta fase son:
1. Estudio de viabilidad: el modelo de organización permite modelar la organización en que
va a ser introducido el sistema multiagente, para estudiar las áreas posibles de aplicación de
sistemas inteligentes, su viabilidad y su posible impacto.
2. Delimitación: delimita el sistema multiagente de los sistemas externos. El desarrollo del
modelo de organización habrá delimitado la interacción del sistema multiagente con el resto
de sistemas de la organización.
Los sistemas externos (predefinidos) deben ser encapsulados en agentes, modelados
mediante el desarrollo de ejemplares del modelo de agente, y modelando sus interacciones
mediante el desarrollo de modelos de coordinación. En el caso de que haya interacción con
agentes humanos, esta interacción se describe en el modelo de comunicación.
3. Descomposición: el sistema se analiza mediante el desarrollo solapado de varios puntos
de vista:
= Descomposición funcional: se descompone el sistema en funciones (tareas u objetivos)
que deben ser realizados, mediante el desarrollo de un modelo de tareas global.
= Descomposición en ejecutores: el sistema se descompone en agentes que realizan las
funciones anteriormente desarrolladas, mediante el desarrollo del modelo de agente.
4. Descripción de las interfaces: tomando como punto de partida la fase de conceptuación y
el modelo de agente, se describen las relaciones estáticas que determinan los canales de
comunicación con otros agentes y con el exterior mediante el desarrollo del modelo de la
organización de los agentes. Es necesario identificar los flujos de comunicación de la
organización, que serán motivados, principalmente, por la necesidad de información y para
evitar o resolver conflictos.
5. Identificación y descripción de interacciones: la identificación y descripción de las
relaciones dinámicas entre los agentes se realiza de la siguiente manera:
= Las interacciones dinámicas con otros agentes software se describen en el modelo de
coordinación.
= Las interacciones dinámicas con agentes humanos se describen en el modelo de
comunicación.
6. Descripción del razonamiento de los agentes: para cada agente, se debe modelar el
conocimiento que necesita para llevar a cabo sus objetivos, mediante el desarrollo del
modelo de la experiencia.
7. Validación:
= Cada vez que un agente es descompuesto en nuevos agentes, éstos deben ser consistentes
lógicamente con la definición previa:
* Los subagentes son responsables de los objetivos del agente.
* Los subagentes deben ser consistentes con el modelo de coordinación y mantener las
mismas interacciones externas.
= Validación cruzada con los otros modelos.
= Los conflictos detectados en los escenarios deben tener determinado al menos un método
de resolución de conflictos.
- Diseño -- Como resultado de la fase de análisis, un conjunto inicial de agentes ha sido
determinado, así como sus objetivos, capacidades e interacciones. Durante esta fase se desarrolla el
Modelo de Diseño, que se basa en extender el modelo homónimo de CommonKADS para diseñar
6
sistemas multiagente. El Modelo de Diseño recopila los modelos desarrollados en el análisis y se
subdivide en tres actividades:
= Diseño de la aplicación. El sistema es descompuesto en subsistemas. Para una arquitectura
multiagente, se determina la arquitectura de más adecuada para cada agente.
= Diseño de la arquitectura. En nuestro caso, se selecciona una arquitectura multiagente (en
vez de, por ejemplo, una pizarra o una descomposición orientada a objetos). Se propone que en este
punto se determine la infraestructura del sistema multiagente (el denominado
modelo de red). Durante el diseño de la arquitectura se definen los agentes (denominados
agentes de red) que mantienen dicha infraestructura.
= Diseño de la plataforma. Se especifica el software y hardware que se necesita (o está disponible)
para el sistema.
- Codificación y prueba -- ésta es una cuestión abierta. Las dos tendencias principales son el
uso de un lenguaje de propósito general y la utilización de un lenguaje formal de agentes, que puede
ser directamente ejecutable o traducible a una forma ejecutable.
- Integración y prueba global -- Se puede comprobar parcialmente la corrección de la conducta
global del sistema utilizando los escenarios típicos que tratan los posibles conflictos y los métodos
de resolución de los mismos. Pero, dado que la conducta global del sistema no puede ser
determinada durante la fase de análisis o diseño, porque depende de los acuerdos y compromisos
concretos realizados entre los agentes, normalmente se necesitará recurrir a la simulación.
- Operación y mantenimiento -- Una vez probado el sistema, puede ponerse en operación. La
filosofía de los agentes facilita el mantenimiento del sistema dada su naturaleza modular.
Para el caso de modelo de proyectos grandes, se sigue un ciclo de vida en espiral, dirigido por
riesgos. En la primera fase de cada ciclo se identifican los objetivos de dicho ciclo y se establece
qué productos deben desarrollarse para satisfacer dichos objetivos; en la segunda se identifican los
riesgos asociados tanto a los objetivos como a la realización de productos, y se ordenan dichos
riesgos por orden de prioridad; el tercer paso es construir un plan de trabajo, definiendo actividades
para realizar los productos y asignando recursos a dichas actividades; para finalizar, la última fase
de cada ciclo consiste en realizar los planes y supervisar los criterios de calidad establecidos.
En MAS-CommonKADS, los productos se corresponden con estados alcanzados de un modelo.
Estos estados se asocian a objetivos y riesgos. Es necesario, por tanto, establecer los estados del
modelo de coordinación para que pueda ser gestionado.
Definición de estados de MAS-CommonKADS
Se define el “estado” a partir de los siguientes atributos:
- Modelo: nombre del modelo de MAS-CommonKADS para el que se define el estado (modelo de
agente, modelo de tarea, modelo de la experiencia, modelo de organización, modelo de
comunicación, modelo de coordinación, modelo de diseño).
- Variable del estado: nombre del aspecto del modelo cuyo estado es de interés. Dicho aspecto
depende de la granularidad escogida para gestionar un modelo. Normalmente será el nombre de un
constituyente del modelo o de una relación del modelo.
- Valor: Valor de la variable del estado. Este valor puede definirse de una forma cuantitativa (p. ej.
33% del modelo realizado), declarativa (empleando un lenguaje de representación formal,
semiformal o informal) o cualitativa. Se ha preferido la descripción cualitativa, definiendo el
siguiente conjunto de etiquetas:
= Vacío: ningún trabajo ha sido hecho.
= Requisitos identificados: los requisitos que parten de otras partes del modelo se han listado.
= Restricciones identificadas: las restricciones de la estructura interna se han clarificado.
= Entradas identificadas: las fuentes de información necesarias para construir los componentes del
modelo han sido documentadas.
= Identificado: los rasgos de los componentes del modelo han sido listados.
1. Debido a la simultaneidad en el desarrollo de la mayoría de los modelos de CommonKADS y a
que fueron desarrollados por diferentes autores, no se emplean de forma consistente los estados en
7
la definición de los modelos. En este apartado se adopta la definición de los estados según las
directrices generales de CommonKADS y el modelo de Organización, ya que ambos documentos
fueron elaborados por los mismos autores.
= Descrito: los componentes del modelo han sido descritos en detalle.
= Verificado: la consistencia interna y corrección de los componentes del modelo ha sido
establecida.
= Validado: los componentes del modelo han sido comprobados con criterios (externos) de
validación.
= Completo: el modelo ha sido descrito y validado con respecto a su completitud.
= Descartado: los trabajos adicionales han sido cancelados.
= Aprobado: la especificación de los componentes del modelo ha sido aceptada y aprobada por el
cliente.
- Papel: los estados pueden desempeñar los siguientes papeles (roles):
= Intermedio: empleado sólo para supervisión interna.
= Hito interno (landmark): empleado para revisión en la conclusión de un ciclo de gestión del
proyecto.
= Hito externo (milestone): estado hito interno en que se entrega un producto al cliente.
= Obligatorio: estado que debe realizarse en todo proyecto para asegurar la calidad del proyecto.
= Definido por el usuario: cualquier estado que el usuario de la metodología desee definir.
- Dependencias entre estados: representa cómo un estado está relacionado con otros estados.
Pueden darse dependencias internas (entre elementos de un modelo) o externas (entre elementos de
modelos diferentes).
- Métricas de calidad del estado.
En la práctica, se emplean simplificaciones en la definición de un estado:
- Se omite la descripción cuantitativa y declarativa de los estados.
- La designación de estado hito (interno o externo) o definido por el usuario se deja al gestor del
proyecto. Salvo que se indique que el estado es obligatorio, se considera que un estado es
intermedio.
- No se definen métricas de calidad, que se deja para futuras investigaciones.
- Los modelos sólo emplean cuatro estados posibles: vacío, identificado, descrito y validado, con el
siguiente significado:
= Vacío: no hay información disponible sobre el componente del modelo.
= Identificado: los “nombres” de los principales componentes se han definido, por ejemplo, los
nombres de los agentes del sistema, pero aún no se ha concretado su significado.
= Descrito: se han descrito los “nombres” previamente identificados.
= Validado: hay una fuerte evidencia de que la información es correcta.
- Se asume una relación de orden entre los valores posibles de un estado: “descrito” requiere
“identificado”, y “validado” requiere “descrito”.
8
9
Descargar