Skip to main content

Module destination

Module destination 

Source
Expand description

Hall-call destination dispatch algorithm. Hall-call destination dispatch (“DCS”).

Destination dispatch assigns each rider to a specific car at hall-call time (when their destination is first known) and the assignment is sticky — it never changes for the rider’s lifetime, and no other car will pick them up. The controller minimizes each rider’s own travel time, using a simple cost model:

J(C) = pickup_time(C, origin)
     + ride_time(origin, dest)
     + stop_penalty * new_stops_added(C, origin, dest)

Assignments are recorded as an AssignedCar extension component on the rider; the loading filter in [crate::systems::loading] consults this to enforce the stickiness invariant.

This is a sim — not a faithful reproduction of any vendor’s controller. Each assigned car’s DestinationQueue is rebuilt every dispatch tick from the set of live sticky commitments (waiting riders contribute origin + dest; riding riders contribute dest) and arranged into a direction-aware two-run (plus fallback third-run) monotone sequence so the car visits stops in sweep order rather than in the order assignments arrived.

Structs§

AssignedCar
Sticky rider → car assignment produced by DestinationDispatch.
DestinationDispatch
Hall-call destination dispatch (DCS).

Constants§

ASSIGNED_CAR_KEY
Typed extension key for AssignedCar storage.