An Optimal-Time Algorithm for Shortest Paths on a Convex Polytope in Three Dimensions - Schreiber, Yevgeny; Sharir, Micha (Discrete & computational geometry, 2008)
We present an optimal-time algorithm for computing (an implicit representation of) the shortest-path map from a fixed source s on the surface of a convex polytope P in three dimensions. Our algorithm runs in O ( n log n ) time and requires O ( n log n ) space, where n is the number of edges of P . The algorithm is based on the O ( n log n ) algorithm of Hershberger and Suri for shortest paths in the plane (Hershberger, J., Suri, S. in SIAM J. Comput. 28(6):2215–2256, 1999 ), and similarly follows the continuous Dijkstra paradigm, which propagates a “wavefront” from s along ∂ P . This is effected by generalizing the concept of conforming subdivision of the free space introduced by Hershberger and Suri and by adapting it for the case of a convex polytope in ℝ 3 , allowing the algorithm to accomplish the propagation in discrete steps, between the “transparent” edges of the subdivision. The algorithm constructs a dynamic version of Mount’s data structure (Mount, D.M. in Discrete Comput. Geom. 2:153–174, 1987 ) that implicitly encodes the shortest paths from s to all other points of the surface. This structure allows us to answer single-source shortest-path queries, where the length of the path, as well as its combinatorial type, can be reported in O (log n ) time; the actual path can be reported in additional O ( k ) time, where k is the number of polytope edges crossed by the path. The algorithm generalizes to the case of m source points to yield an implicit representation of the geodesic Voronoi diagram of m sites on the surface of P , in time O (( n + m )log ( n + m )), so that the site closest to a query point can be reported in time O (log ( n + m )).