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.

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.

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 that can be called incremental time progression (with fixed or dynamically adjusted increments), 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.

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, Discrete Event Simulation 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, activities and agents, as in Object Event Simulation (OES).

Event-Based Simulation Models

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

Inventory-Management-1
An inventory management system for a single product shop with a continuous replenishment policy based on a reorder point.
Service-Desk-1
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.
Service-Desk-2
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.
Work-Station-1
A single workstation model with utilization and buffer length statistics, using only two event types: part arrivals and departures.
Work-Station-2
A single workstation model with utilization and buffer length statistics, using three event types: part arrivals, processing starts and processing ends.
Lemonade-Stand-1
A Lemonade Stand as a manufacturing company that performs daily production based on demand forecasting.
Lemonade-Stand-2
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.
Lengnick-Baseline-Economy-1
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

Service-Desk-3
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.
Consecutive-Services-1
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.
Drive-Thru-1
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.

Processing Network Models

The simulation language General Purpose Simulation System (GPSS) proposed by Gordon (1961) has pioneered the simulation of Processing Networks by introducing the simulation concepts of

  1. entities (called "transactions" in GPSS) for modeling objects that arrive at, and "move through", the system;
  2. queues where entities may have to wait for being served/processed;
  3. seizing and releasing resources;
  4. delays that represent the duration of activities.

In addition to its PN simulation concepts, GPSS has used a signal concept for modeling communication and perception. See also GPSS Introduction.

ServiceDesk-4
A service desk is modeled as a processing node of a processing network that has an entry node and an exit node for arriving and departing customers.
ConsecutiveServices-2
The customers of the Department of Motor Vehicles first have to queue up at the reception for their request being recorded. Then they have to wait for a clerk who will handle their case. Both the reception desk and the case handling desk are modeled as processing nodes (with input queues) within a processing network that has an entry node and an exit node for arriving and departing customers.
FourConsecutiveMachines-3
A manufacturing company uses a linear assembly line with 4 consecutive machines. The simulation scenario defines an entry node for incoming orders, 4 consecutive processing nodes representing the four machines M1-M4, and an exit node.

SimScript GPSS Models

The following example models are implemented with SimScript, a TypeScript-based open-source front-end simulation framework for making GPSS-style models (with support for 2D and 3D animations).

Barbershop
A model of a barber shop with one barber and one barber’s chair. Customers arrive on average every 18 minutes, with the arrival time varying between 12 and 24 minutes.
Crosswalk Simulation
A model of a crosswalk controlled by a traffic light with a fixed red/yellow/green cycle (20/10/30 seconds) for pedestrians. The flow of entities through the model is controlled by "signals", implemented by the waitSignal and sendSignal methods.
Emergency Services in a Road Network Space
Emergency services are requested periodically at random points on a road network. When an emergency vehicle is assigned to a request, it must travel from its current location to the request location.

Agent-Based Models

Four-Stage-Supply-Chain-1 (Beer Game)
A model of a four stage supply chain consisting of the four agents retailer, wholesaler, distributor and factory. The model also allows for larger supply chains having a top supply chain node (like the factory), any number of intermediate supply chain nodes (like the wholesaler and distributor), and a bottom supply chain node (like the retailer). See also Beer Game Wikipedia article.
Signaling-Game-1
A simulation of a signaling reinforcement learning (RL) process, where two agents learn to communicate with each other via signals.