Discrete Event Simulation

The term Discrete Event Simulation (DES) has been established as an umbrella term subsuming various kinds of computer simulation approaches, all based on the general idea of making a computational model of a real-world system conceived as a discrete dynamic system by

  1. representing its state with the help of (discrete and continuous) state variables, and
  2. modeling its dynamics by modeling the events that are responsible for its discrete state changes.

In the standard time progression method of DES, called next-event time progression, there are no state changes between consecutive events; thus the simulation time can directly jump to the occurrence time of the next event. In an alternative approach, called fixed-increment time progression, time is broken up into small time slices and the system state is updated according to the set of events/activities happening in the time slice.

There is, however, no generally accepted definition of the term "Discrete Event Simulation". Rather, there are a number of different DES formalisms (like Petri Nets, State Charts, Event Graphs or DEVS) and there are different DES tools and frameworks.

Many DES tools (like Arena, Simio and AnyLogic) are based on the Processing Network (PN) paradigm where processing objects enter a system (at an entry node), and are then subject to a number of processing actvities performed at corresponding processing nodes using certain resources, before they leave the system (at an exit node).

In some textbooks and tutorials, DES is confused with the PN paradigm. However, the PN paradigm is not a general DES approach, because it is limited to problems that can be modeled as processing networks such as production lines or service provision networks. But many other discrete event systems, such as inventory systems, business enterprises, consumer markets or socio-technical systems like elevators or road traffic, do not correspond to processing networks.

Event-Based Simulation, which has been pioneered by SIMSCRIPT and formally defined by the Event Graphs of Schruben (1983), is the foundation of DES. Event Graphs and Event-Based Simulation can be extended by adding objects and activities, as proposed by Object Event Simulation (OES).

Examples of Discrete Event Simulation Models with Next-Event Time Progression

The following example models are based on Object Event Simulation (OES), which is a general DES paradigm.

Event-Based Models

An inventory management system for a single product shop with a continuous replenishment policy based on a reorder point.
A queueing system model (one service and one queue) with two statistics: maximum queue length and service utilization. The model includes one object type: ServiceDesk, and two event types: CustomerArrival and CustomerDeparture, abstracting away from individual customers and from the composition of the queue, which is only represented in terms of its length.
A queueing system model (one service and one queue) with one statistic: the average length of time a customer spends in the system from arrival to departure. For recording their waiting times, individual customers need to be represented as entities/objects. The model includes two object types: ServiceDesk and Customer, and two event types: CustomerArrival and CustomerDeparture.
A single workstation model with utilization and buffer length statistics, using only two event types: part arrivals and departures.
A single workstation model with utilization and buffer length statistics, using three event types: part arrivals, processing starts and processing ends.
A Lemonade Stand as a manufacturing company that performs daily production based on demand forecasting.
A Lemonade Stand as a manufacturing company in a monoploy market dominated by weather conditions. This simulation example comes with an observation user interface (UI) that provides a visualization of simulation runs and with a user interaction UI that allows to play with the simulation.
The MIT Beer Game
(coming soon)
Lengnick's Baseline Economy consists of two types of economic actors only: households playing the roles of employees and consumers, and firms playing the roles of employers and producers. All firms produce and sell the same abstract consumption good that is bought (and consumed) by households. The numbers of households and firms are fixed (there is neither population growth nor shrinkage). Households do not die by starvation. When their income shrinks, they adapt by cutting their consumption. Firms do not get bankrupt. When their liquidity shrinks, they adapt by cutting wages. Consumption goods are produced and bought daily while labor is bought monthly. Households buy consumption goods only from a limited number of firms, their preferred suppliers, which they update continuously. Consumption expenditure increases with personal wealth, but at a decaying rate. Households are employed by at most one firm, their employer. They continuously search for an employer that pays a higher wage.

Activity-Based Models

A queueing system model that models a service as an activity with the service desk as its resource, such that the service desk utilization statistics is computed automatically. The model includes one object type: ServiceDesk, one event type: CustomerArrival and one activity type: PerformService.
An activity-based model of two consecutive service desks with waiting lines. Both types of services are modeled as activity types, such that utilization statistics are computed automatically. The model includes one object type: ServiceDesk, one event type: CustomerArrival, and two activity types: Reception and CaseHandling.
A model of a drive through restaurant based on Introduction to Simulation by R.G. Ingalls, a tutorial given at the 2008 Winter Simulation Conference. The drive thru is modeled as a system with three order processing activities performed at service nodes with queues: the order taking at the menu board, the order preparation at the kitchen and the order pickup at the pickup window. The model includes four object types: MenuBoard, Kitchen, PickupWindow and Customer, one event type: CustomerArrival, and three activity types: OrderTaking, OrderPreparation and OrderPickup.