In complex logistic systems, such as transportation systems, dealing with personnel scheduling is a non-trivial task. Duties have to be created and assigned to workers in a way to optimize a certain objective function. In this paper, in particular, we consider the case of scheduling train drivers on a railway subnetwork. Train driver scheduling involves the construction of feasible duties from a set of trips to be carried out by a number of train drivers. Each duty consists of a sequence of trips to be carried out by a single train driver on a single day. The duties should be such that: each trip is covered by at least one duty, each duty satisfies feasibility constraints, additional constraints involving the complete schedule are satisfied, one or several objectives are met. In this paper we focus on minimizing the number of duties and on maximizing the robustness of the obtained schedule for outside disruptions. We present an implicit column generation solution approach. We describe a heuristic procedure to find an initial feasible solution together with a heuristic branch-and-price algorithm based on a dynamic programming algorithm for the pricing-out of columns. We tested our approach on the timetable of the Intercity train series 500, 700, 1600 and 1700 of NS Reizigers, the largest Dutch operator of passengers trains.
Read full abstract