Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
223 views15 pages

Branch and Bound Algorithms

Branch and bound is a general search method for solving integer programming problems. It works by considering the original problem and partitioning the feasible region into subproblems. It recursively applies the algorithm to the subproblems, pruning regions where no optimal solution can exist. When a feasible integer solution is found for a subproblem, it provides an upper bound for pruning other regions. The process continues until all subproblems are solved or pruned.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
223 views15 pages

Branch and Bound Algorithms

Branch and bound is a general search method for solving integer programming problems. It works by considering the original problem and partitioning the feasible region into subproblems. It recursively applies the algorithm to the subproblems, pruning regions where no optimal solution can exist. When a feasible integer solution is found for a subproblem, it provides an upper bound for pruning other regions. The process continues until all subproblems are solved or pruned.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 15

Introduction

 

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, the feasible region is divided into two or more regions, these subproblems partition the feasible region. The algorithm is applied recursively to the subproblems. If an optimal solution is found to a subproblem, it is a feasible solution to the full problem, but not necessarily globally optimal.

Introduction


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

Algorithm for LP-Based Branch and Bound

Max z =cj xj s.t. aij xj bi xj 0 Lj xj Uj xj are integers

i = 1,,m j = 1,, n j = 1,, n j = 1,, n

Algorithm for LP-Based Branch and Bound


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

Algorithm for LP-Based Branch and Bound


Step 2: Relaxation. Solve the problem taken from the master list. If the problem has no feasible solution, 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. Otherwise go to Step 3. 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. Since this branch has been fathomed, go to Step 1. If the integer condition is not satisfied, go to Step 4.

Algorithm for LP-Based Branch and Bound


Step 4: Separation. Select any variable xj whose value bj in the current solution does not satisfy the integer requirement. Add two problems to the master list; 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.

Example

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

Example (cont.)
 

 

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

Example (cont.)
 

 

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

Example (cont.)
 

 

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 1: Remove Problem 4 from the master list. Step 2: Solve Problem 4. Step 3: Solution satisfies integer constraint. Record the solution and stop!

Example (cont.)


Following the same steps, terminate computations until master list is empty.

Branch and Bound Codes in Matlab




Available Matlab code for Branch and Bound algorithm on the following ftp site: ftp://ftp.mathworks.com/pub/contrib/v5/optim/

BNB

The algorithm detects 0-1 variables with constrains like: x(a)+x(b)+x(c)+..=1 and adapts the branching to it. To function BNB, you need:
Matlab 5.3 or newer Optimization Toolbox 2.0 The Courier-LD font

Conclusion


Although a number of algorithms have been proposed for the integer linear programming problem, 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.

You might also like