Expand description
Traffic generation (arrival patterns). Traffic generation for rider arrivals.
This module provides:
TrafficPattern— origin/destination distribution presets (up-peak, down-peak, etc.).TrafficSchedule— time-varying pattern selection across a simulated day.TrafficSource— trait for external traffic generators that feed riders into aSimulationeach tick.PoissonSource— Poisson-arrival traffic generator using schedules and spawn config.SpawnRequest— a single rider spawn instruction returned by a traffic source.
§Design
Traffic generation is external to the simulation loop. A
TrafficSource produces
SpawnRequests each tick; the consumer feeds them into
Simulation::spawn_rider
(or the RiderBuilder for richer configuration).
use elevator_core::prelude::*;
use elevator_core::config::SimConfig;
use elevator_core::traffic::{PoissonSource, TrafficSource};
let mut sim = SimulationBuilder::from_config(config.clone()).build()?;
let mut source = PoissonSource::from_config(config);
for _ in 0..10_000 {
let tick = sim.current_tick();
for req in source.generate(tick) {
let _ = sim.spawn_rider(req.origin, req.destination, req.weight);
}
sim.step();
}Structs§
- Poisson
Source - Poisson-arrival traffic generator with time-varying patterns.
- Spawn
Request - A request to spawn a single rider, produced by a
TrafficSource. - Traffic
Schedule - A time-varying traffic schedule that selects patterns based on tick count.
Enums§
- Traffic
Pattern - Traffic pattern for generating realistic rider origin/destination distributions.
Traits§
- Traffic
Source - Trait for external traffic generators.