1 Cutting Plane Technique for Solving Integer Programs.

Presentation on theme: "1 Cutting Plane Technique for Solving Integer Programs."— Presentation transcript:

1 Cutting Plane Technique for Solving Integer Programs

2 Motivating Example for Cutting Planes Recall the bad-case example for the LP-rounding algorithm: Integer ProgramLP relaxation max x 1 + 5x 2 s.t.x 1 +10x 2  20 x 1  2x 1  2 x 1, x 2 ≥ 0 integer x 1, x 2 ≥ 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 x 1 +10x 2 = 20 x 1 = 2 Z=11

3 How can we improve the performance of the LP-rounding? Add the following new constraint to the problem: x 1 + 2x 2  4. New Integer ProgramNew LP relaxation max x 1 + 5x 2 s.t.x 1 +10x 2  20 x 1  2x 1  2 x 1 + 2x 2  4 x 1 + 2x 2  4 x 1, x 2 ≥ 0 integer x 1, x 2 ≥ 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. x 1 +10x 2 = 20 x 1 = 2 Z=10 x 1 + 2x 2 = 4 (0, 2)

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.

5 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.

6 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

7 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.

8 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.

9 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.

10 Methods of getting Cutting Planes 1)Exploit the special structure of the problem to get cutting planes  Often can be hard to get  Topic of intensive research 2)More general methods are also available  Can be used automatically for many problems 3)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

Similar presentations