shortest paths in intersection graphs of unit disks
play

Shortest Paths in Intersection Graphs of Unit Disks Sergio Cabello - PowerPoint PPT Presentation

Shortest Paths in Intersection Graphs of Unit Disks Sergio Cabello sergio.cabello@fmf.uni-lj.si University of Ljubljana Slovenija Material based on joint work with Miha Jej ci c and Panos Giannopoulos Sergio Cabello Setting P : n


  1. Shortest Paths in Intersection Graphs of Unit Disks Sergio Cabello sergio.cabello@fmf.uni-lj.si University of Ljubljana Slovenija Material based on joint work with Miha Jejˇ ciˇ c and Panos Giannopoulos Sergio Cabello

  2. Setting P : n points in the plane G ( P ): connect two points when distance ≤ 1 intersection graph congruent disks s 1 Sergio Cabello

  3. Setting P : n points in the plane G ( P ): connect two points when distance ≤ 1 intersection graph congruent disks s Objective: fast computation of sssp in G ( P ) Sergio Cabello

  4. Motivation Bounded communication range: ◮ minimize hops/links → unweighted G ( P ) ◮ minimize energy → weighted G ( P ) Sergio Cabello

  5. Motivation Bounded communication range: ◮ minimize hops/links → unweighted G ( P ) ◮ minimize energy → weighted G ( P ) s Separation in the plane: ◮ set D of unit disks ◮ s and t in R 2 \ � D ◮ min | D ′ | s.t. D ′ ⊆ D , D ′ separates s and t t Sergio Cabello

  6. Overview ◮ Setting/Motivation ◮ Related work for sssp ◮ Unweighted • O ( n log n ) time • implementable: Delaunay, Voronoi, point location ◮ Weighted: • O ( n 1+ ε ) time • unimplementable: dynamic bichromatic closest pair, shallow cuttings ◮ Separation with unit disks: • O ( n 2 polylog n ) time • Implementable, but many ingredients Sergio Cabello

  7. Overview ◮ Setting/Motivation ◮ Related work for sssp ◮ Unweighted • O ( n log n ) time • implementable: Delaunay, Voronoi, point location ◮ Weighted: • O ( n 1+ ε ) time • unimplementable: dynamic bichromatic closest pair, shallow cuttings ◮ Separation with unit disks: • O ( n 2 polylog n ) time • Implementable, but many ingredients Sergio Cabello

  8. Related work exact SSSP ◮ Roditty and Segal, 2011 • unweighted: O ( n log 6 n ) expected time via Chan’s dynamic NN DS • weighted: O ( n 4 / 3+ ε ) time ◮ C. and Jejˇ ciˇ c, 2014 • unweighted: O ( n log n ) time; implementable • weighted: O ( n 1+ ε ) time Sergio Cabello

  9. More related work ◮ Roditty and Segal, 2011 • (1 + ε )-approximate distance oracles, improving Bose, Maheshwari, Narasimhan, Smid, and Zeh, 2004. ◮ Gao and Zhang, 2005 • WSPD of size O ( n log n ) for unit-disk metric • (1 + ε )-approximate sssp distance in O ( n log n ) time ◮ Chan and Efrat, 2001 (Fuel consumption) • distances ℓ : R 2 × R 2 → R > 0 • O ( n log n ) time when ℓ ( p , q ) = f ( | pq | ) · | pq | 2 , f increasing. • O ( n 4 / 3+ ε ) time when ℓ has constant size description. Sergio Cabello

  10. More related work ◮ Roditty and Segal, 2011 • (1 + ε )-approximate distance oracles, improving Bose, Maheshwari, Narasimhan, Smid, and Zeh, 2004. ◮ Gao and Zhang, 2005 • WSPD of size O ( n log n ) for unit-disk metric • (1 + ε )-approximate sssp distance in O ( n log n ) time ◮ Chan and Efrat, 2001 (Fuel consumption) • distances ℓ : R 2 × R 2 → R > 0 • O ( n log n ) time when ℓ ( p , q ) = f ( | pq | ) · | pq | 2 , f increasing. • O ( n 4 / 3+ ε ) time when ℓ has constant size description. ◮ Faster algorihtms for geometric intersection graphs Sergio Cabello

  11. Overview ◮ Setting/Motivation ◮ Related work for sssp ◮ Unweighted • O ( n log n ) time • implementable: Delaunay, Voronoi, point location ◮ Weighted: • O ( n 1+ ε ) time • unimplementable: dynamic bichromatic closest pair, shallow cuttings ◮ Separation with unit disks: • O ( n 2 polylog n ) time • Implementable, but many ingredients Sergio Cabello

  12. Unweighted ◮ BFS in G ( P ) without building G ( P ) ◮ W i = { p ∈ P | d G ( P ) ( s , p ) = i } ◮ Build W 0 = { s } ◮ Iteratively build W i from W i − 1 ◮ Edge connecting p to NN ( p , W i − 1 ) for all p ∈ W i ◮ Until W i empty Sergio Cabello

  13. Unweighted - Growing W i W 4 W 3 1 s Sergio Cabello

  14. Unweighted - Growing W i W 4 W 3 1 s Sergio Cabello

  15. Unweighted - Growing W i W 4 W 3 1 s Sergio Cabello

  16. Unweighted - Growing W i W 4 W 3 1 s Sergio Cabello

  17. Unweighted ◮ BFS in G ( P ) without building G ( P ) ◮ W i = { p ∈ P | d G ( P ) ( s , p ) = i } ◮ Build W 0 = { s } ◮ Iteratively build W i from W i − 1 ◮ edge connecting p to NN ( p , W i − 1 ) for all p ∈ W i ◮ Until W i empty ◮ Use DT ( P ) to guide the search of candidate points for W i ◮ Candidate points for W i : • points adjacent to W i − 1 in DT ( P ) • points adjacent to W i in DT ( P ) ◮ Is this good enough? Sergio Cabello

  18. Unweighted - Growing W i Sergio Cabello

  19. Unweighted - Growing W i Sergio Cabello

  20. Unweighted - Growing W i 1 s Sergio Cabello

  21. Unweighted - Growing W i Lemma Let p ∈ W i . There exists a path q 1 , . . . , q k = p in G ( P ) ∩ DT ( P ) with q 1 ∈ W i − 1 and q 2 , . . . , q k ∈ W i . Sergio Cabello

  22. Unweighted - Growing W i Lemma Let p ∈ W i . There exists a path q 1 , . . . , q k = p in G ( P ) ∩ DT ( P ) with q 1 ∈ W i − 1 and q 2 , . . . , q k ∈ W i . cell( P, q k − 1 ) cell( P, q 2 ) cell( P, p ) cell( P, q 1 ) p q 1 . . . Sergio Cabello

  23. Unweighted - Growing W i Lemma Let p ∈ W i . There exists a path q 1 , . . . , q k = p in G ( P ) ∩ DT ( P ) with q 1 ∈ W i − 1 and q 2 , . . . , q k ∈ W i . ◮ Data structure to decide whether candidate q is ∈ W i • DS for NN ( q , W i − 1 ) • check if distance ≤ 1 ◮ each edge of DT ( P ) explored twice ◮ building W i takes time �� � � � | W i − 1 | + | W i | + deg DT ( P ) ( p ) log n O p ∈ W i − 1 ∪ W i Sergio Cabello

  24. 1. for p ∈ P do 2. dist[ p ] ← ∞ ; 3. dist[ s ] ← 0 4. build the Delaunay triangulation DT ( P ) W 0 ← { s } 5. 6. i ← 1 7. while W i − 1 � = ∅ do 8. build data structure for nearest neighbour queries in W i − 1 9. Q ← W i − 1 (* generator of candidate points *) 10. W i ← ∅ 11. while Q � = ∅ do 12. q an arbitrary point of Q 13. remove q from Q 14. for qp edge in DT ( P ) do 15. w ← NN ( W i − 1 , q ) 16. if dist[ p ] = ∞ and | pw | ≤ 1 then 17. dist[ p ] ← i 18. add p to Q and to W i 19. i ← i + 1 20. return dist[ · ] Sergio Cabello

  25. Overview ◮ Setting/Motivation ◮ Related work for sssp ◮ Unweighted ← − Done • O ( n log n ) time • implementable: Delaunay, Voronoi, point location ◮ Weighted: • O ( n 1+ ε ) time • unimplementable: dynamic bichromatic closest pair, shallow cuttings ◮ Separation with unit disks: • O ( n 2 polylog n ) time • Implementable, but many ingredients Sergio Cabello

  26. Overview ◮ Setting/Motivation ◮ Related work for sssp ◮ Unweighted • O ( n log n ) time • implementable: Delaunay, Voronoi, point location ◮ Weighted: • O ( n 1+ ε ) time • unimplementable: dynamic bichromatic closest pair, shallow cuttings ◮ Separation with unit disks: • O ( n 2 polylog n ) time • Implementable, but many ingredients Sergio Cabello

  27. Weighted - Ingredient - BCP Bichromatic closest pair (BCP) ◮ weighted Euclidean ◮ red points R ◮ blue points B ◮ weights w b for each b ∈ B ◮ δ : B × R → R δ ( b , r ) = w b + | br | 4 2 2 3 Sergio Cabello

  28. Weighted - Ingredient - BCP Bichromatic closest pair (BCP) ◮ weighted Euclidean ◮ red points R ◮ blue points B ◮ weights w b for each b ∈ B ◮ δ : B × R → R δ ( b , r ) = w b + | br | ◮ Eppstein 1995 + Agarwal, Efrat, Sharir 1999: dynamic BCP in O ( n ε ) amortized per operation • insertion/deletion • query for minima min r , b δ ( r , b ) Sergio Cabello

  29. Weighted - Idea ◮ Modification of Dijkstra’s algorithm ◮ Standard Dijsktra’s algorithm • keep an array dist[ · ] • dist[ v ] is an (over)estimate of d G ( P ) ( s , v ) • keep partition P into S and P \ S • S contains vertices with dist[ s ] = d G ( P ) ( s , v ) S P \ S s Sergio Cabello

  30. Weighted - Idea ◮ Modification of Dijkstra’s algorithm ◮ Standard Dijsktra’s algorithm • keep an array dist[ · ] • dist[ v ] is an (over)estimate of d G ( P ) ( s , v ) • keep partition P into S and P \ S • S contains vertices with dist[ s ] = d G ( P ) ( s , v ) • an iteration: find a vertex q ∗ ∈ arg min min dist[ p ] + | pq | q ∈ P \ S p ∈ S ,, | pq |≤ 1 • move q ∗ from P \ S to S • usually we keep dist[ q ] = min p ∈ S dist[ p ] + | pq | Sergio Cabello

  31. Weighted - Idea ◮ Modification of Dijkstra’s algorithm • array dist[ · ], dist[ v ] is an (over)estimate of d G ( P ) ( s , v ) • keep partition P into S and R = P \ S • partition S into D and B • D are “dead”points, irrelevant when min dist[ p ] + | pq | • an iteration: find a pair ( b ∗ , r ∗ ) ∈ arg min dist[ b ] + | br | ( b , r ) ∈∈ B × R • if | b ∗ r ∗ | > 1, move b ∗ from B to D • else normal Dijsktra’s step Sergio Cabello

  32. Weighted - Idea ◮ Modification of Dijkstra’s algorithm B R D s S Sergio Cabello

  33. for p ∈ P do 1. 2. dist[ p ] ← ∞ 3. dist[ s ] ← 0 4. B ← { s } 5. D ← ∅ 6. R ← P \ { s } store R ∪ B in a BCP dynamic DS wrt δ ( b , r ) = dist[ b ] + | br | 7. while R � = ∅ do 8. ( b ∗ , r ∗ ) ← BCP( B , R ) 9. if | b ∗ r ∗ | > 1 then 10. delete( B , b ∗ ) 11. D ← D ∪ { b ∗ } 12. 13. else dist[ r ∗ ] ← dist[ b ∗ ] + | b ∗ r ∗ | 14. delete( R , r ∗ ) 15. insert( B , r ∗ ) 16. 17. return dist[ · ] Sergio Cabello

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend