Geometric Algorithms Well-Separated Pair Decomposition & - - PowerPoint PPT Presentation

geometric algorithms
SMART_READER_LITE
LIVE PREVIEW

Geometric Algorithms Well-Separated Pair Decomposition & - - PowerPoint PPT Presentation

Geometric Algorithms Well-Separated Pair Decomposition & Spanners Motivation Connect a set of cities by a new street network. Motivation Connect a set of cities by a new street network. 1. idea: eucl. min. spanning tree Motivation


slide-1
SLIDE 1

Geometric Algorithms

Well-Separated Pair Decomposition & Spanners

slide-2
SLIDE 2

Motivation

Connect a set of cities by a new street network.

slide-3
SLIDE 3

Motivation

Connect a set of cities by a new street network.

  • 1. idea: eucl. min. spanning tree
slide-4
SLIDE 4

Motivation

Connect a set of cities by a new street network.

  • 1. idea: eucl. min. spanning tree

But for any pair (x, y) the graph distance shouldn’t be much longer than xy

slide-5
SLIDE 5

Motivation

Connect a set of cities by a new street network.

  • 1. idea: eucl. min. spanning tree

But for any pair (x, y) the graph distance shouldn’t be much longer than xy

  • 2. idea: complete graph
slide-6
SLIDE 6

Motivation

Connect a set of cities by a new street network.

  • 1. idea: eucl. min. spanning tree

But for any pair (x, y) the graph distance shouldn’t be much longer than xy

  • 2. idea: complete graph

The budget for roads only pays for O(n) roads.

slide-7
SLIDE 7

Motivation

Connect a set of cities by a new street network.

  • 1. idea: eucl. min. spanning tree

But for any pair (x, y) the graph distance shouldn’t be much longer than xy

  • 2. idea: complete graph

The budget for roads only pays for O(n) roads.

  • 3. idea: sparse t-spanner

detour ≤ t· shortest path O(n) edges

slide-8
SLIDE 8

Applications

communication and connectivity in networks topology control in wireless networks routing in networks network analysis fast, approximate distance computation geometric approximation algorithms for diameter etc. exact algorithms: closest pair, . . ., Voronoi diagrams

slide-9
SLIDE 9

t-Spanner

For a set P of n points in Rd the Euclidean graph EG(P) = (P, P

2

  • ) is the complete, weighted graph with

Euclidean distances as edge weights.

slide-10
SLIDE 10

t-Spanner

For a set P of n points in Rd the Euclidean graph EG(P) = (P, P

2

  • ) is the complete, weighted graph with

Euclidean distances as edge weights. u v

w(uv) = ||uv||

slide-11
SLIDE 11

t-Spanner

For a set P of n points in Rd the Euclidean graph EG(P) = (P, P

2

  • ) is the complete, weighted graph with

Euclidean distances as edge weights. Since EG(P) has Θ(n2) edges, we want a sparse graph with O(n) edges such that the shortest paths in the graph approximate the edge weights of EG(P) u v

w(uv) = ||uv||

slide-12
SLIDE 12

t-Spanner

For a set P of n points in Rd the Euclidean graph EG(P) = (P, P

2

  • ) is the complete, weighted graph with

Euclidean distances as edge weights. Since EG(P) has Θ(n2) edges, we want a sparse graph with O(n) edges such that the shortest paths in the graph approximate the edge weights of EG(P) Def.: A weighted graph G with vertex set P is called t-spanner for P and a stretch factor t ≥ 1, if for all pairs x, y ∈ P: ||xy|| ≤ δG(x, y) ≤ t · ||xy||, where δG(x, y) = length of the shortest x-y-path in G.

slide-13
SLIDE 13

t-Spanner

For a set P of n points in Rd the Euclidean graph EG(P) = (P, P

2

  • ) is the complete, weighted graph with

Euclidean distances as edge weights. Since EG(P) has Θ(n2) edges, we want a sparse graph with O(n) edges such that the shortest paths in the graph approximate the edge weights of EG(P) Def.: A weighted graph G with vertex set P is called t-spanner for P and a stretch factor t ≥ 1, if for all pairs x, y ∈ P: ||xy|| ≤ δG(x, y) ≤ t · ||xy||, where δG(x, y) = length of the shortest x-y-path in G. How can we compute a t-spanner?

