jueves, 8 de noviembre de 2012

Reporte #4 Multiagentes


REPORTE  #4  - MULTIAGENTES


JADE
Programar un agente JADE consiste en:
·         Definir una clase Java que representa al agente (la cual debe heredar de la clase jade.core.Agent).
·         Implementar los comportamientos que va a manisfestar.


Un agente JADE cumple las siguientes características:
  • El método protegido setup() sirve para inicializar el agente incluyendo instrucciones que especificarán la ontología a utilizar y los comportamientos asociados al agente. Se invoca al comenzar la ejecución del agente.
  • El método protegido takeDown() sirve para liberar recursos antes de la eliminación del agente. Este método es invocado cuando se realiza una llamada al método doDelete(), que es el que realmente da por finalizada la ejecución del agente.
  • Ambos métodos deben ser sobreescritos.
El ciclo de vida de un agente JADE sigue el ciclo propuesto por FIPA, es decir, cumple con la propuesta del estándar de interoperabilidad entre agentes más aceptado.
·         Tiene un nombre único en el entorno de ejecución.
·         Se implementa como un único hilo de ejecución (single-threaded).
·         Tiene un metodo de inicio (setup) y otro de fin (takeDown).
·         En su implementación se define una clase interna por cada uno de los comportamientos asociados al agente. Estos comportamientos se utilizan básicamente para el envío y recepción de mensajes, aunque también se pueden utilizar para realizar otras tareas
Un agente está sujeto a un ciclo de vida en el que se definen los estados en los cuales se puede encontrar el agente, así como los cambios que se pueden realizar entre los diferentes estados.



Estados de un Agente
Un agente puede estar en los siguientes estados:

  • ·         Iniciado: El objeto Agente está creado pero todavía no se ha registrado en el AMS, no tiene nombre ni dirección y tampoco se puede comunicar con otros agentes.
  • ·         Activo: El Agente está registrado en el AMS, tiene un nombre, una dirección y puede acceder a todas las opciones de JADE.
  • ·         Suspendido: El Agente está parado. Su hilo de ejecución está detenido y no ejecuta ningún Comportamiento.
  • ·         En espera: El Agente está bloqueado esperando por algo. Su hilo de ejecución está dormido en un monitor de java y se despertará cuando se cumpla una cierta condición (cuando reciba un mensaje).
  • ·         Desconocido: El Agente ha sido eliminado. El hilo de ejecución ha terminado y se ha eliminado del registro del AMS.
  • ·         Tránsito: Un Agente móvil entra en este estado mientras está migrando a una nueva localización. El sistema sigue guardando los mensajes en el buffer hasta que el agente vuelve a estar activo.



SPADE


Es una plataforma libre de sistemas multi-agente desarrollada en Python y basada en la tecnología de mensajería instantánea XMPP(Extensible Messaging and Presence Protocol, más conocido como XMPP(Protocolo extensible de mensajería y comunicación de presencia)).



La plataforma SPADE son: soporte de organizaciones virtuales, notificación de presencia, compatible con FIPA e independencia del lenguaje y la plataforma. La plataforma nació para probar la tecnología de la mensajería instantánea como protocolo de transporte para los agentes inteligentes.






Características

Las principales características de la plataforma SPADE son:
  • Soporte del estándar FIPA mediante el protocolo de mensajería instantánea XMPP (Agentes AMS y DF incluidos)
  • Notificación de presencia entre agentes.
  • Procesadores de lenguajes de contenido en SL0 y RDF.
  • Modelo de agente BDI basado en Conocimiento, Deseos e Intenciones.
  • Modelo de comportamientos: Cíclicos, Periódicos, Timeout, una ejecución, máquina de estados finita y basado en eventos.
  • Interfaz gráfica basada en web.

Interfaz Gráfica

La interfaz gráfica está basada en HTTP
Las características de la interfaz son las siguientes:
  • La plataforma y los agentes exportan su propia interfaz web.
  • La interfaz es configurable a través de plantillas.
  • Cada agente exporta su identificador como un código QR.
  • Instrospector de agente.
  • Visor de mensajes enviados.
  • Búsqueda de agentes y servicios.
MaDKit
MaDKit es un código abierto plataforma Multiagentes modular y escalable escrito en Java y construido sobre la AGR (agente / grupo / rol) modelo organizativo:
Agentes MaDKit desempeñar funciones en grupos y así crear sociedades artificiales.

MaDKit es software libre licenciado bajo la GNU GPL que incluye:

- Agentes de la creación artificial y la gestión del ciclo de vida
- Una infraestructura organizativa para la comunicación entre los agentes
- Alta heterogeneidad en las arquitecturas de agentes: No hay un modelo predefinido agente
- Multi-Agente de simulación basado en simuladores y herramientas de autoría
- Multi-agente distribuida basada en servicios de aplicaciones de edición

MaDKit 4 viene con un conjunto completo de servicios y agentes para el lanzamiento, presentación, desarrollando y seguimiento de los agentes y organizaciones.

El agente diseñador es un buen punto de partida para iniciar un nuevo proyecto en MaDKit .. Este agente es joven... Pero muy prometedor...
MaDKit viene con un conjunto de herramientas que pueden ser utilizadas para ayudar al desarrollo de aplicaciones Multiagentes.


o    Agente Diseñador: ayudar a la creación de un nuevo proyecto. Comience con ella, y luego construir su proyecto MadKit ...
o    Agentes del sistema: estas son las principales herramientas que el uso revelador MadKit para explorar, poner en marcha, visualizar y localizar los agentes.
o    Communicator: un agente que permite construir aplicaciones distribuidas sin preocuparse por la distribución ..
o    NetCom: una versión más nueva, más flexibles y más adaptables del agente Communicator. (documentación no está disponible aún)
o    ProjectBuilder: cómo crear, editar y crear un nuevo proyecto en MadKit (esta función no está disponible aún)
o    jSynEdit editor: un "agentified" versión de un pequeño editor con funciones coloreado de sintaxis que tiene la abeja integrada en MadKit y puede ser usado para editar y ejecutar Java y agentes de secuencias de comandos.
o    SEdit es a la vez un editor y animación de diagramas que se pueden utilizar para ver y manipular la información representada en forma de gráficos. SEdit está ahora totalmente integrado a MadKit y por lo tanto el manual necesita una pequeña actualización .. Pero, aun así, ofrece una gran cantidad de información útil.
o    PluginManager: MadKit viene con su propio instalador que puede ser utilizado para instalar, actualizar y MadKit taylor a sus necesidades.

El modelo AGR esta basado en las nociones de Agente, Grupo y Rol.
Agente
Es una entidad capaz de comunicar atreves de los roles que juegan en los diferentes grupos
Grupo
Role

ESTRUCTURA GENERAL DE LA PLATAFORMA

El componente principal es el Kernel (o micro-kernel). El kernel provee soporte para:
Control de grupos y roles locales
Manejo del ciclo de vida de los Agentes
Despacho de Mensajes locales




RoboCup Soccer Simulation League

La RoboCup es una iniciativa de investigación y educación en torno a una competición en la que pueden integrarse diferentes tecnologías. Promueve la investigación en robótica e inteligencia artificial.
Tal y como puede leerse en la web oficial de este proyecto " El objetivo último del proyecto es desarrollar para la RoboCup 2050 un equipo de robots humanoides completamente autónomos que sean capaces de ganar al equipo humano campeón del mundo de fútbol." 

RoboCup Fútbol

La RoboCup fútbol es una competición de fútbol entre robots. Esta se desarrolla en diferentes categorías:

  • Liga en simulador: una plataforma de investigación para sistemas multiagente e inteligencia artificial
  • Liga en tamaño pequeño: dos equipos de 5 pequeños robots (han de caber en una circunferencia de 180 mm de diámetro) se enfrentan utilizando cámaras sobre el mismo robot o sobre el campo.En esta categoría los sobots pueden comunicarse con un ordenador externo.
  • Liga en tamaño medio: robots de tamaño medio con funcionamiento totalmente autónomo
  • Liga con plataforma estándar: todos los equipos utilizan robots idénticos. Actualmente la plataforma es el robot NAO de Aldebaran.
  • Liga humanoide: robots humanoides 100% autónomos con tamaños comprendidos entre 30 y 160 cm.

RoboCup Rescate

  • Liga en simulador: El rescate en simulador es una nueva área de experimentación en la RoboCup. Su objetivo principal es proporcionar soporte en situaciones de emergencia por medio de la integración de información sobre desastres, predicción, planificación y la interfaz humana.
  • Liga de robots: Esta prueba de rescate con robots tiene como objeto fomentar la investigación en torno a la respuesta a situaciones de emergencia.

RoboCup Junior

RoboCup Junior es un proyecto educativo dirigido a jóvenes estudiantes de hasta 19 años de edad. Su objeto es educativo y está diseñado para introducir la RoboCup en la enseñanza primaria y secundaria. En los diferentes retos hay dos categorías, la primera hasta 14 años y la segunda de 14 a 19. En esta modalidad de la RoboCup hay tres retos diferentes:
  • Futbol
  • Rescate 
  • Danza




Referencias:
http://programacionjade.wikispaces.com/Agentes
http://www.madkit.net/api/madkit5/overview-summary.html
http://sebastian.rodriguez.free.fr/index.php/7-primeros-pasos-con-madkit.html
http://lrobotikas.net/es/competicion/43-robocup/81-robocup1
https://code.google.com/p/spade2/
http://es.wikipedia.org/wiki/SPADE

No hay comentarios:

Publicar un comentario