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.
- Fits: job shops and discrete-part assembly, warehousing and material handling, logistics, service and queueing systems, anywhere priorities, routings or individual attributes drive the result.
- Watch out for: event count grows with the number of units. On lines running hundreds or thousands of units a minute, modelers often treat a case or a pallet as one entity to keep run times reasonable, which trades away some of the short-stop detail.
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.
- Fits: physical and chemical process dynamics, control-system design, thermal and fluid behavior, anywhere the physics between events is the question.
- Watch out for: the step size trades accuracy against run time. Sudden discrete changes such as a valve closing or a machine failing need explicit event detection. Individual units have no natural home in the model.
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.
- Fits: high-speed filling, bottling, packaging and converting lines, and bulk or process flow through tanks, pipelines and accumulating conveyors. It suits reliability-driven throughput questions, where blocking, starving and buffer sizing decide the answer.
- Watch out for: a rate that truly varies continuously, such as a tank draining under gravity or a reaction slowing down, has to be represented as a series of steps, or handed to a continuous model. Inside a flow region units have no identity. Where identity matters, hybrid models convert items to flow and back.
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.
- Fits: markets and product adoption, crowds and pedestrian movement, fleets that make their own decisions, organizational behavior.
- Watch out for: behavioral rules have many parameters that are hard to measure, so validation takes real effort. Run time grows with the number of agents and interactions.
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.
- Fits: strategic, long-horizon questions such as capacity expansion over years, policy effects, and aggregate supply-chain oscillation.
- Watch out for: aggregation hides short-term operational behavior. It will not tell you what a four-minute filler stop does to the case packer.
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
| Method | Clock | State | Natural fit | Common pitfall |
|---|---|---|---|---|
| Discrete event | Next event | Entities, resources, queues | Discrete parts, routing, queueing, logistics | Event count grows with unit volume |
| Discrete rate | Next rate change | Rates and buffer levels | High-speed lines, bulk and process flow | Continuously varying rates must be stepped |
| Continuous | Time steps | Continuous variables | Physics, chemistry, control | Step size vs accuracy; discrete events need detection |
| Agent-based | Events or steps | Individual agents | Emergent behavior of many decision-makers | Hard-to-validate behavioral rules |
| System dynamics | Time steps | Aggregate stocks and flows | Strategic, long-horizon feedback | Hides short-term operational detail |
| Monte Carlo | None (static) | Sampled inputs | Independent risks, one-period totals | Cannot 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.