slide-14
SLIDE 14

Spanner Construction Paradigms

greedy

  • sort point pairs by distance, start with no edges
  • if for the next point pair the dilation is > t then add

corresponding edge

slide-15
SLIDE 15

Spanner Construction Paradigms

greedy

  • sort point pairs by distance, start with no edges
  • if for the next point pair the dilation is > t then add

corresponding edge cone-based

  • subdivide space around each point into k > 6

non-overlapping cones with angle φ = 2π/k

  • connect to “closest” point in each cone
slide-16
SLIDE 16

Spanner Construction Paradigms

greedy

  • sort point pairs by distance, start with no edges
  • if for the next point pair the dilation is > t then add

corresponding edge cone-based

  • subdivide space around each point into k > 6

non-overlapping cones with angle φ = 2π/k

  • connect to “closest” point in each cone

distance approximation

  • well-separated pair decomposition!
slide-17
SLIDE 17

Well-Separated Pairs

Def.: A pair of disjoing point sets A and B in Rd is called s-well separated for an s > 0, if A and B both can be covered by a ball of radius r and the distance between the balls is at least sr, ≥ sr r r A B

slide-18
SLIDE 18

Well-Separated Pairs

Def.: A pair of disjoing point sets A and B in Rd is called s-well separated for an s > 0, if A and B both can be covered by a ball of radius r and the distance between the balls is at least sr, ≥ sr r r A B A′ B′

r′ r′ ≥ sr′

slide-19
SLIDE 19

Well-Separated Pairs

Def.: A pair of disjoing point sets A and B in Rd is called s-well separated for an s > 0, if A and B both can be covered by a ball of radius r and the distance between the balls is at least sr, ≥ sr r r A B A′ B′

r′ r′ ≥ sr′

Obs.:

  • s-well separated ⇒ s′-well separated for all s′ ≤ s
  • singletons {a} and {b} are s-well separated for all

s > 0

slide-20
SLIDE 20

Well-Separated Pair Decomposition

goal: o(n2)-data structure that approximates all n

2

  • pairwise

distances of a point set P = {p1, . . . , pn} . For a well-separated pair {A, B} the distance between all point pairs in A ⊗ B = {{a, b} | a ∈ A, b ∈ B, a = b} is similar.

slide-21
SLIDE 21

Well-Separated Pair Decomposition

goal: o(n2)-data structure that approximates all n

2

  • pairwise

distances of a point set P = {p1, . . . , pn} . For a well-separated pair {A, B} the distance between all point pairs in A ⊗ B = {{a, b} | a ∈ A, b ∈ B, a = b} is similar. Def.: For a set of points P and s > 0 an s-well separated pair decomposition (s-WSPD) is a set of pairs {{A1, B1}, . . . , {Am, Bm}} with

  • Ai, Bi ⊂ P for all i
  • Ai ∩ Bi = ∅ for all i
  • m

i=1 Ai ⊗ Bi = P ⊗ P

  • {Ai, Bi} s-well separated for all i
slide-22
SLIDE 22

Example

28 pairs of points

slide-23
SLIDE 23

Example

28 pairs of points 12 s-well separated pairs

slide-24
SLIDE 24

Example

28 pairs of points 12 s-well separated pairs WSPD of size O(n2) is trivial. What is the ‘size’? Can we do in O(n)?

slide-25
SLIDE 25

Reminder: Quadtrees

NE NW SW SE

Def.: A quadtree is a rooted tree, in which every interior node has 4 children. Every node corresponds to a square, and the squares of children are the quadrants of the parent’s square.

slide-26
SLIDE 26

Reminder: Quadtrees

Def.: A quadtree is a rooted tree, in which every interior node has 4 children. Every node corresponds to a square, and the squares of children are the quadrants of the parent’s square. Lemma 1: Let c be the smallest distance between any two points in a point set P, and let s be the side length

  • f the initial (biggest) square. Then the depth of a

