We review lattice based methods to solve integer programming feasibility problems, in particular, the algorithms of Lenstra, and Kannan, and the reformulation methods of Aardal,
et al
. and of Krishnamoorthy and Pataki. The unifying theme in all of them is transforming the problem
urn:x-wiley:9780470400531:media:eorms0093:xm1
where
P
is a polyhedron, into
urn:x-wiley:9780470400531:media:eorms0093:xm2
where the columns of
B
are short, and near orthogonal, that is, they form a reduced basis of the generated lattice, and the choice of
B
and the polyhedron
Q
is specific to each method.
We give simple proofs of the polynomial running time of Lenstra's and Kannan's algorithms under the assumption that the dimension is fixed. We analyze the reformulation methods on knapsack problems with decomposable structure, and more surprisingly, we prove that they solve bounded integer programs with high probability by enumerating only one subproblem.
We include several exercises as well, and we believe that the survey will be suitable to teach a 2–3 class long segment on lattice based methods in a course on Integer Programming.