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

shortest paths in intersection graphs of unit disks
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 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

slide-2
SLIDE 2

Setting

P: n points in the plane G(P): connect two points when distance ≤ 1 intersection graph congruent disks

1

s

Sergio Cabello

slide-3
SLIDE 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

slide-4
SLIDE 4

Motivation

Bounded communication range:

◮ minimize hops/links → unweighted G(P) ◮ minimize energy → weighted G(P) Sergio Cabello

slide-5
SLIDE 5

Motivation

Bounded communication range:

◮ minimize hops/links → unweighted G(P) ◮ minimize energy → weighted G(P)

Separation in the plane:

◮ set D of unit disks ◮ s and t in R2 \ D ◮ min |D′| s.t. D′ ⊆ D,

D′ separates s and t

s t

Sergio Cabello

slide-6
SLIDE 6

Overview

◮ Setting/Motivation ◮ Related work for sssp ◮ Unweighted

  • O(n log n) time
  • implementable: Delaunay, Voronoi, point location

◮ Weighted:

  • O(n1+ε) time
  • unimplementable: dynamic bichromatic closest pair, shallow

cuttings

◮ Separation with unit disks:

  • O(n2 polylog n) time
  • Implementable, but many ingredients

Sergio Cabello

slide-7
SLIDE 7

Overview

◮ Setting/Motivation ◮ Related work for sssp ◮ Unweighted

  • O(n log n) time
  • implementable: Delaunay, Voronoi, point location

◮ Weighted:

  • O(n1+ε) time
  • unimplementable: dynamic bichromatic closest pair, shallow

cuttings

◮ Separation with unit disks:

  • O(n2 polylog n) time
  • Implementable, but many ingredients

Sergio Cabello

slide-8
SLIDE 8

Related work

exact SSSP

◮ Roditty and Segal, 2011

  • unweighted: O(n log6 n) expected time via Chan’s dynamic

NN DS

  • weighted: O(n4/3+ε) time

◮ C. and Jejˇ

ciˇ c, 2014

  • unweighted: O(n log n) time; implementable
  • weighted: O(n1+ε) time

Sergio Cabello

slide-9
SLIDE 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 ℓ : R2 × R2 → R>0
  • O(n log n) time when ℓ(p, q) = f (|pq|) · |pq|2, f increasing.
  • O(n4/3+ε) time when ℓ has constant size description.

Sergio Cabello

slide-10
SLIDE 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 ℓ : R2 × R2 → R>0
  • O(n log n) time when ℓ(p, q) = f (|pq|) · |pq|2, f increasing.
  • O(n4/3+ε) time when ℓ has constant size description.

◮ Faster algorihtms for geometric intersection graphs Sergio Cabello

slide-11
SLIDE 11

Overview

◮ Setting/Motivation ◮ Related work for sssp ◮ Unweighted

  • O(n log n) time
  • implementable: Delaunay, Voronoi, point location

◮ Weighted:

  • O(n1+ε) time
  • unimplementable: dynamic bichromatic closest pair, shallow

cuttings

◮ Separation with unit disks:

  • O(n2 polylog n) time
  • Implementable, but many ingredients

Sergio Cabello

slide-12
SLIDE 12

Unweighted

◮ BFS in G(P) without building G(P) ◮ Wi = {p ∈ P | dG(P)(s, p) = i} ◮ Build W0 = {s} ◮ Iteratively build Wi from Wi−1 ◮ Edge connecting p to NN(p, Wi−1) for all p ∈ Wi ◮ Until Wi empty Sergio Cabello

slide-13
SLIDE 13

Unweighted - Growing Wi

s 1 W4 W3

Sergio Cabello

slide-14
SLIDE 14

Unweighted - Growing Wi

s 1 W4 W3

Sergio Cabello

slide-15
SLIDE 15

Unweighted - Growing Wi

s 1 W4 W3

Sergio Cabello