quadtree for P is at most log(s/c) + 3/2. Thm 1: A quadtree of depth d storing n points has O((d + 1)n) nodes and can be constructed in O((d + 1)n) time.

slide-27
SLIDE 27

Compressed Quadtrees

Def.: A compressed quadtree is a quadtree in which paths of non-separating inner nodes are compressed to an edge. Thm 2: A compressed quadtree for n points in Rd for fixed d has size O(n) and can be computed in O(n log n) time.

(without proof)

slide-28
SLIDE 28

Representative and Level

Def.: For every node u of a quadtree T (P) let Pu = σu ∩ P, where σu is the square corresponding to u. For every leaf u define the representative rep(u) =

  • p

if Pu = {p} (u is leaf) ∅

  • therwise.

For every inner node v set rep(v) = rep(u) of a non-empty child u of v.

slide-29
SLIDE 29

Representative and Level

Def.: For every node u of a quadtree T (P) let Pu = σu ∩ P, where σu is the square corresponding to u. For every leaf u define the representative rep(u) =

  • p

if Pu = {p} (u is leaf) ∅

  • therwise.

For every inner node v set rep(v) = rep(u) of a non-empty child u of v. Def.: For every node u of a quadtree T (P) let level(u) be the level of u in the corresponding uncompressed quadtree. It holds: level(u) ≤ level(v) ⇔ area(Qu) ≥ area(Qv).

slide-30
SLIDE 30

Representative and Level

Def.: For every node u of a quadtree T (P) let Pu = σu ∩ P, where σu is the square corresponding to u. For every leaf u define the representative rep(u) =

  • p

if Pu = {p} (u is leaf) ∅

  • therwise.

For every inner node v set rep(v) = rep(u) of a non-empty child u of v. Def.: For every node u of a quadtree T (P) let level(u) be the level of u in the corresponding uncompressed quadtree. It holds: level(u) ≤ level(v) ⇔ area(Qu) ≥ area(Qv). level 0

level 1

level 3

slide-31
SLIDE 31

Construction of a WSPD

wsPairs(u, v, T , s) Input: quadtree nodes u, v, quadtree T , s > 0 Output: WSPD for Pu ⊗ Pv if rep(u) = ∅ or rep(v) = ∅ or leaves u = v then return ∅ else if Pu und Pv s-well separated then return {{u, v}} else if level(u) > level(v) then exchange u and v (u1, . . . , um) ← children of u in T return m

i=1 wsPairs(ui, v, T , s)

a b c d e u0 b d c a e

slide-32
SLIDE 32

Construction of a WSPD

wsPairs(u, v, T , s) Input: quadtree nodes u, v, quadtree T , s > 0 Output: WSPD for Pu ⊗ Pv if rep(u) = ∅ or rep(v) = ∅ or leaves u = v then return ∅ else if Pu und Pv s-well separated then return {{u, v}} else if level(u) > level(v) then exchange u and v (u1, . . . , um) ← children of u in T return m

i=1 wsPairs(ui, v, T , s)

a b c d e u0 b d c a e

slide-33
SLIDE 33

Construction of a WSPD

wsPairs(u, v, T , s) Input: quadtree nodes u, v, quadtree T , s > 0 Output: WSPD for Pu ⊗ Pv if rep(u) = ∅ or rep(v) = ∅ or leaves u = v then return ∅ else if Pu und Pv s-well separated then return {{u, v}} else if level(u) > level(v) then exchange u and v (u1, . . . , um) ← children of u in T return m

i=1 wsPairs(ui, v, T , s)

a b c d e u0 b d c a e

slide-34
SLIDE 34

Construction of a WSPD

wsPairs(u, v, T , s) Input: quadtree nodes u, v, quadtree T , s > 0 Output: WSPD for Pu ⊗ Pv if rep(u) = ∅ or rep(v) = ∅ or leaves u = v then return ∅ else if Pu und Pv s-well separated then return {{u, v}} else if level(u) > level(v) then exchange u and v (u1, . . . , um) ← children of u in T return m

i=1 wsPairs(ui, v, T , s)

a b c d e u0 b d c a e

slide-35
SLIDE 35

