240 likes | 447 Views
Branch-and-Price (Column Generation) Solving Integer Programs With a Huge Number of Variables. CP-AI-OR’02 School on Optimization Le Croisic, France March 2002. Reasons for Considering Formulations with a Huge Number of Variables.
E N D
Branch-and-Price (Column Generation) Solving Integer Programs With a Huge Number of Variables CP-AI-OR’02 School on Optimization Le Croisic, France March 2002
Reasons for Considering Formulations with a Huge Number of Variables • A compact formulation of a MIP may have a weak LP relaxation. Frequently • the relaxation can be tightened by a reformulation that involves a huge number • of variables. • A compact formulation of a MIP may have symmetric structure that causes • branch-and-bound to perform poorly because the problem barely changes after • branching. A reformulation with a huge number of variables can eliminate this • symmetry. • Column generation provides a decomposition of the problem into master and • sub problems. This decomposition may have a natural interpretation in the • contextual setting allowing for the incorporation of additional important • constraints. • A formulation with a huge number of variables may be the only choice.
Classic Example The Cutting Stock or Bin Packing Problem • Input: • A set of n items of sizes • a1, a2, … an, • 2. A set of demands di for item i, i=1,…,n • 3. Bins of size L • Output: A packing of the items into a • minimum number of bins
Example L = 100 Solution with FFD 45 45 x 48 45 36 14 x 1 36 36 14 14 x 105 36 36 x 199 36 31 31 x 1 31 31 31 x 131 = 485 There are 37 patterns Lower bound rounded up = 416 in example
Compact Formulation and integer K is an upper bound on the number of bins The LP relaxation of this formulation is very bad since it only gives the trivial lower bound mentioned above. Solution won’t change after branching because of symmetries. We need a better formulation for which the LP gives a good bound and the symmetries are eliminated.
Formulation with an Exponential Number of Columns is the tth pattern is the number of item i in tth pattern In example 45 45 number of times tth pattern is used and integer The difficulty is that T can be very large
LP bound for example is 452.25 roundup gives 454 round down gives 450 and then 3 more for residual this is optimal because of the LP bound
LP Column Generation • We solve the LP relaxation over a small subset of columns. • We then need to find a column with negative reduced cost or prove • that none exists implying the current solution is optional. reduced cost of column t where is an optimal dual solution integer This is a knapsack problem that can be solved by dynamic programming or branch-and-bound.
LP Column Generation Solve Master LP dual solution new columns CP may be useful here Solve Sub problem optimal After solving the LP relaxation why can’t we apply standard branch-and-bound To solve the IP. Difficulty: fractional Branch: It is difficult to enforce this constraint on the knapsack problem.
Routing Problems • Several Routes are needed • Individual Routes are Constrained • Master Problems: Puts together feasible routes at minimum cost • Sub Problem: Generates routes based on minimum cost and dual variables • Vehicle routing • Crew scheduling • Traveling tournament problem
Airline Crew Scheduling • Input: A schedule of a fleet • Objective: Find a set of crew itineraries (pairings) that partition all of the legs at minimum cost. ATL MIA JAX 8:00 17:00 10:00 13:00 Monday (duty 1) Tuesday (duty 2)
Pairings • Restrictions • Connection times • Duty elapsed time • Flying time in a duty • 8-in-24 rule • Duty cost is the maximum of 3 quantities. • Flying time, fraction of elapsed time, minimum guarantee • Pairing cost is the maximum of 3 quantities. • Sum of duty costs, elapsed time, minimum guarantee • Daily problems • 100 flights: 90,000 pairings • 250 flights: 2.5 million pairings • 1000 flights: more than a billion pairings
Airline Crew Scheduling • A set partitioning problem: rows correspond to flights and columns to pairings • aij=1 if flight i is in pairing j. • xj=1 if pairing j is selected. • n is very large, in billions.
Delayed Column Generation • We solve the set partitioning problem over a subset of pairings. • The dual variables give reduced costs for the pairings. • We solve a constrained shortest path sub problem to generate new pairings • or to show that the current LP solution is optimal. • CP may be a good way to solve the sub problem because of the large number • of constraints.
Standard Branching • A pairing has a fractional value in an optimal LP solution • Two cases is easy, fix the pairing and knock out the flights it covers is hard, the pairing must be eliminated from the shortest path problem
Follow-on Branching Given a fractional solution to the LP there are fractional pairings r and s such that and are fractional. In r, flight k follows flight i In s, flight k appears but flight i doesn’t i k • branch 1: flight k follows flight i in some pairing. Eliminate all pairings that • contain i or k or both, but not consecutively. [in the network delete all connections from i except the one to k] • branch 2: k cannot follow i. Eliminate all pairings in which k immediately • follows i. [in the network, delete the connector arc (i,k)]
0-1 Cutting Stock Branching A pattern contains are most one unit of an item, Branching is the same as crew pairing. A pattern with items r and s has a fractional value in an optimal LP solution. • branch 1: define a new item rs of size (they must go together) • branch 2: add at most one of item r and s to the knapsack problem
General Cutting Stock Branching A pattern may contain several units of different items 48.5 105.5 100.75 197.5 • branch 1: patterns containing 2 or more units of item 2 207 • branch 2: These are simple constraints to add to the master.
Column Management • We can add multiple problems from the sub problem to the master. • It can be a good idea to sets of columns that yield feasible integer • solutions to the master. • Columns no longer active in the LP solution can be deleted from • the master.
Branch-and-Price Strategic Issues • Column generation at a node can be terminated before proving LP optimality. • If the LP value is above the upper bound, then we should continue column • generation with the hope of fathoming the node. • Strong branching may be helpful in difficult problems. • We may only want to follow the branches in which we are fixing the • solution and stop after a good feasible solution is obtained.