Our main theoretical result is that, if a simple polytope has a pair of
complementary vertices (i.e., two vertices with no facets in common), then it
has at least two such pairs, which can be chosen to be disjoint. Using this
result, we improve adjacency testing for vertices in both simple and non-simple
polytopes: given a polytope in the standard form {x \in R^n | Ax = b and x \geq
0} and a list of its V vertices, we describe an O(n) test to identify whether
any two given vertices are adjacent. For simple polytopes this test is perfect;
for non-simple polytopes it may be indeterminate, and instead acts as a filter
to identify non-adjacent pairs. Our test requires an O(n^2 V + n V^2)
precomputation, which is acceptable in settings such as all-pairs adjacency
testing. These results improve upon the more general O(nV) combinatorial and
O(n^3) algebraic adjacency tests from the literature.Comment: 14 pages, 5 figures. v1: published in COCOON 2012. v2: full journal
version, which strengthens and extends the results in Section 2 (see p1 of
the paper for details