Journal of the ACM · 1994 · 96 citations · 32 references
Mathematical ProgrammingEngineeringGeometryPathfindingGlobal PlanningEducationComputational ComplexityPath ProblemsDiscrete MathematicsCombinatorial OptimizationComputational GeometryShortest PathsGeometric ModelingPath PlanningRobot Motion PlanningSize Data StructureComputer ScienceVoronoi DiagramInteger ProgrammingPractical AlgorithmGeometric AlgorithmShortest PathMotion PlanningRoute PlanningDelaunay Triangulation
We present a practical algorithm for finding minimum-length paths between points in the Euclidean plane with (not necessarily convex) polygonal obstacles. Prior to this work, the best known algorithm for finding the shortest path between two points in the plane required Ω(n 2 log n) time and O (n 2 ) space, where n denotes the number of obstacle edges. Assuming that a triangulation or a Voronoi diagram for the obstacle space is provided with the input (if is not, either one can be precomputed in O ( n log n) time), we present an O(kn) time algorithm, where k denotes the number of “islands” (connected components) in the obstacle space. The algorithm uses only O(n) space and, given a source point s , produces an O(n) size data structure such that the distance between s and any other point x in the plane ( x ) is not necessarily an obstacle vertex or a point on an obstacle edge) can be computed in O (1) time. The algorithm can also be used to compute shortest paths for the movement of a disk (so that optimal movement for arbitrary objects can be computed to the accuracy of enclosing them with the smallest possible disk).
32
Computational geometry. an introduction
Franco P. Preparata, Michael Ian Shamos · 1985 · 2.4K citations
Algorithms in Combinatorial Geometry.
Jacob E. Goodman, Herbert Edelsbrunner · American Mathematical Monthly · 1989 · 1.8K citations