Presentation is loading. Please wait.

Presentation is loading. Please wait.

Computational Geometry Piyush Kumar (Lecture 5: Range Searching) Welcome to CIS5930.

Similar presentations


Presentation on theme: "Computational Geometry Piyush Kumar (Lecture 5: Range Searching) Welcome to CIS5930."— Presentation transcript:

1 Computational Geometry Piyush Kumar (Lecture 5: Range Searching) Welcome to CIS5930

2 Range Searching : recap 1D Range search kD trees Range Trees Fractional Cascading

3 Range Searching Preprocess a set P of objects for efficiently answering queries. Typically, P is a collection of geometric objects (points, rectangles, polygons) in R d. Query Range, Q : d-rectangles, balls, halfspaces, simplices, etc.. Either count all objects in P  Q or report the objects themselves. Courtesy Bhosle

4 Q1Q1 Example: Points in R 2 Q2Q2

5 Applications  Databases  Spatial databases (G.I.S.)  Computer Graphics  Robotics  Vision

6 Range Trees (1D) 24578121519 617 7 71915128245 2 4 5 8 15 Counting ? Reporting?

7 Range Trees (2d) P4P4 P3P3 P2P2 P1P1 P3P3 P2P2 P4P4 P1P1 P1P1 P2P2 P3P3 P4P4 P8P8 P7P7 P6P6 P5P5 P5P5 P8P8 P6P6 P7P7

8 Query and Space Complexity (counting) 1D  Query : O(log n) Space: O(n) 2D  Query : O(log n) Space O(nlogn)  Construction time : O(nlogn) d-D  Query : O(log d-1 n) Space: O(nlog d-1 n)  Construction time : O(nlog d-1 n)

9 Kd-Trees a typical struct  Int cut_dim;// dim orthogonal to cutting plane  Double cut_val;// location of cutting plane  Int size; // number of points in subtree The best implementation of kd-trees I know of:  http://www.cs.umd.edu/~mount/ANN/ http://www.cs.umd.edu/~mount/ANN/  Look at kd_tree.cc and kd_tree.h

10 kD-Trees (k-dimensional Trees) 1-d tree : split along median point and recursively build subtrees for the left and right sets. Higher dimensions : same approach, but cycle through the dimensions. Or, select the next dimension as the one with the widest spread. Efficiency of query processing drops as dimensions increase (becomes almost linear). However, the space requirement remains linear : O(n.d)

11 kD-Trees (Contd.) a b c d e f g f n m l k j i h o l m j e i g h b k a d c n o

12 Q(n) = 2.Q(n/4) + 1 Q(n) = O(n 1/2 ) i.e. Query answered in O(n 1-1/d + m) time where m is the output size kD-Trees (Contd.) Query complexity : How many cells can a query box intersect ? Any axis parallel line can intersect atmost 2 of these 4 cells. Each of these 4 cells contain exactly n/4 points. Let us consider a facet of the query

13 Kd-Tree Summarizing  Building (preprocessing time): O(n log n)  Size: O(n)  Range queries: O(sqrt(n)+k) In higher dimensions  Building: O(dnlogn)  Size: O(dn)  Counting Query: O(n 1-1/d )

14 QuadTrees 4-way partitions Linear space Used in real life more than kd-trees

15 Octrees 3D Version of Quadtrees 8 child nodes Applications  Range searching  Collision detection  Mesh generation  Visibility Culling  Computer games

16 General Sets of points We assumed till now that the x,y coordinates of the points are distinct and do not overlap the coordinates of the query. How do we relax this?

17 More on the Chalk board…


Download ppt "Computational Geometry Piyush Kumar (Lecture 5: Range Searching) Welcome to CIS5930."

Similar presentations


Ads by Google