Construction of a WSPD

wsPairs(u, v, T , s) Input: quadtree nodes u, v, quadtree T , s > 0 Output: WSPD for Pu ⊗ Pv if rep(u) = ∅ or rep(v) = ∅ or leaves u = v then return ∅ else if Pu und Pv s-well separated then return {{u, v}} else if level(u) > level(v) then exchange u and v (u1, . . . , um) ← children of u in T return m

i=1 wsPairs(ui, v, T , s)

a b c d e u0 b d c a e

slide-36
SLIDE 36

Construction of a WSPD

wsPairs(u, v, T , s) Input: quadtree nodes u, v, quadtree T , s > 0 Output: WSPD for Pu ⊗ Pv if rep(u) = ∅ or rep(v) = ∅ or leaves u = v then return ∅ else if Pu und Pv s-well separated then return {{u, v}} else if level(u) > level(v) then exchange u and v (u1, . . . , um) ← children of u in T return m

i=1 wsPairs(ui, v, T , s)

a b c d e u0 b d c a e

slide-37
SLIDE 37

Construction of a WSPD

wsPairs(u, v, T , s) Input: quadtree nodes u, v, quadtree T , s > 0 Output: WSPD for Pu ⊗ Pv if rep(u) = ∅ or rep(v) = ∅ or leaves u = v then return ∅ else if Pu und Pv s-well separated then return {{u, v}} else if level(u) > level(v) then exchange u and v (u1, . . . , um) ← children of u in T return m

i=1 wsPairs(ui, v, T , s)

a b c d e u0 b d c a e

slide-38
SLIDE 38

Construction of a WSPD

wsPairs(u, v, T , s) Input: quadtree nodes u, v, quadtree T , s > 0 Output: WSPD for Pu ⊗ Pv if rep(u) = ∅ or rep(v) = ∅ or leaves u = v then return ∅ else if Pu und Pv s-well separated then return {{u, v}} else if level(u) > level(v) then exchange u and v (u1, . . . , um) ← children of u in T return m

i=1 wsPairs(ui, v, T , s)

a b c d e u0 ∅ b d c a e

slide-39
SLIDE 39

Construction of a WSPD

wsPairs(u, v, T , s) Input: quadtree nodes u, v, quadtree T , s > 0 Output: WSPD for Pu ⊗ Pv if rep(u) = ∅ or rep(v) = ∅ or leaves u = v then return ∅ else if Pu und Pv s-well separated then return {{u, v}} else if level(u) > level(v) then exchange u and v (u1, . . . , um) ← children of u in T return m

i=1 wsPairs(ui, v, T , s)

a b c d e u0 b d c a e circles around σu and σv (or radius 0 for point in a leaf) check distance ≥ sr in O(1) time

slide-40
SLIDE 40

Construction of a WSPD

wsPairs(u, v, T , s) Input: quadtree nodes u, v, quadtree T , s > 0 Output: WSPD for Pu ⊗ Pv if rep(u) = ∅ or rep(v) = ∅ or leaves u = v then return ∅ else if Pu und Pv s-well separated then return {{u, v}} else if level(u) > level(v) then exchange u and v (u1, . . . , um) ← children of u in T return m

i=1 wsPairs(ui, v, T , s)

a b c d e u0 {{b, c}, {d}} {{b, c}, {d}} b d c a e circles around σu and σv (or radius 0 for point in a leaf) check distance ≥ sr in O(1) time

slide-41
SLIDE 41

Construction of a WSPD

wsPairs(u, v, T , s) Input: quadtree nodes u, v, quadtree T , s > 0 Output: WSPD for Pu ⊗ Pv if rep(u) = ∅ or rep(v) = ∅ or leaves u = v then return ∅ else if Pu und Pv s-well separated then return {{u, v}} else if level(u) > level(v) then exchange u and v (u1, . . . , um) ← children of u in T return m

i=1 wsPairs(ui, v, T , s)

a b c d e u0 {{a}, {d}} {{b, c}, {d}} {{a}, {d}} b d c a e

slide-42
SLIDE 42

Construction of a WSPD

