Skip to main content

Module traffic

Module traffic 

Source
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 a Simulation each 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§

PoissonSource
Poisson-arrival traffic generator with time-varying patterns.
SpawnRequest
A request to spawn a single rider, produced by a TrafficSource.
TrafficSchedule
A time-varying traffic schedule that selects patterns based on tick count.

Enums§

TrafficPattern
Traffic pattern for generating realistic rider origin/destination distributions.

Traits§

TrafficSource
Trait for external traffic generators.