Discrete event simulation
The structure of OpenSIMPLY is like a stack of layers where the lowest one provides discrete event simulation approach (DES). The principles of discrete event simulation can be represented by these concepts:
By "process" in DES understood a sequence of actions that fully or partially describe the behavior of the object under study. As an example a traffic lights will be used as an object. Action of traffic lights in this case is light color switching: from red to yellow, from yellow to green, and so on. Color switchings are described in a process. A process can be activated or suspended. For example traffic lights process has to suspended after green light switching to activate a process for cars simulation. Active process is suspended when another process is activated. Only one process can be active in the certain time. Therefore for DES somehow it has to be known which time which process has to be activated.
An event concept is a cornerstone of DES: not every time quantum is simulated, but only a certain time points when a process has to be activated or suspended. For traffic lights example it has to simulate only a time points of light color switching. A time in between the switching is of no interest. A time point presents in simulation only when the state of object is changing. Such state changing is understood in DES as an event. If object state is stable then in term of DES no event happens. If there is no event, no simulation actions for this object should be performed. This important and reasonable concept in DES saves a lot of simulation runtime.
So, as DES operates with events the information about should be kept somewhere and ordered. This job is carried out by a special list called "schedule". It keeps items with events information: time points and corresponding processes. Such items are called "event notices". They are ordered in schedule accordingly to event time points. The first item contains the earliest event, the last one contains the latest. The inserting of event notice on a proper position in schedule is called "event planning".
It is as follows: if schedule is not empty, a process of first event notice is activated. If a process has a time pause in behavior description, a process is suspended on pause point. A suspension interrupts a process execution, and plans next active phase of process. For event planning current event notice is removed from schedule, and a new one containing pause ending time is inserted into schedule on certain position. After that a simulation is going on: a process of first event notice is activated ...
The OpenSIMPLY tutorial will help you quickly get started. The tutorial contains practical examples with detailed descriptions.
The project documentation is available in different formats and compatible with any IDE.
Discrete event simulation software
OpenSIMPLY is free and open source. Free download
. Free use. Try it.