wsPairs(u, v, T , s) Input: quadtree nodes u, v, quadtree T , s > 0 Output: WSPD for Pu ⊗ Pv if rep(u) = ∅ or rep(v) = ∅ or leaves u = v then return ∅ else if Pu und Pv s-well separated then return {{u, v}} else if level(u) > level(v) then exchange u and v (u1, . . . , um) ← children of u in T return m

i=1 wsPairs(ui, v, T , s)

a b c d e u0 {{b, c}, {d}} {{a}, {d}} b d c {{b, c}, {e}} {{d}, {e}} {{a}, {b}} {{a}, {c}} {{b}, {c}} {{a}, {e}} a e

slide-43
SLIDE 43

Construction of a WSPD

wsPairs(u, v, T , s) Input: quadtree nodes u, v, quadtree T , s > 0 Output: WSPD for Pu ⊗ Pv if rep(u) = ∅ or rep(v) = ∅ or leaves u = v then return ∅ else if Pu und Pv s-well separated then return {{u, v}} else if level(u) > level(v) then exchange u and v (u1, . . . , um) ← children of u in T return m

i=1 wsPairs(ui, v, T , s)

a b c d e u0 b d c a e

  • initial call wsPairs(u0, u0, T , s)
  • avoid duplicate wsPairs(ui, uj, T , s) and wsPairs(uj, ui, T , s)
  • pairs of leaves are always s-well separated, algorithm terminates
  • output are pairs of quadtree nodes
slide-44
SLIDE 44

Construction of a WSPD

wsPairs(u, v, T , s) Input: quadtree nodes u, v, quadtree T , s > 0 Output: WSPD for Pu ⊗ Pv if rep(u) = ∅ or rep(v) = ∅ or leaves u = v then return ∅ else if Pu und Pv s-well separated then return {{u, v}} else if level(u) > level(v) then exchange u and v (u1, . . . , um) ← children of u in T return m

i=1 wsPairs(ui, v, T , s)

a b c d e u0 b d c a e

  • initial call wsPairs(u0, u0, T , s)
  • avoid duplicate wsPairs(ui, uj, T , s) and wsPairs(uj, ui, T , s)
  • pairs of leaves are always s-well separated, algorithm terminates
  • output are pairs of quadtree nodes

Question: How many pairs are generated by the algorithm?

slide-45
SLIDE 45

Analysis of WSPD-Construction

Thm 3: For a point set P in Rd and s ≥ 1 we can construct an s-WSPD with O(sdn) pairs in time O(n log n + sdn).

slide-46
SLIDE 46

Analysis of WSPD-Construction

Thm 3: For a point set P in Rd and s ≥ 1 we can construct an s-WSPD with O(sdn) pairs in time O(n log n + sdn). proof sketch: v u x rv ≤ sx √ d Rv

Assumptions: s ≥ 1, QT uncompressed. Count the non-terminal calls charging argument: charge non-term. call to the square that is not split. claim: O(sd) charges to each square Consider call (u, v) with v smaller of side length x. u, v are not separated, u is max. a factor 2 larger than v ⇒ distance between the balls ≤ s max(ru, rv) ≤ 2srv = sx √ d ⇒ distance between their centers ≤ (1/2 + 1 + s)x √ d ≤ 3sx √ d =: Rv packing lemma: only O(sd) such squares.

slide-47
SLIDE 47

Analysis of WSPD-Construction

Thm 3: For a point set P in Rd and s ≥ 1 we can construct an s-WSPD with O(sdn) pairs in time O(n log n + sdn). proof sketch: v u x rv ≤ sx √ d Rv

Assumptions: s ≥ 1, QT uncompressed. Count the non-terminal calls charging argument: charge non-term. call to the square that is not split. claim: O(sd) charges to each square Consider call (u, v) with v smaller of side length x. u, v are not separated, u is max. a factor 2 larger than v ⇒ distance between the balls ≤ s max(ru, rv) ≤ 2srv = sx √ d ⇒ distance between their centers ≤ (1/2 + 1 + s)x √ d ≤ 3sx √ d =: Rv packing lemma: only O(sd) such squares.

slide-48
SLIDE 48

