Train time tables are normally constructed so as to avoid track conflicts, i.e. two trains needing the same track segment at the same time. But when trains are delayed, track conflicts often arise, especially on single-track lines. Train controllers then face the problem of deciding which train goes first.
Today, this decision is usually made by relying on heuristic rules: Certain trains have higher priority than others and go first; delayed trains get lower priority and go last. However, these rules do not consider the larger picture and may fail to give the best long term solution.
Train Dispatcher is a software system that aids train controllers in making the right decisions. Given the time table and actual train positions, it considers all potential track conflicts several hours into the future and finds the solution that minimizes the objective. The main objective is to minimize delays with respect to the time table.
Train Dispacter handles:
- Single-track and double-track lines
- Passenger trains and freight trains
- Passing restrictions due to the number of tracks and platforms in stations
- Passing restrictions due to train length
- User overrides on train length, arrival/departure times, specific conflict decisions and train cancellations
The software system contains:
- A solver core, which continuously solves the current situation
- An interface to a realtime train information system, which continuously updates the situation to solve
- A client API based on Windows Communication Foundation
- A Windows Forms based clientA Web client, based on IIS, which allows train controllers to interact with the solver using a web browser