260 likes | 267 Views
SoCG 2001 Farthest Neighbors and Center Points in the Presence of Rectangular Obstacles. Boaz BenMoshe Matthew Katz Joseph Mitchell. Model and Problems. § Input : {O,P} O: a set of m disjoint Obstacles (axis-aligned rectangles) in the plane.
E N D
SoCG 2001Farthest Neighbors and Center Points in the Presence of Rectangular Obstacles Boaz BenMoshe Matthew Katz Joseph Mitchell
Model and Problems §Input: {O,P} O: a set of m disjoint Obstacles (axis-aligned rectangles) in the plane. P: a set of n points in the free space F=R2 - O. §Distances: The distance between two points d(a,b) is the shortest L1 obstacle-avoiding path between a and b. §Motivation: VLSI systems design. Plotter movement.
Problems: • Preprocess for farthest neighbor queries (FVD representation). Farthest (L1) Voronoi Diagram: (n*m) complexity Farthest Neighbor Query:
Problems: Center point (set): a point c that minimizes max{d(p,c) | pP}.
Problems: • Approximations: • given e>0, filter out a large portion of the points. • only O(1/e) of the points remain. • approximate the diameter and radius, using the remaining points.
Previous Related Results |P| = n , |O| = m. • Nearest neighbor queries: O((m+n) log(m+n)) preprocessing, O(log(m+n)) query [CKV], [M] • All farthest neighbors: O(m2 + n2 log m) [AC] • Center Point: O(m2 * n) (center set) [CSK] • No previous results for the approximation problems. Our results: • Farthest neighbor queries: O(m*n log(m+n)) preprocessing, O(log(m+n)) query • All farthest neighbors: O(m*n log(m+n)) • Center Point: O(m*n log(m+n)) • Near linear-time approximations.
Preliminaries 2.1 Claim: For any two points p, q, the shortest path (between p and q) is either X-monotone or Y-monotone (or both).
Preliminaries 2.2 Claim: If there exists an X-monotone path (between p and q) and a Y-monotone path, then there exists an XY-monotone path.
Preliminaries 2.3 Corollary: If there exists an X-monotone path between p and q, then all shortest paths between p and q are X-monotone. (Alternatively, Y-monotone).
Preliminaries The farthest neighbor from p on the left (p.left): choose the farthest among the points to the left of p with an X-monotone path to p. (right, above, below).
Preliminaries 2.4 Claim: The farthest neighbor from p is max (p.left, p.right, p.above , p.below). 2.5 Claim: One can divide the DS for finding the farthest point from p into four independent DSs. • We consider the DS for farthest neighbor on the left.
3.1 Theorem • Given 3 points p1, p2, q such that: • p2.x <= p1.x <= q.x • The Path(p1,q) is X monotone • dx = p1.x – p2.x , • dy = |p1.y – p2.y| • d(p2,q) d(p1,q) + dx – dy Note: If dx dy d(p2,q) d(p1,q)
Proving Theorem 3.1 Proof (Sketch only): if dy = 0, d(p2,q) d(p1,q) + dx if there are no obstacles in between p2 and p1 – easy. else the obstacles can only affect d(p2,q) by making it longer. if dx = 0, d(p2,q) d(p1,q) - dy if there are no obstacles in between p2 and p1 - easy. else the obstacles can only affect d(p2,q) by making it longer. • Let p’=(p1.x,p2.y) : d(p2,q) d(p’,q) + dx d(p1,q) +dx - dy. d(p2,q) d(p1,q) + dx - dy.
Constructing the Filter For each point in the input scene check whether it is a dominant point Defining: X-, X+, Y-, Y+. Focus on X-.
Filtering example In the “average “ case the size of the remaining set of points is O(n).
Constructing a DS for farthest neighbor queries (on the left) • Events: • Obstacles • Points of X- • A compact representation of all the sweep-lines is kept (DS(X-)).
Updating the sweep-line The sweep line is the upper envelope of the distance functions from the points.
Computing the Query Given query point q • The farthest neighbor on the left is p3 (using DS(X-)). • d(p3,q)=d(p3,q’)+d(q’,q) • The farthest neighbor from below is one of the two extreme lower points. • The farthest neighbor of q is the maximum over the 4 directional maximums.
Center Point • We may encounter local minima while approaching the radius.
Computing the bisector Bisector: bs(X-,X+): all points b s.t. b.left = b.right Resp. bs(Y-,Y+) • Computing. • Complexity.
Computing the center point Possible positions: • On the FVD edges. • bisectors: bs(X-,X+), bs(Y-,Y+) • Obstacle edges.
Complexity of the Center Point algorithm • Filtering: O(n log(n)) • Computing DS(X-) : O(n m log(n+m) • Computing the bs(X-, X+) : O(n m log(n+m)) • Searching for Center Point : O(n m log(n+m)) Total complexity: O(n m log(n+m))
Approximations Given e > 0, find: • Approximate Diameter D’: D(1 - e) D’ D • Approximate Radius R’: R R’ R(1+e)
Constructing the approximation filter Given e > 0 , Divide the Y-range into O(1/e) horizontal slabs of height, e*D/2 h e*D In each slab mark the leftmost and the rightmost points. Do the same with the vertical slabs. Remove all unmarked points.
Conclusion Future research: • Other types of obstacles. • Improving the FVD representation / Proving a lower bound. • Higher dimensions – a natural generalization exists. More info: (implementations, papers etc.) http://www.cs.bgu.ac.il/~benmoshe/PHD/SoCG01 Questions ??