Integer Programming Chapter 15

Size: px
Start display at page:

Download "Integer Programming Chapter 15"

Transcription

1 Integer Programming Chapter 15 University of Chicago Booth School of Business Kipp Martin November 9, / 101

2 Outline Key Concepts Problem Formulation Quality Solver Options Epsilon Optimality Preprocessing Cutting Planes Chvátal-Gomory (C-G) Constraint Aggregation Coefficient Reduction Cuts Separation Branch and Cut COIN-OR Cgl 2 / 101

3 Key Concepts the quality of the formulation is what counts, not the size quality usually measured by the lower bound critical to generate good formulations problem reformulation preprocess the problem generating cutting planes important to control solver options getting the last bit of optimality can be tough 3 / 101

4 Problem Formulation Quality Consider the following two sets of integer points. Γ = {(x 1, x 2, y) x 1 y, x 2 y, x 1, x 2, y {0, 1}}. Γ = {(x 1, x 2, y) x 1 + x 2 2y, x 1, x 2, y {0, 1}}. What are the points in each set and how do they differ? 4 / 101

5 Problem Formulation Quality Consider the following two sets of integer points. Γ = {(x 1, x 2, y) x 1 y, x 2 y, x 1, x 2, y {0, 1}}. y x 1 x Γ has exactly the same set of points! 5 / 101

6 Problem Formulation Quality Consider the following linear relaxations. Γ = {(x 1, x 2, y) x 1 y, x 2 y, x 1, x 2, y 0, x 1, x 2, y 1}. Γ = {(x 1, x 2, y) x 1 + x 2 2y, x 1, x 2, y 0, x 1, x 2, y 1}. What are the points in each set and how do they differ? What about extreme points? 6 / 101

7 Problem Formulation Quality Γ is the convex hull of integer points in Γ. Not so for Γ y x 1 x / /2 1 0 Important: Γ is a proper subset of Γ. It is a better relaxation. Why? 7 / 101

8 Problem Formulation Quality 8 / 101

9 Problem Formulation Quality THE BIG TAKE AWAY: Different polyhedra may contain exactly same set of integer points! THE BIG TAKE AWAY: Different polyhedra may contain exactly same set of integer points! THE BIG TAKE AWAY: Different polyhedra may contain exactly same set of integer points! WHAT IS THE BIG TAKE AWAY? 9 / 101

10 Problem Formulation Quality Mixed Integer Finite Basis Theorem: If Γ = {(x, y) Ax + By = b, x 0, y Z l +}, (1) where A, B are rational matrices and b is a rational vector, then conv(γ) is a rational polyhedron. Problem: in most real applications conv(γ) P where P = {(x, y) Ax + By = b, x 0, y 0} Objective: Make P smaller and more closely approximate conv(γ). 10 / 101

11 Problem Formulation Quality Mixed Integer Finite Basis Theorem: If Γ = {(x, y) Ax + By = b, x 0, y Z l +}, (2) where A, B are rational matrices and b is a rational vector, then conv(γ) is a rational polyhedron. Problem: in most real applications conv(γ) P where P = {(x, y) Ax + By = b, x 0, y 0} Objective: Make P smaller and more closely approximate conv(γ). 11 / 101

12 Problem Formulation Quality Absolutely Critical: Understand the differences between 1. Γ 2. P or Γ 3. conv(γ) 12 / 101

13 Reformulation (Core Carrier) Core Carrier Revisited: Take the constraints x ij My j, j J i M j and replace with the equivalent set: x ij y j, i M j, j J THE BIG TAKE AWAY: The same set of integer points can have many different representations in terms of linear inequalities. 13 / 101

14 Reformulation (Core Carrier) Core Carrier Revisited (Continued) : Tight Loose Rows Columns LP Value What happens when you try to solve? 14 / 101

15 Reformulation (Lot Sizing) Dynamic Lot Sizing : Variables: x it units of product i produced in period t I it inventory level of product i at the end of the period t y it is 1 if there is nonzero production of product i during period t, 0 otherwise Parameters: d it demand product i in period t f it fixed cost associated with nonzero production of product i in period t c it marginal production cost for product i in period t h it marginal holding cost charged to product i at the end of period t g t production capacity in period t 15 / 101

16 Reformulation (Lot Sizing) Objective: Minimize sum of marginal production cost, holding cost, fixed cost N T (c it x it + h it I it + f it y it ) i=1 t=1 Constraint 1: Do not exceed total capacity in each period N x it g t, i=1 t = 1,..., T 16 / 101

17 Reformulation (Lot Sizing) Constraint 2: Inventory balance equations I i,t 1 + x it I it = d it, i = 1,..., N, t = 1,..., T Constraint 3: Fixed cost forcing constraints x it M it y it 0, i = 1,... N, t = 1,..., T 17 / 101

18 Reformulation (Lot Sizing) Dynamic Lot Sizing : A standard formulation is: min s.t. N T (c it x it + h it I it + f it y it ) i=1 t=1 N x it g t, t = 1,..., T i=1 I i,t 1 + x it I it = d it, i = 1,..., N, t = 1,..., T x it M it y it 0, i = 1,... N, t = 1,..., T x it, I it 0, i = 1,..., N, t = 1,..., T y it {0, 1}, i = 1,..., N, t = 1,..., T. 18 / 101

19 Reformulation (Lot Sizing) Dynamic Lot Sizing : An alternate formulation: z itk is 1, if for product i in period t, the decision is to produce enough items to satisfy demand for periods t through k, 0 otherwise. z ij,t 1 + t 1 j=1 T z i1k = 1 k=1 T z itk = 0, i = 1,..., N, t = 2,..., T k=t T z itk y it, i = 1,..., N, t = 1,..., T k=t 19 / 101

20 Reformulation (Lot Sizing) Dynamic Lot Size (tvw200) : Tight Loose Rows Columns LP Value What happens when you try to solve? The optimal integer value is (I think the lower bound is ). 20 / 101

21 Solver Options Most solvers take options. This is particularly important in integer programming. In GAMS you can communicate options to solvers through an option text file. First we tell GAMS which solver we want: OPTION MIP = CoinCbc; Next we tell GAMS that we want the first option file (you can have more than one, 2, 3,...) lot_size.optfile = 1; 21 / 101

22 Solver Options Here is some code we where we put in GAMS options file opt CoinCbc option file /coincbc.opt/; put opt; put optcr 0 / put reslim / put nodelim / put cuts off / put knapsackcuts on /; putclose opt; Make sure to put this code before the solve statement. 22 / 101

23 Solver Options Here is what the options file does: set the tolerance on integer optimality to zero (optcr 0) set a time limit of seconds set a node limit of turned cutting plane generation off (cuts off) turned knapsack cuts on (knapsackcuts on) 23 / 101

24 Epsilon Optimality Key Take Away: Actually proving optimality in branch and bound can be tough. The closer you get, the harder it becomes to resolve that list bit of integrality gap. If, for example, you set optcr =.01, then branch and bound will terminate (assume minimization here) when.99*ub LB 24 / 101

25 Epsilon Optimality Experiment: run the tight version of the lot sizing with ratio 0 and ratio Here is what happens for me: UB LB Nodes Seconds optcr = optcr = Is it worth it? 25 / 101

26 Epsilon Optimality Another Take Away: the data may not be that accurate to being with. Standard Oil story. 26 / 101

27 Preprocessing By preprocessing we mean what is done to a formulation to make it more amenable to solution before solving the linear programming relaxation. Objective: make the linear programming relaxation of the mixed-integer program easy and tight. Try the following eliminate redundant constraints fix variables scale coefficients coefficient reduction rounding improve bounds on variables and constraints probing We work with the following canonical form: a j x j + a j x j a j x j a j x j b (3) j I + j C + j I j C 27 / 101

28 Preprocessing Rounding: If C + = C =, a j is integer for all j I + I and α = gcd(a j a j I + I ) then the conical form of the constraint is which is equivalent to then a valid rounding is a j x j a j x j b (4) j I + j I (a j /α)x j (a j /α)x j b/α. (5) j I + j I (a j /α)x j (a j /α)x j b/α. (6) j I + j I 28 / 101

