You are on page 1of 2

Branch and Bound (B & B) Algorithm

Branch and bound algorithm is a systematic method for solving optimization


problems. B&B is a rather general optimization technique that applies where the
greedy method and dynamic programming fail. The branch and bound design
strategy is very similar to backtracking in that a state space tree is to solve a
problem.
Similarity between B&B and Backtracking :
A state space tree is used to solve a problem
Difference between B&B and Backtracking :
1. The B&B algorithm doesn’t limit us to any particular way of traversing the
tree.
2. Used only for optimization problems since the backtracking algorithm
requires the using of DFS traversal and is used for non-optimization problems.
3. Backtracking is DFS based pruning whereas B&B is BFS based pruning.
Disadvantage of B&B algorithm :
However it is much slower. Indeed, it often leads to exponential time
complexities in the worst case. On the other hand, if applied carefully it can lead
to algorithms that run reasonably fast on average.
The basic idea of B&B algorithm :
Set up a bounding function, which is used to compute a bound (for the value of
the objective function) at a node on a state space tree and determine it is
promising.
Promising (if the bound is better than the value of the best solution so far)
: expand beyond the node.
Non-promising (if the bound is no better than the value of the best solution
so far) : not expand beyond the node (pruning the state space tree)
A branch and bound algorithm computes a number (bound) at a node to
determine whether the node is promising. The number is a bound on the value
of the solution that could be obtained by expanding beyond the node. If that
bound is no better than the value of the best solution found so far, the node is
non-promising. Otherwise it is promising.
Besides using the bound to determine whether the node is promising, we can
compare the bounds of promising nodes and visit the children of the one with
the best bound. This approach is called best-first search with branch and bound
pruning. The implementation of this approach is a modification of the breadth-
first search with branch and bound pruning.

xxxxx

You might also like