I have occasionally heard the terms "process-based DES" and "event-based DES".

For example, from SimPy:

SimPy is a process-based discrete-event simulation framework based on standard Python.


The three-phase approach is a refinement of the event-based approach in which simultaneous events are ordered so as to make the most efficient use of computer resources.

Ciw also mentions something that I would infer to be potentially event-based:

Ciw uses the event scheduling approach [SW14], similar to the three-phase approach. In the event scheduling approach, three types of events take place: A Events move the clock forward, B Events are prescheduled events, and C Events are events that arise because a B Event has happened.

The citation above, [SW14], is

Robinson. Simulation: the practice of model development and use. Palgrave Macmillan, 2014.

I got my hands on that book. I've implemented the three-phase approach described there. But I am still not 100% confident in my understanding of the distinction between "event-based" vs "process-based" DES.

I have also implemented some simulations using SimPy, but again not sure why exactly it is "process-based". It also keeps a min heap of events as did the three-phase approach implementation.

Can the distinction be made explicit (and formal, if possible)?



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.