Close
A integer linear programming problem (ILP or simply IP) is a problem expressible as a linear program with the additional constraint that all variables must be integer. If only some of the variables are required to be integer, the problem is a mixed integer linear programming problem (MILP or simply MIP).
Such problems are much harder to solve than LPs. In some special cases, they can be solved by simply ignoring the integrality constraints. This happens when the constraint matrix A is totally unimodular. But in general, they are NP-Hard.

Typically, these problems (and this holds for almost any optimization problem) are solved by relaxing (i.e. ignoring) some of the constraints and thus creating a much easier to solve problem. Once a solution to this relaxed problem is obtained, it is gradually adjusted to accomodate the ignored constraints.
The most common technique used for solving integer programs is branch and bound. More recent methods have been developed as variations/improvements of branch and bound, using cutting planes. Depending on when and how often the planes are generated, they are found in literature under such names as branch and cut, cut and branch, branch and price, etc.