slide-16
SLIDE 16

Unweighted - Growing Wi

s W4 W3 1

Sergio Cabello

slide-17
SLIDE 17

Unweighted

◮ BFS in G(P) without building G(P) ◮ Wi = {p ∈ P | dG(P)(s, p) = i} ◮ Build W0 = {s} ◮ Iteratively build Wi from Wi−1 ◮ edge connecting p to NN(p, Wi−1) for all p ∈ Wi ◮ Until Wi empty ◮ Use DT(P) to guide the search of candidate points for Wi ◮ Candidate points for Wi:

  • points adjacent to Wi−1 in DT(P)
  • points adjacent to Wi in DT(P)

◮ Is this good enough? Sergio Cabello

slide-18
SLIDE 18

Unweighted - Growing Wi

Sergio Cabello

slide-19
SLIDE 19

Unweighted - Growing Wi

Sergio Cabello

slide-20
SLIDE 20

Unweighted - Growing Wi

s 1

Sergio Cabello

slide-21
SLIDE 21

Unweighted - Growing Wi

Lemma

Let p ∈ Wi. There exists a path q1, . . . , qk = p in G(P) ∩ DT(P) with q1 ∈ Wi−1 and q2, . . . , qk ∈ Wi.

Sergio Cabello

slide-22
SLIDE 22

Unweighted - Growing Wi

Lemma

Let p ∈ Wi. There exists a path q1, . . . , qk = p in G(P) ∩ DT(P) with q1 ∈ Wi−1 and q2, . . . , qk ∈ Wi.

q1 p cell(P, q1) cell(P, q2) cell(P, p) . . . cell(P, qk−1)

Sergio Cabello

slide-23
SLIDE 23

Unweighted - Growing Wi

Lemma

Let p ∈ Wi. There exists a path q1, . . . , qk = p in G(P) ∩ DT(P) with q1 ∈ Wi−1 and q2, . . . , qk ∈ Wi.

◮ Data structure to decide whether candidate q is ∈ Wi

  • DS for NN(q, Wi−1)
  • check if distance ≤ 1

◮ each edge of DT(P) explored twice ◮ building Wi takes time

O

  • |Wi−1| + |Wi| +
  • p∈Wi−1∪Wi

degDT(P)(p)

  • log n
  • Sergio Cabello
slide-24
SLIDE 24

1. for p ∈ P do 2. dist[p] ← ∞; 3. dist[s] ← 0 4. build the Delaunay triangulation DT(P) 5. W0 ← {s} 6. i ← 1 7. while Wi−1 = ∅ do 8. build data structure for nearest neighbour queries in Wi−1 9. Q ← Wi−1 (* generator of candidate points *) 10. Wi ← ∅ 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(Wi−1, q) 16. if dist[p] = ∞ and |pw| ≤ 1 then 17. dist[p] ← i 18. add p to Q and to Wi 19. i ← i + 1

  • 20. return dist[·]

Sergio Cabello

slide-25
SLIDE 25

Overview

◮ Setting/Motivation ◮ Related work for sssp ◮ Unweighted ←

− Done

  • O(n log n) time
  • implementable: Delaunay, Voronoi, point location

◮ Weighted:

  • O(n1+ε) time
  • unimplementable: dynamic bichromatic closest pair, shallow

cuttings

◮ Separation with unit disks:

  • O(n2 polylog n) time
  • Implementable, but many ingredients

Sergio Cabello

slide-26
SLIDE 26

Overview

◮ Setting/Motivation ◮ Related work for sssp ◮ Unweighted

  • O(n log n) time
  • implementable: Delaunay, Voronoi, point location

◮ Weighted:

  • O(n1+ε) time
  • unimplementable: dynamic bichromatic closest pair, shallow

cuttings

◮ Separation with unit disks:

  • O(n2 polylog n) time
  • Implementable, but many ingredients

Sergio Cabello

