Section: Scientific Foundations
Dantzig-Wolfe decomposition and branch-and-price algorithms
An alternative to using LP bounds to prune the branch-and-bound tree is to use bounds from Lagrangian relaxation . Lagrangian relaxation consists in transforming some of the hard constraints of a problem into soft constraints that can be violated with a given penalty. The idea is to keep as hard constraints those that define a well-structured combinatorial problem that is much easier to solve than the original. In particular, one may want to relax linking constraints without which the problem decomposes into much smaller and simpler problems. The best bounds can then be obtained by properly adjusting the penalty cost. Choosing the best set of penalties is itself an optimization problem: the so-called Lagrangian dual . It can be reformulated as a linear program with an exponential number of variables (that are associated with the generators of the subproblem solution sets): this is the so-called Dantzig-Wolfe reformulation . This large LP can be solved using the revised simplex method while generating its variables and associated columns in the course of the optimization: this is the so-called column generation procedure. If branch-and-bound enumeration is based on the Dantzig-Wolfe reformulation of the problem, one must use column generation at each node of the branch-and-bound tree giving rise to the so-called branch-and-price algorithm.
Branch-and-price algorithms are more recent than branch-and-cut algorithms. Although column generation appeared in the 60's as a technique to handle linear programs with a huge number of variables [49] , [87] , its combination with branch-and-bound to solve integer programs was only developed in the 90's [54] (we did pioneering work on this subject [161] ). Branch-and-price proved to be very useful in solving many practical problems that were intractable by other means: crew and fleet assignment problems faced by airline companies [70] , [152] , vehicle routing problems in public and in fret transport systems [71] , cutting stock problems experienced in the paper, textile, or steel industry [141] , [154] , [156] , [160] , production planning problems [52] , [159] , and network design problems [148] , [40] are such examples. Branch-and-price has now become the reference method for problems well suited to decomposition and it is making its way in industry: for instance, decision aid software developed by consultant firms like Eurodecision (Paris) or Adopt (Montréal) rely on this approach. The use of this method in the practical context of challenging applications has revealed its limitation. Further developments are required to overcome these difficulties.
Indeed, using column generation in the context of integer programming is not straightforward. The primary challenges revolve around the convergence of the dual bound computations, the enforcement of integrality restrictions and the combination with dynamic cutting plane generation. A first step toward targeting these difficulties was to clarify the underlying Dantzig-Wolfe decomposition principle. While the standard view was to see Dantzig-Wolfe decomposition as the linear programming formulation of the Lagrangian dual [134] , we presented it as a reformulation technique that gives rise to an integer master program ( [155] does this for the integer case, while [153] extends this view to the mixed integer case). Then, the integrality restrictions of the original formulation translate into integrality restrictions in the reformulated problem (this is the discretization approach). Our framework based on the concept of generating sets facilitates the handling of branching decisions (to enforce integrality) and adding cutting planes to the formulation.
Natural applications for the Dantzig-Wolfe approach are problems whose constraint matrix has a block diagonal structure augmented with linking constraints, i.e. a constraint matrix A of the form
with K blocks Bk , k = 1, ..., K . Then, dualizing constraints L decomposes the problem into K sub-problems of smaller size. Moreover, if the K blocks are identical, the column generation reformulation eliminates the symmetry in k and there is only one pricing problem that needs to be solved during the column generation algorithm (the same column being optimal for all K subsystems). Beyond this standard application framework, open questions concern the viability of applying the decomposition principle recursively or to multiple independent subsystems. We develop a first application of a nested decomposition in [156] . A decomposition based on multiple independent subsystems (not necessarily disjoint) should provide tighter bounds according to the theory of Lagrangian decomposition [98] . But, there is typically a large number of dualized constraints linking the different systems and hence many dual prices to adjust (therefore one expects slow convergence). To our knowledge the literature does not report of any column generation approach based on multiple subsystems capturing different combinatorial structures. A recent study however comes close to such multiple decomposition: [69] combines variable redefinition applied to one subsystem and column generation applied to another subsystem. The dual bounds that they obtained are shown to be tighter than with alternative approaches but the computational times are much larger.