CS 452/652 Winter 2022 - Lecture 27
March 16, 2022
prev next
Train Control (cont'd)
Though Experiment: Perfect Train Control?
- need exact problem specification, example:
- given a topology, a set of trains, and a list of destinations for each train
→ determine optimal schedule
- but: what is optimal?
- time to last train at last destination?
- average trip duration?
- many other criteria possible
- also: assume error-free operation
- with exact problem specification
- formulate and solve optimization problem - computational complexity
- centralized computation difficult for many real world control problems
- or: design ad-hoc solution accommodate uncertainty (our approach)
- our goal is not overall perfection (which is not even properly specified), but:
- build interesting multi-task, real-time application
- model decentralized aspects of real-world system
Design Approach
- reservation server
- continuous reservations (no leapfrogging)
- consider directionality of reservation
- reservation interface: train, segment → accepted
- no time information
- travel server
- travel plan with expected timing
- entire plan, disregard conflicts
- query interface: location, time → train(s)
- route server
- determine path & feasibility (e.g. short move?)
- compute only for slow/stopped trains? offload with lower priority
- sensor server
- receive sensor reports via notifier
- query travel server
- send notification to train
- train task
- source/dest → obtain route from route server
- drive train
- reserve track segments
- reserve beyond error branches
- reservation denied: slow/stop
- reservation invariant: reservation distance > stop distance
- release track segments
- periodic or sensor-based updates
- leave segment → release segment
- pass turnout → release error path
- stop → release rest of path
- set train speed
- switch reserved turnouts
- handle sensor, timeout notifications
- refinement: dynamic rerouting for conflict avoidance
- routing - reservations - timing
- conflict resolution:
- wait until deadlock, then back off
- move/avoid conflict zone by changing speeds
- find alternative paths
- computational overhead with more trains?
- failure model
- sensor: spurious vs. silence
- turnout: single-direction vs. derailment
- can't fix everything...