To main content

Train Dispatcher

Train dispatcher provides decision support for train controllers. In situations where a train is delayed, other trains may also be delayed as a consequence. The software calculates the a plan that minimizes the total delay across all trains.

Contact person


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 server application exposing an HTTP-based client API
  • A Windows Forms based client
  • A Web client, based on IIS, which allows train controllers to interact with the solver using a web browser