2.3 Train Driver Scheduling with WROs
3.1.5 Column Generation
Column generation (CG) is a very popular technique in the area of linear program- ming, and it targets problems where the number of variables (‘columns’) is too big to be considered explicitly, while the number of basic variables is expected to be very small in comparison. L¨ubbecke and Desroisiers [62] describe the approach comprehensively and give an up-to-date survey of applications.
Column generation works by decomposing the problem into a (restricted) master problem, which is the original problem restricted to a subset of the original variables, and a pricing subproblem where new variables with negative reduced cost are found to be added to the master problem. Both problems are solved iteratively in a loop, the master problem finding the optimal solution for the current (sub)set of variables, the pricing subproblem selecting new variables to add to the master problems based on updated reduced costs. This loop is in theory finished when there are no new variables with reduced cost to add to the master problem.
When solving the driver scheduling problem using the set covering formulation, it is easy to see that the vast majority of the xj variables will be zero (i.e. non-basic) in all but extremely inefficient solutions. For example, a typical instance of the problem may result in 100,000 valid shifts, but its optimal solution contain 100 shifts in it
(hence 99.9% of the xj variables will be zero). Therefore, driver scheduling would
fit the conditions under which CG can be useful. The master problem is still the set covering problem described in Section 3.1.2, but the set C of shifts available to the set covering phase will change (grow) over time, and it is the task of the pricing subproblem to select new (negative reduced-cost) shifts to add to C.
Column generation is actively applied to the driving scheduling problem both in academic research and in commercial scheduling systems (such as TrainTRACS and CrewOpt). We briefly discuss some of these applications.
TRACS II In her PhD thesis [30], Fores investigates the use of CG techniques for the bus driver scheduling problem, using the bus driver scheduling system TRACS II as a starting point and benchmark. Her work aims principally at allowing systems like TRACS II to be able to (implicitly) consider bigger sets of candidate shifts. Her proposal is different from most current CG approaches in that, instead of resorting to CG in the context of solving an ILP, she uses CG during the construction of the optimal solution for the LP relaxation of the problem. The system runs a loop where it alternates between (re-)optimization and CG stages, until the relaxed LP solution is optimal over the original set of candidate shifts. Fores notes that some of the constraints handled in TRACS II mean that the usual network formulations for the pricing problem in set covering formulations cannot be applied, and the pricing problem would in some instances be NP-hard in itself. Hence, she extends her CG proposal by adding a number of heuristics to accelerate and bound execution times.
This CG strategy was later incorporated into TRACS II [32]. This system is the predecessor to TrainTRACS, the train driver scheduling system we will use or interact with throughout this thesis. TrainTRACS has inherited the CG phase from TRACS II virtually unmodified.
Integrated Vehicle and Crew Scheduling Within the area of integrated vehi- cle and crew scheduling, most of the research has concentrated in applying column- generation approaches to solve it. After the foundational paper by Desaulniers et al. [20] several authors (often working together) have made sustained progress in the problem sizes and the complexity of the constraints handled, particularly in the crew scheduling subproblem, which is the most complex part of the integration. Haase et al. [39] and Stojkovic et al. [74] introduce models for urban mass transit systems and airlines, respectively. Freling et al. [33] and Huisman [45] solve integrated bus scheduling problems. Recent PhD work by Weider [79] claims to improve solution quality and execution times in a number of instances solved by Huisman in [45], while also applying his algorithms on real-life instances of a German bus operator.
Embedding Heuristics within the Column Generation Framework
One of the main problems faced by column generation approaches for crew scheduling is that the column pricing problem, which is usually modelled as a constrained shortest path problem, is frequently NP-hard for models containing anything more than the simplest constraints. This means that researchers usually have to resort to limiting their models severely; for example, in his thesis [45] Huisman only considers crew constraints that are defined on an individual shift – rules which e.g. require that a (maximum/minimum) number (percentage) of the duties has certain properties cannot be taken into account. Weider claims to allow for more general constraints than Huisman, but his work is still restricted to bus operations, which are usually regarded as simpler than railways.
Common approaches to tackle NP-hard pricing subproblems include heuristics for the shortest path problem, and also adding many columns per pricing phase. An interesting approach is taken by Bornd¨orfer et al. [8], who resort to a method they call ‘callback’, where they “ignore the rule[s] in their pricing model, construct
a pairing, and send it to a general rule verification oracle that either accepts or rejects the pairing”. This is interesting in that the use of such a mechanism seems
to break with all the mathematical foundation of CG and its roots in mathematical programming. Moreover, we will see that we resort to a similar technique when generating neighbouring solutions in our local search proposals, where we rely on an external oracle (TrainTRACS’s CHECKER) to validate the new solutions generated during the search.
Criticism and Ongoing Work
Column generation for driver scheduling is a very active area of research. How- ever, although one company (GIRO) reports to use CG in their widely-used CrewOpt scheduling system [17], to our knowledge there are no peer-reviewed reports on ap- plications of CG for the bus or train driver scheduling problem that can fully handle the size and complexity of real-life instances within the pricing problem.
As an example of current research on this area, recent work by Steinzen et al. [73] proposes a time-space network representation for the shift generation subproblem,
which is claimed to result in reduced network sizes. However, no results are reported on the integration of this representation into the main driver scheduling problem, neither in terms of schedule sizes nor costs; also, although the authors claim that complex constraints are considered, they are not described in the paper.