Logo image cannot be loaded

IODA Algorithms

A model built thanks to a modeling methodology has a particular layout, which is as close as possible to the ontology used by domain specialists, in order to facilitate its construction. Yet, implementation is possible even without keeping the structure of the model: for instance implement a model designed with a specific methodology, and implement it on an open framework like Madkit or Netlogo.

We uphold that implementation has to keep the structure of the model. IODA makes it possible thanks to the algorithms defined in this page.

How does a IODA Simulation Framework work ?

In IODA, agents behave according to a generic process. That algorithm manipulates four different functions:

  • Perceive neighbors;
  • Update the agents state;
  • Get the set of interactions the agent can initiate;
  • Select the interaction the agent initiates

Although the definition two first functions are domain-dependent, the remaining functions can be described in generic algorithms that manipulate the interaction matrix.

Get the set of interactions the agent can initiate

The construction of the set of interaction an agent can perform in a particular context depends on both its abilities, and on the agents in its neighborhood. Both the eligibility syntaxic criterion and realizability semantic criterion are defined in this section to help the census of all possible interactions a source agent might perform.

Let S be an agent from the FS family that is asked to behave, T be an agent from the FT family that lies in the neighborhood of S, a = (I, lim) be an assignation element and M be the interaction matrix of the simulation. The tuple (a, S, T ) is said eligible if:
  • S is able to initiate the I together with T -- i.e. the cell of the matrix at the intersection of the line of FS and the column of FT contains a, and;
  • the distance between S and T is lower or equal to lim.

Tuple eligibility is a syntaxic criterion: it tells if a source agent has the ability to interact with a target agent. This criterion is not semantic, and thus the interactions trigger or preconditions might not hold true for the source and target agent. To check the semantic validity of a tuple, a tuple realizability criterion is defined.

Let S be an agent that is asked to behave, T be an agent that lies in the neighborhood of S, a = (I, lim) be an assignation element and I be an interaction. The tuple (a, S, T ) is said realizable if:
  • (a, S, T ) is eligible, and;
  • the trigger of I holds true for the agents S and T, and;
  • the preconditions of I hold true for the agents S and T.

The set of interactions an agent S can perform in its context is the set of all realizable tuples in which S is the source. The generic algorithm that lists the realizable tuples of an agent x is displayed in Fig.1.

Highslide JS
Fig.1: Generic algorithm used to list all realizable tuple of an agent x..

Reactive interaction selection

Once the source agent listed the set of all interactions it has the opportunity to initiate, it has to determine which of them it will perform. Obviously, such a process depends on the reactive, cognitive or hybrid nature of agents.

IODA defines a reactive interaction selection process centered on assignation ele- ments priorities (see this page). This process ensures that the interaction initiated by an agent comes from a realizable tuple, which assignation element has the highest priority among all realizable tuples. If more than one realizable tuple has the highest priority, then the one performed is selected at random. The generic algorithm that performs such a selection is defined in Figure 2.

Highslide JS
Fig.2: Generic algorithm used to list all realizable tuple of an agent x.

Simulation algortihm

The algorithm ruling simulations execution depends on the chosen time representation. Since IODA makes no assumption on that time representation, no generic algorithm can be defined in the general case. In the case of discrete time, the simulation algorithm is the one presented on the page dedicated to the JEDI framework.

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