Due to unforeseen problems, disruptions occur in passenger railway operations. Proper real-time crew management is needed to prevent disruptions to spread over space and time. Netherlands Railways has algorithmic support from a solver to obtain good crew rescheduling solutions during big disruptions. However, small disruptions are still manually solved by human dispatchers who have limited solving capacity. In this paper the rescheduling for crews during small disruptions is modeled as inserting an uncovered task in a feasible set of duties. The problem is solved as an iterative-deepening depth-first search in a tree. To reduce computation time, we use several ideas to prune unpromising parts of the tree. We have tested the heuristic on about 5000 test instances obtained from real-world data. These tests show that the heuristic delivers good and desirable rescheduling solutions within at most 2 s.
- crew rescheduling
- depth-first iterative-deepening
- railway optimization
- real-time scheduling