Water Resources Development and Management Optimization (Integer Programming) CVEN 5393 Mar 11, 2013 Acknowledgements • Dr. Yicheng Wang (Visiting Researcher, CADSWES during Fall 2009 – early Spring 2010) for slides from his Optimization course during Fall 2009 • Introduction to Operations Research by Hillier and Lieberman, McGraw Hill Today’s Lecture • Integer Programming – Examples • R-resources / demonstration INTEGER PROGRAMMING Integer Programming In many practical problems, the decision variables actually make sense only if they have integer values. If some or all of the decision variables in a linear programming formulation are required to have integer values, then it is an Integer Programming (IP) problem. The mathematical model for integer programming is the linear programming model with one additional restriction that some or all of the decision variables must have integer values. If only some of the decision variables are required to have integer values, then the model is called Mixed Integer Programming (MIP) problem. If all of the decision variables are required to have integer values, then the model is called Pure Integer Programming problem. In some decision-making problems, the only two possible choices for decisions are yes and no. 1. Examples of Integer Programming (1) Example of BIP All the decision variables have the binary form x1: building a factory in Los Angeles? Yes (x1=1) or No (x1=0) x2: building a factory in San Francisco? Yes (x2=1) or No (x2=0) x3: building a warehouse in Los Angeles? Yes (x3=1) or No (x3=0) x4: building a warehouse in San Francisco? Yes (x4=1) or No (x4=0) Because the last two decisions represent mutually exclusive alternatives (the company wants at most one new warehouse), we need the constraint Furthermore, decisions 3 and 4 are contingent decisions, because they are contingent on decisions 1 and 2, respectively (the company would consider building a warehouse in a city only if a new factory also were going there). Thus, in the case of decision 3, we require that x3 = 0 if x1 = 0. This restriction on x3 (when x1 = 0) imposed by adding the constraint Similarly, the requirement that x4 = 0 if x2 = 0 is imposed by adding the constraint The complete BIP model for this problem is (2) Example of MIP 2. Some Perspectives on Solving Integer Programming Problems subject to Question 1: Pure IP problems have a finite number of feasible solutions. Is it possible to solve pure IP problems by exhaustive enumeration ? Consider the simple case of BIP problems. With n variables, there are 2n solutions to be considered. Each time n is increased by 1, the number of solutions is doubled. n=10, 1024 solutions n=20, more than 1 million solutions n=30; more than 1 billion solutions. Question 2: Is IP easier to solve than LP because IP tends to have much fewer feasible solutions than LP ? Question 3: Can we use the approximate procedure of simply applying the simplex method to get an LP optimal solution and then rounding the noninteger values of the solution to integers ? A B subject to C A B 3. The Branch-and-Bound Technique and Its Application to BIP The Branch-and-Bound Technique is the most popular mode for IP algorithms. The basic concept underlying the branch-and-bound technique is to divide and conquer. The original problem is divided into smaller and smaller subproblems until these subproblems can be conquered. The dividing (branching) is done by partitioning the entire set of feasible solutions into smaller and smaller subsets. The conquering (fathoming) is done partially by bounding how good the best solution in the subset can be and then discarding the subset if its bound indicates that it cannot possibly contain an optimal solution for the original problem. California Manufacturing Co. Example Branching Original problem Solution Tree The variable used to do this branching at any iteration by assigning values to the variable is called the branching variable Bounding LP relaxation of the whole problem LP relaxation of subproblem 1 LP relaxation of subproblem 2 Fathoming Three cases where a subproblem is conquered (fathomed). (1) A subproblem is conquered if its LP relaxation has an integer optimal solution (2) A subproblem is conquered if it is inferior to the current incumbent. Since Z*=9, there is no reason to consider further any subproblem whose bound ≤ 9, since such a subproblem cannot have a feasible solution better than the incumbent. Stated more generally, a subproblem is fathomed whenever its (3) If the simplex method finds that a subproblem’s LP relaxation has no feasible solutions, then the subproblem itself must have no feasible solutions, so it can be dismissed (fathomed). Using the BIP Branch-and Bround Algorithm to Solve the California Manufacturing Co. Example (1) Initiliazation Set Z*= − ∞. Solve the relaxation of the whole problem by the simplex method. The optimal solution of the relaxation is Subproblem 1 1)The bound of the whole problem is less than Z*. 2)The relaxation of the whole problem has feasible solution. 3)The optimal solution includes a noninteger value of x1. So the whole problem can not be fathomed and should be divided (branched) into subproblems. Subproblem 2 (2) Iteration 1 Subproblem 1 with x1=0. The optimal solution of its relaxation is (0,1,0,1) with Z=9. The optimal solution is integer, which is the best feasible solution found so far. So this integer solution with Z*=9 is stored as the first incumbent. Since the optimal solution of its relaxation is integer, subproblem 1 is fathomed Subproblem 2 with x1=1. Because subproblem 2 is not fathomed, it should be divided into subproblems. (3) Iteration 2 The only remaining subproblem corresponds to the x1=1 node, so we shall branch from this node to create the two new subproblems. Subproblem 3 with x1=1, x2=0. LP relaxation of subproblem 3 LP relaxation of subproblem 4 Bound for subproblem 3 : Bound for subproblem 4 : Subproblem 4 with x1=1, x2=1. Subproblem 1 Subproblem 2 Subproblem 4 Subproblem 3 (4) Iteration 3 So far, the algorithm has created 4 subproblems. Subproblem 1 has been fathomed, and subproblem 2 has been replaced by subproblems 3 and 4, but these last two remain under consideration. Because they were created simultaneously, but subproblem 4 has the larger bound, the next branching is done from subproblem 4, which creates the following new subproblems LP relaxation of subproblem 5 : Subproblem 5 with x =1, x =1, x =0. 1 2 3 LP relaxation of subproblem 6 : No feasible solutions Bound for subproblem 5 : Z≤ 16 Subproblem 1 Subproblem 6 with x1=1, x2=1, x3=1. Subproblem 3 Subproblem 5 Subproblem 2 Subproblem 4 Subproblem 6 (5) Iteration 4 The subproblems 3 and 5 corresponding to nodes (1,0) and (1,1,0) remain under consideration. Since subproblem 5 was created most recently, so it is selected for branching. Since x4 is the last variable, fixing its value at either 0 or 1 actually creates a single solution rather than subproblems. These single solutions are (1,1,0,0) with Z=14 is better than the incumbent with Z*=9, so (1,1,0,0) with Z*=14 becomes the new incumbent. Because a new incumbent has been found, we reapply fathoming test 1 with the new incumbent to the only remaining subproblem 3. Subproblem 1 Subproblem 3 Subproblem 2 Subproblem 5 Subproblem 4 Subproblem 6 Subproblem3: There are no remaining (unfathomed) subproblems. Therefore, the optimality test indicates that the current incumbent is optimal. 4. The Branch-and-Bound Algorithm for MIP An MIP Example Change 1:The bounding step BIP algorithm: With integer coefficients in the objective function of BIP, the value of Z for the optimal solution for the subproblem’s LP relaxation is rounded down to obtain the bound, because any feasible solution for the subproblem must have an integer Z. MIP algorithm: With some of the variables not integer-restricted, the bound is the value of Z without rounding down. Change 2: The fathoming test BIP algorithm: With a BIP problem, one of the fathoming tests is that the optimal solution for the subproblem’s LP relaxation is integer, since this ensures that the solution is feasible, and therefore optimal, for the subproblem.. MIP algorithm: With a MIP problem, the test requires only that the integer-restricted variables be integer in the optimal solution for the subproblem’s LP relaxation, because this suffices to ensure that the solution is feasible, and therefore optimal, for the subproblem.. Subproblem 1 Subproblem 2 Change 3:Choice of the branching variable BIP algorithm: The next variable in the natural ordering x1, x2, …, xn is chosen automatically. MIP algorithm: The only variables considered are the integer-restricted variables that have a noninteger value in the optimal solution for the LP relaxation of the current subproblem. The rule for choosing among these variables is to select the first one in the natural ordering. Change 4:The values assigned to the branching variables BIP algorithm: The binary variable is fixed at 0 and 1, respectively, for the 2 new subproblems. MIP algorithm: The general integer-restricted variable is given two ranges for the 2 new subproblems. Subproblem 3 Subproblem 1 Subproblem 2 Subproblem 4 Subproblem 3 Subproblem 5 Subproblem 6 Subproblem 5 Subproblem 3 Subproblem 1 Subproblem 6 Subproblem 4 Subproblem 2 INTEGER / MIXED-INTEGER PROGRAMMING (PROF. MCMAKEE NOTES) INTRODUCTION & EXAMPLES HUGHES-MCMAKEE-NOTES\CHAPTER06.PDF Hughes-McMakee-notes\chapter-07.pdf