Point Containment in the Integer Hull of a Polyhedron1 Ernst Althaus2 Friedrich Eisenbrand2 Stefan Funke2 Kurt Mehlhorn2 2 Related work In two dimensions (d = 2), McCormick, Smallwood and Spieksma [9, 8] developed an algorithm, which runs in time O(m +2 ). Using the equivalence of optimization and separation [5] together with recent algorithms for integer programming [3, 4] one can solve the point containment problem with the ellipsoid method. This 1 Intro duction yields an expected running time of O(m + 2 log m) 2 We are interested in the point containment problem in for d 3 and a running time of O(m + ) for d = 2. d These algorithms are certifying in our sense. integer hul ls of polyhedra : Given a point x Q and a McCormick et al. [9, 8] reduce a multiprocessor set of rational constraints Ax b, A Qm×d , b Qm , machine scheduling problem to the two-dimensional determine whether x belongs to the convex hull of the integral points satisfying the constraints. Moreover, point-containment problem, where containment has to certify your answer by providing a simplex containing be certified with a unimodular triangle, i.e., with a x which is spanned by feasible integer points in the triangle that does not contain any integer points besides "yes" case, or by providing a halfspace h containing x its vertices. Given any feasible integer triangle T which such that h P is integer infeasible in the "no" case. We contains x , one can construct a unimodular triangle Tu d which contains x as follows. use P = {x R | Ax b} to denote the polyhedron Compute the integer hulls L and R of the two defined by our set of constraints and PI to denote the polygons T (x(1) x (1) ) and T (x(1) x (1) ). convex hull of the integral points in P ; PI is frequently The closure of the set T \ (L R) is a (not necessarily called the integer hul l of P . Let m be the number of constraints, d the dimension convex) polygon B which contains x . This polygon can of ambient space, and assume that each constraint and be computed in time O() and has O() vertices. Now triangulate B and determine the triangle T containing x has binary encoding length O(). We show: x . This costs again O() [1]. The interior of T does Theorem 1.1. For d = 2, the point containment prob- not contain an integer point and only one edge e of T , lem in integer hul ls of polygons can be solved in time the edge stemming from an edge of B , might contain O(m + ). For d 3 and d fixed, the point containment other integer points. Consider the intersection y of - problem in integer hul ls of polyhedra can be solved in the ray - x , where v is the opposite vertex of e, with v, 2 expected time O(m + log m). this edge e. The two nearest integer points of y on e, We will make frequent use of the fact that integer together with v form a certifying unimodular triangle. programming can be done in expected time O(m + These two nearest points can be found by solving a log m) in any fixed dimension [3] and in time O(m + ) one-dimensional integer program, or directly, with one in the two-dimensional case [4]. Also the integer hull of extended gcd-computation. a polygon (vertices in clockwise order) can be computed in time O(m ) in two dimensions [6], in particular the 3 An algorithm for d = 2 1 Partially supp orted by the IST Programme of the EU under contract number IST-1999-14186 (ALCOM-FT) 2 Max-Planck-Institute for Computer Science, Saarbrucken, ¨ Germany Abstract We show that the point containment problem in the integer hull of a polyhedron, which is defined by m inequalities, with coefficients of at most bits can be solved in time O(m + ) in the two-dimensional case and in expected time O(m + 2 log m) in any fixed dimension. This improves on the algorithm which is based on the equivalence of separation and optimization in the general case and on a direct algorithm (SODA 97) for the two-dimensional case. number of vertices of the integer hull is O(m ). We also assume without loss of generality [11] that P is bounded and that PI is full-dimensional. For a given point x Q2 , the following simple algorithm solves the point containment problem in the integer hull of a polyhedron P Q2 in time O(m + ), see Figure 1. Copyright © 2004 by the Association for Computing Machinery, Inc. and the Society for industrial and Applied Mathematics. All Rights reserved. Printed in The United States of America. No part of this book may be reproduced, stored, or transmitted in any manner without the written permission of the publisher. For information, write to the Association for Computing Machinery, 1515 Broadway, New York, NY 10036 and the Society for Industrial and Applied Mathematics, 3600 University City Science Center, Philadelphia, PA 19104-2688 929 l v w PSfrag replacements and perform one integer hull computation for a constant number of constraints (O()); finding the tangent line can also be done in O() as I has O() vertices. This yields a final running time of O(m + ). Point containment in arbitrary fixed dimension Let us now consider the case d 3. We assume that the integer hull of the polyhedron P is not empty, which can be tested with a call to an optimization oracle. Further we assume without loss of generality that P is bounded and that implicit upper and lower bounds on the variables are part of the constraint set Ax b. Recall that an inequality aT x is called valid for P , if all points of P satisfy it. A subset of points F P , which satisfy a valid inequality aT x of P with equality is called a face of P . The inequality aT x is then called the face-defining inequality of F . Given a polytope P , the following procedure computes a simplex with vertices in PI and x if and only if x PI . ContainingSimplex(P , x ) 1. Compute the lexicographically smallest integer point u of PI . - - 2. Determine the last point in PI on the ray u, x and denote it by w. Furthermore, determine a facedefining inequality aT x of the minimal face of PI containing w. If u = x or if u = w, then return the simplex = {u}. c 3. Otherwise, recursively determine the simplex ontaining w in the integer hull of P = P (aT x = ) and return the simplex spanned by u and . y I x 4 z u Figure 1: The case d = 2. 1. Find an integer point u P . If x PI , then x is contained in an integral triangle with vertex u. 2. Determine the constraint aT x , which defines - - the facet of P which is hit by the ray u, x (ties are broken arbitrarily). 3. Find the optimal integer point v in P w.r.t. to the ob jective function max aT x; let be the optimal ob jective function value. 4. Let w be the intersection of the line aT x = - - with u, x . If aT x > , then x is not contained in PI and we have found a certifying hyperplane, otherwise consider the triangle = conv(x , v , w) and compute its integer hull I . Note that is contained in P . 5. Compute the line l which intersects x and is tangential to I such that u and I lie on the same side of l. Let y be the first vertex of I which lies on l, starting from x . 6. Perform an integer feasibility test for P intersected with the halfspace h defined by the closure of the side of l which does not contain I . Any integer point z in the resulting polygon must be opposite of y on the line through u and x . Thus conv(u, y , z ) is a certifying triangle. If no integer point exists in this polygon, then x is not contained in PI . A certifying hyperplane can then be determined by slightly rotating the line l around y . This rotation can be determined by similar means with which we determined y in Step 5. For the running time, observe that we have to solve a constant number of optimization problems (O(m + )) The so constructed simplex is unique and denoted by (x , P ). Before we begin with an analysis of this approach, let us define the height (x , P ) of x and P , which is a tuple. If the simplex (x , P ) consists of u alone, then (x , P ) = (u). Otherwise, let h be the distance from u to w. The height is then recursively defined as the tuple (x , P ) = (u, -h, (w, P (aT x = )). In the following, we assume that the height (x , P ) is a 2 d+1tuple by appending -components to right of the tuple defined above. Given x , we define an order P x Q if (x , P ) lex (x , Q) for polytopes P, Q Rd . Notice that (x , P ) = (x , Q) if and only if the simplices (x , P ) and (x , Q) are equal. Furthermore we have the following lemma. Lemma 4.1. Let P Rd and Q Rd be polytopes and x Rd . If P Q, then (x , Q) lex (x , P ) and 930 thus Q x P . Moreover, (x , Q)