Logo image cannot be loaded

Reactive Agents Specification

This page presents how reactive agents are designed with IODA.

As the page presenting the formal model of IODA states, agents are made of six independent elements. An agent is called reactive if its interaction selection process is reactive. This, the specification of reactive aims at defining only one of the six elements constituing agents: the interaction selection process.

Defining a reactive interaction selection process requires:

  • to define an intuitive representation that helps the specification of agents behavior;
  • to define algorithms interpreting automatically the latter intuitive representation into code.

Subsumption like process

The reactive interaction selection process is inspired from the well known subsumption architecture defined by Rodney Brooks: every assignation element of the interaction matrix is given a priority -- an integer number -- which value represents the priority of the interaction for the source agent. The higher the integer is, the higher the priority becomes.

The behavior of an agent consists in first retrieving the set of all realizable tuples of this agent. Since every tuple is built thanks to a particular assignation element of the interaction matrix, every tuple has a priority. A reactive interaction selection consists in selecting the tuple that has the highest priority among the set of realizable tuples. If more than one tuple share this priority, the tuple is selected at random.

Refined interaction matrix

Consequently, the definition of reactive agents behavior requires only to define priorities for every assignation element of the matrix. This leads to the construction of more complete interaction matrix, called Refined Interaction Matrix.

A refined interaction matrix is a matrix where each assignation element is given an integer priority. The higher the number, the higher the priority becomes.

Illustration: an ecosystem simulation example

Let us consider a simulation that aims at studying the evolution of populations of predators and preys. If the interaction matrix of such a simulation -- where Sheep, Grass, Goat and Wolf agents evolve -- is the one of Figure 1, then, a possible refined interaction matrix is the one of Figure 2.

Highslide JS
Fig.1: Interaction Matrix of an ecosystem simulation, where wolves, sheep, goats and grass agents evolve. The element (Eat, d = 0) at the intersection of the line starting with Sheep and the column starting with Grass is read "Sheep agents are able to initiate the Eat interaction with a target Grass agent that lies at a maximal distance of 0 from the source".
Highslide JS
Fig.2: Refined Interaction Matrix of an ecosystem simulation, where wolves, sheep, goats and grass agents evolve.".

In figure 2, the matrix means that a Sheep agent favors first the Die interaction. If it cannot Die, then it tries to Eat Grass agents. If it cannot Eat at least one Grass agent, it tries to Reproduce with another Sheep agent. Finally, if it cannot Reproduce with at least one other Sheep agent, it tries to Move.

Priorities can also be interpreted as preferences between the targets of the same interaction. For instance, in Fig. 2, a Wolf agent prefers to Eat Goat agents (priority 4) rather than Sheep agents (priority 3).

Extension of the refined interaction matrix

The refined interaction matrix presented above uses a simple principle to select target agents: a random choice. Yet, even if that solution is satisfying in a vast set of simulations, some simulations require more elaborate means.

Indeed, behaviors like follow the pheromone with the highest concentration, reproduce with the healthiest animal or hunt the closest foe cannot be modeled with a simple random choice.

Our publications named How to avoid Biases in reactive simulations and Interaction Selection Ambiguities in Multi-Agent Systems describe how to model these kinds of examples with a refined interaction matrix.

Copyright © 2001-2009 Philippe Mathieu  --   Legal mentions  --   Valid XHTML 1.0 Transitional  --  W3C validation image