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 Connect a set of cities by a new street network. But for any pair ( x, y ) the graph distance shouldn’t be much longer than � xy � 1. idea: eucl. min. spanning tree
Motivation Connect a set of cities by a new street network. But for any pair ( x, y ) the graph distance shouldn’t be much longer than � xy � 1. idea: eucl. min. spanning tree 2. idea: complete graph
Motivation Connect a set of cities by a new street network. But for any pair ( x, y ) the graph distance shouldn’t be much longer than � xy � The budget for roads only pays for O ( n ) roads. 1. idea: eucl. min. spanning tree 2. idea: complete graph
Motivation Connect a set of cities by a new street network. But for any pair ( x, y ) the graph distance shouldn’t be much longer than � xy � The budget for roads only pays for O ( n ) roads. 1. idea: eucl. min. spanning tree 2. idea: complete graph detour ≤ t · shortest path 3. idea: sparse t -spanner O ( n ) edges
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
t -Spanner For a set P of n points in R d the Euclidean graph � P � EG ( P ) = ( P, ) is the complete, weighted graph with 2 Euclidean distances as edge weights.
t -Spanner For a set P of n points in R d the Euclidean graph � P � EG ( P ) = ( P, ) is the complete, weighted graph with 2 Euclidean distances as edge weights. v w ( uv ) = || uv || u
t -Spanner For a set P of n points in R d the Euclidean graph � P � EG ( P ) = ( P, ) is the complete, weighted graph with 2 Euclidean distances as edge weights. Since EG ( P ) has Θ( n 2 ) 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 ) v w ( uv ) = || uv || u
t -Spanner For a set P of n points in R d the Euclidean graph � P � EG ( P ) = ( P, ) is the complete, weighted graph with 2 Euclidean distances as edge weights. Since EG ( P ) has Θ( n 2 ) 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 .
t -Spanner For a set P of n points in R d the Euclidean graph � P � EG ( P ) = ( P, ) is the complete, weighted graph with 2 Euclidean distances as edge weights. Since EG ( P ) has Θ( n 2 ) 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?
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
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
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!
Well-Separated Pairs Def.: A pair of disjoing point sets A and B in R d 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 , B r A ≥ sr r
Well-Separated Pairs Def.: A pair of disjoing point sets A and B in R d 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 , B r A ′ A ≥ sr r ′ r ≥ sr ′ r ′ B ′
Well-Separated Pairs Def.: A pair of disjoing point sets A and B in R d 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 , B r A ′ A ≥ sr r ′ r ≥ sr ′ r ′ B ′ • s -well separated ⇒ s ′ -well separated for all s ′ ≤ s Obs.: • singletons { a } and { b } are s -well separated for all s > 0
Well-Separated Pair Decomposition 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. � n � goal: o ( n 2 ) -data structure that approximates all pairwise 2 distances of a point set P = { p 1 , . . . , p n } .
Well-Separated Pair Decomposition 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. � n � goal: o ( n 2 ) -data structure that approximates all pairwise 2 distances of a point set P = { p 1 , . . . , p n } . Def.: For a set of points P and s > 0 an s -well separated pair decomposition ( s -WSPD) is a set of pairs {{ A 1 , B 1 } , . . . , { A m , B m }} with • A i , B i ⊂ P for all i • A i ∩ B i = ∅ for all i • � m i =1 A i ⊗ B i = P ⊗ P • { A i , B i } s -well separated for all i
Example 28 pairs of points
Example 28 pairs of points 12 s -well separated pairs
Example 28 pairs of points 12 s -well separated pairs WSPD of size O ( n 2 ) is trivial. What is the ‘size’? Can we do in O ( n ) ?
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. NE NW SW SE
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 of the initial (biggest) square. Then the depth of a quadtree for P is at most log( s/c ) + 3 / 2 . A quadtree of depth d storing n points has Thm 1: O (( d + 1) n ) nodes and can be constructed in O (( d + 1) n ) time.
Compressed Quadtrees Def.: A compressed quadtree is a quadtree in which paths of non-separating inner nodes are compressed to an edge. A compressed quadtree for n points in R d for fixed d Thm 2: has size O ( n ) and can be computed in O ( n log n ) time. (without proof)
Representative and Level Def.: For every node u of a quadtree T ( P ) let P u = σ u ∩ P , where σ u is the square corresponding to u . For every leaf u define the representative � if P u = { p } ( u is leaf) p rep ( u ) = ∅ otherwise. For every inner node v set rep ( v ) = rep ( u ) of a non-empty child u of v .
Representative and Level Def.: For every node u of a quadtree T ( P ) let P u = σ u ∩ P , where σ u is the square corresponding to u . For every leaf u define the representative � if P u = { p } ( u is leaf) p rep ( u ) = ∅ otherwise. 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 ( Q u ) ≥ area ( Q v ) .
Representative and Level Def.: For every node u of a quadtree T ( P ) let P u = σ u ∩ P , where σ u is the square corresponding to u . level 0 For every leaf u define the representative � if P u = { p } ( u is leaf) p level 3 rep ( u ) = level 1 ∅ otherwise. 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 ( Q u ) ≥ area ( Q v ) .
Construction of a WSPD wsPairs( u, v, T , s ) Input: quadtree nodes u, v , quadtree T , s > 0 Output: WSPD for P u ⊗ P v if rep ( u ) = ∅ or rep ( v ) = ∅ or leaves u = v then return ∅ else if P u und P v s -well separated then return {{ u, v }} else if level( u ) > level( v ) then exchange u and v ( u 1 , . . . , u m ) ← children of u in T return � m i =1 wsPairs( u i , v, T , s ) b a c u 0 d e d a e c b
Recommend
More recommend