29 Preprocessing Rounding Example: Consider the inequality (assume x 1, x 2 are general integer variables. 2x 1 + 2x 2 3 A feasible solution is x 1 = 1.5 and x 2 = 0. Now let s round, So an equivalent inequality is: α = gcd(a 1, a 2 ) = gcd(2, 2) = 2 (1/2)(2x 1 + 2x 2 ) (1/2)3 x 1 + x Rounding up the right-hand-side gives: x 1 + x 2 2 Is x 1 = 1.5 and x 2 = 0 feasible? 29 / 101

30 Preprocessing Rounding Example: Let s look at some geometry. Plot the feasible regions: Γ 1 = {(x 1, x 2 ) 2x 1 + 2x 2 3, x 1, x 2 0} Γ 2 = {(x 1, x 2 ) x 1 + x 2 2, x 1, x 2 0} What is the relationship between? Γ 1 Z 2 and Γ 2 Z 2 Γ 1 and Γ 2 30 / 101

31 Preprocessing Coefficient Reduction: if C = I = then it is valid to reduce the coefficients on the integer variables to b. That is, (3) is equivalent to j I + min{a j, b}x j + j C + a j x j b. (7) Additionally, if C or I is not empty then upper bounds on the variables in these sets are used as follows. Define: Then (3) is equivalent to λ := b + a j h j + a j h j. (8) j C j I min{a j, λ}x j + a j x j a j x j a j x j b. (9) j I + j C + j I j C 31 / 101

32 Preprocessing Tightening Bounds: The canonical form a j x j + a j x j a j x j a j x j b j I + j C + j I j C implies for each k C + a k x k b j C + j k a j x j a j x j + a j x j + a j x j. j I + j C j I The smallest the right hand side of can be is b j C + j k a j h j a j h j + a j l j + a j l j. j I + j C j I 32 / 101

33 Preprocessing Therefore, it is valid to reset l k to (b j C + j k a j h j a j h j + a j l j + a j l j )/a k j I + j C j I Using similar logic the upper bounds of variables indexed by C I are adjusted by ( a j l j + a j l j a j h j a j h j b)/a k j C + j I + j I j C j k 33 / 101

34 Preprocessing This is an iterative process. The upper and lower bounds on variables are adjusted until there is no improvement in an upper or lower bound. Once the lower and upper bounds are calculated one can apply coefficient reduction on the integer variable coefficients. 34 / 101

35 Preprocessing Example: Dynamic Lot Sizing min s.t. N T (c it x it + h it I it + f it y it ) i=1 t=1 N x it g t, t = 1,..., T i=1 I i,t 1 + x it I it = d it, i = 1,..., N, t = 1,..., T x it M it y it 0, i = 1,... N, t = 1,..., T x it, I it 0, i = 1,..., N, t = 1,..., T y it {0, 1}, i = 1,..., N, t = 1,..., T. 35 / 101

36 Preprocessing Example: Dynamic Lot Sizing (Continued) Consider the Big M constraints in canonical form x it My it 0 x it + My it 0 Recall λ := b + a j h j + a j h j. j C j I In this case, what is b, C, I, and λ? What do we get after coefficient reduction? 36 / 101

37 Preprocessing Example: Dynamic Lot Sizing (Continued) Let s tighten the bounds on the x it variables. Assume 5 time periods (we drop the product subscript all products are treated identically). In canonical form: I 4 x 5 d 5 I 3 x 4 + I 4 d 4 I 2 x 3 + I 3 d 3 I 1 x 2 + I 2 d 2 x 1 + I 1 d 1 What is a valid upper bound on x 5? What about I 4? Work through to period / 101

38 Preprocessing Feasibility: The canonical form is a j x j + a j x j a j x j a j x j b j I + j C + j I j C if a j h j + a j h j a j l j a j l j < b. j I + j C + j I j C the model instance is not feasible. 38 / 101

39 Preprocessing Redundancy: The canonical form is if a j x j + a j x j a j x j a j x j b j I + j C + j I j C a j l j + a j l j a j h j a j h j b. j I + j C + j I j C the constraint is redundant and can be deleted. Solve (possibly relaxations) min a j x j + a j x j a j x j a j x j j I + j C + j I j C s.t. Ax b x 0 39 / 101

40 Preprocessing Probing and Variable Fixing: In a mixed 0/1 linear program probing refers to fixing a binary variable x k to 0 or 1 and then observing any resulting implications. Assume variable x k is binary. If x k = 1, k I and j I + a j h j + j C + a j h j j I \{k} a j l j j C a j l j < b + a k then the model is infeasible which implies it is valid to fix variable x k to 0. If x k = 0, k I + and j I + \{k} a j h j + a j h j a j l j a j l j < b j C + j I j C then the model is infeasible which implies it is valid to fix variable x k to / 101

41 Preprocessing How to preprocess in Coin-OR Cbc. See ( for free optimization solvers. Declare a new solver interface this is what will get preprocessed. OsiSolverInterface *m_osisolverpre = NULL; CglPreProcess process; m_osisolverpre = process.preprocess(*solver->osisolver, false, 10); Build the Cbc model with the preprocessed solver interface and solve CbcModel *model = new CbcModel( *m_osisolverpre); model->branchandbound(); 41 / 101

42 Preprocessing Unwind to get the original model back process.postprocess( *model->solver() ); Results with p0033.osil Variables Constraints LP Relax Nodes Without With / 101

43 Cutting Planes Motivation Preprocessing is nice, but is usually far from sufficient! The typical integer program requires more than just preprocessing in order to solve. The solution of most real problems requires the use of cutting planes. 43 / 101

44 Cutting Planes Motivation We can tighten an integer program by adding cutting planes or just cuts. These are sometimes also called valid inequalities. Consider the integer program: min x 1 x 2 x 1 x 2 2 4x 1 + 9x x 1 + 4x 2 4 x 1, x 2 0 x 1, x 2 Z 44 / 101

45 Cutting Planes Motivation In the figure below the black dots represent Γ (feasible points to the integer program) and the red area represents the linear programming relaxation Γ. 45 / 101

46 Cutting Planes We are going to generate cuts like the blue line. 46 / 101

47 Cutting Planes Motivation We have already seen an example of cuts. Consider Γ = {(x 1, x 2, y) x 1 + x 2 2y, x 1, x 2, y {0, 1}}. Γ = {(x 1, x 2, y) x 1 + x 2 2y, 0 x 1, x 2, y 1}. We would say that x 1 y and x 2 y are valid cuts of Γ. These cuts do not cut off any points in Γ but they do cut off points in Γ. 47 / 101

48 Cutting Planes Motivation The feasible points in are Γ = {(x 1, x 2, y) x 1 + x 2 2y, x 1, x 2, y {0, 1}}. y x 1 x All, yes, every one of these points satisfy the cuts x 1 y and x 2 y. However points (1, 0,.5) and (0, 1,.5) which are in Γ do not satisfy the cuts. 48 / 101

49 Cutting Planes Theory Big Picture: There is a finite basis theorem for integer programs just like there is for linear programs. That is, Γ = {x R n Bx d, x 0, x j Z, j I } is finitely generated. This means q r conv(γ) = {x R n x = z i x i + z i x i, i=1 i=q+1 q z i = 1, z i 0, i = 1,..., r} (10) i=1 What is the geometry of conv(γ)? What kind of set is it? 49 / 101

50 Cutting Planes Theory Obviously, conv(γ) is a polyhedron! This implies there exists a system of inequalities (α i ) x α i0, i = 1,..., q such that conv(γ) = {x α i x α i0, i = 1,..., q}. 50 / 101

51 Cutting Planes Theory We want to add cuts and try and pare down the light grey area to the dark grey area x x 1 51 / 101

52 Cutting Planes Big Picture: Since conv(γ) is a polyhedron, we could solve the integer program by solving a linear program! min c x s.t. α i x α i0, i = 1,..., q So why don t we just solve the linear program? Why bother with branch and bound? 52 / 101

53 Cutting Planes Γ = {x R n Bx d, x 0, x j Z, j I } It is critical to understand the difference between CONV (Γ) and Γ (the linear relaxation). Γ = {(x 1, x 2, y) x 1 + x 2 2y, x 1, x 2, y {0, 1}}. What is Γ? CONV (Γ)? Γ? what is the relationship? 53 / 101

54 CONV (Γ) Versus Γ 54 / 101

55 Cutting Planes In practice we solve the problem min{c T x x Γ} and get a point x. If life were fair, we would get x CONV (Γ) and be done. Unfortunately, fair is the place where they display animals in summer and has absolutely nothing to do with the way life actually works!!! So we try to find a cut α x α 0 so that α x α 0, x CONV (Γ) and if x Γ but x / CONV (Γ) then α x < α 0 55 / 101

56 Cutting Planes We now address the problem of finding cutting planes. So far, all we have really done this quarter is add (aggregate) constraints together! So why does anyone think this is a tough course! We keep doing the same thing, only now we do some rounding. That s all just add a few constraints and round a few coefficients. Pretty easy stuff I would say! I am embarrassed! Please do not go around telling the rest of University how trivial the material is that I teach. 56 / 101

57 Cutting Planes n a ij x j = b i, i = 1,..., m. j=1 Assign a set of multipliers u i, i = 1,..., m to the constraints and generate the aggregate constraint n m ( u i a ij )x j = j=1 i=1 m u i b i. i=1 Assume all of the x j 0 and integer, then n m ( u i a ij ) x j j=1 i=1 m u i b i. i=1 57 / 101

58 Cutting Planes Since we assume all variables must be integer, the left-hand-side of the aggregate constraint below will always be integer. n m ( u i a ij ) x j j=1 i=1 m u i b i. i=1 Therefore we can round the right-hand-side up and get the cut n m m ( u i a ij ) x j u i b i. j=1 i=1 This cut is a Chvátal-Gomory (C-G) cut and the procedure used to derive the cut is called Chvátal-Gomory rounding. It is very famous in integer programming. i=1 58 / 101

59 Cutting Planes A slight variation: If we have instead of =, n a ij x j b i, i = 1,..., m. j=1 Assign a set of multipliers u i 0, i = 1,..., m to the constraints and generate the aggregate constraint n m ( u i a ij )x j j=1 i=1 m u i b i. i=1 and we can follow the same derivation. Why is u i 0 required? 59 / 101

60 Cutting Planes Example One: Consider This is equivalent to 2x 1 + 3x 2 + 4x 3 6 x 3 1 2x 1 + 3x 2 + 4x 3 6 x 3 1 Assign multipliers u 1 = 1 3 and u 2 = 4 3. The aggregate constraint is 2 3 x 1 + x / 101

61 Cutting Planes Example One (Continued): We have 2 3 x 1 + x Round the coefficient on x 1, x 1 + x Now round the left-hand-side, and get the valid cut x 1 + x / 101

62 Cutting Planes Example Two: Let s go back to our friend x 1 + x 2 2y x 1 0 x 2 0 y 1 Substitute x 1 = 1 z 1 and x 2 = 1 z 2. This becomes (1 z 1 ) + (1 z 2 ) 2y z 1 1 z 2 1 y 1 62 / 101

63 Cutting Planes Example Two (continued): This becomes z 1 + z 2 + 2y 2 z 1 1 z 2 1 y 1 Assign multipliers u 1 =.5, u 2 =.5, u 3 = 0, u 4 = 0. This gives the aggregate constraint,.5z 2 + y.5 63 / 101

64 Cutting Planes Example Two (continued): Round the coefficient of z 2 to 1 Then round the right hand side z 2 + y.5 z 2 + y 1 Substitute back z 2 = 1 x 2, and voila! x 2 y What multipliers give the cut x 1 y? 64 / 101

65 Cutting Planes Knapsack Cover Cuts: Example 1 and Example 2 are illustrations of the famous knapsack cover cuts. a 1 x 1 + a 2 x a n x n b x i {0, 1}, i = 1,..., n Assume all a i 0, for i = 1,..., n. The index set C is a cover if and only if a j b k C a k, b k C a k > 0 for all j C The implied knapsack cover cut is x j 1 j C 65 / 101

66 Cutting Planes Knapsack Cover Cuts: The knapsack cover cuts have proved exceedingly effective in integer programming. Example 1 Revisited: Define C = {1, 2}. Then 2x 1 + 3x 2 + 4x 3 6 x 1, x 2, x 3 {0, 1} b k C a k = 6 a 3 = 6 4 = 2 Since a 1 = 2 2 and a 2 = 3 2 the corresponding knapsack cover cut is x 1 + x / 101

67 Cutting Planes Example 2 Revisited: After the substitution we had z 1 + z 2 + 2y 2 There are two covers (assume 3 in the index of y), C 1 = {1, 3} and C = {2, 3} that lead to the cuts which correspond to z 1 + y 1 and z 2 + y 1 x 1 y and x 2 y 67 / 101

68 Cutting Planes We now derive a cut using the updated Simplex tableau. The equations corresponding to a basic feasible solution indexed by B are: x Bi + j N a ij x j = b i, i = 1,..., m (11) where B i, i = 1,..., m, indexes the basic variables and N indexes the non basic variables. Applying C-G rounding gives x Bi + j N a ij x j b i, i = 1,..., m. (12) Multiplying (11) by -1 and adding to (12) gives f ij x j f i0 i = 1,..., m (13) j N where f ij = a ij a ij and f i0 = b i b i. 68 / 101

69 Cutting Planes This tableau based cut is called a Gomory cut. Named after Ralph Gomory a famous computing guru at IBM. Note: You can work with the cut in either the form x Bi + j N a ij x j b i, i = 1,..., m. or f ij x j f i0 i = 1,..., m j N From the viewpoint of re-optimizing the tableau, the second form is preferred. From viewpoint of explanation and derivation the first form is preferred. 69 / 101

70 Cutting Planes Gomory Cut Example: Start with the integer program min x 1 x 2 x 1 x 2 2 4x 1 + 9x x 1 + 4x 2 4 x 1, x 2 0 x 1, x 2 Z 70 / 101

71 Cutting Planes Put the linear programming relaxation in standard form. Gomory Cut Example: Start with the integer program min x 1 x 2 x 1 x 2 + x 3 = 2 4x 1 + 9x 2 + x 4 = 18 2x 1 + 4x 2 + x 5 = 4 x 1, x 2 0 Optimize using our good friend basicsimplex.m. See the MATLAB file gomory.m 71 / 101

72 Cutting Planes If you run gomory.m you get the following tableau Generate a cut based on the fractional variable x 2 = 0.77 Round up x 2.31x x 4 = 0.77 x 2 + x / 101

73 Cutting Planes We have: x 2 + x 4 1 Since 4x 1 + 9x 2 + x 4 = 18 we have x 4 = 18 4x 1 9x 2 and the cut becomes x x 1 9x 2 1 4x 1 + 8x / 101

74 Cutting Planes We can even tighten the Gomory cut! implies, 4x 1 + 8x 2 17 which implies x 1 + 2x 2 17/4 = x 1 + 2x 2 4 I love this stuff! Verify that this is valid. 74 / 101

75 Cutting Planes Here is the cut x 1 + 2x 2 4 plotted with the feasible region. 75 / 101

76 Cutting Planes By generating the necessary cutting planes we could solve the integer program as a linear program! The blue region represents the convex hull of integer solutions. 76 / 101

77 Cutting Planes Questions to Ponder: If there is a fractional solution, will there be a knapsack cover cut, that cuts this solution off? If there is a fractional solution, will there be a Gomory cut, that cuts this solution off? By the way, would you prefer to use Gomory or knapsack cover cuts? Why? 77 / 101

78 Cutting Planes Test problem P0458 with 177 rows and 548 variables. LP Value IP Value Nodes Iterations No Cuts Gomory + Knapsack / 101

79 Cutting Planes We have developed knapsack cover cuts and Gomory cuts. The generation of valid cuts has been the subject of a huge amount of research. People have developed cuts for very special and for very general structures. See ( for free optimization solvers. See the GAMS document coin.pdf (in folder docs/solvers), pages for a list of cuts supported by the COIN-OR solver Cbc. Most solvers have options for turning these various cuts on and off. 79 / 101

80 Cutting Planes For COIN-OR Cbc cuts off turns all cut generation off cuts on turns on all the default cut generators (see coin.pdf for default cut generators) you can set cuts off and then turn on specific cuts cuts off gomorycuts on knapsackcuts on flowcovercuts on 80 / 101

81 Constraint Aggregation Coefficient Reduction Cuts The C-G cut assumes all integer. However, if continuous variables are present, then it is not valid to conclude that n m u i a ij x j j=1 i=1 m u i b i i=1 n m m u i a ij x j u i b i. j=1 i=1 i=1 In order to treat mixed-integer programs (i.e. some continuous variables present) we use a technique developed by Martin and Schrage. It is very simple and just adds constraints and rounds variable coefficients. Despite the simplicity, it did help me earn tenure! 81 / 101

82 Constraint Aggregation Coefficient Reduction Cuts Consider the pure integer case first. n a ij x j = b i, i = 1,..., m j=1 Assign a set of multipliers u i, i = 1,..., m to these constraints and generate the aggregate constraint n m ( u i a ij )x j = j=1 i=1 m u i b i. If all of the variables x j are required to be nonnegative, then a valid cut based on the aggregate constraint is i=1 n m max {0, ( u i a ij )}x j j=1 i=1 m u i b i. i=1 82 / 101

83 Constraint Aggregation Coefficient Reduction Cuts We have: n m max {0, ( u i a ij )}x j j=1 i=1 m u i b i. i=1 If every x j is a nonnegative integer variable and if m i=1 u ib i > 0, then a valid constraint aggregation, coefficient reduction (CACR) cut is n m m min ( u i b i, max {0, ( u i a ij )})x j j=1 i=1 i=1 m u i b i. i=1 83 / 101

84 Constraint Aggregation Coefficient Reduction Cuts The (CACR) cut has as a nice special case, pure 0-1 programming. Any inequality in a pure 0/1 linear program can be written as a j x j a j x j b (14) j I + j I where a j > 0 for j I + I and x j {0, 1} for all j I + I. Since x j is a binary variable the simple upper bound constraints x j 1 for all j W I + are valid side constraints. Assign a multiplier of a j to all of the side constraints x j 1 for j W and a multiplier of +1 to the constraint (14). 84 / 101

85 Constraint Aggregation Coefficient Reduction Cuts The aggregate constraint is a j x j a j x j λ := b a j. j I j I + \W j W If λ = b j W a j > 0, then a valid (CACR) cut is j I + \W min{λ, a j }x j λ. (15) 85 / 101

86 Constraint Aggregation Coefficient Reduction Cuts Example: Generalized Assignment Problem MIN 2 X X X X X X X X42 SUBJECT TO 2) X11 + X12 = 1 3) X21 + X22 = 1 4) X31 + X32 = 1 5) X41 + X42 = 1 6) 3 X X X X41 <= 13 7) 2 X X X X42 <= 10 END 86 / 101

