Simulation methodologies

Discrete event, discrete rate, continuous, agent-based: which simulation method fits?

Every simulation method makes two choices before any model is built: what counts as the system's state, and when the model updates it. Choose to fit the system and the model is fast and faithful; choose badly and you spend the project fighting the method. Here are the main types of simulation, side by side.

Two questions that sort every method

1. Is there a clock? A static simulation has no simulated time. Monte Carlo simulation is the standard example: sample the uncertain inputs, compute the result, repeat. A dynamic simulation carries state forward in time, so what happens at 10:05 depends on what happened at 10:04. Discrete event, continuous, discrete rate, agent-based and system dynamics models are all dynamic.

2. How does the clock move, and what moves with it? Some methods jump from event to event. Others step forward in small increments of time. And the state can be individual units, continuous quantities, rates of flow, autonomous agents or aggregate stocks.

Randomness is a separate axis: any of these methods can be deterministic or stochastic, and a stochastic model is run for several replications.

The same buffer (the material held between two machines) as each dynamic lens sees it:

Discrete event

State is a count of units. It changes by one at every arrival or departure, and each change is an event.

Continuous

State is a quantity that changes continuously. A numerical integrator advances it step by step (the dots).

Discrete rate

State is a level fed by rates. Between events the rates hold, so the level is a straight line. Events fire only where a rate changes (the dots).

Agent-based

State belongs to individual agents, each following its own rules. System behavior emerges from how they interact.

Discrete event simulation

Discrete event simulation (DES) assumes the system's state changes only at distinct instants: a part arrives, a machine starts, a job finishes, a truck leaves. The simulator keeps a list of future events in time order. It takes the next one, updates the state, schedules any events that follow from it, and jumps the clock forward. Nothing is computed between events, because by assumption nothing changes.

The building blocks are entities (parts, orders, customers), resources (machines, operators, docks) and queues. Entities carry attributes and follow routing logic, so DES is excellent whenever unit identity matters.

Most general-purpose commercial simulation packages are discrete event at their core. See which tools are which.

Continuous simulation

Continuous simulation treats state variables (a tank level, a temperature, a concentration, a velocity) as changing continuously over time. The model is usually a set of differential equations, and a numerical integrator advances it in small time steps, either fixed or adaptive.

Discrete rate simulation

Discrete rate simulation (DRS) models material as flow moving at a rate, not as individual units. The key assumption is that rates stay constant between events. Buffer levels therefore change linearly, and the simulator can calculate exactly when a buffer will fill or empty and schedule that moment as an event. At each event (a failure, a repair, a changeover, a buffer reaching full or empty) it recomputes the rates across the network and predicts the next event.

Andrew Siprelle created the technique in 1990, originally under the name bulk flow simulation. A DRS model is built from three primitives: constraints that limit rate, buffers that absorb rate differences, and interrupts that change rate.

Agent-based modeling

Agent-based modeling (ABM) gives each individual (a person, a vehicle, a firm, a robot) its own state and decision rules, and lets agents interact with each other and with their environment. The system's behavior is not written down directly. It emerges from those interactions. The clock can be event-driven or time-stepped.

System dynamics

System dynamics (SD), developed by Jay Forrester at MIT from the late 1950s, models stocks, the flows between them, and the feedback loops and delays that connect them. It is continuous and deliberately aggregate: it describes total inventory, not individual pallets.

Monte Carlo simulation

Monte Carlo simulation repeatedly samples uncertain inputs from probability distributions, pushes each sample through a calculation, and reports the distribution of results. With no clock and no state carried forward, it is quick to build but cannot represent buffers filling or machines starving. See Monte Carlo vs discrete rate simulation.

Comparison table

MethodClockStateNatural fitCommon pitfall
Discrete eventNext eventEntities, resources, queuesDiscrete parts, routing, queueing, logisticsEvent count grows with unit volume
Discrete rateNext rate changeRates and buffer levelsHigh-speed lines, bulk and process flowContinuously varying rates must be stepped
ContinuousTime stepsContinuous variablesPhysics, chemistry, controlStep size vs accuracy; discrete events need detection
Agent-basedEvents or stepsIndividual agentsEmergent behavior of many decision-makersHard-to-validate behavioral rules
System dynamicsTime stepsAggregate stocks and flowsStrategic, long-horizon feedbackHides short-term operational detail
Monte CarloNone (static)Sampled inputsIndependent risks, one-period totalsCannot represent timing, buffers or queues

Combining methods

Real systems rarely fit one lens. Combined discrete-continuous simulation goes back at least to Pritsker's SLAM language in 1979 (see the lineage), and several commercial tools now support more than one method in a single model. A common pattern is item-based logic for orders, trucks or batches alongside rate-based flow for the high-speed or bulk section of the process.

Where discrete rate sits

Discrete rate simulation sits between discrete event and continuous simulation. From discrete event it takes the event-driven clock: no work between events. From continuous simulation it takes the idea that material is a quantity, not a stream of individual objects. Assuming rates stay constant between events is what lets it compute buffer levels exactly without numerical integration, and it is also the method's main limitation. For a detailed comparison, see discrete rate vs discrete event simulation.

A quick rule of thumb. If you describe the system in units per minute and the argument is about stops and buffers, try discrete rate. If it is about which part goes where and in what order, use discrete event. If it is about how a physical variable evolves, use continuous. If it is about how many independent decision-makers behave, use agent-based. If it is about how a policy plays out over years, use system dynamics. If the question is only how uncertain a total is, Monte Carlo may be all you need.

Frequently asked questions

What are the main types of simulation?

The methods most used for operations and engineering questions are discrete event simulation, continuous simulation, discrete rate simulation, agent-based modeling and system dynamics, all of which model a system over time, plus Monte Carlo simulation, which is static: it samples uncertain inputs many times but has no simulated clock. They differ in what they treat as the system's state and in how the model moves from one moment to the next.

What is the difference between discrete event and continuous simulation?

Discrete event simulation assumes the state changes only at distinct instants, such as an arrival, a start or a finish, and jumps the clock from one event to the next. Continuous simulation treats state variables such as a level, a temperature or a pressure as changing continuously, usually described by differential equations and advanced with a numerical integrator in small time steps.

Is discrete rate simulation a type of discrete event simulation?

It shares discrete event simulation's event-driven clock, but not its unit of analysis. Discrete event simulation typically makes each unit an entity. Discrete rate simulation models material as flow at a rate that stays constant between events, so buffer levels change linearly and the time a buffer will fill or empty can be calculated and scheduled. An event is a change in rate, not the passage of a unit. It sits between discrete event and continuous simulation.

When should I use agent-based simulation instead of discrete event simulation?

Use agent-based modeling when the behavior you care about emerges from many individuals that each make their own decisions and interact, such as buyers in a market, people moving through a space, or a fleet of vehicles choosing routes. Use discrete event simulation when the system is better described as a process: units follow defined steps, compete for resources and wait in queues.

Can one simulation model combine several methods?

Yes. Combined discrete-continuous simulation dates back at least to Pritsker's SLAM language in 1979, and several commercial tools today support more than one method in the same model. A common pattern is item-based logic for orders, trucks or batches alongside rate-based flow for the high-speed or bulk part of the process.

Read more

Discrete rate vs discrete event simulation — including which tools use which method.
Monte Carlo vs discrete rate simulation — when a static spreadsheet model is enough, and when you need a clock.
Digital twin vs simulation — what a validated model is, and what a live-connected twin adds.
The three primitives — constraints, buffers and interrupts.
The history of discrete rate simulation — from bulk flow simulation in 1990.

← Back to DiscreteRate