From LP to Integer Programming: Why Integrality Matters
Introduces integer programming as an extension of linear programming. Defines pure IPs, mixed IPs, and binary IPs; explains the LP relaxation and the pitfalls of rounding; and establishes how the LP relaxation provides a bound on the IP optimum.
Tutorial
Introduction
A linear program (LP) allows decision variables to take any real values within the feasible region. In many applications, however, only whole-number values are meaningful: a factory cannot ship trucks, a scheduler cannot hire workers, and a yes/no decision cannot be made of the way. An integer program (IP) is a linear program with the additional requirement that some or all decision variables take integer values.
Integer programs are classified by which variables carry the integrality requirement:
- Pure integer program: every decision variable must be an integer.
- Mixed integer program (MIP): some variables must be integers, others remain continuous.
- Binary (0-1) integer program (BIP): every variable is restricted to .
For instance, the formulation
is a pure IP. Replacing the last line with gives a BIP, and requiring only while leaving continuous gives a MIP.