87 Constraint Aggregation Coefficient Reduction Cuts Example: Generalize Assignment Problem (continued) OBJECTIVE FUNCTION VALUE 1) VARIABLE VALUE REDUCED COST X X X X X X Generate a cut. 87 / 101

88 Constraint Aggregation Coefficient Reduction Cuts Example: Generalize Assignment Problem (continued) There are two knapsack constraints. Convert the knapsack constraints to canonical form. Convert to canonical form by complementing the variables z ij = 1 x ij and then multiplying by -1. In canonical the knapsack constraints become. 3z z z z z z z z A minimal cover cut is z 11 + z 21 + z 41 1 which is x 11 + x 21 + x 41 2 in the original variables. The current linear programming relaxation violates this cut. Similarly, a minimal cover cut for the second machine is x 32 + x / 101

89 Constraint Aggregation Coefficient Reduction Cuts Example: Generalize Assignment Problem (continued) Add these cuts to the linear program and resolve. OBJECTIVE FUNCTION VALUE 1) VARIABLE VALUE REDUCED COST X X X X X Are there any CACR cuts? See pages of the textbook. 89 / 101

90 Constraint Aggregation Coefficient Reduction Cuts Example: Lock box model (simple plant location). Consider a constraint of the form x 1 + x 2 2y Write this as 2y x 1 x 2 0 Substitute, x 1 = 1 z 1, x 2 = 1 z 2 and get the system 2y + z 1 + z 2 2 z 1 1 z / 101