Analysis of WSPD-Construction

Thm 3: For a point set P in Rd and s ≥ 1 we can construct an s-WSPD with O(sdn) pairs in time O(n log n + sdn). proof sketch: v u x rv ≤ sx √ d Rv

Assumptions: s ≥ 1, QT uncompressed. Count the non-terminal calls charging argument: charge non-term. call to the square that is not split. claim: O(sd) charges to each square Consider call (u, v) with v smaller of side length x. u, v are not separated, u is max. a factor 2 larger than v ⇒ distance between the balls ≤ s max(ru, rv) ≤ 2srv = sx √ d ⇒ distance between their centers ≤ (1/2 + 1 + s)x √ d ≤ 3sx √ d =: Rv packing lemma: only O(sd) such squares.

slide-49
SLIDE 49

Analysis of WSPD-Construction

Thm 3: For a point set P in Rd and s ≥ 1 we can construct an s-WSPD with O(sdn) pairs in time O(n log n + sdn). proof sketch: v u x rv ≤ sx √ d Rv

Assumptions: s ≥ 1, QT uncompressed. Count the non-terminal calls charging argument: charge non-term. call to the square that is not split. claim: O(sd) charges to each square Consider call (u, v) with v smaller of side length x. u, v are not separated, u is max. a factor 2 larger than v ⇒ distance between the balls ≤ s max(ru, rv) ≤ 2srv = sx √ d ⇒ distance between their centers ≤ (1/2 + 1 + s)x √ d ≤ 3sx √ d =: Rv packing lemma: only O(sd) such squares.

slide-50
SLIDE 50

Packing Lemma

Lemma 2: Let B be a ball of radius r in Rd and X a set of pairwise disjoint quadtree cells with side length ≥ x, that intersect B. Then |X| ≤ (1 + ⌈2r/x⌉)d.

slide-51
SLIDE 51

Packing Lemma

Lemma 2: Let B be a ball of radius r in Rd and X a set of pairwise disjoint quadtree cells with side length ≥ x, that intersect B. Then |X| ≤ (1 + ⌈2r/x⌉)d. proof: x r

slide-52
SLIDE 52

Packing Lemma

Lemma 2: Let B be a ball of radius r in Rd and X a set of pairwise disjoint quadtree cells with side length ≥ x, that intersect B. Then |X| ≤ (1 + ⌈2r/x⌉)d. proof: x r x r

slide-53
SLIDE 53

Packing Lemma

Lemma 2: Let B be a ball of radius r in Rd and X a set of pairwise disjoint quadtree cells with side length ≥ x, that intersect B. Then |X| ≤ (1 + ⌈2r/x⌉)d. proof: x r x r 2r

in every dimension max. 1 + ⌈2r/x⌉ squares can intersect the ball

slide-54
SLIDE 54

Application of WSPDs: t-Spanner

slide-55
SLIDE 55

t-Spanner

For a set P of n points in Rd the Euclidean graph EG(P) = (P, P

2

  • ) is the complete, weighted graph with

Euclidean distances as edge weights. Since EG(P) has Θ(n2) edges, we want a sparse graph with O(n) edges such that the shortest paths in the graph approximate the edge weights of EG(P) u v

w(uv) = ||uv||

slide-56
SLIDE 56

t-Spanner

For a set P of n points in Rd the Euclidean graph EG(P) = (P, P

2

  • ) is the complete, weighted graph with

Euclidean distances as edge weights. Since EG(P) has Θ(n2) edges, we want a sparse graph with O(n) edges such that the shortest paths in the graph approximate the edge weights of EG(P) Def.: A weighted graph G with vertex set P is called t-spanner for P and a stretch factor t ≥ 1, if for all pairs x, y ∈ P: ||xy|| ≤ δG(x, y) ≤ t · ||xy||, where δG(x, y) = length of the shortest x-y-path in G.

slide-57
SLIDE 57

WSPD and t-Spanner

Def.: For n points P in Rd and a WSPD W of P define the graph G = (P, E) with E = {{x, y} | {u, v} ∈ W and rep(u) = x, rep(v) = y}.

