Branch and Bound is a general search method. Starting by considering the root problem (the original problem with the complete feasible region), the lower-bounding and upper-bounding procedures are applied to the root problem. If the bounds match, then an optimal solution has been found and the procedure terminates. 

.Introduction   Otherwise. but not necessarily globally optimal. it is a feasible solution to the full problem. the feasible region is divided into two or more regions. these subproblems partition the feasible region. If an optimal solution is found to a subproblem. The algorithm is applied recursively to the subproblems.

the node can be removed from consideration. or until some specified threshold is met between the best solution found and the lower bounds on all unsolved subproblems. no globally optimal solution can exist in the subspace of the feasible region represented by the node. Therefore.  . The search proceeds until all nodes have been solved or pruned.Introduction  If the lower bound for a node exceeds the best known feasible solution.

n .«.t. n j = 1.Algorithm for LP-Based Branch and Bound Max z =cj xj s.m j = 1. aij xj ” bi xj • 0 Lj ” xj ” Uj xj are integers i = 1.«.«. n j = 1.«.

Step 1: Branching. Otherwise select a program from the master list. . Let the master list initially include only the original linear program.Algorithm for LP-Based Branch and Bound Step 0: Initialization. let t=1. Stop if the master list is empty. and z1 = ..

Step 3: If the solution to the solved LP satisfies the integer constraints. then store the solution and let zt+1 equal the objective function value for the solution. Solve the problem taken from the master list. If the integer condition is not satisfied. go to Step 4. Otherwise go to Step 3. go to Step 1. Since this branch has been fathomed.Algorithm for LP-Based Branch and Bound Step 2: Relaxation. or if its objective function value z is less than zt (this branch has been fathomed). let zt+1 = zt and go to Step 1. If the problem has no feasible solution. .

. Select any variable xj whose value bj in the current solution does not satisfy the integer requirement. these problems are identical to the one just solved except that in one we add: xj [bj ]+1 and in the other we add: xj [bj ] Let zt+1 = zt and go to Step 1.Algorithm for LP-Based Branch and Bound Step 4: Separation. Add two problems to the master list.

7x1+4x2 ”13 x1 •0.t.Example Max Z = 21x1+11x2 s. x2 •0 x1 .x2 are integers .

Create Problem 1. . since X1 not integer-valued.)      Step 0: Set Z1 = -g. Step 2: Solve Problem 1. Place on master list. Step 1: Remove Problem 1 from the master list.Example (cont. Step 3: Branch on X1. Step 4: Create Problem 2 & 3.

)     Step 0: Set Z2 = -g. . Step 1: Remove Problem 2 from the master list. Stop. Step 2: Solve Problem 2.Example (cont. Step 3: No feasible solution.

)      Step 0: Set Z3 = -g Step 1: Remove Problem 3 from the master list Step 2: Solve Problem 3 Step 3: Branch on X2. since X2 not integer-valued Step 4: Create Problem 4 & 5 place on master list .Example (cont.

)     Step 0: Set Z4 = -g. Step 3: Solution satisfies integer constraint. Record the solution and stop! . Step 2: Solve Problem 4.Example (cont. Step 1: Remove Problem 4 from the master list.

. terminate computations until master list is empty.Example (cont.)  Following the same steps.

3 or newer Optimization Toolbox BNB  The algorithm detects 0-1 variables with constrains like: x(a)+x(b)+x(c)+. you need: Matlab 5. To function BNB.=1 and adapts the branching to it.mathworks.0 The Courier-LD font  .Branch and Bound Codes in Matlab  Available Matlab code for Branch and Bound algorithm on the following ftp site: ftp://ftp..

 . the branch-and-bound technique has proven to be reasonably efficient on practical problems. and it has the added advantage that it solves continuous linear programs as sub problems. The technique is also used in a lot of software in global optimization.Conclusion  Although a number of algorithms have been proposed for the integer linear programming problem.

Sign up to vote on this title
UsefulNot useful