Page 40 -
P. 40
3 Types of Simulation 33
3.5 Implementation
We will now discuss some issues regarding the implementation (programming and
running) of a simulator.
A simulator can be time-driven, where the simulated time is advanced in constant
time steps, or event-driven, where the time is advanced based on the next event. In an
event-driven simulation, a simulation engine drives the simulation by continuously
taking the first event out of a time-ordered event list and then simulating the effects
on the system state caused by this event. Since time segments where no event takes
place are not regarded, event-driven simulation is often more efficient than time-
driven simulation. On the other hand, since time is incremented at a constant pace
during a simulation in time-driven mode, this is typically a better option if the
simulation involves user participation.
There are a number of platforms or toolkits for agent-based simulation available,
such as Swarm, NetLogo, and RePast (see Railsback et al. (2006) for a critical
review of these and some other platforms). These are freely available, simplify
the programming, and can be of great help, in particular for modellers that are not
skilled programmers. However, they all impose some limitations on what can be
modelled, which may or may not be crucial for the application at hand. An approach
without such limitation is of course to programme the simulator from scratch using
ordinary programming languages like Java or C, which is more difficult and time-
consuming. In some cases, e.g. if you want to distribute the simulation on a number
of computers, it may be appropriate to use an agent platform, such as JADE. In this
case, the individuals may be implemented as actual software agents. In particular,
when the number of individuals simulated is large and/or the models of individuals
are complex, it may be too time-consuming to run the simulation on a single
computer. Instead, one may distribute the computational load on several computers
in order to get reasonable running times. It should be mentioned that there are some
efforts on making agent-based simulation platforms run on large-scale computer
networks such as Grids (see, e.g. the work by Chen et al. (2008)).
It is worth noting that the resulting software is an approximation of a simulation
model, which in turn is an approximation of the actual system. Thus, there
are several steps of verification and validation that need to be addressed in the
development of a simulation model, as discussed in Chap. 9 (David et al. 2017).
3.6 Conclusion
As we have seen, there are many different types of individual-based social simula-
tion. In the table below, we provide a summary.