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

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