Demand Generator
The Demand Generator is a component responsible for creating travel intentions in the simulation.
It produces DEMAND events, which act as the starting point of user behavior.
Events
| Consumed Events | Emitted Events |
|---|---|
| (none) | DEMAND |
Role of the Demand Generator
The Demand Generator models when and how often users intend to travel.
Its primary responsibility is to generate future travel intentions and inject them into the simulation as DEMAND events.
Once emitted, a DEMAND event is delivered to the User Model,
which interprets the intention, evaluates candidate routes, and initiates reservation-related actions.
Demand Definition
A DEMAND represents a user’s future intention to travel from an origin (org) to a destination (dst).
It expresses what the user wants to do independently of how the trip will be executed (services, vehicles, routing);
those are handled downstream by the User Model.
A DEMAND must represent a future trip relative to its generation time;
if reservation is required it must be generated before dept,
and for immediate travel the generation time may equal dept to mean “depart as soon as possible.”
Demand Generation Strategies
Demands are typically generated by a dedicated Demand Generator component, based on the simulation’s modeling objectives.
Common strategies include:
- Periodic generation: For example, a commuter user may generate a
DEMANDevent every day. - Stochastic generation:
DEMANDevents may be generated probabilistically to reflect population-level travel patterns. - Scenario-driven generation:
DEMANDevents may be injected at predefined times to simulate events, disruptions, or peak hours.
Design Rationale
Separating Demand generation from decision-making and execution keeps the simulation modular:
demand models can be changed independently of routing and service logic,
and the event flow cleanly distinguishes intent creation (DEMAND) from intent realization by downstream components.