On shortest paths amidst convex polyhedra

We consider the problem of computing the Euclidean shortest path between two points in three-dimensional space which must avoid the interiors of <italic>k</italic> given disjoint convex polyhedral obstacles, having altogether <italic>n</italic> faces. Although this problem is hard to solve when <italic>k</italic> is arbitrarily large, it had been efficiently solved by Mount [Mo84] (cf. also Sharir and Schorr [SS84]) for <italic>k</italic> = 1, i.e. in the presence of a single convex polyhedral obstacle, in time <italic>&Ogr;</italic>(<italic>n</italic><supscrpt>2</supscrpt>log <italic>n</italic>). In this paper we consider the generalization of this technique to the cases <italic>k</italic> = 2 and <italic>k</italic> > 2. In the first part of this presentation we describe an algorithm which calculates shortest paths amidst two convex polyhedral obstacles in time <italic>&Ogr;</italic>(<italic>n</italic><supscrpt>3</supscrpt><italic>α</italic>(<italic>n</italic>)<supscrpt><italic>&Ogr;</italic>(<italic>α</italic>(<italic>n</italic>)<supscrpt>7</supscrpt>)</supscrpt>log <italic>n</italic>), where <italic>α</italic>(<italic>n</italic>) is the functional inverse of Ackermann's function (and is thus extremely slowly growing). This result is achieved by constructing a new kind of Voronoi diagram, called <italic>peeper's Voronoi diagram</italic>, which is introduced and analyzed here. In the second part we show that shortest paths amidst <italic>k</italic> > 2 disjoint convex polyhedral obstacles can be calculated in time polynomial in the total number <italic>n</italic> of faces of these obstacles (but exponential in the number of obstacles). This is a consequence of the following result: Let <italic>K</italic> be a 3-D convex polyhedron having <italic>n</italic> vertices. Then the number of <italic>shortest-path edge sequences</italic> on <italic>K</italic> is polynomial in <italic>n</italic> (specifically <italic>&Ogr;</italic>(<italic>n</italic><supscrpt>7</supscrpt>)), where a shortest-path edge sequence &xgr; is a sequence of edges of <italic>K</italic> for which there exist two points <italic>X</italic>, <italic>Y</italic> on the surface <italic>S</italic> of <italic>K</italic> such that &xgr; is the sequence of edges crossed by the shortest path from <italic>X</italic> to <italic>Y</italic> along <italic>S</italic>.