Posts Tagged ‘JADE’

Comunicación entre agentes

Thursday, April 22nd, 2010

Jade también nos proporciona un sistema de comunicación entre agentes. Podemos utilizar este sistema para hacer que los agentes interactúen entre ellos, pudiendo recrear así comportamientos más complejos.

En este minitutorial, uno más de la serie que venimos publicando, explicaremos cómo utilizar dicho sistema.

Lo primero que querremos hacer a la hora de enviar un mensaje a otro agente es encontrar a dicho agente. Para ello Jade provee un sistema de páginas amarillas, el DFService. Los agentes que proveen servicios a otros agentes se registran en este directorio, de esta manera cualquier agente puede encontrar a otro agente que le provea de un servicio determinado. (more…)

Personas [Vídeo]

Saturday, April 3rd, 2010

En el vídeo de esta entrada vemos como reaccionan la primera versión de personas de nuestro simulador. Estos agentes huyen del agua, prefieren lugares altos y sólo se mueven por las calles (hexágonos con borde amarillo). Son los puntos rojos que aparecen en el vídeo.

La distancia de visión de los agentes en este ejemplo concreto es de 5 hexágonos, y su velocidad es de 1 hexágono. Es decir, que detectan agua y casillas altas hasta a 5 hexágonos de distancia, pero sólo pueden moverse hacia ellas de una en una.

En el vídeo veréis que las personas dan saltos, esto se debe a dos motivos. Primero, el visor no muestra todos los pasos de la simulación, si no el estado de ésta cada X milisegundos; y segundo, el capturador de pantalla con el que he hecho el vídeo no ha sido capaz de capturar todos los frames por segundo que debiera (mi portátil no da para más :þ ).

Hay más vídeos disponibles para su visionado en YouTube ;)

Las calles son las reales de Nueva Orleans (gracias a OSM), pero la altura del terreno es aleatoria (más rápido para hacer pruebas).

Añadiendo comportamientos a agentes

Saturday, March 20th, 2010

Continuando con la serie de minitutoriales, toca dotar a nuestros agentes de inteligencia. Lo haremos añadiéndoles comportamientos. Un comportamiento es un algoritmo sencillo que nuestro agente ejecutará para intentar cumplir un objetivo. Evidentemente no hay inteligencia real en estos comportamientos, pero al tener muchos agentes interactuando entre ellos al final aparece un comportamiento global que podría calificarse como tal.

Al igual que con los agentes, para crear un comportamiento hemos de heredar de una clase de JADE, aunque esta vez tenemos varias para elegir. Dependiendo del tipo de comportamiento que queramos crear hemos de extender una clase u otra, y si no nos convence ninguno, extendemos la clase superior de la jerarquía y determinamos nosotros mismos las condiciones de ejecución del comportamiento. (more…)

Creando un Agente

Friday, March 12th, 2010

Hoy traigo un nuevo minitutorial, esta vez sobre la creación de agentes.

Crear un agente utilizando la plataforma JADE es realmente sencillo, basta con crear una clase que extienda a jade.core.Agent y listo. Para introducir nuestra lógica en el agente lo que tenemos que hacer es sobreescribir un par de métodos.

El método setup() se ejecuta al inicio del ciclo de vida del agente, y es donde hemos de escribir el código de inicialización. El otro es el método takeDown(), que se ejecuta cuando muere el agente y nos permite escribir el código para liberar los recursos que estuviese utilizando. (more…)

Inundando terrenos…

Tuesday, January 19th, 2010

El código del ejemplo ya está terminado. Es posible lanzarlo con un comando parecido al siguiente:
java jade.Boot -gui creador:agents.CreatorAgent.class

Aunque resulta mucho más sencillo utilizarlo a través de un plugin como EJADE para Eclipse. Éste plugin en concreto permite ejecutar la plataforma JADE y lanzar agentes desde el mismo IDE, y a golpe de ratón. A la hora de depurar ahorra mucho tiempo.

El agente que se encarga de crear y lanzar a todos los demás es: CreatorAgent. Dicho agente crea primero un agente entorno, y luego cada 100 ms crea un agente agua. Estos agentes agua se mueven por una rejilla hexagonal que representa al terreno, y que mantiene el agente entorno, como la de la imagen:

Los agentes agua preguntan al agente entorno por el potencial o nivel del terreno de las casillas adyacentes, y sobre esa información deciden si moverse o inundar la casilla en la que se encuentran (en caso de no haber ninguna casilla adyacente de menor potencial). Una vez que un agente agua inunda una casilla deja de moverse, y el nivel de esa casilla aumenta.
(more…)