12.07.2015 Views

ILOG CPLEX 11.0 User's Manual

ILOG CPLEX 11.0 User's Manual

ILOG CPLEX 11.0 User's Manual

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

What Is Column Generation?In colloquial terms, column generation is a way of beginning with a small, manageable partof a problem (specifically, a few of the variables), solving that part, analyzing that partialsolution to discover the next part of the problem (specifically, one or more variables) to addto the model, and then resolving the enlarged model. Column generation repeats that processuntil it achieves a satisfactory solution to the whole of the problem.In formal terms, column generation is a way of solving a linear programming problem thatadds columns (corresponding to constrained variables) during the pricing phase of thesimplex method of solving the problem. In gross terms, generating a column in the primalsimplex formulation of a linear programming problem corresponds to adding a constraint inits dual formulation. In the dual formulation of a given linear programming problem, youmight think of column generation as a cutting plane method.In that context, many researchers have observed that column generation is a very powerfultechnique for solving a wide range of industrial problems to optimality or to near optimality.Ford and Fulkerson, for example, suggested column generation in the context of amulti-commodity network flow problem as early as 1958 in the journal of ManagementScience. By 1960, Dantzig and Wolfe had adapted it to linear programming problems with adecomposable structure. Gilmore and Gomory then demonstrated its effectiveness in acutting stock problem. More recently, vehicle routing, crew scheduling, and otherinteger-constrained problems have motivated further research into column generation.Column generation rests on the fact that in the simplex method, the solver does not needaccess to all the variables of the problem simultaneously. In fact, a solver can begin workwith only the basis (a particular subset of the constrained variables) and then use reducedcost to decide which other variables to access as needed.Column-Wise Models in Concert TechnologyConcert Technology offers facilities for exploiting column generation. In particular, you candesign the model of your problem (one or more instances of the class IloModel) in terms ofcolumns (instances of IloNumVar, IloNumVarArray, IloNumColumn, orIloNumColumnArray). For example, instances of IloNumColumn represent columns, andyou can use operator() in the classes IloObjective and IloRange to create terms incolumn expressions. In practice, the column serves as a place holder for a variable in otherextractable objects (such as a range constraint or an objective) when your application needsto declare or use those other extractable objects before it can actually know the value of avariable appearing in them.Furthermore, an instance of IloCplex provides a way to solve the master linear problem,while other Concert Technology algorithms (that is, instances of IloCP, of IloCplex itself,374 <strong>ILOG</strong> <strong>CPLEX</strong> <strong>11.0</strong> — USER’ S MANUAL

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!