91 Constraint Aggregation Coefficient Reduction Cuts Example: Lock box model (simple plant location). Aggregating the first and second constraint gives Coefficient reduction gives 2y + z 2 1 y + z 2 1 which gives x 1 y Similarly we get x 2 y. In general, CACR applied to n x i My i=1 gives, x i y, i = 1,..., n 91 / 101

92 Constraint Aggregation Coefficient Reduction Cuts CACR is trivially extended to the mixed-integer case. If the integer variables are indexed by I and the continuous variables by C, then after aggregating constraints, it follows that a valid CACR cut is m m min ( u i b i, max {0, ( u i a ij )})x j + j I i=1 i=1 m max {0, ( u i a ij )}x j j C i=1 m u i b i. (16) i=1 92 / 101

93 Constraint Aggregation Coefficient Reduction Cuts Example: Dynamic lot sizing. Consider the constraint set I t 1 + x t I t = d t x t + My t 0 Assign a multiplier of 1 to the first constraint and 1 to the second constraint. The aggregate constraint is I t 1 + My t I t d t Applying coefficient reduction gives I t 1 + d t y t d t This is equivalent to x t I t + d t y t. 93 / 101

94 Separation Obviously, it is neither efficient nor possible to add all of the CACR cuts. We add them on-the-fly as needed. We discover which CACR cuts to add on-the-fly using separation. Separation Problem: given x R n, is x conv(γ), and if not, find a cut α x α 0 such that α x < α 0 and α x α 0 for all x conv(γ). This is a huge idea in integer programming. It effectively allows real problems to be solved! 94 / 101

95 Separation Consider a special case finding a CACR cut for the knapsack problem. That is, Assumptions: j I + a j x j b x j 1, j = 1,..., n We apply a multiplier of +1 to the knapsack constraint We apply a multiplier of a j to constraint x j 1 Given x 0, finding the most violated cut implies finding a W I + so that j I + \W min{λ, a j}x j λ is minimized and λ = b j W a j is strictly positive. 95 / 101

96 Separation This is done by solving a binary knapsack problem. Let r j = 1 if j I + \W and 0 otherwise. Instead of requiring λ = b j W a j, (15) is valid as long as λ b j W a j. Then the separation knapsack problem is min j I + min{λ, a j }x j r j λ (KSEP) s.t. b j I + a j + j I + a j r j λ r j {0, 1}, j I +. Note: b j I + a j + j I + a j r j = b j W a j 96 / 101

97 Separation Example: (Generalized Assignment Part Deux) VARIABLE VALUE REDUCED COST X X X X X X The constraint 3 X X X X41 <= 13 becomes 3 Z Z Z Z41 >= 8 97 / 101

98 Separation Example: (Generalized Assignment Part Deux) The separation knapsack with λ = 1 is min 0r r r r 41 1 (KSEP) s.t. 3r r r r r 11, r 21, r 31, r 41 {0, 1} The optimal solution is r 11 = 1, r 21 = 1, r 31 = 0 and r 41 = 1. The implied minimal cover cut is z 11 + z 21 + z 41 1 which is x 11 + x 21 + x 41 2 in the original variables. 98 / 101

99 Branch and Cut 99 / 101

100 COIN-OR Cgl COIN-OR Cgl (Cut generation library) Add cuts of various types to Cbc Basic idea each type of cut is a class that we define in our code. CglKnapsackCover cover; CglSimpleRounding round; CglGomory gomory; add each cut to the model and solve. model->addcutgenerator(&cover, 1, "Cover"); model->addcutgenerator(&round, 1, "Round"); model->addcutgenerator(&gomory, 1, "Gomory"); 100 / 101

101 COIN-OR COIN-OR: No size limitations. No license issue. Two ways to build a model. 1. Use Modeling Language to call a solver. 2. Write a matrix generator and interact directly with solver. 101 / 101

Cutting Plane Separators in SCIP

