Branch and Bound on Small Binary IPs
Apply the branch-and-bound algorithm to small binary integer programs: solve the LP relaxation for an upper bound, branch on a fractional variable, and prune subtrees by infeasibility, integrality, or bound.
Tutorial
Binary IPs and the LP Relaxation
A binary integer program (binary IP) is a linear optimization problem of the form
subject to linear inequality constraints, where each decision variable satisfies .
The LP relaxation drops the integrality requirement and instead allows . Because every binary-feasible point is also LP-feasible, the LP feasible region contains the binary feasible region. Therefore the LP optimum is an upper bound on the binary IP optimum:
This bound is the engine of branch-and-bound. If the LP relaxation at a subtree returns a value no better than an integer solution already in hand, the entire subtree can be discarded.
For example, consider
The LP relaxation has optimum with value . Therefore the binary IP optimum is at most . The component is fractional, so a branching step will split on next.