Branch And Bound
A method for solving an optimization problem, by successively partitioning (branching) the set of feasible points to smaller subsets, and solving the problem over each subset. The resulting problems are called subproblems or nodes in the enumeration tree. The idea in branch and bound is that the optimal solution to the problem is the best among the optimal solutions to the subproblems. To reduce the number of subproblems solved, best-case bounds are computed by solving relaxed problems defined at the nodes. If the best-case bound on a solution to a subproblem is worse than the best available solution, the subproblem is eliminated from consideration (fathomed). Branch and bound techniques are frequently used to solve integer-programming problems, as well as in global optimization. Combinatorial and integer optimization; Integer-programming problem.