Environmental Engineering Reference
In-Depth Information
coordination of the different entities. With many concurrently active units, this
is an important task. A coherent solution is required - and crucial for model
execution.
Individual-based programmesusuallyemploya discrete event scheduling
mechanism: Any calculation result is accessible at a specific point in simulation
time. It is not reasonable to attempt a simulation of a continuous approximation,
in particular, if many qualitative decisions are to be taken (an organism is alive or
not, etc.). In OOP simulations, very large numbers of objects can be active at the
same simulation time. In principle, real parallel processing is physically not possi-
ble if the number of processors is smaller than the number of objects. Therefore,
an explicit handling of execution order is necessary. This task is a general one
and does not need to be newly developed for each model. It can be generally
solved on the level of the simulation environment and is employed for the specific
scheduling requirements.
Often, programme environments have a central instance which activates the
updating of all processes. This is acceptable if a fixed scheduling scheme can be
described in advance and updating is quite regular (e.g. as in the case of cellular
automata). However, we advocate a more flexible solution in which updating
requests are controlled by the objects themselves and allow changes depending
on the objects internal state. The objects already contain the code to calculate which
activities are performed under the specific conditions. As one additional task it is
possible to let them calculate a time interval of how long it would take in simulation
time to have the particular activities done.
This time interval is returned to a central time management and can be used to
establish a so-called “event queue”, which shifts programme control always to the
first one in the queue and eliminates it after execution. Thus, the programme level
of event control gets the function of organizing the updating process that originates
from the requirements of the objects. SIMULA (Dahl et al. 1968), the first object-
oriented programming language, provides a very efficient solution in form of a
system class SIMULATION. The event organization is handled automatically in
the background, while each object sends a message how long it is put on “HOLD”
(being busy with the current activity). This event scheduling concept was revolu-
tionary, and was the blueprint for many other programming languages, which at this
time had a different concept of event handling, as the programmer explicitly had to
take care of it. The different frameworks for IBM development provide specific
inherent solutions for scheduling of active entities.
12.3 Application Example I: An Individual-Based
Predator-Prey Model
The structure of an individual-based model will now be illustrated in detail with
the Individual-based Predator-Prey Model (IPP). This model was developed
Search WWH ::




Custom Search