The Branch and Bound (B&B) algorithm is a systematic method for solving optimization problems by using a state space tree. It applies where greedy and dynamic programming methods fail. B&B uses a bounding function to compute a bound for the objective function value at each node, allowing it to determine if the node is promising or not promising without fully exploring it. If the bound is better than the best solution found so far, the node is promising and expanded; otherwise, it is not promising and pruned from the tree to improve efficiency over exhaustive search.
Original Description:
It's a pdf regarding introduction of Branch and Bound algorithm
The Branch and Bound (B&B) algorithm is a systematic method for solving optimization problems by using a state space tree. It applies where greedy and dynamic programming methods fail. B&B uses a bounding function to compute a bound for the objective function value at each node, allowing it to determine if the node is promising or not promising without fully exploring it. If the bound is better than the best solution found so far, the node is promising and expanded; otherwise, it is not promising and pruned from the tree to improve efficiency over exhaustive search.
The Branch and Bound (B&B) algorithm is a systematic method for solving optimization problems by using a state space tree. It applies where greedy and dynamic programming methods fail. B&B uses a bounding function to compute a bound for the objective function value at each node, allowing it to determine if the node is promising or not promising without fully exploring it. If the bound is better than the best solution found so far, the node is promising and expanded; otherwise, it is not promising and pruned from the tree to improve efficiency over exhaustive search.
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.