Lecture 4 D. Example IP Solution Technique -- Branch and Bound 1. Relationship between IP and LP programs We want to determine e.g., z* = max z = 5x1 + 8x2 (where z* indicates an IP solution is desired) subject to x1 + x2 6 5x1+ 9x2 45 x1, x2 0 and integer See Figure 9.8. Lo = solution space defined by the constraint set If we drop the integrality restrictions, we have a linear program. We call this the associated linear program LP optimum solution from the graph: x1 = 2.25, x2= 3.75, z = 41.25 What is the IP solution? Note that rounding off the LP solution (decision variables) results in an infeasible solution: x1 = 2, x2 = 4, z = infeasible. The nearest feasible solution point to the LP optimum that is integer is x1 = 2, x2 = 3, z = 34 (integer feasible point) Neither of these is the IP optimum solution! The IP solution is: x1 = 0, x2 = 5, z* = 40 IP optimum solution Infeasible solution LP optimum solution Nearest integer point Objective Function 35 2. Basic procedure a. General features of an IP solution An IP solution is an LP solution that is further constrained by the IP requirements: The LP optimum is the upper bound on z of the IP (z*) The integer feasible point is the lower bound on z of the LP (zo) This property is taken advantage of in the branch and bound technique. b. Solution procedure (1) Drop the integrality restrictions and solve the associated LP See from the previous example that z* zo = 41.25 (since LP optimum is the upper bound on z*) where z* = the IP solution (desired) zo = the associated LP solution (can calculate) But x1 and x2 must be integers, and the z* coefs. are also integers, this implies, z* 41.0 (2) Subdivide the solution space and solve the associated LPs The LP decision variables are: x1 = 2.25 x2 = 3.75 Both must be integers in the z* solution. Divide the solution space and attempt to make either decision variable integer. e.g., we know that in the integer solution x2 cannot be 3.75. It must be either x2 3.0 or x2 4.0 Divide the previous solution space -- see Figure 9.9 We have two new solution spaces: L1 and L2. 36 (x1 = 2.25, x2 =3.75) Exclude the old LP solution of x2 = 3.75. (note: could do this on x1 first also). See what we have done so far: ** ENUMERATION TREE ** (Figure 9.10) The constraint set is subdivided by the additional constraints as defined above, but still includes the original constraints along the boundaries L0 x1 = 2.25 x2 = 3.75 z = 41.25 z* 41 z = 5x1 + 8x2 x2 3 x2 ≥ 4 L1 L2 Fig. 9.10 Enumeration tree. 37 (3) Now solve the associated LP (as the original one) in each sub-region (a) L1 = upper sub-region defined by x2 4 additional constraint In this region, the optimal solution is x2 = 4 x1 = 1.8 zo = 5(1.8) + 8(4.0) = 41 (b) Note: x1 is not integer. Need to further subdivide the L1 into: L3: x1 2.0 (x1 = 1.8) L4: x1 1.0 See Figures 9.11, 9.12 x1 ≥ 2 => infeasible L4 L0 x1 = 2.25 x2 = 3.75 z = 41.25 x2 4 z* 41 x2 3 L2 L1 x1 = 1.8 x2 = 4.0 z = 41.0 x1 2 x1 1 L4 L3 Infeasible * * indicates end of branch FIG. 9.12 38 (c) See that x1 2.0 leads to an infeasible solution since it is outside of the original solution space. This is indicated by an asterisk at the bottom of the box on Figure 9-12. (d) The solution space L4 is feasible (see Figure 9.9), so consider the solution space L4 next. Solve the associated LP in L4. The optimal solution is: x1 = 1.0 x2 = 4.44 zo = 5 (1.0) + 8 (4.44) = 40.52 L0 x1 = 2.25 x2 = 3.75 z = 41.25 x2 3 x2 4 L1 L2 x1 = 1.8 x2 = 4.0 z = 41.0 x1 2 L3 Infeasible z* 41 x1 1 L4 x1 = 1 x2 = 4.44 z = 40.55 * Figure 9.16. 39 (e) Note that x2 (= 4.44) is not integer. Can further subdivide L4 into: L5: x2 4.0 L6: x2 5.0 See Figure 9.13 L6 x2 ≥ 5.0 x2 ≤ 4.0 L5 (f) Consider L5 next. The solution of the associated LP is: x1 = 1.0 x2 = 4.0 zo = 5 (1.0) + 8 (4.0) = 37.0 This is the best integer solution for L5. No integer can give a larger value for the objective function. Therefore the region does not need to be subdivided further. We now have as a bound on the solution: 37 z* 41 (37 is the lower bound) See Figure 9.14. 40 L0 x1 = 2.25 x2 = 3.75 z = 41.25 z* 41 x2 3 x2 4 L1 L2 x1 = 1.8 x2 = 4.0 z = 41.0 x1 2 x1 1 L3 L4 x1 = 1 x2 = 4.44 z = 40.55 Infeasible * x2 5 x2 4 L5 L6 z* 37 x1 = 1 x2 = 4 z = 37 * Figure 9.14. (g) We still have not considered the feasible solutions in regions 2 and 6 Consider L6 next. There is only one feasible point in this region: x1 = 0.0 x2= 5.0 zo = 5 (0.0) + 8 (5.0) = 40.0 See Figure 9.15 41 L0 x1 = 2.25 x2 = 3.75 z = 41.25 x2 3 x2 4 L1 L2 x1 = 1.8 x2 = 4.0 z = 41.0 x1 2 x1 = 3 x2 = 3 z = 39 x1 1 L3 * L4 x1 = 1 x2 = 4.44 z = 40.55 Infeasible * z* 41 x2 5 x2 4 L5 x1 = 1 x2 = 4 z = 37 L6 z* 37 * x1 = 0 x2 = 5 z = 40 z* 40 (Maximized) * Figure 9.15 This is an improvement in restricting the range on z*. Now, 40 z* 41 (h) L2 could contain a better solution. Consider L2 (only x2 3 added to original constraint set): 42 x1 = 3.0 x2 = 3.0 z o = 5 (3.0) + 8 (3.0) = 39.0 This is the best integer solution in L2 but not as good as L6. So consider L6 optimal. (Figure 9.15) (3) Note: Need only to drive each branch to a solution z* below the best integer one, not to an infeasible or integer solution. 3. Summary a. Subdivide the feasible region to develop bounds on z* z z* z where z = highest value of any feasible integer point encountered z = optimal value of the zo or the largest value for any “hanging box” (a box that has not been subdivided) b. After considering one subdivision, must move to another subdivision and analyze it. c. If any of the following apply, do not subdivide: (1) The LP over Lj is infeasible (2) The optimal LP solution over Lj is integer (3) The value of the LP solution zo over Lj satisfies zo z (if maximizing) In all cases, Lj has “been fathomed”. The Lj is “fathomed” by infeasibility, integrality, or bounds. 43 Homework 3 Problem 1: As the leader of a team surveying the feasibility of rubber-dam projects, you must determine the least-cost selection of five out of 10 possible sites. Label the sites S1, S2, ..., S10, and the development costs associated with each as C1, C2, ..., C10. Regional development restrictions are such that: (a) Selecting sites S1 and S7 will prevent you from selecting site S8. (b) Selecting site S3 or S4 prevents you from selecting site S5. (c) Of the group S5, S6, S7, S8, at most two sites may be selected. (d) If site S9 is selected, site 10 also must be selected (the reverse is not mandatory). Formulate an integer program (IP) to determine the minimum-cost scheme that satisfies these restrictions. Problem 2: Solve the following problem (by hand) using the branch-and-bound technique. You can solve the associated linear program required at each step by using LINDO in the LP mode. Just remember to use the appropriate set of constraints as you subdivide the domain. minimize z = 2x1 -3x2 - 4x3 subject to -x1 + x2+ 3x3 3x1 + 2x2 - x3 x1, x2, x3 Problem 3: Explore the integer-programming capabilities of LINDO by solving the branch-andbound example presented in class on LINDO. Invoke the integer program-solving mode per the instructions in the LINDO manual (using the ‘GIN’ command). Interpret the output and compare the results to those found in class. 44