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.
·
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
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
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