Lower Time Bounds for Integer Programming with Two Variables

Abstract In this paper an elementary version of the integer programming problem is considered, namely that of deciding whether a given triangle in the plane contains a point with integer coordinates. We prove two lower bounds for the number of operations necessary to solve this problem: (i) Ω(p) steps are necessary if operations from {+, -,%,, ⩽} are admissible, (ii) Ω(log p) steps are necessary if operations from {+, -, ⦜·⦜, ⩽} are admissible. Here, p denotes the binary length of the input and ⦜·⦜ denotes the floor function. New techniques are necessary for relating the bounds to the length of the input—known methods only yield uniform bounds assuming all real inputs to be allowed—and for handling the floor function which prevents us from applying the well-known algebraic arguments. The best known algorithm is due to H.W. Lenstra, Jr. (preprint) and needs O(p) steps over {+, -, ∗, %, ⦜·⦜, ⩽} (P. van Emde Boas, 1984).