Rohita Singh gives us some additional contrasts between SD and discrete
event simulation. I have one small clarification, though on her point 3,
which deals with discrete vs. continuous.
The contrast here is not between discrete vs. continuous time, but rather
between whether events happen at a single point in time or are smeared over
a period of time. An event in a discrete event model can happen at any point
in time. However, when it happens, it happens all at once, in an instant.
In traditional SD modeling events can also happen at any point in time, but
when they happen they tend to happen "gradually" over a period of time.
The implementation of the two techniques (SD vs. DEM) usually involves
different implementation of the "clock" that keeps track of time. In system
dynamics simulations, the clock is really just a level with a single inflow
of time. The equation in DYNAMO would be
Time.k = Time.j + dt
Discrete event-type simulations **could** use a system-dynamics-like clock,
but usually dont. Instead, the discrete event clock usually makes use of
the discrete event simulations "event queue" which is simply an ordered
list of upcoming events, each of which has a time-stamp for when it is
slated to occur. The time-gap between any two events is not constant. For
example, the events in a queue could have time stamps: 2.3456, 7.28106,
7.6987, 27.9010234. The queue is ordered from soonest to latest. The
program takes the first event off the queue, sets time equal to that events
time-stamp, and executes the event. Then the program takes the next event
off the queue, sets time equal to the enw events time-stamp, and executes
that event. ETC. The events can have ANY time stamp. Given this
representation you could say that time proceeds in discrete, though
unequal, jumps. But really the idea is that time is continuous, and at any
given instant either an event happens happens or nothing happens. Discrete
event implementations COULD use the SD type clock, but instead usually try
for increased efficiency (and precision) by skipping over periods when
nothing happens.
Jim
From: "Jim Hines" <
jhines@MIT.EDU>