100 likes | 420 Views
Cutting Plane Technique for Solving Integer Programs. Motivating Example for Cutting Planes. Recall the bad-case example for the LP-rounding algorithm: Integer Program LP relaxation max x 1 + 5x 2 max x 1 + 5x 2 s.t. x 1 +10x 2 20 s.t. x 1 +10x 2 20
E N D
Motivating Example for Cutting Planes • Recall the bad-case example for the LP-rounding algorithm: Integer Program LP relaxation max x1 + 5x2 max x1 + 5x2 s.t. x1 +10x2 20 s.t. x1 +10x2 20 x1 2 x1 2 x1 , x2≥ 0 integer x1 , x2≥ 0 • Solution to LP-relaxation: (2, 1.8) • Rounded IP solution: (2, 1) with value 7 • IP optimal solution: (0, 2) with value 10 • Conclusion: Rounded solution too far from optimal solution x1= 2 x1 +10x2= 20 Z=11
How can we improve the performance of the LP-rounding? • Add the following new constraint to the problem: x1 + 2x2 4 . New Integer Program New LP relaxation max x1 + 5x2 max x1 + 5x2 s.t. x1 +10x2 20 s.t. x1 +10x2 20 x1 2 x1 2 x1 + 2x2 4 x1 + 2x2 4 x1 , x2≥ 0 integer x1 , x2≥ 0 • The set of feasible integer points is the same for the old and new IPs • But the feasible region of the new LP-relaxation is different: some of the fractional points are cut off • As a result, the optimal solution of the new LP-relaxation, (0,2) is also the optimal IP solution. x1= 2 (0, 2) x1 +10x2= 20 Z=10 x1 + 2x2= 4
General Idea of Cutting Plane Technique • Add new constraints (cutting planes) to the problem such that (i) the set of feasible integer solutions remains the same, i.e., we still have the same integer program. (ii) the new constraints cut off some of the fractional solutions making the feasible region of the LP-relaxation smaller. • Smaller feasible region might result in a better LP value (i.e., closer to the IP value), thus making the search for the optimal IP solution more efficient. • Each integer program might have many different formulations. Important modeling skill: Give as tight formulation as possible. How? Find cutting planes that make the formulation of the original IP tighter.
Example of making a formulation tighter: Bin Packing Problem • Given:n items with sizes s[1], s[2], …, s[n]; bins with size W (where W ≥ s[i] , any i=1,…,n). • Goal: Pack the items into the bins using as few bins as possible. • Example: n=13 items with sizes 20, 20, 20, 20, 20, 81, 81, 81, 81, 82, 91, 49, 51 ; Bin size is W=100. Minimum number of bins needed is 8.
Example of making a formulation tighter: Bin Packing Problem • Want an IP formulation for this problem. • Let M be an upper bound on the number of bins needed. (M=n is a safe upper bound; but should try for smaller values) • Define the following variables. For j=1,…,M, let For each i=1,…,n and j=1,…,M, let
Example of making a formulation tighter: Bin Packing Problem • Our objective is to minimize the number of used bins: Minimize sum{j in 1..M}open[j] • We need the following functional constraints. Each item should be packed in exactly one bin: (C1)sum{j in 1..M}assign[i,j] = 1,for each i=1,…,n Each bin can contain items of total size at most W: (C2)sum{i in 1..n}s[i]*assign[i,j] W,for each j=1,…,M Items can be packed only in open bins: (C3)assign[i,j] open[j],for each i=1,…,n and j=1,…,M • Set constraints:All variables are binary.
Example of making a formulation tighter: Bin Packing Problem • The optimal solution to the LP relaxation: open[j] = 1/M , assign[i,j] = 1/M , for each i=1,…,n and j=1,…,M with optimal value M * 1/M = 1 . • Let’s check that it really satisfies the constraints: (C1)sum{j in 1..M}assign[i,j] = 1,for each i=1,…,n For this solution, M * 1/M = 1 . (C2)sum{i in 1..n}s[i]*assign[i,j] W,for each j=1,…,M For this solution, sum{i in 1..n} s[i] / M W . (C3)assign[i,j] open[j],for each i=1,…,n and j=1,…,M For this solution, 1/M 1/M .
Example of making a formulation tighter: Bin Packing Problem • The optimal solution with value 1 might be too far from the optimal IP solution. E.g., recall that we needed 8 bins for our example with 13 items. Thus, the bound given by the LP-relaxation is too loose. • How to make the IP formulation tighter? Replace constraints (C2) with the following constraints: (C2’)sum{i in 1..n}s[i]*assign[i,j] W*open[j], for each j=1,…,M Note that these constraints are valid for the integer program (i.e., no feasible integer point is cut off). But it cuts off some of the fractional points, particularly the optimal solution of the old LP-relaxation. The optimal solution of the new LP-relaxation has value 6.97 for our example. This is a much tighter lower bound for the optimal IP value 8.
Methods of getting Cutting Planes • Exploit the special structure of the problem to get cutting planes • Often can be hard to get • Topic of intensive research • More general methods are also available • Can be used automatically for many problems • Often so-called branch-and-cut algorithms (some combination of branch-and-bound and cutting planes) are used to solve integer programs. More examples in the next handout