Ya hemos empezado a escribir código (por fin! yay) y por supuesto lo podéis encontrar en el repositorio. Es un ejemplo sencillo de un sistema multi-agente con JADE. Consiste en una simulación de una inundación, y los agentes son los siguientes:
- Creator: Es el encargado de crear al resto de agentes, y por lo tanto es el que hay que lanzar junto a la plataforma para que el ejemplo funcione.
- Enviroment: Representa el terreno, mantiene la información de la rejilla hexagonal por la que se mueve el agua.
- Water: Es una unidad de agua, es creada en alguna casilla de la rejilla y se mueve por ésta hasta que llega a la casilla de menor potencial, donde se queda detenida haciendo que aumente su potencial.
En JADE los agentes tienen comportamientos asociados, los hay de muchos tipos: de una sola ejecución, cíclicos, que se ejecutan cada x tiempo, etc… Es en éstos comportamiento dónde se debe programar la toma de decisiones de los agentes. Los encontraréis en el paquete behaviours; excepto los del agente Enviroment, porque son muy poco generales y los hemos puesto como clases internas del agente.
Los comportamientos del agente Enviroment son servidores de información, esperan a que les llegue una petición a través del sistema de mensajería de JADE y devuelven información de la rejilla. El comportamiento FloodTileBehav es el más complejo y es el que usan los agentes Water para decidir a qué casilla moverse o qué casilla inundar.
El ejemplo está casi completo pero aún quedan algunas cosillas por pulir, además de escribir el agente Creator. Aún así ya se puede probar. Cuando esté terminado el sistema de inundaciones postearemos los resultados.