Cutting Plane Separators in SCIP Cutting Plane Separators in SCIP Kati Wolter Zuse Institute Berlin DFG Research Center MATHEON Mathematics for key technologies 1 / 36 General Cutting Plane Method MIP min{c T x : x X MIP }, X MIP := {x

More information

Cutting Planes in SCIP

Cutting Planes in SCIP Cutting Planes in SCIP Kati Wolter Zuse-Institute Berlin Department Optimization Berlin, 6th June 2007 Outline 1 Cutting Planes in SCIP 2 Cutting Planes for the 0-1 Knapsack Problem 2.1 Cover Cuts 2.2

More information

Linear Programming Inverse Projection Theory Chapter 3

Linear Programming Inverse Projection Theory Chapter 3 1 Linear Programming Inverse Projection Theory Chapter 3 University of Chicago Booth School of Business Kipp Martin September 26, 2017 2 Where We Are Headed We want to solve problems with special structure!

More information

Computational Integer Programming. Lecture 2: Modeling and Formulation. Dr. Ted Ralphs

Computational Integer Programming. Lecture 2: Modeling and Formulation. Dr. Ted Ralphs Computational Integer Programming Lecture 2: Modeling and Formulation Dr. Ted Ralphs Computational MILP Lecture 2 1 Reading for This Lecture N&W Sections I.1.1-I.1.6 Wolsey Chapter 1 CCZ Chapter 2 Computational

More information

Section Notes 9. IP: Cutting Planes. Applied Math 121. Week of April 12, 2010

Section Notes 9. IP: Cutting Planes. Applied Math 121. Week of April 12, 2010 Section Notes 9 IP: Cutting Planes Applied Math 121 Week of April 12, 2010 Goals for the week understand what a strong formulations is. be familiar with the cutting planes algorithm and the types of cuts

More information

Linear Programming The Simplex Algorithm: Part II Chapter 5

Linear Programming The Simplex Algorithm: Part II Chapter 5 1 Linear Programming The Simplex Algorithm: Part II Chapter 5 University of Chicago Booth School of Business Kipp Martin October 17, 2017 Outline List of Files Key Concepts Revised Simplex Revised Simplex

More information

Computational Integer Programming Universidad de los Andes. Lecture 1. Dr. Ted Ralphs

Computational Integer Programming Universidad de los Andes. Lecture 1. Dr. Ted Ralphs Computational Integer Programming Universidad de los Andes Lecture 1 Dr. Ted Ralphs MIP Lecture 1 1 Quick Introduction Bio Course web site Course structure http://coral.ie.lehigh.edu/ ted/teaching/mip

More information

Section Notes 8. Integer Programming II. Applied Math 121. Week of April 5, expand your knowledge of big M s and logical constraints.

Section Notes 8. Integer Programming II. Applied Math 121. Week of April 5, expand your knowledge of big M s and logical constraints. Section Notes 8 Integer Programming II Applied Math 121 Week of April 5, 2010 Goals for the week understand IP relaxations be able to determine the relative strength of formulations understand the branch

More information

Lift-and-Project Inequalities

Lift-and-Project Inequalities Lift-and-Project Inequalities Q. Louveaux Abstract The lift-and-project technique is a systematic way to generate valid inequalities for a mixed binary program. The technique is interesting both on the

More information

3.7 Cutting plane methods

3.7 Cutting plane methods 3.7 Cutting plane methods Generic ILP problem min{ c t x : x X = {x Z n + : Ax b} } with m n matrix A and n 1 vector b of rationals. According to Meyer s theorem: There exists an ideal formulation: conv(x

More information

Section Notes 9. Midterm 2 Review. Applied Math / Engineering Sciences 121. Week of December 3, 2018

Section Notes 9. Midterm 2 Review. Applied Math / Engineering Sciences 121. Week of December 3, 2018 Section Notes 9 Midterm 2 Review Applied Math / Engineering Sciences 121 Week of December 3, 2018 The following list of topics is an overview of the material that was covered in the lectures and sections

More information

Introduction to Integer Linear Programming

Introduction to Integer Linear Programming Lecture 7/12/2006 p. 1/30 Introduction to Integer Linear Programming Leo Liberti, Ruslan Sadykov LIX, École Polytechnique liberti@lix.polytechnique.fr sadykov@lix.polytechnique.fr Lecture 7/12/2006 p.

More information

1 Column Generation and the Cutting Stock Problem

1 Column Generation and the Cutting Stock Problem 1 Column Generation and the Cutting Stock Problem In the linear programming approach to the traveling salesman problem we used the cutting plane approach. The cutting plane approach is appropriate when

More information

Optimization Methods in Management Science

Optimization Methods in Management Science Optimization Methods in Management Science MIT 15.05 Recitation 8 TAs: Giacomo Nannicini, Ebrahim Nasrabadi At the end of this recitation, students should be able to: 1. Derive Gomory cut from fractional

More information

Network Flows. 6. Lagrangian Relaxation. Programming. Fall 2010 Instructor: Dr. Masoud Yaghini

Network Flows. 6. Lagrangian Relaxation. Programming. Fall 2010 Instructor: Dr. Masoud Yaghini In the name of God Network Flows 6. Lagrangian Relaxation 6.3 Lagrangian Relaxation and Integer Programming Fall 2010 Instructor: Dr. Masoud Yaghini Integer Programming Outline Branch-and-Bound Technique

More information

Integer Programming ISE 418. Lecture 13. Dr. Ted Ralphs

Integer Programming ISE 418. Lecture 13. Dr. Ted Ralphs Integer Programming ISE 418 Lecture 13 Dr. Ted Ralphs ISE 418 Lecture 13 1 Reading for This Lecture Nemhauser and Wolsey Sections II.1.1-II.1.3, II.1.6 Wolsey Chapter 8 CCZ Chapters 5 and 6 Valid Inequalities

More information

Introduction to Mathematical Programming IE406. Lecture 21. Dr. Ted Ralphs

Introduction to Mathematical Programming IE406. Lecture 21. Dr. Ted Ralphs Introduction to Mathematical Programming IE406 Lecture 21 Dr. Ted Ralphs IE406 Lecture 21 1 Reading for This Lecture Bertsimas Sections 10.2, 10.3, 11.1, 11.2 IE406 Lecture 21 2 Branch and Bound Branch

More information

CO 250 Final Exam Guide

CO 250 Final Exam Guide Spring 2017 CO 250 Final Exam Guide TABLE OF CONTENTS richardwu.ca CO 250 Final Exam Guide Introduction to Optimization Kanstantsin Pashkovich Spring 2017 University of Waterloo Last Revision: March 4,

More information

AM 121: Intro to Optimization! Models and Methods! Fall 2018!

AM 121: Intro to Optimization! Models and Methods! Fall 2018! AM 121: Intro to Optimization Models and Methods Fall 2018 Lecture 15: Cutting plane methods Yiling Chen SEAS Lesson Plan Cut generation and the separation problem Cutting plane methods Chvatal-Gomory

More information

36106 Managerial Decision Modeling Linear Decision Models: Part II

36106 Managerial Decision Modeling Linear Decision Models: Part II 1 36106 Managerial Decision Modeling Linear Decision Models: Part II Kipp Martin University of Chicago Booth School of Business January 20, 2014 Reading and Excel Files Reading (Powell and Baker): Sections

More information

3.3 Easy ILP problems and totally unimodular matrices

3.3 Easy ILP problems and totally unimodular matrices 3.3 Easy ILP problems and totally unimodular matrices Consider a generic ILP problem expressed in standard form where A Z m n with n m, and b Z m. min{c t x : Ax = b, x Z n +} (1) P(b) = {x R n : Ax =

More information

Operations Research Lecture 6: Integer Programming

Operations Research Lecture 6: Integer Programming Operations Research Lecture 6: Integer Programming Notes taken by Kaiquan Xu@Business School, Nanjing University May 12th 2016 1 Integer programming (IP) formulations The integer programming (IP) is the

More information

IP Cut Homework from J and B Chapter 9: 14, 15, 16, 23, 24, You wish to solve the IP below with a cutting plane technique.

IP Cut Homework from J and B Chapter 9: 14, 15, 16, 23, 24, You wish to solve the IP below with a cutting plane technique. IP Cut Homework from J and B Chapter 9: 14, 15, 16, 23, 24, 31 14. You wish to solve the IP below with a cutting plane technique. Maximize 4x 1 + 2x 2 + x 3 subject to 14x 1 + 10x 2 + 11x 3 32 10x 1 +

More information

Spring 2017 CO 250 Course Notes TABLE OF CONTENTS. richardwu.ca. CO 250 Course Notes. Introduction to Optimization

Spring 2017 CO 250 Course Notes TABLE OF CONTENTS. richardwu.ca. CO 250 Course Notes. Introduction to Optimization Spring 2017 CO 250 Course Notes TABLE OF CONTENTS richardwu.ca CO 250 Course Notes Introduction to Optimization Kanstantsin Pashkovich Spring 2017 University of Waterloo Last Revision: March 4, 2018 Table

More information

Integer Programming ISE 418. Lecture 12. Dr. Ted Ralphs

Integer Programming ISE 418. Lecture 12. Dr. Ted Ralphs Integer Programming ISE 418 Lecture 12 Dr. Ted Ralphs ISE 418 Lecture 12 1 Reading for This Lecture Nemhauser and Wolsey Sections II.2.1 Wolsey Chapter 9 ISE 418 Lecture 12 2 Generating Stronger Valid

More information

Lagrangian Relaxation in MIP

Lagrangian Relaxation in MIP Lagrangian Relaxation in MIP Bernard Gendron May 28, 2016 Master Class on Decomposition, CPAIOR2016, Banff, Canada CIRRELT and Département d informatique et de recherche opérationnelle, Université de Montréal,

More information

Introduction to Integer Programming

Introduction to Integer Programming Lecture 3/3/2006 p. /27 Introduction to Integer Programming Leo Liberti LIX, École Polytechnique liberti@lix.polytechnique.fr Lecture 3/3/2006 p. 2/27 Contents IP formulations and examples Total unimodularity

More information

Decision Procedures An Algorithmic Point of View

Decision Procedures An Algorithmic Point of View An Algorithmic Point of View ILP References: Integer Programming / Laurence Wolsey Deciding ILPs with Branch & Bound Intro. To mathematical programming / Hillier, Lieberman Daniel Kroening and Ofer Strichman

More information

Combinatorial Optimization

Combinatorial Optimization Combinatorial Optimization Lecture notes, WS 2010/11, TU Munich Prof. Dr. Raymond Hemmecke Version of February 9, 2011 Contents 1 The knapsack problem 1 1.1 Complete enumeration..................................

More information

On the knapsack closure of 0-1 Integer Linear Programs. Matteo Fischetti University of Padova, Italy

On the knapsack closure of 0-1 Integer Linear Programs. Matteo Fischetti University of Padova, Italy On the knapsack closure of 0-1 Integer Linear Programs Matteo Fischetti University of Padova, Italy matteo.fischetti@unipd.it Andrea Lodi University of Bologna, Italy alodi@deis.unibo.it Aussois, January

More information

Cutting Plane Methods I

Cutting Plane Methods I 6.859/15.083 Integer Programming and Combinatorial Optimization Fall 2009 Cutting Planes Consider max{wx : Ax b, x integer}. Cutting Plane Methods I Establishing the optimality of a solution is equivalent

More information

Presolve Reductions in Mixed Integer Programming

Presolve Reductions in Mixed Integer Programming Zuse Institute Berlin Takustr. 7 14195 Berlin Germany TOBIAS ACHTERBERG, ROBERT E. BIXBY, ZONGHAO GU, EDWARD ROTHBERG, AND DIETER WENINGER Presolve Reductions in Mixed Integer Programming This work has

More information

On Counting Lattice Points and Chvátal-Gomory Cutting Planes

On Counting Lattice Points and Chvátal-Gomory Cutting Planes On Counting Lattice Points and Chvátal-Gomory Cutting Planes Andrea Lodi 1, Gilles Pesant 2, and Louis-Martin Rousseau 2 1 DEIS, Università di Bologna - andrea.lodi@unibo.it 2 CIRRELT, École Polytechnique

More information

Overview of course. Introduction to Optimization, DIKU Monday 12 November David Pisinger

Overview of course. Introduction to Optimization, DIKU Monday 12 November David Pisinger Introduction to Optimization, DIKU 007-08 Monday November David Pisinger Lecture What is OR, linear models, standard form, slack form, simplex repetition, graphical interpretation, extreme points, basic

More information

Lecture 8: Column Generation

Lecture 8: Column Generation Lecture 8: Column Generation (3 units) Outline Cutting stock problem Classical IP formulation Set covering formulation Column generation A dual perspective 1 / 24 Cutting stock problem 2 / 24 Problem description

More information

LP Relaxations of Mixed Integer Programs

LP Relaxations of Mixed Integer Programs LP Relaxations of Mixed Integer Programs John E. Mitchell Department of Mathematical Sciences RPI, Troy, NY 12180 USA February 2015 Mitchell LP Relaxations 1 / 29 LP Relaxations LP relaxations We want

More information

Lecture 9: Dantzig-Wolfe Decomposition

Lecture 9: Dantzig-Wolfe Decomposition Lecture 9: Dantzig-Wolfe Decomposition (3 units) Outline Dantzig-Wolfe decomposition Column generation algorithm Relation to Lagrangian dual Branch-and-price method Generated assignment problem and multi-commodity

More information

Integer Programming Methods LNMB

Integer Programming Methods LNMB Integer Programming Methods LNMB 2017 2018 Dion Gijswijt homepage.tudelft.nl/64a8q/intpm/ Dion Gijswijt Intro IntPM 2017-2018 1 / 24 Organisation Webpage: homepage.tudelft.nl/64a8q/intpm/ Book: Integer

More information

A Review of Linear Programming

A Review of Linear Programming A Review of Linear Programming Instructor: Farid Alizadeh IEOR 4600y Spring 2001 February 14, 2001 1 Overview In this note we review the basic properties of linear programming including the primal simplex

More information

Chap6 Duality Theory and Sensitivity Analysis

Chap6 Duality Theory and Sensitivity Analysis Chap6 Duality Theory and Sensitivity Analysis The rationale of duality theory Max 4x 1 + x 2 + 5x 3 + 3x 4 S.T. x 1 x 2 x 3 + 3x 4 1 5x 1 + x 2 + 3x 3 + 8x 4 55 x 1 + 2x 2 + 3x 3 5x 4 3 x 1 ~x 4 0 If we

More information

Aggregation and Mixed Integer Rounding to Solve MILPs (Marchand and Wolsey)

Aggregation and Mixed Integer Rounding to Solve MILPs (Marchand and Wolsey) Aggregation and Mixed Integer Rounding to Solve MILPs (Marchand and Wolsey) SAS Institute - Analytical Solutions Lehigh University - Department of Industrial and Systems Engineering July 7, 2005 Classical

More information

Integer Programming ISE 418. Lecture 8. Dr. Ted Ralphs

Integer Programming ISE 418. Lecture 8. Dr. Ted Ralphs Integer Programming ISE 418 Lecture 8 Dr. Ted Ralphs ISE 418 Lecture 8 1 Reading for This Lecture Wolsey Chapter 2 Nemhauser and Wolsey Sections II.3.1, II.3.6, II.4.1, II.4.2, II.5.4 Duality for Mixed-Integer

More information

Decomposition-based Methods for Large-scale Discrete Optimization p.1

Decomposition-based Methods for Large-scale Discrete Optimization p.1 Decomposition-based Methods for Large-scale Discrete Optimization Matthew V Galati Ted K Ralphs Department of Industrial and Systems Engineering Lehigh University, Bethlehem, PA, USA Départment de Mathématiques

More information

Column Generation. MTech Seminar Report. Soumitra Pal Roll No: under the guidance of

Column Generation. MTech Seminar Report. Soumitra Pal Roll No: under the guidance of Column Generation MTech Seminar Report by Soumitra Pal Roll No: 05305015 under the guidance of Prof. A. G. Ranade Computer Science and Engineering IIT-Bombay a Department of Computer Science and Engineering

More information

Lecture 2. Split Inequalities and Gomory Mixed Integer Cuts. Tepper School of Business Carnegie Mellon University, Pittsburgh

Lecture 2. Split Inequalities and Gomory Mixed Integer Cuts. Tepper School of Business Carnegie Mellon University, Pittsburgh Lecture 2 Split Inequalities and Gomory Mixed Integer Cuts Gérard Cornuéjols Tepper School of Business Carnegie Mellon University, Pittsburgh Mixed Integer Cuts Gomory 1963 Consider a single constraint

More information

Yinyu Ye, MS&E, Stanford MS&E310 Lecture Note #06. The Simplex Method

Yinyu Ye, MS&E, Stanford MS&E310 Lecture Note #06. The Simplex Method The Simplex Method Yinyu Ye Department of Management Science and Engineering Stanford University Stanford, CA 94305, U.S.A. http://www.stanford.edu/ yyye (LY, Chapters 2.3-2.5, 3.1-3.4) 1 Geometry of Linear

More information

BCOL RESEARCH REPORT 07.04

BCOL RESEARCH REPORT 07.04 BCOL RESEARCH REPORT 07.04 Industrial Engineering & Operations Research University of California, Berkeley, CA 94720-1777 LIFTING FOR CONIC MIXED-INTEGER PROGRAMMING ALPER ATAMTÜRK AND VISHNU NARAYANAN

More information

Integer programming: an introduction. Alessandro Astolfi

Integer programming: an introduction. Alessandro Astolfi Integer programming: an introduction Alessandro Astolfi Outline Introduction Examples Methods for solving ILP Optimization on graphs LP problems with integer solutions Summary Introduction Integer programming

More information

Lecture 8: Column Generation

Lecture 8: Column Generation Lecture 8: Column Generation (3 units) Outline Cutting stock problem Classical IP formulation Set covering formulation Column generation A dual perspective Vehicle routing problem 1 / 33 Cutting stock

More information

Math Models of OR: Branch-and-Bound

Math Models of OR: Branch-and-Bound Math Models of OR: Branch-and-Bound John E. Mitchell Department of Mathematical Sciences RPI, Troy, NY 12180 USA November 2018 Mitchell Branch-and-Bound 1 / 15 Branch-and-Bound Outline 1 Branch-and-Bound

More information

THE EXISTENCE AND USEFULNESS OF EQUALITY CUTS IN THE MULTI-DEMAND MULTIDIMENSIONAL KNAPSACK PROBLEM LEVI DELISSA. B.S., Kansas State University, 2014

THE EXISTENCE AND USEFULNESS OF EQUALITY CUTS IN THE MULTI-DEMAND MULTIDIMENSIONAL KNAPSACK PROBLEM LEVI DELISSA. B.S., Kansas State University, 2014 THE EXISTENCE AND USEFULNESS OF EQUALITY CUTS IN THE MULTI-DEMAND MULTIDIMENSIONAL KNAPSACK PROBLEM by LEVI DELISSA B.S., Kansas State University, 2014 A THESIS submitted in partial fulfillment of the

More information

is called an integer programming (IP) problem. model is called a mixed integer programming (MIP)

is called an integer programming (IP) problem. model is called a mixed integer programming (MIP) INTEGER PROGRAMMING Integer Programming g In many problems the decision variables must have integer values. Example: assign people, machines, and vehicles to activities in integer quantities. If this is

More information

Bilevel Integer Linear Programming

Bilevel Integer Linear Programming Bilevel Integer Linear Programming TED RALPHS SCOTT DENEGRE ISE Department COR@L Lab Lehigh University ted@lehigh.edu MOPTA 2009, Lehigh University, 19 August 2009 Thanks: Work supported in part by the

More information

21. Solve the LP given in Exercise 19 using the big-m method discussed in Exercise 20.

21. Solve the LP given in Exercise 19 using the big-m method discussed in Exercise 20. Extra Problems for Chapter 3. Linear Programming Methods 20. (Big-M Method) An alternative to the two-phase method of finding an initial basic feasible solution by minimizing the sum of the artificial

More information

Projected Chvátal-Gomory cuts for Mixed Integer Linear Programs. Pierre Bonami CMU, USA. Gerard Cornuéjols CMU, USA and LIF Marseille, France

Projected Chvátal-Gomory cuts for Mixed Integer Linear Programs. Pierre Bonami CMU, USA. Gerard Cornuéjols CMU, USA and LIF Marseille, France Projected Chvátal-Gomory cuts for Mixed Integer Linear Programs Pierre Bonami CMU, USA Gerard Cornuéjols CMU, USA and LIF Marseille, France Sanjeeb Dash IBM T.J. Watson, USA Matteo Fischetti University

More information

3E4: Modelling Choice. Introduction to nonlinear programming. Announcements

3E4: Modelling Choice. Introduction to nonlinear programming. Announcements 3E4: Modelling Choice Lecture 7 Introduction to nonlinear programming 1 Announcements Solutions to Lecture 4-6 Homework will be available from http://www.eng.cam.ac.uk/~dr241/3e4 Looking ahead to Lecture

More information

Reconnect 04 Introduction to Integer Programming

Reconnect 04 Introduction to Integer Programming Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, Reconnect 04 Introduction to Integer Programming Cynthia Phillips, Sandia National Laboratories Integer programming

More information

Computational Experiments with Cross and Crooked Cross Cuts

Computational Experiments with Cross and Crooked Cross Cuts Submitted to INFORMS Journal on Computing manuscript (Please, provide the mansucript number!) Authors are encouraged to submit new papers to INFORMS journals by means of a style file template, which includes

More information

An Integer Cutting-Plane Procedure for the Dantzig-Wolfe Decomposition: Theory

An Integer Cutting-Plane Procedure for the Dantzig-Wolfe Decomposition: Theory An Integer Cutting-Plane Procedure for the Dantzig-Wolfe Decomposition: Theory by Troels Martin Range Discussion Papers on Business and Economics No. 10/2006 FURTHER INFORMATION Department of Business

More information

Lifting for conic mixed-integer programming

Lifting for conic mixed-integer programming Math. Program., Ser. A DOI 1.17/s117-9-282-9 FULL LENGTH PAPER Lifting for conic mixed-integer programming Alper Atamtürk Vishnu Narayanan Received: 13 March 28 / Accepted: 28 January 29 The Author(s)

More information

The dual simplex method with bounds

The dual simplex method with bounds The dual simplex method with bounds Linear programming basis. Let a linear programming problem be given by min s.t. c T x Ax = b x R n, (P) where we assume A R m n to be full row rank (we will see in the

More information

Extended Formulations, Lagrangian Relaxation, & Column Generation: tackling large scale applications

Extended Formulations, Lagrangian Relaxation, & Column Generation: tackling large scale applications Extended Formulations, Lagrangian Relaxation, & Column Generation: tackling large scale applications François Vanderbeck University of Bordeaux INRIA Bordeaux-Sud-Ouest part : Defining Extended Formulations

More information

Mixed Integer Programming Solvers: from Where to Where. Andrea Lodi University of Bologna, Italy

Mixed Integer Programming Solvers: from Where to Where. Andrea Lodi University of Bologna, Italy Mixed Integer Programming Solvers: from Where to Where Andrea Lodi University of Bologna, Italy andrea.lodi@unibo.it November 30, 2011 @ Explanatory Workshop on Locational Analysis, Sevilla A. Lodi, MIP

More information

On the knapsack closure of 0-1 Integer Linear Programs

On the knapsack closure of 0-1 Integer Linear Programs On the knapsack closure of 0-1 Integer Linear Programs Matteo Fischetti 1 Dipartimento di Ingegneria dell Informazione University of Padova Padova, Italy Andrea Lodi 2 Dipartimento di Elettronica, Informatica

More information

Improving Branch-And-Price Algorithms For Solving One Dimensional Cutting Stock Problem

Improving Branch-And-Price Algorithms For Solving One Dimensional Cutting Stock Problem Improving Branch-And-Price Algorithms For Solving One Dimensional Cutting Stock Problem M. Tech. Dissertation Submitted in partial fulfillment of the requirements for the degree of Master of Technology

More information

Optimization Exercise Set n. 4 :

Optimization Exercise Set n. 4 : Optimization Exercise Set n. 4 : Prepared by S. Coniglio and E. Amaldi translated by O. Jabali 2018/2019 1 4.1 Airport location In air transportation, usually there is not a direct connection between every

More information

Outline. Relaxation. Outline DMP204 SCHEDULING, TIMETABLING AND ROUTING. 1. Lagrangian Relaxation. Lecture 12 Single Machine Models, Column Generation

Outline. Relaxation. Outline DMP204 SCHEDULING, TIMETABLING AND ROUTING. 1. Lagrangian Relaxation. Lecture 12 Single Machine Models, Column Generation Outline DMP204 SCHEDULING, TIMETABLING AND ROUTING 1. Lagrangian Relaxation Lecture 12 Single Machine Models, Column Generation 2. Dantzig-Wolfe Decomposition Dantzig-Wolfe Decomposition Delayed Column

More information

Integer Programming. Wolfram Wiesemann. December 6, 2007

Integer Programming. Wolfram Wiesemann. December 6, 2007 Integer Programming Wolfram Wiesemann December 6, 2007 Contents of this Lecture Revision: Mixed Integer Programming Problems Branch & Bound Algorithms: The Big Picture Solving MIP s: Complete Enumeration

More information

The CPLEX Library: Mixed Integer Programming

The CPLEX Library: Mixed Integer Programming The CPLEX Library: Mixed Programming Ed Rothberg, ILOG, Inc. 1 The Diet Problem Revisited Nutritional values Bob considered the following foods: Food Serving Size Energy (kcal) Protein (g) Calcium (mg)

More information

Practical Tips for Modelling Lot-Sizing and Scheduling Problems. Waldemar Kaczmarczyk

Practical Tips for Modelling Lot-Sizing and Scheduling Problems. Waldemar Kaczmarczyk Decision Making in Manufacturing and Services Vol. 3 2009 No. 1 2 pp. 37 48 Practical Tips for Modelling Lot-Sizing and Scheduling Problems Waldemar Kaczmarczyk Abstract. This paper presents some important

More information

Integer Linear Programs

Integer Linear Programs Lecture 2: Review, Linear Programming Relaxations Today we will talk about expressing combinatorial problems as mathematical programs, specifically Integer Linear Programs (ILPs). We then see what happens

More information

23. Cutting planes and branch & bound

23. Cutting planes and branch & bound CS/ECE/ISyE 524 Introduction to Optimization Spring 207 8 23. Cutting planes and branch & bound ˆ Algorithms for solving MIPs ˆ Cutting plane methods ˆ Branch and bound methods Laurent Lessard (www.laurentlessard.com)

More information

An Adaptive Partition-based Approach for Solving Two-stage Stochastic Programs with Fixed Recourse

An Adaptive Partition-based Approach for Solving Two-stage Stochastic Programs with Fixed Recourse An Adaptive Partition-based Approach for Solving Two-stage Stochastic Programs with Fixed Recourse Yongjia Song, James Luedtke Virginia Commonwealth University, Richmond, VA, ysong3@vcu.edu University

More information

Properties of Arithmetic

Properties of Arithmetic Excerpt from "Prealgebra" 205 AoPS Inc. 4 6 7 4 5 8 22 23 5 7 0 Arithmetic is being able to count up to twenty without taking o your shoes. Mickey Mouse CHAPTER Properties of Arithmetic. Why Start with

More information

Optimization Exercise Set n.5 :

Optimization Exercise Set n.5 : Optimization Exercise Set n.5 : Prepared by S. Coniglio translated by O. Jabali 2016/2017 1 5.1 Airport location In air transportation, usually there is not a direct connection between every pair of airports.

More information

A computational study of Gomory cut generators

A computational study of Gomory cut generators A computational study of Gomory cut generators Gerard Cornuéjols 1, François Margot 1, Giacomo Nannicini 2 1. CMU Tepper School of Business, Pittsburgh, PA. 2. Singapore University of Technology and Design,

More information

Critical Reading of Optimization Methods for Logical Inference [1]

Critical Reading of Optimization Methods for Logical Inference [1] Critical Reading of Optimization Methods for Logical Inference [1] Undergraduate Research Internship Department of Management Sciences Fall 2007 Supervisor: Dr. Miguel Anjos UNIVERSITY OF WATERLOO Rajesh

More information

Computational Experiments with Cross and Crooked Cross Cuts

Computational Experiments with Cross and Crooked Cross Cuts Computational Experiments with Cross and Crooked Cross Cuts Sanjeeb Dash IBM Research sanjeebd@us.ibm.com Oktay Günlük IBM Research gunluk@us.ibm.com Juan Pablo Vielma Massachusetts Institute of Technology

More information

Integer Linear Programming (ILP)

Integer Linear Programming (ILP) Integer Linear Programming (ILP) Zdeněk Hanzálek, Přemysl Šůcha hanzalek@fel.cvut.cz CTU in Prague March 8, 2017 Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 1 / 43 Table of contents

More information

Written Exam Linear and Integer Programming (DM545)

Written Exam Linear and Integer Programming (DM545) Written Exam Linear and Integer Programming (DM545) Department of Mathematics and Computer Science University of Southern Denmark Monday, June 22, 2015, 10:00 14:00, Festsalen, Niels Bohr Allé 1 The exam

More information

The Strength of Multi-row Aggregation Cuts for Sign-pattern Integer Programs

The Strength of Multi-row Aggregation Cuts for Sign-pattern Integer Programs The Strength of Multi-row Aggregation Cuts for Sign-pattern Integer Programs Santanu S. Dey 1, Andres Iroume 1, and Guanyi Wang 1 1 School of Industrial and Systems Engineering, Georgia Institute of Technology

More information

Gestion de la production. Book: Linear Programming, Vasek Chvatal, McGill University, W.H. Freeman and Company, New York, USA

Gestion de la production. Book: Linear Programming, Vasek Chvatal, McGill University, W.H. Freeman and Company, New York, USA Gestion de la production Book: Linear Programming, Vasek Chvatal, McGill University, W.H. Freeman and Company, New York, USA 1 Contents 1 Integer Linear Programming 3 1.1 Definitions and notations......................................

More information

Introduction to optimization and operations research

Introduction to optimization and operations research Introduction to optimization and operations research David Pisinger, Fall 2002 1 Smoked ham (Chvatal 1.6, adapted from Greene et al. (1957)) A meat packing plant produces 480 hams, 400 pork bellies, and

More information

Solving LP and MIP Models with Piecewise Linear Objective Functions

Solving LP and MIP Models with Piecewise Linear Objective Functions Solving LP and MIP Models with Piecewise Linear Obective Functions Zonghao Gu Gurobi Optimization Inc. Columbus, July 23, 2014 Overview } Introduction } Piecewise linear (PWL) function Convex and convex

More information

PART 4 INTEGER PROGRAMMING

PART 4 INTEGER PROGRAMMING PART 4 INTEGER PROGRAMMING 102 Read Chapters 11 and 12 in textbook 103 A capital budgeting problem We want to invest $19 000 Four investment opportunities which cannot be split (take it or leave it) 1.

More information

IE 400: Principles of Engineering Management. Simplex Method Continued

IE 400: Principles of Engineering Management. Simplex Method Continued IE 400: Principles of Engineering Management Simplex Method Continued 1 Agenda Simplex for min problems Alternative optimal solutions Unboundedness Degeneracy Big M method Two phase method 2 Simplex for

More information

Strengthened Benders Cuts for Stochastic Integer Programs with Continuous Recourse

Strengthened Benders Cuts for Stochastic Integer Programs with Continuous Recourse Strengthened Benders Cuts for Stochastic Integer Programs with Continuous Recourse Merve Bodur 1, Sanjeeb Dash 2, Otay Günlü 2, and James Luedte 3 1 Department of Mechanical and Industrial Engineering,

More information

3.7 Strong valid inequalities for structured ILP problems

3.7 Strong valid inequalities for structured ILP problems 3.7 Strong valid inequalities for structured ILP problems By studying the problem structure, we can derive strong valid inequalities yielding better approximations of conv(x ) and hence tighter bounds.

More information

5 Integer Linear Programming (ILP) E. Amaldi Foundations of Operations Research Politecnico di Milano 1

5 Integer Linear Programming (ILP) E. Amaldi Foundations of Operations Research Politecnico di Milano 1 5 Integer Linear Programming (ILP) E. Amaldi Foundations of Operations Research Politecnico di Milano 1 Definition: An Integer Linear Programming problem is an optimization problem of the form (ILP) min

More information

MINLP: Theory, Algorithms, Applications: Lecture 3, Basics of Algorothms

MINLP: Theory, Algorithms, Applications: Lecture 3, Basics of Algorothms MINLP: Theory, Algorithms, Applications: Lecture 3, Basics of Algorothms Jeff Linderoth Industrial and Systems Engineering University of Wisconsin-Madison Jonas Schweiger Friedrich-Alexander-Universität

More information

maxz = 3x 1 +4x 2 2x 1 +x 2 6 2x 1 +3x 2 9 x 1,x 2

maxz = 3x 1 +4x 2 2x 1 +x 2 6 2x 1 +3x 2 9 x 1,x 2 ex-5.-5. Foundations of Operations Research Prof. E. Amaldi 5. Branch-and-Bound Given the integer linear program maxz = x +x x +x 6 x +x 9 x,x integer solve it via the Branch-and-Bound method (solving

More information

The Master Equality Polyhedron: Two-Slope Facets and Separation Algorithm

The Master Equality Polyhedron: Two-Slope Facets and Separation Algorithm The Master Equality Polyhedron: Two-Slope Facets and Separation Algorithm by Xiaojing Wang A thesis presented to the University of Waterloo in fulfillment of the thesis requirement for the degree of Master

More information

Integer Programming: Cutting Planes

Integer Programming: Cutting Planes OptIntro 1 / 39 Integer Programming: Cutting Planes Eduardo Camponogara Department of Automation and Systems Engineering Federal University of Santa Catarina October 2016 OptIntro 2 / 39 Summary Introduction

More information

Lectures 6, 7 and part of 8

Lectures 6, 7 and part of 8 Lectures 6, 7 and part of 8 Uriel Feige April 26, May 3, May 10, 2015 1 Linear programming duality 1.1 The diet problem revisited Recall the diet problem from Lecture 1. There are n foods, m nutrients,

More information

SOLVING INTEGER LINEAR PROGRAMS. 1. Solving the LP relaxation. 2. How to deal with fractional solutions?

SOLVING INTEGER LINEAR PROGRAMS. 1. Solving the LP relaxation. 2. How to deal with fractional solutions? SOLVING INTEGER LINEAR PROGRAMS 1. Solving the LP relaxation. 2. How to deal with fractional solutions? Integer Linear Program: Example max x 1 2x 2 0.5x 3 0.2x 4 x 5 +0.6x 6 s.t. x 1 +2x 2 1 x 1 + x 2

More information

3.10 Lagrangian relaxation

3.10 Lagrangian relaxation 3.10 Lagrangian relaxation Consider a generic ILP problem min {c t x : Ax b, Dx d, x Z n } with integer coefficients. Suppose Dx d are the complicating constraints. Often the linear relaxation and the

More information

CS 6820 Fall 2014 Lectures, October 3-20, 2014

CS 6820 Fall 2014 Lectures, October 3-20, 2014 Analysis of Algorithms Linear Programming Notes CS 6820 Fall 2014 Lectures, October 3-20, 2014 1 Linear programming The linear programming (LP) problem is the following optimization problem. We are given

More information

x 1 + x 2 2 x 1 x 2 1 x 2 2 min 3x 1 + 2x 2

x 1 + x 2 2 x 1 x 2 1 x 2 2 min 3x 1 + 2x 2 Lecture 1 LPs: Algebraic View 1.1 Introduction to Linear Programming Linear programs began to get a lot of attention in 1940 s, when people were interested in minimizing costs of various systems while

More information

CSE 206A: Lattice Algorithms and Applications Spring Basic Algorithms. Instructor: Daniele Micciancio

CSE 206A: Lattice Algorithms and Applications Spring Basic Algorithms. Instructor: Daniele Micciancio CSE 206A: Lattice Algorithms and Applications Spring 2014 Basic Algorithms Instructor: Daniele Micciancio UCSD CSE We have already seen an algorithm to compute the Gram-Schmidt orthogonalization of a lattice

More information

BBM402-Lecture 20: LP Duality

BBM402-Lecture 20: LP Duality BBM402-Lecture 20: LP Duality Lecturer: Lale Özkahya Resources for the presentation: https://courses.engr.illinois.edu/cs473/fa2016/lectures.html An easy LP? which is compact form for max cx subject to

More information