260 likes | 271 Views
Solve farthest neighbor queries and find center points with rectangular obstacles for VLSI systems design and plotter movements. Algorithm complexities and approximation methods are detailed with proofs and examples. For future research, consider other obstacles and expanding to higher dimensions. More info at http://www.cs.bgu.ac.il/
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 ??