30
X-Machines for Agent-Based Modeling: FLAME Perspectives
• OR parallelism
• AND parallelism
Agents are basically separate modules of code, heterogeneous in nature,
but sometimes similar in activities. They need to communicate and prevent agents from accessing same resources leading to deadlocks in the
system. Some examples of parallelizing algorithms commonly used are
[166],
Algorithms which inhibit dependency. Firing of one rule deletes or
adds new rules to the database. Output dependency causes new
rules to be added to the database.
Algorithms which enable dependency. New rules satisfy one of the
existing rules.
Divide and conquer. Dividing a problem into sub-problems.
Systolic programming. Parallelism with locality and pipelining based
on overlap of communication, mapping of processors is similar to
problem for parallelism of Logo-like turtle program. Each process
has a position and heading. Activation of programs determines position and heading of new processes.
Lisp small talk. Uses symbolic structures. Lexical scoping and procedural scoping.
Artificial neural networks. Distributed memory, distributed asynchronous control and fault tolerance.
Parallelism in genetic algorithms. Genetic algorithms (GAs) are inherently parallel. The genetic operations of evaluating each strategy to
produce new populations with higher average fitness, can be done in
parallel. However, Holland’s [89] version of genetic algorithms proposed
a need for serial execution of code when using crossover between two
processes.
Haupt and Haupt [82] discussed that using GAs for tackling complicated engineering problems is computational intensive, but can be made
efficient by using the parallel nature of GAs. This results in a speedup
of simulations and reduces communication between population ‘islands’
being evaluated. Islands allows populations to be separated into groups
and then evolved separately.
In the case of agents evolving together, they could all select strategies
from one pool of a strategy population. This would slow simulations
down, as there would be a central agent holding strategies and communicate these to all agents, like using social boards to communicate ideas.
To reduce this complexity, agents can be equipped with their own strategy populations of a fixed number of ten strategies, as shown in Figure
2.7. Each agent then evolves using these, similar to memetic algorithms
solving an optimization problem.
Précédent

- 59/329

Suivant