algorithms

Definition

Branch and Bound

Branch and bound restricts the search over all solutions systematically based on divide and conquer, using methods that provide lower and upper bounds, and determines and optimal solution.

Branching: Partition the problem in smaller sub-problems Divide and Conquer

Bounding: For every sub-problems, compute:

  • local upper bound
  • local lower bound

Let be the global lower bound of the current best solution. Sub-problems with can be omitted in the search space.

The goal is to find the highest lower-bound possible for the given search space.

Selection Methods

Best-first Selection

The subproblem with the best dual boundaries (with the best upper boundary) is chosen. This always processes the smallest possible number of subproblems.

Depth-first Selection

The most recently created subproblem is processed next (compared with depth-first search). One usually obtains a complete and valid approximate solution most quickly.

Frequently, one starts with a depth-first strategy and, after obtaining a valid solution, continues with best-first to combine the advantages.