The IODA Ant toy project is an illustration of how easy modelling and implementing a simulation is when using the set of tools provided by the SMAC team at the LIFL (SMAC stands for Multi-Agent Systems and Behaviour).
IODA is an interaction centred multi-agent methodology. It means the behaviour of the agents are described in terms of the interactions occuring between them. This avoids the introduction of biases when trying to guess the behaviour of an agent.
The JEDI api provides a set of Java classes for the implementation of a IODA-compliant formal model. JEDI enables the user to design their own agents and interactions and assign the interactions. Everything else is being taken care of.
The model resulting from applying the IODA methodology is best represented by the interaction matrix below.
How to read this matrix? Basically, it shows all the interactions enabled between two agent families... and the whole model is pretty much there, really. Every interaction is emitted by a source agent (the matrix's row) and undergone by a target agent (the corresponding column) or by the environment in the case of a "degenerate" interaction (column ∅). An interaction is written:
+(name_of_the_interaction, distance, priority)
The distance qualifies the minimal distance, between the source and the target, beyond which the interaction cannot happen. Note degenerate interactions do not need a distance.
The priority helps sorting the interactions when several are realisable at the same time step for a given agent.
IODA works as follows: at each time step, for every agent, a set of realisable interactions is evaluated, depending on the distance and the preconditions of each interaction in the matrix. Among the realisable interactions, the one with the highest priority is selected and triggered.
The resulting simulation shows one illustration of what can be achieved within a very reasonable time. The anthill is represented by a crack on the ground from where ants surface. The figure on the anthill represents the quantity of food stored whereas the food source is depicted by the green circle (including the available number of units). As the ants are moving (wandering, following or tracking things) they drop pheromones which diffuse and create trails. The ants use these trails to find their way in the environment and collect food with efficacy, as the clip below shows.
The Ants and the Pheromones altogether represent a number of more than 10,000 agents. The simulation runs fine on a consumer's laptop.
No part of the behaviour of an agent is described elsewhere than through their interactions with the other agents or with the environment.
All the interactions themselves are based on simple primitives offered by the JEDI api such as moving or orienting oneself.
Interactions can be written once and reused several times, vertically like 'die' which applies to several agents, or horizontally like 'track' which can apply to several targets.
Please rewind the video before leaving the website for the convenience of next users.