slide-27
SLIDE 27

Weighted - Ingredient - BCP

Bichromatic closest pair (BCP)

◮ weighted Euclidean ◮ red points R ◮ blue points B ◮ weights wb for each b ∈ B ◮ δ: B × R → R

δ(b, r) = wb + |br|

2 4 3 2

Sergio Cabello

slide-28
SLIDE 28

Weighted - Ingredient - BCP

Bichromatic closest pair (BCP)

◮ weighted Euclidean ◮ red points R ◮ blue points B ◮ weights wb for each b ∈ B ◮ δ: B × R → R

δ(b, r) = wb + |br|

◮ Eppstein 1995 + Agarwal, Efrat, Sharir 1999:

dynamic BCP in O(nε) amortized per operation

  • insertion/deletion
  • query for minima minr,b δ(r, b)

Sergio Cabello

slide-29
SLIDE 29

Weighted - Idea

◮ Modification of Dijkstra’s algorithm ◮ Standard Dijsktra’s algorithm

  • keep an array dist[·]
  • dist[v] is an (over)estimate of dG(P)(s, v)
  • keep partition P into S and P \ S
  • S contains vertices with dist[s] = dG(P)(s, v)

s

S

P \ S Sergio Cabello

slide-30
SLIDE 30

Weighted - Idea

◮ Modification of Dijkstra’s algorithm ◮ Standard Dijsktra’s algorithm

  • keep an array dist[·]
  • dist[v] is an (over)estimate of dG(P)(s, v)
  • keep partition P into S and P \ S
  • S contains vertices with dist[s] = dG(P)(s, v)
  • an iteration: find a vertex

q∗ ∈ arg min

q∈P\S

min

p∈S,,|pq|≤1

dist[p] + |pq|

  • move q∗ from P \ S to S
  • usually we keep dist[q] = minp∈S dist[p] + |pq|

Sergio Cabello

slide-31
SLIDE 31

Weighted - Idea

