Objective:
To design a Simulation Engine using Event Scheduling Approach and build applications.
Description:
Based on the event scheduling approach explained below, design
and implement a Simulation Engine.
The assignment is divided into two parts as follows:
The Simulation Engine will be general purpose and should work for any relevant simulation problem.
Write three applications using the engine's API. Applications are given in book:
Able-Baker Call Center: Example 3.1: Page 69
Grocery Store Checkout Counter: Example 3.3: Page 77
Dump Trucks for Hauling Coal: Example 3.5: Page 81
Program should be well commented and all three applications should be in different files.
Event Scheduling:
Discrete-event simulations model systems that discretely change over time by making transitions from state-to-state when events occurs. The most obvious way to write a simulation engine is to write methods to implement what each type of event does and to schedule the execution of these event by placing them on a time-ordered queue. Pull the imminent event off the queue, advance simulated time to the event time and execute the event which may modify the state of the system and/or schedule future events.
The event Package:
Create a package with the following three classes.
This class needs a future event list which is maintained using java.util.PriorityQueue.
You MUST use the jsim.variate, jsim.statistic and jsim.util packages. For this assignment you may NOT use any other jsim package.