230 likes | 403 Views
A Simple and Efficient Kinetic Spanner. M.A. Abam MADALGO. J. Gudmundsson NICTA. M. de Berg TU Eindhoven. dilation. Geometric spanners. geometric network:. vertices: set of points in R d edge length: Euclidean length. (13,7). (3,7). 10. q. p. length ≤ t ∙ | pq |.
E N D
A Simple and Efficient Kinetic Spanner M.A. Abam MADALGO J. Gudmundsson NICTA M. de Berg TU Eindhoven
dilation Geometric spanners geometric network: • vertices: set of points in Rd • edge length: Euclidean length (13,7) (3,7) 10 q p length ≤ t ∙ |pq| for every p,q: length of shortest path ≤ t ∙ |pq| t-spanner: Goal:t-spanner for small t with few edges
Geometric spanners (cont’d) t-spanners in the plane: constant t and O(n) edges: • Delaunay triangulation: 2.42-spanner • Delaunay triangulation in L1-metric: √10 – spanner Would like: (1+ є)-spanner, for arbitrary є>0 • greedy spanner • well-separated pair decomposition • Θ- graph } (1+є)-spanners with O(n/є) or O(n/є2) edges ( Other properties: bounded degree, total edge length, … )
Kinetic spanners What if the points move? Need to update spanner to ensure dilation remains ≤ t Goal: • Stable spanner: not too many events (changes) • Fast updates at each event
flip edge when in-circle test becomes invalid Kinetic spanners (cont’d) Kinetic t-spanners: constant t: • Delaunay triangulation is easy to kinetize: • O(1) update time (plus O ( log n ) for event queue) • L1: O ( n λs(n)) events • L2: O ( n2λs(n) ) events (1+ є)-spanners: • greedy spanner • well-separated pair decomposition • Θ- graph } all seem hard to kinetize
Kinetic spanners: previous and new results Gao, Guibas, Nguyen (2004): Kinetic (1+є)-spanner, but bounds depend on α = diameter / min. distance • update time: O( (1/ є2) ∙ log α ) • number of changes: O(n2 log α) (Dynamic spanner by Gottlieb, Roddity (2008): updates O(log n) amortized, number of changes ?, complicated) • Our result: very simple, kinetic (1+є)- spanner • update time: O( 1 ) • number of changes: O((1/ є2) ∙ n λs(n) ) • (but only works in 2D)
Θ-graphs • Θ-graph: for each point p: • put cones of angle Θ ≈ є • є centered at p • connect p to closest point inside each cone (If cone is empty, do nothing) • number of edges: • n x O(1 / є) = O(n / є) • proof of dilation: • by induction on distance: • dG(p,q) ≤ |pr| + dG(r,q) • ≤ |pr| + (1+є) |rq| • ≤ (1+є) |pq| q r p
Θ-graph (cont’d) Θ-graph: hard to maintain closest point in cone when points move p
p s dist(p,q) = s angleΘ diamond-DT spanner • Idea: combination of Θ-graph and Delaunay triangulation (DT) • diamond-DT spanner: • ∆ = diamond, smaller angle Θ • ∆ induces convex distance function • compute DT for distance function induced by ∆ and repeat ≈ 1/є2 times, with rotated copies of the diamond
diamond-DT spanner (cont’d) • diamond-DT spanner: • ∆i = diamond, smaller angle Θ, rotated over angle ≈ i ∙ (2π ∙ є2 ) i = 0 , 1 , … , 1/ є2 • compute DTi for distance function induced by ∆i • take union of DTi’s ∆i i ∙ (2π ∙ є2 ) Number of edges: O( 1 / є2 ) ∙ O(n) = O( n / є2 ) Proof of dilation: …
diamond-DT spanner (cont’d) Proof of dilation: Induction on |pq| q p diamond with orientation closest to orientation of pq
diamond-DT spanner (cont’d) Kinetic maintenance: Like normal (Euclidean) DT: just edge flips, O(1) time
Conclusion • Diamond-DT spanner: • very simple, kinetic (1+є)- spanner • update time: O( 1 ) • number of changes: O((1/ є2) ∙ n λs(n) ) • Main open problem: • What about d>2 ?
Kinetic Spanners in Rd NEW now also available in higher dimensions ! M.A. Abam MADALGO M. de Berg TU Eindhoven
Back to Θ-graphs Main lemma: If (cos 2Θ – sin 2Θ) > 1 / (1+ є) then |pr | + (1+ є) |rq | < (1+ є) |pq | q r p q r’ r p We don’t always need to connect p to r ; can connect q to r’ instead
cone (p ) Cone-separated pairs decomposition cone (p ) • P : n points in R d • fix one of the 1/ єd-1 cone orientations • cone-separated pairs decomposition (CSPD): • collection { ( A1 ,B1 ) , … , ( Am ,Bm ) } of pairs of subsets such that • for each p,q in P such that q in cone(p ) there is a pair ( Ai , Bi ) with p in Ai , q in Bi • for each ( Ai , Bi ) and all p in Ai , q in Bi we have q in cone(p ) p
Computing a CSPD Lemma: There is a CSPD where every point occurs in O( logdn) pairs Proof: “standard” v • B(v) : canonical subset of v • A(v) : points p such that B(v) is reported for cone(p ) • CSPD: the pairs ( A(v), B(v) )
q r’ r p From CSPD’s to spanners • Recall: we either need • edge from p to point in cone(p) closer than q, or • edge from q to point in cone(q) closer than p how to connect cone-separated pair:
From CSPD’s to spanners • Computing a CSPD spanner: • For each cone orientation: • Compute CSPD of size O(n logdn) using range trees • Connect each pair ( Ai , Bi ): • Prune graph to get spanner of size O( n / єd-1 )
v ? Kinetic CSPD spanners (cont’d) • Maintaining CSPD spanners under motion: • Idea: • structure of range tree depends on ranks only CSPD pairs only changewhen points swap • delete points, and re-insert with new ranks need to insert / delete in cone-separated pair
p q Group j Group i-1 Group i Size of group i: The number of groups: O(log n) Connect Group i to Group i-1 in the other side … … p Kinetic CSPD spanners (cont’d) Stable connections:
Conclusions • Kinetic CSPD spanner: • simple, kinetic (1+є)- spanner with degree O(logd n) • update time:O(logd+1 n) • number of changes: O((1/ єd-1) ∙ n2 ) • locality: O(1/ єd-1) • size: O(n ∙ logd n)