reminder: every pair {u, v} ∈ W corresponds to two quadtree nodes u and v. From each quadtree node a representative is selected in the following way. For leaf u define as representative rep(u) =

  • p

if Pu = {p} (u is leaf) ∅

  • therwise.

For an inner node v set rep(v) = rep(u) for a non-empty child u of v.

slide-58
SLIDE 58

WSPD and t-Spanner

Def.: For n points P in Rd and a WSPD W of P define the graph G = (P, E) with E = {{x, y} | {u, v} ∈ W and rep(u) = x, rep(v) = y}. G W

slide-59
SLIDE 59

WSPD and t-Spanner

Def.: For n points P in Rd and a WSPD W of P define the graph G = (P, E) with E = {{x, y} | {u, v} ∈ W and rep(u) = x, rep(v) = y}. Lemma 3: If W is an s-WSPD for a suitable s = s(t), then G is a t-spanner for P with O(sdn) edges.

slide-60
SLIDE 60

WSPD and t-Spanner

Def.: For n points P in Rd and a WSPD W of P define the graph G = (P, E) with E = {{x, y} | {u, v} ∈ W and rep(u) = x, rep(v) = y}. Lemma 3: If W is an s-WSPD for a suitable s = s(t), then G is a t-spanner for P with O(sdn) edges. proof: induction on distances

slide-61
SLIDE 61

WSPD and t-Spanner

Def.: For n points P in Rd and a WSPD W of P define the graph G = (P, E) with E = {{x, y} | {u, v} ∈ W and rep(u) = x, rep(v) = y}. Lemma 3: If W is an s-WSPD for a suitable s = s(t), then G is a t-spanner for P with O(sdn) edges. proof: induction on distances ≥ sr 2r x pu pv y Pu Pv

slide-62
SLIDE 62

Summary

Thm 4: For a set P of n points in Rd and an ε ∈ (0, 1] a (1 + ε)-spanner for P with O(n/εd) edges can be computed in O(n log n + n/εd) time.

slide-63
SLIDE 63

Summary

Thm 4: For a set P of n points in Rd and an ε ∈ (0, 1] a (1 + ε)-spanner for P with O(n/εd) edges can be computed in O(n log n + n/εd) time. proof: For t = (1 + ε) it holds with s = 4 · t+1

t−1

O(sdn) = O

  • 4 · 2 + ε

ε d n

  • ⊆ O

12 ε d n

  • = O

n εd

slide-64
SLIDE 64

Summary

Thm 4: For a set P of n points in Rd and an ε ∈ (0, 1] a (1 + ε)-spanner for P with O(n/εd) edges can be computed in O(n log n + n/εd) time. P compressed quadtree WSPD (1 + ε)-spanner O(n log n) O(n/εd) O(n/εd) proof: For t = (1 + ε) it holds with s = 4 · t+1

t−1

O(sdn) = O

  • 4 · 2 + ε

ε d n

  • ⊆ O

12 ε d n

  • = O

n εd

slide-65
SLIDE 65

Discussion

Applications of the WSPD? WSPD is always useful, when we don’t need the Θ(n2) exact distances, but approximate distances are enough

slide-66
SLIDE 66

Discussion

Applications of the WSPD? WSPD is always useful, when we don’t need the Θ(n2) exact distances, but approximate distances are enough Can’t we compute exact solutions in the same time? Often in R2 yes, but not in Rd for d > 2 (EMST, diameter). EMST, Voronoi diagrams, . . . can be computed in O(n) time from quadtress/WSPDs

slide-67
SLIDE 67

Discussion

Applications of the WSPD? WSPD is always useful, when we don’t need the Θ(n2) exact distances, but approximate distances are enough Can’t we compute exact solutions in the same time? Often in R2 yes, but not in Rd for d > 2 (EMST, diameter). EMST, Voronoi diagrams, . . . can be computed in O(n) time from quadtress/WSPDs Fun fact Constructing the greedy spanner naturally uses Ω(n2) space, but resulting from a previous project of this course, we know how to compute the greedy spanner in near-quadratic time using linear space (partially using WSPD) [Alewijnse et al. 2014]