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_by_stop_id (or the RiderBuilder for richer configuration).

use elevator_core::prelude::*;
use elevator_core::traffic::{PoissonSource, SpawnRequest};

let config: SimConfig = /* load from RON */;
let mut sim = SimulationBuilder::from_config(&config).build().unwrap();
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_by_stop_id(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.