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.
In IODA, agents behave according to a generic process. That algorithm manipulates four different functions:
Although the definition two first functions are domain-dependent, the remaining functions can be described in generic algorithms that manipulate the interaction matrix.
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.
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.
|
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. |
Fig.1: Generic algorithm used to list all
realizable tuple of an agent x..
|
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. |
Fig.2: Generic algorithm used to list all
realizable tuple of an agent x.
|
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.