Boaz BenMoshe Matthew Katz Joseph Mitchell SoCG 2001 Farthest Neighbors and Center Points in the Presence of Rectangular Obstacles Boaz BenMoshe Matthew Katz Joseph Mitchell 5/2/2019
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. 5/2/2019
Problems: Preprocess for farthest neighbor queries (FVD representation). Farthest (L1) Voronoi Diagram: (n*m) complexity Farthest Neighbor Query: 5/2/2019
Problems: Center point (set): a point c that minimizes max{d(p,c) | pP}. 5/2/2019
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. 5/2/2019
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. 5/2/2019
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). 5/2/2019
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. 5/2/2019
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). 5/2/2019
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). 5/2/2019
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. 5/2/2019
3.1 Theorem d(p2,q) d(p1,q) + dx – dy 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) 5/2/2019
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. 5/2/2019
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-. 5/2/2019
Filtering example In the “average “ case the size of the remaining set of points is O(n). 5/2/2019
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-)). 5/2/2019
Updating the sweep-line The sweep line is the upper envelope of the distance functions from the points. 5/2/2019
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. 5/2/2019
Center Point We may encounter local minima while approaching the radius. 5/2/2019
Computing the bisector bs(X-,X+): all points b s.t. b.left = b.right Resp. bs(Y-,Y+) Computing. Complexity. 5/2/2019
Computing the center point Possible positions: On the FVD edges. bisectors: bs(X-,X+), bs(Y-,Y+) Obstacle edges. 5/2/2019
Examples for Bisectors, Center Points 5/2/2019
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)) 5/2/2019
Approximations Given e > 0, find: Approximate Diameter D’: D(1 - e) D’ D Approximate Radius R’: R R’ R(1+ e) 5/2/2019
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. 5/2/2019
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 ?? 5/2/2019