Download - Trabajo Programacion Agentes
David Estévez QueijaDiego Pérez Montes
1. Estado del Arte: Frameworks2. Metodologías de Desarrollo de SMA3. Principales Líneas de Trabajo4. Futuro Próximo: artefactos5. Bibliografía
Java Agend Development Framework, creado por TILAB.
Probablemente el más utilizado.Cumple con los estándares descritos por la
FIPA (Foundations of Intelligent Physical Agents).
Lenguaje de comunicación de agentes: ACL.Clara orientación a agentes para
dispositivos móviles.Arquitectura P2P.Futuro: Agentes con roles.
Versión ampliada de AgentSpeak (lenguaje de programación orientado a agentes).
Orientación a BDI desde un principio.Ambiente programable.Lenguaje de comunicación de agentes:
Knowledge Query and Manipulation Language (“predecesor” de ACL).
Muchos investigadores lo consideran superado por Jade, pero sigue siendo motivo de muchos papers.
SMA programados en C/C++.Alto rendimiento (en algunos casos un
speedup del 100%).Cumple con FIPA, lenguaje: ACL.Capacidad de adaptación de los agentes
virtualmente ilimitada: recompilación y reconfiguración en tiempo de ejecución (“built-in compiler”).
Orientación a agentes móviles, muchos papers sobre dispositivos empotrados (sistemas complejos completos <6MB).
Arquitectura P2P.
Agency: Instancia en cada nodo de la plataforma. AMS: Páginas Blancas; DF: Páginas Amarillas. SA: Stationary Agents MA: Mobile Agents; AEE: Agent Execution Engine for Mobile Agents
(SandBox)
Estudio de 7 metodologías:
1.Vowel Engineering2.MAS-CommonKADS3.BDI4.ZEUS5.MaSE6.GAIA7.INGENIAS
grupo MAGMAordenación y agrupamiento de aspectos
identificados por cuatro vocales:◦ A -> agentes◦ E -> entorno◦ I -> interacciones◦ O -> organización
El propósito de “Vowel Engineering” es lograr librerías de componentes que den soluciones al diseño de cada uno de estos aspectos.
Vowel Enginering sólo proporciona las vocales como resumen de elementos a considerar en el desarrollo y un conjunto de tecnologías aplicadas.
gira alrededor del modelo de experienciapensada para desarrollar sistemas expertos
que interactúen con el usuarioconsidera sólo dos agentes básicos: el
usuario y el sistemaplantea un desarrollo de SMA integrado con
un ciclo de vida de software, concretamente el espiral dirigido por riesgos
siete modelos para la definición del sistema:◦ Agente◦ Tareas◦ Experiencia◦ Coordinación◦ Comunicación◦ Organización◦ Diseño
El modelo en sí parte de una descripción gráfica que luego se complementa con explicaciones en lenguaje natural de cada elemento
B -> BeliefsD -> DesiresI -> Intentions
el agente es visto como un agente racional con un conjunto de actitudes mentales◦ Creencias, Deseos e Intenciones
el agente toma sus acciones en función de sus estados
Esta aproximación es considerada como muy apropiada para agentes en entornos reales complejos y dinámicos
Elementos que dan nombre al modelo BDI:◦ Una creencia del agente sería información que
tiene el agente sobre el entorno. Componente informativo del agente.
◦ Un deseo del agente es algo que el agente quiere conseguir y que por tanto tiene preferencia. Componente de motivación del agente
Los objetivos serían un subconjunto de deseos consistentes entre sí que el agente debe perseguir.
Las intenciones del agente son los objetivos elegidos. Existe un compromiso por parte del agente a conseguir sus intenciones.◦ Componente deliberativo del sistema
MaSE (Multi-agent systems Software Engineering)
Parte del paradigma orientado a objetos y asume que un agente es sólo una especialización de un objeto.
se coordinan unos con otros vía conversaciones actúan proactivamente para alcanzar metas
individuales y del sistema.
El proceso de desarrollo en MaSE es un conjunto de pasos.
La mayoría de los pasos se ejecutan dentro de la herramienta AgentTool.
El análisis en MaSE consta de tres pasos:◦ capturar los objetivos
diagramas de objetivos -> representan los requisitos funcionales del sistema
◦ capturar los casos de uso casos de uso -> enumeración de los casos de uso
considerados con la posibilidad de usar diagramas de secuencia para detallarlos
◦ refinar roles diagramas de roles -> identifica roles, tareas asociadas a
roles y comunicaciones entre roles y entre tareas
AgentTool permite generar código automáticamente a partir de la especificación del sistema, que en MaSe es el conjunto final de diagramas.
La generación de código es independiente del lenguaje de programación utilizado, ya que se realiza recorriendo las estructuras de datos generadas en la especificación y generando texto como salida
propone un desarrollo en cuatro etapas:◦ el análisis del dominio◦ el diseño de los agentes◦ la realización de los agentes (herramienta)◦ el soporte en tiempo de ejecución (herramienta)
herramienta:◦ creación de un sistema ya ejecutable:
Visor de Sociedad Herramienta de Control Generadores de Informes
Objetivo:◦ obtener un sistema que maximice alguna medida
de calidad global◦ Creación de un diseño lo suficientemente detallado
para ser implementado directamenteSólo se busca especificar cómo una
sociedad de agentes colabora para alcanzar los objetivos del sistema (incluyendo tareas individuales)
nivel de abstracción demasiado altoel esfuerzo a invertir para pasar de una
especificación GAIA hasta su implementación sea alto
INGENIAS 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◦ objetivo
lenguaje de meta-modelado, el GOPRR (Graph, Object, Property, Relationship, and Role).
construcción:◦ entidades y relaciones entre entidades
la instanciación de estos meta-modelos produce diagramas similares a UML (para agentes)
herramienta para modelado visual:◦ INGENIAS IDE
almacena la especificación del sistema usando XML
desde la especificación en XML se puede:◦ generar código◦ generar la documentación
el proceso de desarrollo que propone INGENIAS es excesivo cuando se trata de desarrollos reducidos
Mejora en depuración y traceo de los BDI (Belief-Desire-Intentio).
Nueva capa de abstracción de ACL (Albratross), compromisos para complementar a BDI.
Cumple con FIPA, lenguaje: ACL.Algoritmia avanzada en la gestión de
recursos compartidos entre agentes.Uso de artefactos (siguiente punto).
Hasta ahora “sólo” comunicaciones e interacciones entre agentes.
Intento de plasmar el “mundo real”: los humanos interactuamos con objetos (artefactos), lo que es un signo inteligencia.
Los artefactos de un SMA son una abstracción de los reales que puede ser explotado para conseguir una meta.
Acciones básicas: Creación y eliminación dinámica (instancias). Descubrimiento de artefactos. Compartición. Uso. Manipulación.
Componentes de un artefacto (SMA):◦ Cualidades.◦ Intefaz de Uso.◦ Estado.◦ Eventos.
Framework CARTAGO.◦ Funciones disponibles:
Creación de artefacto: createArtifact(Name,TypeID,Conf,WspID)
Descubrimiento de artefactos disponibles: getArtifactID(Name,WspID):AID
Eliminar instancia de artefacto: disposeArtifact(AID)
Uso de artefactos:◦ Uso del objeto enfocado:
execOp(AID,Op(Name,Params),SID)◦ "Enfocar": focus(AID,SID)◦ "Desenfocar": unfocus(AID,ID)◦ Visualizar estado del artefacto:
getObsState(AID):ObsState
La tecnología de Agentes es bastante madura, aún así no parece salir de ser “cutting edge”.
Cada metodología se especializa en áreas concretas. No existe una metodología única y válida en todos los ámbitos.
La aplicación de metodologías depende de la formación que tenga su usuario final (son interpretadas en función de los intereses de quien las aplica).
Todo parece apuntar a los artefactos, roles y entornos como futuro próximo y cómo tema de investigación.
La programación de agentes ha evolucionado en 2 áreas: los agentes móviles que han ganado nivel de abstracción y los agentes de “bajo nivel”.
F. Bellifemine, G. Caire, A. Poggi, G. Rimassa, Jade Whitepaper, EXP in search of innovation, número 3 - volumen 3, Septiembre 2003
Matteo Baldoni, Guido Boella, Valerio Genovese, Roberto Grenna, Andrea Mugnaini and Leon van der Torre. A Middleware for modeling Organizations and Roles in Jade, Seventh international Workshop on Programming Multi-Agent Systems, Mayo 2009
Alessandro Ricci and Mirko Viroli. A Formal Model for Artifact-Based Environments in MAS Programming, Seventh international Workshop on Programming Multi-Agent Systems, Mayo 2009
Bo Chen, Harry H. Cheng,, and Joe Palen, Mobile-C: a mobile agent platform for mobile C/C++ agents, Wiley Interscience DOI 10.1002/spe 742, 13 de Julio de 2006
Inteligencia Artificial, Revista Iberoamericana de Inteligencia Artificial. No.18 (2003), pp. 51-63.
ISSN: 1137-3601. © AEPIA (http://www.aepia.dsic.upv.es/)