Curso UIMP: Taller JADE/JADEX. Primeros ejemplos


En la sesión de taller de JADE/JADEX de hoy, se repasó por encima la estructura y filosofía el framework Jade, con su sistema de entornos de ejecución de agentes distribuidos con un identificador único y comunicados entre sí. También se habló y ejecutó su interfaz de usuario gráfica que permite lanzar y controlar los agentes que se programen, así como el análisis de la comunicación entre los agentes mediante un agente especial llamado Sniffer.

Se vieron los conceptos de la definición del protocolo de interacción entre agentes en base a una ontología, a partir de dos trabajos de los alumnos del ponente:

  • Ejemplo de Sabana (leones e hipopótamos): definición simple de una ontología para la simulación del entorno de una sabana africana.
  • Ejemplo del Tute: ejemplo más elaborado de la ontología para la simulación del juego del Tute.

que nos puso como ejemplo del desarrollo que debíamos hacer nosotros para nuestra aplicación de simulación del mercado. El protocolo de comunicación entre agentes se basa en un estándar creado por un organismo internacional, la FIPA, llamado Agent Communication Language Specifications (FIPA/ACL)

Para tomar contacto con la nueva plataforma, se hizo un ejemplo de juguete, el clásico “hola mundo”, para mostrar su funcionamiento. El código creado ni siquiera se puede llamar un agente en sentido estricto, pero permite introducirlo en la plataforma de ejecución de Jade y tener una primera visión del conjunto.


import jade.core.Agent;

public class HelloAgent extends Agent
{
protected void setup()
{
System.out.println("Hello World. ");
System.out.println("My name is "+ getLocalName());
}
}

La puesta en marcha del interfaz gráfico (GUI) de Jade se hace con la siguiente instrucción desde un interfaz de línea de comandos (MS-DOS en Windows o una shell en Linux) :


java jade.Boot -gui

NOTA: hay que poner correctamente los PATH para que se encuentren todas las librerías, incluyendo las de java (!)

El entorno GUI tiene un agente sniffer que nos permite ver incluso las interacciones entre los agentes en forma de un diagrama de interacción simplificado (sin detalles de los mensajes, aunque con código de colores para marcar su tipo de acto comunicativo: INFORM, REQUEST, etc.)

Los mensajes que se pueden intercambiar los agentes pueden ser cadenas de texto o programas (code snippets) Se mostró un ejemplo de código LISP intercambiado entre dos agentes.

Relaciones útiles a recordar: thread -> agente, tarea -> behavior (setup, takedown), 1 servicio -> N behaviors, …

Como referencias útiles para ampliar toda la información que nos dio sobre el entorno JADE y su programación podemos consultar la documentación online del proyecto, en donde se encuentran referencias a la Guía del Administrador y la Guía del Programador (el ponente nos proporcionó dos copias en papel de esos documentos para que la fuéramos estudiando) La documentación completa del JavaDoc del API del framework también puede resultar útil como referencia. El ponente también utilizó parte de un tutorial online de introducción d a la programación de agentes con Jade que es útil consultar:

JADE Tutorial and Primer

Jean Vaucher and Ambroise Ncho
Dep. d’informatique
Université de Montréal
September 2003 (updated april 2004)

4 comentarios en “Curso UIMP: Taller JADE/JADEX. Primeros ejemplos

  1. El profesor Javier Carbó nos ha proporcionado dos referencias bibliográficas muy importantes que el considera como válidas para profundizar en el mundo de los sistemas multiagente:

    Introduction to MultiAgent Systems

    Professor Michael Wooldridge
    Department of Computer Science
    University of Liverpool

    Multi-Agent System: An Introduction to Distributed Artificial Intelligence
    Jacques Ferber
    Harlow: Addison Wesley Longman 1999

    El primero está en la biblioteca de la uni (DEC) pero NO DISPONIBLE (supongo que lo tendrá algún departamento)
    DEC M 68C61 WOO,M.

    Buscando en la web de la biblioteca más referencias he encontrado la siguiente:

    [IND A DON 19]

    Autor: International Workshop on Practical Applications of Agents and Multiagent Systems (3º : 2004 : Burgos)

    Título: 3rd International Workshop on Practical Applications of Agents and
    Multiagent Systems : IWPAAMS 2004 / Editor, Vicente Botti, Emilio Corchado.

    Editorial: Burgos : Universidad de Burgos, Servicio de Publicaciones, 2004.
    Descripción física: XIV, 384 p. ; 23 cm.
    Colección: Congresos y cursos ; 27
    ISBN: 84-96394-07-7
    Autor: Botti, Vicente. Corchado, Emilio.
    Congresos: IWPAAMS 2004 (3º : 2004 : Burgos)

    Sobre la referencia al congreso IWPAAMS 2004 se trata de un workshop español con vocación internacional sobre sistemas multiagente. He buscado por la red otras citas y todas han sido organizadas y celebradas en España. La última, en el año 2007, se celebró en la Universidad Pontificia de Salamanca en el marco del congreso español por excelencia de Inteligencia Artificial (CAEPIA 2007)

  2. Buscando por la red me he encontrado con un blog dedicado a la aplicación del modelado basado en agentes (Agent-Based Modeling, ABM) a las aplicaciones de Sistemas de Información Geográfica (GIS) Entre sus entradas se encuentran enlaces a sitios muy interesantes como el OpenABM Consortium que tiene una relación de frameworks para el desarrollo de aplicaciones con agentes (esencialmente dedicadas a la simulación) Curiosamente no se encuentra JADE …

  3. Cordial saludo, llevo bastante tiempo trantando de programar un agente movil, con java-jade pero me he encontrado con un sin fin de dificultades, la verdad es que el lenguaje java no es mi fuerte, quisiera pedir su ayuda si no es molestia en cuanto a documentacion o guias para la elaboracion. le agradezco de antemano

  4. Hola Leonardo. La verdad es que hace bastante que no toco el tema. La dificultad de la programación de agentes con JADEX va más allá del conocimiento del lenguaje de programación java y de la programación orientada a objetos y el manejo de patrones de diseño/programación, aunque evidentemente su conocimiento es esencial.

    Para familiarizarte con el lenguaje java te recomiendo los tutoriales de Sun y también tienes para descargar el libro de Thinking in Java de Bruce Eckel, que es una de las biblias de java.

    En cuanto a la programación de agentes tienes la página web de los desarrolladores de JADE como referencia principal, en donde además citan un libro que es fundamental para entender la programación de sistemas multiagente: Developing Multi-Agent Systems with JADE, de Fabio Luigi Bellifemine, Giovanni Caire, Dominic Greenwood. Y luego tienes que ir a la página web de JADEX de la Universidad de Hamburgo en donde tienes una documentación online bastante completa, pero que requiere un conocimiento bueno del lenguaje de programación java.

    Finalmente indicarte que en Google Books puedes buscar y consultar, si bien de forma parcial e incompleta, libros que tienen capítulos o están dedicados al tema de la programación de agentes con JADE/JADEX. Por ejemplo yo he encontrado un capítulo dedicado a JADEX en un libro titulado Multi-Agent Programming escrito por Rafael H. Bordini, Mehdi Dastani, Jürgen Dix y Amal El Fallah Seghrouchni.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s