### The Discrete Geodesic Problem

Joseph S. B. Mitchell, David M. Mount, Christos H. Papadimitriou
1987 SIAM journal on computing (Print)
We present an algorithm for determining the shortest path between a source and a destination on an arbitrary (possibly nonconvex) polyhedral surface. The path is constrained to lie on the surface, and distances are measured according to the Euclidean metric. Our algorithm runs in time O(n log n) and requires O(n2) space, where n is the number of edges of the surface. After we run our algorithm, the distance from the source to any other destination may be determined using standard techniques in
more » ... dard techniques in time O(log n) by locating the destination in the subdivision created by the algorithm. The actual shortest path from the source to a destination can be reported in time O(k + log n), where k is the number of faces crossed by the path. The algorithm generalizes to the case of multiple source points to build the Voronoi diagram on the surface, where n is now the maximum of the number of vertices and the number of sources. 647 648 MITCHELL, MOUNT AND PAPADIMITRIOU problem we solve is a generalization of the two-dimensional problem, since any polygonal obstacle can be simulated by a tall prism emanating from the plane whose base is the given polygon. The shortest path problem on a surface was first posed in 17], where an O( n log n) algorithm was given for the case of convex polyhedra. Here n is a measure of the complexity of the scene, which in our case we may take as the number of edges, say, of the polyhedral surface. Mount [10] has given an algorithm for convex polyhedra which improves the running time to O(n 2 log n). For nonconvex polyhedra, [13] gives an O(n5) algorithm. We improve these results as follows: We handle general (possibly nonconvex, and even of higher genus) polyhedra, and we improve the time bound to O(n 2 log n). Furthermore, we solve the single-source shortest path problem (and by a simple extension, the multiple-source shortest path problem; see 11 ]), creating a subdivision for a given source point so that we can find the length of the shortest path to any destination point simply by locating it in the subdivision. Thus, in O(log n) time, the