WOOD 492 MODELLING FOR DECISION SUPPORT Lecture 19 Branch and Bound Algorithm IP Solution Approach • Solve the LP relaxation and round the answers – Normally the rounded answers are not feasible, or are far from optimal • Exhaustive search of all feasible points – Computationally infeasible due to exponential growth of the number of answers • Branch and Bound – Divide problem into smaller problems by portioning the feasible solution region • Cutting Planes Oct 19, 2012 Wood 492 - Saba Vahid 2 Branch and Bound method (for BIP) 1. Initialize: set Z ⃰ value to -∞ (for a maximization problem) or ∞ (for a minimization problem). We call Z ⃰ the “incumbent” solution. 2. Branching: Partition the set of feasible solutions by fixing the value of one of the binary variables (Xi=0, and Xi=1) to create two subproblems (these decision points are called “nodes”, and branches connect the nodes together) 3. Bounding: solve the LP relaxation of each sub-problem to find the bounds on the optimal Z value. (LP relaxation is when we allow the binary variables to have any value between 0 and 1). If the optimal solution of the relaxation is not integer, we round it down (for maximization problems) or up (for minimization problems). The rounded Z values are the “bounds” on the optimal solution of each sub-problem. Oct 19, 2012 Wood 492 - Saba Vahid 3 Branch and Bound method (for BIP) 4. Fathoming: there are three ways in which we can fathom (dismiss) a sub-problem (described in the next slide). When a sub-problem is fathomed, we no longer divide it into further sub-problems. 5. Continue with branching of the remaining sub-problems until there are no more sub-problems, the “incumbent” solution is the optimal solution. If no incumbent solution exists, the problem is infeasible. Oct 19, 2012 Wood 492 - Saba Vahid 4 Fathoming of a branch 1. If the optimal solution to the LP relaxation of a branch is an integer solution (all binary variables are found to be either 0 or 1), it is also the optimal solution of the sub-problem. We compare the Z value with Z ⃰ and if it is better, this Z will be stored as the new incumbent solution (Z ⃰ ). We then stop dividing this branch into smaller ones because any further solution will be worse than the current Z value. 2. If the bound on the optimal solution of a branch (sub-problem) is worse than the value of the current incumbent, we fathom that branch, because the optimal solution of that branch can not be better than the incumbent. 3. If the LP-relaxation of a sub-problem is infeasible, then the subproblem itself will be infeasible, so we will fathom that branch. Oct 19, 2012 Wood 492 - Saba Vahid 5 Solving Example 9 with branch and bound • Factory and warehouse location problem in LA and SF • Obj Z=9 X1 +5 X2 +6 X3 +4 X4 (Total NPV) • Subject to: 6 X1+3 X2+ 5 X3+ 2 X4 X3+ -X1 + X3 - X2 Oct 19, 2012 X4 <= 10 (Total Capital) <= 1 (One warehouse) <= 0 (warehouse and factory + X4 <= 0 in the same city) Xi <= 1 (Upper bound) Xi >= 0 (Lower Bound) Wood 492 - Saba Vahid 6 Solving Example 9 x1 =0 Optimal solution Z ⃰ = 9, branch fathomed Z=9 (0,1,0,1) All Z= 16.5 → Z=16 (5/6,1,0,1) Z ⃰ =-∞ x1 =1 Z= 16.5 → Z=16 (1,4/5,0,4/5) x2 =0 x4 =0 Z= 13.8 → Z=13 (1,0,4/5,0) x3 =0 Z=14 (1,1,0,0) x2 =1 Z=16 (1,1,0,1/2) Z=16 (1,1,0,1/2) x3 =1 Z ⃰ = 14 branch fathomed x4 =1 Infeasible Branch fathomed Infeasible Branch fathomed Oct 19, 2012 Wood 492 - Saba Vahid 7 Example 11: Branch and Bound method • A company is assembling a team of 4 members to carry out 4 operations, and wants to maximize the overall success probability • Decision: Which member should be assigned to each operation? • Constraints: – – – – Each member can carry out exactly one operation All operations need to be carried out for the process to be complete Each member has a different success rate for each operation (Table 1) for example if operations 1-2-3-4 are assigned to ABCD, the total success probability is: 0.9 * 0.6 * 0.85 * 0.7 = 0.3213 Table 1. Success rate of each member for each operation Oct 19, 2012 Wood 492 - Saba Vahid 8 Example 11 • The nodes in our problem are different allocations of people to operations, for example ABCD is a node (allocating 1st task to A, 2nd task To B, and so on) • The firs incumbent is -∞ • The root node corresponds to the original problem when no subproblems are defined. • The branching process is shown in your handout and in the web demo at: http://optlab-server.sce.carleton.ca/POAnimations2007/BranchAndBound.html Oct 19, 2012 Wood 492 - Saba Vahid 9