◮ Modification of Dijkstra’s algorithm

  • array dist[·], dist[v] is an (over)estimate of dG(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

(b,r)∈∈B×R

dist[b] + |br|

  • if |b∗r∗| > 1, move b∗ from B to D
  • else normal Dijsktra’s step

Sergio Cabello

slide-32
SLIDE 32

Weighted - Idea

◮ Modification of Dijkstra’s algorithm

s D B R S

Sergio Cabello

slide-33
SLIDE 33

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

  • 17. return dist[·]

Sergio Cabello

slide-34
SLIDE 34

Overview

◮ Setting/Motivation ◮ Related work for sssp ◮ Unweighted

  • O(n log n) time
  • implementable: Delaunay, Voronoi, point location

◮ Weighted ←

− Done

  • O(n1+ε) time
  • unimplementable: dynamic bichromatic closest pair, shallow

cuttings

◮ Separation with unit disks:

  • O(n2 polylog n) time
  • Implementable, but many ingredients

Sergio Cabello

slide-35
SLIDE 35

Overview

◮ Setting/Motivation ◮ Related work for sssp ◮ Unweighted

  • O(n log n) time
  • implementable: Delaunay, Voronoi, point location

◮ Weighted

  • O(n1+ε) time
  • unimplementable: dynamic bichromatic closest pair, shallow

cuttings

◮ Separation with unit disks:

  • O(n2 polylog n) time
  • Implementable, but many ingredients

Sergio Cabello

slide-36
SLIDE 36

Setting

◮ set D of unit disks ◮ s, t points in R2 \ D ◮ P centers of the disks ◮ G(P) as before, with distance 2 ◮ C. and Giannopoulos

  • O(n2 + n · |E(G(D))|)
  • general objects

s t

Sergio Cabello

slide-37
SLIDE 37

Setting

◮ set D of unit disks ◮ s, t points in R2 \ D ◮ P centers of the disks ◮ G(P) as before, with distance 2 ◮ C. and Giannopoulos

  • O(n2 + n · |E(G(D))|)
  • general objects

◮ today: O(n2 log4 n) for unit

disks

◮ also easier to explain &

understand

s t

Sergio Cabello

slide-38
SLIDE 38

Algorithm of C. & Giannopoulos

◮ for a closed walk π = p1 . . . pkp1 in G(P)

N(π) = π ∩ st (mod 2)

s t s t

Sergio Cabello

slide-39
SLIDE 39

Algorithm of C. & Giannopoulos

◮ for a closed walk π = p1 . . . pkp1 in G(P)

N(π) = π ∩ st (mod 2)

◮ if N(π) = 1 then

p∈V (π) disk(p, 1) separates s and t

◮ shortest closed walk π with N(π) = 1 gives an optimal solution ◮ shortest closed walk π with N(π) = 1 is actually a cycle ◮ enough to restrict the search to fundamental cycles:

defined by a BFS-tree and an additional edge min |V (cycle(Tr, e))| s.t. r ∈ P, Tr BFS cycle from r e ∈ E(G(P)) \ E(Tr) N(cycle(Tr, e)) = 1

Sergio Cabello

slide-40
SLIDE 40

Algorithm of C. & Giannopoulos

◮ for a closed walk π = p1 . . . pkp1 in G(P)

N(π) = π ∩ st (mod 2)

s t

Sergio Cabello

slide-41
SLIDE 41

Adaptation

for each r in P

◮ construct BFS tree Tr from r ◮ attach to each p ∈ P the label d[p] = dG(P)(s, p) ◮ solve

min d[p] + d[q] s.t. |pq| ≤ 1 N(cycle(Tr, pq)) = 1

◮ break P into groups depending on N(Tr[r, p]) ◮ use range searching & vertical shooting

to solve the resulting problems

Sergio Cabello

slide-42
SLIDE 42

Adaptation

for each r in P

s t r

Sergio Cabello

slide-43
SLIDE 43

Adaptation

for each r in P

s t r

Sergio Cabello

slide-44
SLIDE 44

Resulting problem - Example

◮ vertical segment st ◮ points A and B with weights (wp)p∈A∪B

min wa + wb s.t. a ∈ A, b ∈ B |ab| ≤ 1 ab ∩ st = ∅ Solvable in O(n log4 n)

s t s t A B

Sergio Cabello

slide-45
SLIDE 45

Conclusions

◮ shortest paths in unit disk graphs

  • O(n log n) for unweighted
  • O(n1+ε) for weighted

◮ Improvement for separation with unit disks Sergio Cabello

slide-46
SLIDE 46

Conclusions

◮ shortest paths in unit disk graphs

  • O(n log n) for unweighted
  • O(n1+ε) for weighted

◮ Improvement for separation with unit disks ◮ Open problems:

  • Can we compute efficiently a compact representation of the

distances in all the graphs G≤λ(P)?

  • Given s, t ∈ P and k ∈ N,

find minimum λ such that dG≤λ(P)(s, t) ≤ k. Easy in ˜ O(n4/3).

  • Dual to separation problem – barrier resilience:

find (s, t)-curve that touches as few disks as possible. Polynomial? Hard?

Sergio Cabello

slide-47
SLIDE 47

Conclusions

◮ shortest paths in unit disk graphs

  • O(n log n) for unweighted
  • O(n1+ε) for weighted

◮ Improvement for separation with unit disks ◮ Open problems:

  • Can we compute efficiently a compact representation of the

distances in all the graphs G≤λ(P)?

  • Given s, t ∈ P and k ∈ N,

find minimum λ such that dG≤λ(P)(s, t) ≤ k. Easy in ˜ O(n4/3).

  • Dual to separation problem – barrier resilience:

find (s, t)-curve that touches as few disks as possible. Polynomial? Hard? Or both?

Sergio Cabello