Jade: plataforma para ejecutar agentes
- Ejecución de agentes completamente asíncrona
- Comunicación entre agentes en la misma o diferentes plataforma/s JADE/LEAP/JADEX
- Programación de agentes mediante un conjunto de paquetes Java (JDK 1.4 o superior).
- Validación de la ejecución mediante seguimiento mensajes y estado interno del agente.
- JADE esta compuesta de:
- Una plataforma FIPA para la ejecucion de agentes
- Un conjunto de paquetes para la programación de agentes FIPA
Las principales características de la plataforma SPADE son:
MadKit- Soporte del estándar FIPA mediante el protocolo de mensajería instantánea XMPP (Agentes AMS y DF incluídos)
- Notificación de presencia entre agentes.
- Organizaciones Virtuales basadas en el protocolo de multi-conferencia MUC.
- Comunicación P2P entre agentes.
- Invocación remota de servicios entre agentes usando el estándar XML-RPC.
- 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.
- Soporte de comunicación con otras plataformas mediante diversos protocolos de transporte: JADE (via HTTP o XMPP) y SIMBA.
- Publicación y subscripción de eventos mediante el estándar PubSub.
- Interfaz gráfica basada en web.
MadKit es una plataforma para la implementación de Sistemas Multi-Agentes. Esta basada sobre el modelo AGR de Ferber y Gutknecht. AGR en un modelo organizacional basado sobre los principios de Agente, Grupo y Rol.
Esta escrita puramente en JAVA.
Este documento no intenta ser una introducción a AGR, ni a los modelos organizacionales para los SMA. Pero vamos a describir solamente las bases para poder comprender el funcionamiento del SMA que vamos a desarrollar y el porque de ciertas elecciones.
El modelo AGR
El modelo AGR esta basado en las nociones de Agente, Grupo y Rol.Estructura general de la Plataforma
La arquitectura general de la plataforma puede ser representada de la forma siguiente (imagen del MadKit Development Guide)
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
Ciclo de vida de un agente
El ciclo de vida de un agente (usando la clase ), requiere la implementación de tres metodos. El primero es el método activate() que es llamado en el momento de la inicialización del agente. El segundo es live() donde se define el comportamiento del agente. El tercero es end() llamado a la finalización del agente.De estos tres metodos, solo live() es obligatorio (si queremos que nuestro agente haga algo). Los otros dos (activate y end) tienen una implementación (vacía) por “default” en AbstractAgent.
Unos ejemplos desde la página de madkit:
Bee Simulation
Tamagoshi Game
RoboCup Soccer Simulation League
RoboCup es un proyecto internacional fundado en 1997 para promover, a través de competencias integradas por robots autónomos, la investigación y educación sobre inteligencia artificial.
Las 3 variantes para participar en este tipo de torneo:
- Simulación 2D: Basado en la creación de sistemas multi-agentes, en el que todos cooperan para ganar un partido de soccer entre dos equipo, obviamente la simulación y la programación del sistema debe de ser en 2 dimensiones.
- Simulación 3D:: Basicamente es lo mismo que el anterior, con la única diferencia que este tipo de competencias se realizan en entornos 3D.
- Otra muy interesante es la de la competencia en un juego de soccer entre dos equipos pero con la misión de dejar de lado las simulaciones, es decir, ahora los partidos los juegan robots reales (tangibles), previamente entrenados (programados como sistemas multi-agentes para cooperar entre todos y ganar) para la ocasión.
La iniciativa está dividida en cuatro grandes competencias:
- RoboCupSoccer:
RoboCupSoccer es una competencia de fútbol con robots autónomos.
El objetivo oficial del proyecto es conseguir para mediados del siglo XXI un equipo capaz de vencer al ganador de la Copa Mundial de la FIFA siguiendo sus propias reglas. - RoboCupRescue:
Se trata de poner a prueba a los robots para tareas de búsqueda y salvamento de víctimas en terreno desfavorable. Los robots pueden ser tanto autónomos como guíados por control remoto.
En cada prueba, un equipo de robots debe ser capaz de encontrar el camino adecuado en la zona designada y hacer un mapa con la posición de los diferentes obstáculos del térreno y de las víctimas. - RoboCupJunior:
Intenta acercar las metas y objetivos de Robocup a estudiantes de educación primaria y secundaria.
Hay diferentes formatos:
- Fútbol, en equipos de 2 contra 2.
- Rescate, las reglas son similares al concurso global,4 pero el escenario es más básico y sencillo.
- Baile, en el que los participantes deben escoger una canción y robots autónomo que bailen a su son.
- RoboCup@Home:
Competencia añadida en la edición del 2006 celebrada en Bremen (Alemania) que se centra en la aplicación de robots autónomos en la vida diaria y en las relaciones hombre-robot derivadas.7
El escenario suele ser de la vida real y es ahí donde hay que demostrar las capacidades del robot.
En México se celebrará en los diás 18-24 de Junio un torneo de RoboCup
pueden checar bases y todo lo que se le ocurra (con respecto al torneo) en la pagina RoboCup México 2012.
Referencias Bibliográficas y Utilidades
- http://jade.tilab.com/
- http://es.wikipedia.org/wiki/SPADE
- http://www.robocup.org/
- http://es.wikipedia.org/wiki/Robocup
- http://wiki.robocup.org/wiki/Soccer_Simulation_League
- http://robocup.mty.itesm.mx/
- http://www.robocup2012.org/
- http://www.madkit.org/
- http://sebastian.rodriguez.free.fr/index.php/7-primeros-pasos-con-madkit.html
No hay comentarios:
Publicar un comentario