Presentation on theme: "1 Branch-and-Price (Column Generation) Solving Integer Programs With a Huge Number of Variables CP-AI-OR02 School on Optimization Le Croisic, France March."— Presentation transcript:
1 Branch-and-Price (Column Generation) Solving Integer Programs With a Huge Number of Variables CP-AI-OR02 School on Optimization Le Croisic, France March 2002
2 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.
3 Classic Example The Cutting Stock or Bin Packing Problem Input: 1.A set of n items of sizes a 1, a 2, … a n, 2. A set of demands d i for item i, i=1,…,n 3. Bins of size L Output: A packing of the items into a minimum number of bins
4 Example i1234 45363114 97610395211 L = 100 Solution with FFD 45 3614 36 14 36 31 x 48 x 1 x 131 x 105 x 199 = 485 There are 37 patterns Lower boundrounded up = 416 in example
5 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 wont change after branching because of symmetries. We need a better formulation for which the LP gives a good bound and the symmetries are eliminated.
6 Formulation with an Exponential Number of Columns is the tth pattern is the number of item i in tth pattern In example 45 number of times tth pattern is used and integer The difficulty is that T can be very large
7 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
8 LP Column Generation 1.We solve the LP relaxation over a small subset of columns. 2.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 whereis an optimal dual solution integer This is a knapsack problem that can be solved by dynamic programming or branch-and-bound.
9 LP Column Generation Solve Master LP Solve Sub problem dual solution optimal CP may be useful here new columns After solving the LP relaxation why cant we apply standard branch-and-bound To solve the IP. Difficulty: fractional Branch: It is difficult to enforce this constraint on the knapsack problem.
10 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
11 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 Monday (duty 1)Tuesday (duty 2) 8:0017:0010:0013:00
12 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
13 Airline Crew Scheduling A set partitioning problem: rows correspond to flights and columns to pairings –a ij =1 if flight i is in pairing j. –x j =1 if pairing j is selected. –n is very large, in billions.
14 Delayed Column Generation 1.We solve the set partitioning problem over a subset of pairings. 2.The dual variables give reduced costs for the pairings. 3.We solve a constrained shortest path sub problem to generate new pairings or to show that the current LP solution is optimal. 4.CP may be a good way to solve the sub problem because of the large number of constraints.
16 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
17 Follow-on Branching Given a fractional solution to the LP there are fractional pairings r and s such that andare fractional. In r, flight k follows flight i In s, flight k appears but flight i doesnt ikik 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)]
18 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
19 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.
20 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.
21 Branch-and-Price Strategic Issues 1.Column generation at a node can be terminated before proving LP optimality. 2.If the LP value is above the upper bound, then we should continue column generation with the hope of fathoming the node. 3.Strong branching may be helpful in difficult problems. 4.We may only want to follow the branches in which we are fixing the solution and stop after a good feasible solution is obtained.