approximate voronoi diagrams
play

Approximate Voronoi Diagrams Presentation by Maks Ovsjanikov S. - PowerPoint PPT Presentation

CS468, Mon. Oct. 30 th , 2006 Approximate Voronoi Diagrams Presentation by Maks Ovsjanikov S. Har-Peleds notes, Chapters 6 and 7 1-1 Outline Preliminaries Problem Statement } ANN using PLEB (Previous Lecture) Bounds and


  1. CS468, Mon. Oct. 30 th , 2006 Approximate Voronoi Diagrams Presentation by Maks Ovsjanikov S. Har-Peled’s notes, Chapters 6 and 7 1-1

  2. Outline • Preliminaries • Problem Statement } • ANN using PLEB (Previous Lecture) • Bounds and Improvements – Near Linear Space – Linear Space • ANN in R d using compressed quad-trees 2-1

  3. Preliminaries v u 3-1

  4. Preliminaries v d ( u, v ) u 3-2

  5. Preliminaries v d ( u, v ) d ( q, v ) u d ( q, u ) q 3-3

  6. Preliminaries v d ( u, v ) d ( q, v ) ≥ d ( u,v ) u ǫ ≥ d ( u,v ) d ( q, u ) ǫ q 3-4

  7. Preliminaries v d ( u, v ) ≥ d ( u,v ) d ( q, v ) u ǫ ≥ d ( u,v ) d ( q, u ) ǫ q  d ( q, u ) ≥ d ( u,v ) ⇒ d ( q, v )  ǫ = d ( q, u ) ≤ 1 + ǫ d ( q, v ) ≥ d ( u,v )  ǫ 3-5

  8. Preliminaries v d ( u, v ) d ( q ′ , v ) = (1 + α ) d ( u, v ) (1 + 1 = α ) d ( u, v ) ≥ d ( u,v ) d ( q, v ) u ǫ d ( q ′ , u ) = αd ( u, v ) ≥ d ( u,v ) d ( q, u ) ǫ q ′ q  d ( q, u ) ≥ d ( u,v ) ⇒ d ( q, v )  ǫ = d ( q, u ) ≤ 1 + ǫ d ( q, v ) ≥ d ( u,v )  ǫ 3-6

  9. Preliminaries  d ( q, u ) ≥ d ( u,v ) ⇒ d ( q, v )  ǫ = d ( q, u ) ≤ 1 + ǫ d ( q, v ) ≥ d ( u,v )  ǫ Holds in any metric space: 4-1

  10. Preliminaries  d ( q, u ) ≥ d ( u,v ) ⇒ d ( q, v )  ǫ = d ( q, u ) ≤ 1 + ǫ d ( q, v ) ≥ d ( u,v )  ǫ Holds in any metric space: d ( q, u ) = αd ( u, v ) d ( q, v ) ≤ d ( q, u ) + d ( u, v ) = (1 + 1 α ) d ( q, u ) ⇒ d ( q,v ) d ( q,u ) ≤ (1 + 1 α ) ≤ (1 + ǫ ) if α ≥ 1 = ǫ 4-2

  11. Preliminaries  d ( q, u ) ≥ d ( u,v ) ⇒ d ( q, v )  ǫ = d ( q, u ) ≤ 1 + ǫ d ( q, v ) ≥ d ( u,v )  ǫ Holds in any metric space: d ( q, u ) = αd ( u, v ) d ( q, v ) ≤ d ( q, u ) + d ( u, v ) = (1 + 1 α ) d ( q, u ) ⇒ d ( q,v ) d ( q,u ) ≤ (1 + 1 α ) ≤ (1 + ǫ ) if α ≥ 1 = ǫ Similarly: d ( q, v ) = αd ( u, v ) ⇒ d ( q,u ) d ( q,v ) ≤ (1 + 1 α ) ≤ (1 + ǫ ) if α ≥ 1 = ǫ 4-3

  12. Preliminaries  d ( q, u ) ≥ d ( u,v ) ⇒ d ( q, v )  ǫ = d ( q, u ) ≤ 1 + ǫ d ( q, v ) ≥ d ( u,v )  ǫ Moral: Any of the far away points is a (1 + ǫ ) closest neighbor 4-4

  13. Problem Statement: For a given ǫ , find a (1 + ǫ ) Aproximate Voronoi Diagram: Partition of space into regions with one representative r i per region, such that for any point q in region i , r i is a (1 + ǫ ) nearest neighbor of q 5-1

  14. Problem Statement: For a given ǫ , find a (1 + ǫ ) Aproximate Voronoi Diagram: Partition of space into regions with one representative r i per region, such that for any point q in region i , r i is a (1 + ǫ ) nearest neighbor of q 5-2

  15. Problem Statement: For a given ǫ , find a (1 + ǫ ) Aproximate Voronoi Diagram: Partition of space into regions with one representative r i per region, such that for any point q in region i , r i is a (1 + ǫ ) nearest neighbor of q Constraints: • bounded construction time and space (complexity) • Cover all space • sub-linear (1+ ǫ ) NN queries 5-3

  16. ANN using PLEB Reduce (1 + ǫ ) -ANN queries to target ball queries 6-1

  17. ANN using PLEB Reduce (1 + ǫ ) -ANN queries to target ball queries 1) Construct balls of radius (1 + ǫ ) i around each point, for i = 1 .. ∞ 6-2

  18. ANN using PLEB Reduce (1 + ǫ ) -ANN queries to target ball queries 1) Construct balls of radius (1 + ǫ ) i around each point, for i = 1 .. ∞ 6-3

  19. ANN using PLEB Reduce (1 + ǫ ) -ANN queries to target ball queries 1) Construct balls of radius (1 + ǫ ) i around each point, for i = 1 .. ∞ 6-4

  20. ANN using PLEB Reduce (1 + ǫ ) -ANN queries to target ball queries 1) Construct balls of radius (1 + ǫ ) i around each point, for i = 1 .. ∞ 6-5

  21. ANN using PLEB Reduce (1 + ǫ ) -ANN queries to target ball queries 1) Construct balls of radius (1 + ǫ ) i around each point, for i = 1 .. ∞ 6-6

  22. ANN using PLEB Reduce (1 + ǫ ) -ANN queries to target ball queries 1) Construct balls of radius (1 + ǫ ) i around each point, for i = 1 .. ∞ 6-7

  23. ANN using PLEB Reduce (1 + ǫ ) -ANN queries to target ball queries 1) Construct balls of radius (1 + ǫ ) i around each point, for i = 1 .. ∞ 6-8

  24. ANN using PLEB Reduce (1 + ǫ ) -ANN queries to target ball queries 1) Construct balls of radius (1 + ǫ ) i around each point, for i = 1 .. ∞ 6-9

  25. ANN using PLEB Reduce (1 + ǫ ) -ANN queries to target ball queries (1 + ǫ ) 5 q > (1 + ǫ ) 4 For any query point q , return the center p of the smallest ball that contains it: d ( q, n ) > (1 + ǫ ) i − 1 , and d ( q, p ) ≤ (1 + ǫ ) i < (1 + ǫ ) · d ( q, n ) = ⇒ always get a (1 + ǫ ) -Nearest Neighbor 6-10

  26. ANN using PLEB Reduce (1 + ǫ ) -ANN queries to target ball queries Problems: • Unbounded Number of Balls • Not clear how to preform target ball queries efficiently – Partition the space into regions of influence 6-11

  27. Bounding the number of balls Intuition: For a given pair u and v , we only care if min d ( q, { u, v } ) ∈ [ d ( u,v ) ǫ +2 , d ( u,v ) * ] ǫ 7-1

  28. Bounding the number of balls Intuition: For a given pair u and v , we only care if min d ( q, { u, v } ) ∈ [ d ( u,v ) ǫ +2 , d ( u,v ) * ] ǫ • if min d ( q, { u, v } ) > d ( u,v ) = ⇒ either u or v are (1 + ǫ ) NN ǫ 7-2

  29. Bounding the number of balls Intuition: For a given pair u and v , we only care if min d ( q, { u, v } ) ∈ [ d ( u,v ) ǫ +2 , d ( u,v ) * ] ǫ • if min d ( q, { u, v } ) > d ( u,v ) = ⇒ either u or v are (1 + ǫ ) NN ǫ • if min d ( q, { u, v } ) < d ( u,v ) ǫ +2 = ⇒ q has a unique (1 + ǫ ) NN v 1 d ( q, v ) > (1 − ǫ +2 ) d ( u, v ) q > ( ǫ + 1) d ( q, u ) d ( q, u ) < d ( u,v ) u ǫ +2 Do not need to grow balls of radius smaller than d ( u,v ) or larger than 2 d ( u,v ) * 4 ǫ 7-3

  30. Bounding the number of balls Intuition: For a given pair u and v , we only care if min d ( q, { u, v } ) ∈ [ d ( u,v ) ǫ +2 , d ( u,v ) * ] ǫ • if min d ( q, { u, v } ) > d ( u,v ) = ⇒ either u or v are (1 + ǫ ) NN ǫ • if min d ( q, { u, v } ) < d ( u,v ) ǫ +2 = ⇒ q has a unique (1 + ǫ ) NN v 1 d ( q, v ) > (1 − ǫ +2 ) d ( u, v ) q > ( ǫ + 1) d ( q, u ) d ( q, u ) < d ( u,v ) u ǫ +2 Do not need to grow balls of radius smaller than d ( u,v ) or larger than 2 d ( u,v ) * 4 ǫ Method 1: for every pair of points { u, v } , construct enough balls to cover [ d ( u,v ) , 2 d ( u,v ) ] on u , v 4 ǫ 7-4

  31. Bounding the number of balls Intuition: For a given pair u and v , we only care if min d ( q, { u, v } ) ∈ [ d ( u,v ) ǫ +2 , d ( u,v ) * ] ǫ • if min d ( q, { u, v } ) > d ( u,v ) = ⇒ either u or v are (1 + ǫ ) NN ǫ • if min d ( q, { u, v } ) < d ( u,v ) ǫ +2 = ⇒ q has a unique (1 + ǫ ) NN v 1 d ( q, v ) > (1 − ǫ +2 ) d ( u, v ) q > ( ǫ + 1) d ( q, u ) d ( q, u ) < d ( u,v ) u ǫ +2 Do not need to grow balls of radius smaller than d ( u,v ) or larger than 2 d ( u,v ) * 4 ǫ Method 1: for every pair of points { u, v } , construct enough balls to cover [ d ( u,v ) , 2 d ( u,v ) ] on u , v 4 ǫ 4 )) = O ( n 2 log( 7 C Overall: O ( n 2 log ǫ +1 ( 2 C ǫ ) ǫ − C log( ǫ +1) ) = O ( n 21 ǫ log( 1 ǫ )) balls Note: log(1 + ǫ ) = ǫ − ǫ 2 / 2 + ǫ 3 / 3 − .... = O ( ǫ ) in most cases 7-5

  32. Bounding the number of balls Interval Near-Neighbor data structure given a range of distances [ a, b ] , and a set of points P , answers: 1. d P ( q ) > b 2. d P ( q ) < a with a witness 3. otherwise, finds a point p ∈ P , s.t. d P ( q ) ≤ d ( p, q ) ≤ (1 + ǫ ) d P ( q ) 8-1

  33. Bounding the number of balls Interval Near-Neighbor data structure given a range of distances [ a, b ] , and a set of points P , answers: 1. d P ( q ) > b 2. d P ( q ) < a with a witness 3. otherwise, finds a point p ∈ P , s.t. d P ( q ) ≤ d ( p, q ) ≤ (1 + ǫ ) d P ( q ) Can be realized by a set of balls of radius a (1 + ǫ ) i for i = 0 ...M − 1 , where M = ⌈ log 1+ ǫ ( b/a ) ⌉ and a ball of radius b around every point in P 8-2

  34. Bounding the number of balls Interval Near-Neighbor data structure given a range of distances [ a, b ] , and a set of points P , answers: 1. d P ( q ) > b 2. d P ( q ) < a with a witness 3. otherwise, finds a point p ∈ P , s.t. d P ( q ) ≤ d ( p, q ) ≤ (1 + ǫ ) d P ( q ) Can be realized by a set of balls of radius a (1 + ǫ ) i for i = 0 ...M − 1 , where M = ⌈ log 1+ ǫ ( b/a ) ⌉ and a ball of radius b around every point in P Contains O ( n 1 ǫ log( b/a )) balls. Takes at most 2 target ball queries if 1 or 2 hold, and O (log( M )) = O (log log( b/a ) * ) otherwise ǫ 8-3

  35. Bounding the number of balls A data structure to answer (1 + ǫ ) -ANN queries on general points Build a tree, with an Interval Near Neighbor structure associated with each node (Sariel Har-Peled: A Replacement for Voronoi Diagrams of Near Linear Size . FOCS 2001: 94-103) 9-1

  36. Bounding the number of balls A data structure to answer (1 + ǫ ) -ANN queries on general points Build a tree, with an Interval Near Neighbor structure associated with each node (Sariel Har-Peled: A Replacement for Voronoi Diagrams of Near Linear Size . FOCS 2001: 94-103) 9-2

Recommend


More recommend