written 8.5 years ago by |
Event scheduling simulation is modelling over time of a system whose state changes at discrete points in time.
A discrete event simulation proceeds by producing a sequence of system snapshots that represent the evolution of the system through time. A given snapshot at a given time includes system state at time t and future event list (FEL).
The FEL contains all previously scheduled future events and their associated event times. Events in FEL are arranged according to chronological order- that is, the event times must satisfy t<=$t_1$<=$t_2$<=$t_3$<=…$t_n$.
Time t is the value of CLOCK, the current value of simulated time. The event associated with time $t_1$ is called imminent event i.e $t_1$ is the next event that will occur.
After the system snapshot at simulation time CLOCK=t has been updated , the CLOCK is advanced to simulation time CLOCK=$t_1$. The sequence of actions that a simulator must perform to advance the clock and build a new system snapshot is called the event-scheduling/ time –advance algorithm, whose steps are listed in figure below.
Event Scheduling/ time advance algorithm
Step 1. Remove the event notice for the imminent event (event 3, time$t_1$) from FEL.
Step 2. Advance CLOCK to imminent event time (i.e. advance CLOCK from t to$t_1$)
Step 3. Execute imminent event: update system state, change entity attributes, and set membership as needed.
Step 4. Generate future events (if necessary) and place their event notice on FEL, ranked by event time. (Example: Event 4 to occur at time $t^{+}$, where $t_2$<$t^{+} $<$t_3$ )
Step 5. Update cumulative statistics and counters.