250 likes | 261 Views
This paper presents an algorithm for solving L1 shortest path queries among polygonal obstacles in the plane, finding the shortest path from one point to another while avoiding the obstacles. The algorithm builds a shortest path map (SPM) and computes the L1 distance using horizontal and vertical distances.
E N D
L1 Shortest Path Queries among Polygonal Obstacles in the Plane Danny Z. Chen1 and Haitao Wang2 1University of Notre Dame 2Utah State University
Shortest paths among polygonal obstacles • Input: A set of h polygonal obstacles with a total of n vertices, and two points s and t • Output: A shortest path from s to t that avoids the obstacles t free space s obstacle
Shortest path queries • Build a shortest path map (SPM), such that for any query point t, compute the shortest path from s to t t t t s obstacle
Our problem: the L1 version • L1 shortest path: a path with minimum L1 distance • The path can be arbitrarily polygonal • But the distance is measured by L1 metric vertical distance e horizontal distance The L1 distance of e = the horizontal distance + the vertical distance
Previous work (a single shortest path) • Studied by Clarkson, Lee, Kapoor, Widmayer, Wu, Wong, Vaidya, Chen, Klenk, Tu, Inkulu, etc. • O(nlogn) time and O(n) space, Mitchell 92’ • O(T+n+hlogh) time and O(n) space, Chen and Wang 11’ • T = O(n+hlog1+εh) : the time for triangulating the free space, Bar-Yehuda and Chazelle, 94’
Previous work and our new result (shortest path queries) • Mitchell 92’ • Time for building an SPM: O(nlogn) • Space: O(n) • Query time: O(k+logn) • k: the number of edges of the path • Our new result (in this talk) • Time for building an SPM: O(T+n+hlogh) • O(n+hlog h) time, if a triangulation is given • Space: O(n) • Query time: O(k+logn)
More… • Our algorithm runs in Θ(T) time • building an SPM is equivalent to triangulating the free space • Why? • Lower bound: T=Ω(n+hlogh) • Given a triangulation, • build an SPM in O(n+hlogh) time • Given an SPM • obtain a triangulation in O(n) time
Our approach (previous work) • Reduce the problem to the convex case where all obstacles are convex • Solve the convex case • O(n+hlogh) time and O(n) space • an SPM is also built • Open: Building an SPM for the general (non-convex) problem • the key: solving a sub-problem optimally
The key sub-problem a shortest path from s to t s c r t P The green region is the Voronoi region of r, denoted by VR(r) d
The key sub-problem Each site has a weight : the length of the L1 shortest path from s to it c Goal: Compute the L1geodesic Voronoi diagram for the sites that influence P only through cd, or compute the Voronoi region for each site P N: the number of vertices of P M: the number of red sites d
Difficulties How to handle the interactions of the bisectors? c Goal: building the SPM in O(n+hlogh) time Goal for solving the sub-problem: O(M+N) time P d
The standard approaches • O((N+M)log(N+M)) overall O(nlogn) time • Continuous Dijkstra paradigm • Sweeping • Divide-and-conquer • Our approach: incremental • O(N+M)
Bisectors of two weighted sites middle segment A bisector: amiddle segment, and two half-lines, vertical or horizontal
Our algorithm Order the sites r1, r2, … rm by the sub-segments of cd contained in their cells from c to d r1 c r2 r3 P r4 d
Obtaining the rays r1 c r2 Middle segments must appear in the Voronoi diagram r3 P r4 r5 d
Preprocessing c sites for the yellow region r2 p q sites for the brown region r3 P d
Processing the rays incrementally VR(r1) r1 c Vertical rays are stored in a stack r2 r3 VR(r3) P r4 r5 d
Processing the rays incrementally VR(r1) r1 c r2 r3 VR(r3) r4 P r5 d
Processing the rays incrementally VR(r1) r1 c Vertical rays are stored in a stack r2 r3 r4 P r5 d
Processing the rays incrementally VR(r1) r1 c r2 r3 r4 VR(r4) P r5 d
Processing the rays incrementally VR(r1) r1 c r2 r3 r4 VR(r4) P VR(r3) r5 d
Processing the rays incrementally VR(r1) r1 c r2 r3 VR(r2) r4 P r5 VR(r3) d
Implementation • Data structures: linked lists, a stack, vertical and horizontal visibility decompositions of P horizontal visibility decomposition vertical visibility decomposition
Conclusions • Build an L1 shortest path map in Θ(T+n+hlogh) time • Build a special L1 weighted geodesic Voronoi diagram • Linear time