CS 411 Fall 2025 > Outline for December 3, 2025
CS 411 Fall 2025
Outline
for December 3, 2025
Outline
Branch-and-Bound [L 12.2]
- Description
- Branch-and-Bound is a method of pruning the state-space tree for optimization problems.
- We need a way to find, for each node in the state-space tree,
a bound on the value of the objective function for every
feasible solution that can be obtained from the partial solution
that the node represents.
- For a maximization problem, we need an upper bound. For a minimization problem, we need a lower bound.
- Procedure. Traverse the state-space tree, keeping track of the best value of the objective function found so far. If the bound we obtain for a node is not as good as that best-so-far value, then do not visit that node’s children (“prune”).
- Best First version
- A node whose bound is further in the desired direction (greater for a maximization problem, less for a minimization problem) is considered to be more promising than another node.
- Idea. At each step, find the most promising node whose children have not been visited. Visit the children of this node next.
- Hopefully, this lets us find better solutions early, resulting in more pruning and thus better performance.
- This is called best-first branch-and-bound.
- Example
- Notes
- Branch-and-bound has been found, in practice, to improve performance for many problems.
- However, generally, branch-and-bound offers no guarantees of better performance.