Computational Geometry

Size: px
Start display at page:

Download "Computational Geometry"

Transcription

1 Computational Geometry Search in High dimension and kd-trees Ioannis Emiris Dept Informatics & Telecoms, National Kapodistrian U. Athens ATHENA Research & Innovation Center, Greece Spring 2018 I.Emiris (Athens, Greece) Computational Geometry Spring / 57

2 Contents 1 Orthogonal Range Search 2D orthogonal range search 2 Nearest Neighbors Approximate nearest neighbor 3 Trees kd-trees Randomized kd-trees Balanced Box-Decomposition trees I.Emiris (Athens, Greece) Computational Geometry Spring / 57

3 Outline 1 Orthogonal Range Search 2D orthogonal range search 2 Nearest Neighbors Approximate nearest neighbor 3 Trees kd-trees Randomized kd-trees Balanced Box-Decomposition trees I.Emiris (Athens, Greece) Computational Geometry Spring / 57

4 Range query interpreted geometrically salary G. Ometer born: Aug 19, 1954 salary: $ date of birth I.Emiris (Athens, Greece) Computational Geometry Spring / 57

5 Range query in 3 dimensions salary chlidren date of birth I.Emiris (Athens, Greece) Computational Geometry Spring / 57

6 The geometric approach We are interested in answering queries on d fields of the records in our database. Transform the records to points in d-dimensional space. The transformed range query asks for all points inside a d-dimensional axis-parallel box (may be unbounded). Such a query is called rectangular or orthogonal range query. I.Emiris (Athens, Greece) Computational Geometry Spring / 57

7 1-Dimensional Range Search Problem Preprocess a set of points P = {p 1, p 2,..., p n } R so as to answer queries efficiently: Which points lie inside a query interval [x : x ]? Arrays O(n) space, O(n log n) preprocess, O(k + log n) query But, do not generalize in higher dim, do not allow efficient updates: O(n). Balanced Binary Search Trees (BBST) The leaves of T store the points of P, internal nodes store splitting values that guide the search. E.g. red-black trees, AVL trees. I.Emiris (Athens, Greece) Computational Geometry Spring / 57

8 A search with the interval [18 : 77] µ µ I.Emiris (Athens, Greece) Computational Geometry Spring / 57

9 A search with the interval [x, x ] Search for x and x in T. The search ends to leaves µ and µ. Report all points stored at leaves between µ and µ plus, possibly, the points stored at µ and µ. I.Emiris (Athens, Greece) Computational Geometry Spring / 57

10 A search with the interval [x, x ] Search for x and x in T. The search ends to leaves µ and µ. Report all points stored at leaves between µ and µ plus, possibly, the points stored at µ and µ. Remark The leaves to be reported are the ones of subtrees that are rooted at nodes whose parents are on the search paths to µ and µ. I.Emiris (Athens, Greece) Computational Geometry Spring / 57

11 The selected subtrees root(t ) v split µ µ I.Emiris (Athens, Greece) Computational Geometry Spring / 57

12 Correctness and Performance Any reported point lies in the query range. Any point in the range is reported. O(n) storage. O(n log n) preprocessing. O(log n) update. Θ(n) worst case case query cost. O(k + log n) output sensitive query cost: O(k) to report the points plus O(log n) to follow the paths to x, x. I.Emiris (Athens, Greece) Computational Geometry Spring / 57

13 Outline 1 Orthogonal Range Search 2D orthogonal range search 2 Nearest Neighbors Approximate nearest neighbor 3 Trees kd-trees Randomized kd-trees Balanced Box-Decomposition trees I.Emiris (Athens, Greece) Computational Geometry Spring / 57

14 kd-trees in the plane Problem Preprocess points P = {p 1, p 2,..., p n } R 2, to answer queries efficiently: Which points lie inside a query rectangle [x : x ] [y : y ]? p = (p x, p y ) lies in the rectangle iff p x [x, x ] & p y [y, y ]. kd-trees Generalize BBST: they split current pointset at median value, but use different coordinate at each level. Left subtree contains half (or one less) points with smaller coordinate and point with median value. Points shall correspond to leaves (and plane regions). I.Emiris (Athens, Greece) Computational Geometry Spring / 57

15 The way the plane is subdivided p 2 l 5 p 1 l 1 l 7 p 8 l 8 p 3 p 6 l 9 p 7 p 5 p 9 l 2 l 3 p 4 p 10 l 4 l 6 I.Emiris (Athens, Greece) Computational Geometry Spring / 57

16 The way the plane is subdivided p 2 p 1 l 1 p 8 p 3 p 6 p 5 p 7 p 9 p 4 p 10 I.Emiris (Athens, Greece) Computational Geometry Spring / 57

17 The way the plane is subdivided p 2 p 1 l 1 p 8 p 3 p 6 p 5 p 7 l 2 p 9 p 4 p 10 I.Emiris (Athens, Greece) Computational Geometry Spring / 57

18 The way the plane is subdivided p 2 p 1 l 1 p 8 p 3 p 6 p 7 p 5 p 9 l 2 l 3 p 4 p 10 I.Emiris (Athens, Greece) Computational Geometry Spring / 57

19 The way the plane is subdivided p 2 p 1 l 1 p 8 p 3 p 6 p 7 p 5 p 9 l 2 l 3 p 4 l 4 p 10 I.Emiris (Athens, Greece) Computational Geometry Spring / 57

20 The way the plane is subdivided l 5 p 1 l 1 p 2 p 8 p 3 p 6 p 7 p 5 p 9 l 2 l 3 p 4 l 4 p 10 I.Emiris (Athens, Greece) Computational Geometry Spring / 57

21 The way the plane is subdivided p 2 l 5 p 1 l 1 p 8 p 3 p 6 p 7 p 5 p 9 l 2 l 3 p 4 p 10 l 4 l 6 I.Emiris (Athens, Greece) Computational Geometry Spring / 57

22 The way the plane is subdivided p 2 l 5 p 1 l 1 l 7 p 8 p 3 p 6 p 7 p 5 p 9 l 2 l 3 p 4 p 10 l 4 l 6 I.Emiris (Athens, Greece) Computational Geometry Spring / 57

23 The way the plane is subdivided p 2 l 5 p 1 l 1 l 7 p 8 l 8 p 3 p 6 p 7 p 5 p 9 l 2 l 3 p 4 p 10 l 4 l 6 I.Emiris (Athens, Greece) Computational Geometry Spring / 57

24 The way the plane is subdivided p 2 l 5 p 1 l 1 l 7 p 8 p 3 p 6 l 8 l 9 p 7 p 5 p 9 l 2 l 3 p 4 p 10 l 4 l 6 I.Emiris (Athens, Greece) Computational Geometry Spring / 57

25 The corresponding binary tree l 1 l 2 l 3 l 4 l 5 l 6 l 57 p 5 p 4 p 2 p 10 p 9 p 7 l 8 p 2 l 9 p 3 p 1 p 63 p 18 I.Emiris (Athens, Greece) Computational Geometry Spring / 57

26 BuildKdTree(P, depth) if P contains only one point then return a leaf storing this point else if depth is even then split P with vertical l through median x-coord. of points in P P 1 points left of l or on l P 2 points right of l else {depth is odd} split P with horizontal l through median y-coord. of points in P P 1 points below l or on l P 2 points above l end if v left BuidKdTree(P 1, depth + 1); v right BuidKdTree(P 2, depth + 1) create a node v storing l lc(v) v left ; rc(v) v right return v end if I.Emiris (Athens, Greece) Computational Geometry Spring / 57

27 Building time and storage Remarks Split at the n 2-th smallest (median) coordinate: O(n) time, or preprocess by sorting both on x- and y-coordinates. The building time satisfies the recurrence: { O(1) if n = 1 T (n) = O(n) + 2T ( n 2 ) if n > 1 T (n) = O(n log n) which subsumes sorting. O(n) storage: points stored at leaves, leaf contains 1 points (alternatively stored at internal/splitting nodes). I.Emiris (Athens, Greece) Computational Geometry Spring / 57

28 Nodes in a kd-tree and regions in the plane l 1 l 1 l 2 l 2 l 3 v l 3 region(v) I.Emiris (Athens, Greece) Computational Geometry Spring / 57

29 Regions and the query algorithm Internal nodes of a kd-tree correspond to rectangular regions of the plane: can be unbounded on one or more sides. Regions of all nodes at a specific level partition the plane. region(root(t )) is the whole plane. Point stored at (leaf of) subtree rooted at v iff it lies in region(v) Search the subtree of v only if the query rectangle intersects region(v). I.Emiris (Athens, Greece) Computational Geometry Spring / 57

30 A query on a kd-tree p 2 l 5 p 1 l 1 l 7 p 8 l 1 p 3 p 6 l 8 l 9 l 2 l 3 p 7 p 5 l 2 l 3 p 4 p 9 l 4 l 5 p 5 p 4 p 2 p 10 l 6 l 57 p 9 p 7 l 8 p 2 l 9 p 10 p 3 p 1 p 63 p 18 l 4 l 6 I.Emiris (Athens, Greece) Computational Geometry Spring / 57

31 Algorithm SearchKdTree(v, R) if v is a leaf then report point stored at v if in R else if region(lc(v)) is fully contained in R then ReportSubtree(lc(v)) else if region(lc(v)) intersects R then SearchKdTree(lc(v), R) end if end if if region(rc(v)) is fully contained in R then ReportSubtree(rc(v)) else if region(rc(v)) intersects R then SearchKdTree(rc(v), R) end if Input: root v, range R. Works for any query R, e.g. disk, triangle. O(k) to report k points. How many other nodes v are visited? i.e. for how many v, query range intersects region(v)? I.Emiris (Athens, Greece) Computational Geometry Spring / 57

32 Query time analysis Any vertical line intersects region(lc(root(t ))) or region(rc(root(t ))) but not both. If a vertical line intersects region(lc(root(t ))) it always intersects the regions corresponding to both children of lc(root(t )). I.Emiris (Athens, Greece) Computational Geometry Spring / 57

33 Query time analysis The number of intersected regions (by vertical line) in a kd-tree storing n points, satisfies the recurrence: { O(1) if n = 1 Q(n) = 2 + 2Q( n 4 ) if n > 1 Q(n) = O( n) time = O( n + k) for rectangular query The analysis is rather pessimistic: In many practical situations the query range is small and will intersect much fewer regions. I.Emiris (Athens, Greece) Computational Geometry Spring / 57

34 Outline 1 Orthogonal Range Search 2D orthogonal range search 2 Nearest Neighbors Approximate nearest neighbor 3 Trees kd-trees Randomized kd-trees Balanced Box-Decomposition trees I.Emiris (Athens, Greece) Computational Geometry Spring / 57

35 Introduction Given a distance function/metric: Preprocess: set of points/objects P = {p 1,..., p n } in d dimensions. Query: Given a d-dimensional query point/object q, report the closest p P to q. I.Emiris (Athens, Greece) Computational Geometry Spring / 57

36 Motivation Points model general objects (e.g. handwritten digits) Distance between points inverse to similarity measure I.Emiris (Athens, Greece) Computational Geometry Spring / 57

37 Several applications Machine Learning: clustering/classification. I.Emiris (Athens, Greece) Computational Geometry Spring / 57

38 Several applications Pattern Recognition and Classification I.Emiris (Athens, Greece) Computational Geometry Spring / 57

39 Several applications Searching multimedia databases. I.Emiris (Athens, Greece) Computational Geometry Spring / 57

40 NN in R Sort/store the n points, use binary search for queries, then: Prepreprocessing in O(n log n) time Data structure requiring O(n) space Answer the query in O(log n) time I.Emiris (Athens, Greece) Computational Geometry Spring / 57

41 NN in R 2 Preprocessing: Voronoi Diagram in O(n log n). Storage = O(n). Given query q, find the cell it belongs (point location) in O(log n). NN = site of cell containing q. I.Emiris (Athens, Greece) Computational Geometry Spring / 57

42 Exact NN in R d Is it faster than linear-time? Curse of Dimensionality: Complexity of Voronoi diagram grows rapidly = O(n d/2 ). Planar point location methods do not extend to higher dimensions. The volume of the space increases so fast that data becomes sparse State of the art: kd-trees: Sp = O(n), Query = O(d n 1 1/d ). Most practical for d log n: O(log n) expected for random points Randomized [Clarkson 88]: Sp = O(n d/2 +δ ), Q log n exp(d). n hyperplanes: point location O(d 5 log n), Sp = O(n d+δ ) [Meiser 93] I.Emiris (Athens, Greece) Computational Geometry Spring / 57

43 Outline 1 Orthogonal Range Search 2D orthogonal range search 2 Nearest Neighbors Approximate nearest neighbor 3 Trees kd-trees Randomized kd-trees Balanced Box-Decomposition trees I.Emiris (Athens, Greece) Computational Geometry Spring / 57

44 Nearest Neighbor in high dimension Exact NN Given set P in d dimensions, and query point q, its NN is point p 0 P: Approximate NN dist(p 0, q) dist(p, q), p P. Given set P in d dimensions, approximation factor 1 > ɛ > 0, and query point q, an ɛ-nn, or ANN, is any point p 0 P: dist(p 0, q) (1 + ɛ) dist(p, q), p P. x1 q (1 + ɛ)r r NN x2 I.Emiris (Athens, Greece) Computational Geometry Spring / 57

45 Approximate NN in R d BBD tree [Arya,Mount et al.98]: optimal query for d = O(1) In practice like kd-trees: cgal offers lazy kd-trees ann [Mount] for d 60 flann [Lowe-Muja], kd-geraf [E-Samaras]: randomized Locality sensitive hashing (LSH) for ɛ-nn Sp = O(dn 1+ρ ), Q = O(dn ρ ), ρ = 1/(1 + ɛ) 2. [Indyk,Motwani 98] [Panigrahy 06] [Andoni,Indyk 06] Dimensionality reduction [Anagnostopoulos,E,Psarros 15 17] Sp = O (dn), Q = O (dn ρ ), ρ = 1 + ɛ 2 / log ɛ < 1 BBD I.Emiris (Athens, Greece) Computational Geometry Spring / 57

46 NN formulations Standard computational geometry: the space is Euclidean R d, for constant d. Complex data: treat d as an asymptotic quantity and seek solutions having no exponential dependence on d. Wish to treat arbitrary metric (nonvector) spaces. Structure, especially for metric spaces: may assume a growth-limiting property, e.g. constant doubling dimension: twice the ball is included in constant number of balls (true for Euclidean). I.Emiris (Athens, Greece) Computational Geometry Spring / 57

47 Grid for Uniform points n uniformly distributed points in [0, 1] d Cell structure (array) using parameter c = O(1) Expected #points per box = c (high c increases box search). Expected n/c boxes (high c reduces array size). Each box of volume = c/n, edge length (c/n) 1/d < 1. Query lands in a box in O(1), checks points in box. Given current best distance, check 3 d 1 adjacent boxes. In expectation, O(1) boxes visited, in time O(c). Expected query time = O(c + 3 d ). [Bentley-W.-Yao 80,Bentley 90]. I.Emiris (Athens, Greece) Computational Geometry Spring / 57

48 Outline 1 Orthogonal Range Search 2D orthogonal range search 2 Nearest Neighbors Approximate nearest neighbor 3 Trees kd-trees Randomized kd-trees Balanced Box-Decomposition trees I.Emiris (Athens, Greece) Computational Geometry Spring / 57

49 Outline 1 Orthogonal Range Search 2D orthogonal range search 2 Nearest Neighbors Approximate nearest neighbor 3 Trees kd-trees Randomized kd-trees Balanced Box-Decomposition trees I.Emiris (Athens, Greece) Computational Geometry Spring / 57

50 kd-trees Assuming d > 2 but small. Iterate through splitting coordinates; various strategies to pick them Leaves contain 1 points; bound #levels. I.Emiris (Athens, Greece) Computational Geometry Spring / 57

51 NN search Procedure NN(node), given query q if node is leaf then Search all points in node, update best-dist else {internal node} if split-coor(q) node s split-value then NN(left-child) // standard branch if split-coor(q) + best-dist > node s split-value then NN(right-child) // recurse to check end if else {split-coor(q) > node s split-value} NN(right-child) if split-coor(q) best-dist node s split-value then NN(left-child) end if end if left/right end if internal node Overall topdown algorithm: NN(root). I.Emiris (Athens, Greece) Computational Geometry Spring / 57

52 Complexity Sp = O(d n). construction of balanced tree: O(d n log n) by sorting per dimension, O(n log n) by linear-time median computation. (Few) Insert/delete operations in balanced kd-tree = O(log n) I.Emiris (Athens, Greece) Computational Geometry Spring / 57

53 Complexity Sp = O(d n). construction of balanced tree: O(d n log n) by sorting per dimension, O(n log n) by linear-time median computation. (Few) Insert/delete operations in balanced kd-tree = O(log n) Exact Range query = O(d n 1 1/d + k). In practice, ANN O(log n) when d = O(1), since O(1) expected neighbors for random (e.g. uniform) distribution. See also BBD-trees: O((d/ɛ) d log n). I.Emiris (Athens, Greece) Computational Geometry Spring / 57

54 Extension k Nearest Neighbors Store k current best points. Current ball encloses k current best points. Eliminate sibling if none of its points can be closer than any of k current best points, i.e. if sibling region outside current ball. I.Emiris (Athens, Greece) Computational Geometry Spring / 57

55 Splitting at max spread median of set closest to box centre I.Emiris (Athens, Greece) Computational Geometry Spring / 57

56 Outline 1 Orthogonal Range Search 2D orthogonal range search 2 Nearest Neighbors Approximate nearest neighbor 3 Trees kd-trees Randomized kd-trees Balanced Box-Decomposition trees I.Emiris (Athens, Greece) Computational Geometry Spring / 57

57 Randomization Construct: Search: Create r kd-trees s.t. searches are largely independent. Find O(1) coord s maximizing variance: Pick one randomly May sample the data; split it about the mean of the sample. Use bounded #levels; bucket contain several points. Principal Component Analysis finds moment axes: rotate to align them with the coordinte axes. Or, random rotation. Upper bound on total #nodes to be searched. Priority queue stores candidates across r trees. Similar effect to r lower-dim projection [Silpa-Anan,Hartley 08] I.Emiris (Athens, Greece) Computational Geometry Spring / 57

58 FLANN: Fast Library for ANN Typically r 6 independent trees. Target d = 128, n > 10 4 (SIFT encoding of images). Given data: Automatic choice of configuration, and algorithm (Randomized kd-trees, Hierarchical k-means trees) [Lowe:IJCV04], software [Lowe,Muja] I.Emiris (Athens, Greece) Computational Geometry Spring / 57

59 kd-geraf Implement k-ann Simultaneous search, no backtracking. Quickselect algorithm to find median in O(n) Accelerated distance computations (dot product, see below) Public domain C++: (WebApp: :8080) [Avrithis,E,Samaras 15] I.Emiris (Athens, Greece) Computational Geometry Spring / 57

60 Randomization Rotation Every tree uses a randomly rotated pointset, thus using a different set of dimensions/coordinates. Split dimension Pick t dimensions of highest variance. Choose one randomly at every node while building the tree. Split Value Shuffling The pointset s median in split dimension plus uniformly distributed δ [ 3 d, 3 d ], = diameter of pointset. The split value may be witnessed in several points, instead of picking always the same point, shuffle them to break ties. I.Emiris (Athens, Greece) Computational Geometry Spring / 57

61 Performance Parameters (auto or manual) Practical complexity r Number of trees in forest (points are stored once) t Number of hi-variance dimensions used for splits Maximum number of points-per-leaf c Maximum number of leaves to be checked during search ɛ Determine search accuracy Automatic parameter configuration yields fastest preprocessing, successful trade-off between accuracy and speed. Most competing methods suffer from slow parameter configuration, running out of memory, unstable search behaviour. I.Emiris (Athens, Greece) Computational Geometry Spring / 57

62 Implementation Search Descend every tree to leaf, store unvisited branch nodes in min-priority queue Q. Examine nodes in Q, until c/1 + ɛ leaves are checked. On descending a tree: at leaf: update currently best distance. at node: if query in the left half-space: insert right child to Q, descend to left child; or vice versa. Distance computation x q 2 = x 2 + q 2 2q x, where the first two can be stored. Offers up to 10% speedup. Project idea: x q 2 y q 2 reduces to 2q (y x). I.Emiris (Athens, Greece) Computational Geometry Spring / 57

63 Experiments Faster than ann/bbd, flann for d 1, 000 (up to 10,000), n (i) SIFT images: n = 10 6, d = 128, BBD out of memory. GIST: d = 960 (ii) n = 10 5 (iii) n = 10 6, query < 1s, 90% exact. I.Emiris (Athens, Greece) Computational Geometry Spring / 57

64 Experiments on Oxford set, CroW features (neural nets) n = 5062 images, d = 512. Brute force: 5.22 sec. Build takes 2 sec for kd-geraf. points per leaf trees no t max leaf check miss(%) time(ms) Search with Noisy queries. points per leaf trees no t max leaf check miss(%) time(s) Search with Oxford queries. I.Emiris (Athens, Greece) Computational Geometry Spring / 57

65 Outline 1 Orthogonal Range Search 2D orthogonal range search 2 Nearest Neighbors Approximate nearest neighbor 3 Trees kd-trees Randomized kd-trees Balanced Box-Decomposition trees I.Emiris (Athens, Greece) Computational Geometry Spring / 57

66 BBD-trees Box: set theoretic difference of two boxes, one enclosed in the other (inner is optional) Empirical runtimes for most distributions show little/no practical advantage over kd-trees [Arya,Mount,et al 94,98]. Complexity: O(1) points per leaf, space = O(dn). Height = O(log n): every 4 levels reduce #points by > 2/3. Construct = O(dn log n). k ɛnns in time O((d/ɛ) d + k) log n). Dynamic: point insertion/deletion = O(log n). overview I.Emiris (Athens, Greece) Computational Geometry Spring / 57

67 Construction Tree constructed by applying 2 operations, when cell contains > 1 points: (Fair) Split: by hyperplane parallel to a coordinate plane, through midpoint. If inner box exists, do not intersect it. Exponential decrease of region size (quadtree). Shrink: partitions box into inner and outer boxes. If inner box exists, it lies inside new inner box. Exponential decrease in number of points per cell (kd-tree). Two strategies: Splits and Shrinks alternate. Split until both children with < 2/3 of parent s points, then Shrink. I.Emiris (Athens, Greece) Computational Geometry Spring / 57

68 ANN search Algorithm 1 Find leaf that contains query q; min-dist δ from q to points in leaf 2 Order leaves in increasing distance from q (priority search). 3 Find closest leaf to q, compute min-distance δ from q to points in cell 4 While distance of next closest leaf < δ(1 + ɛ), compute min-distance between q and points in cell: if < δ, this distance becomes δ. Time Complexity Point location = O(log n). #cells explored = c < (1 + 6d/ɛ) d. ANN query = O(cd log n). I.Emiris (Athens, Greece) Computational Geometry Spring / 57

Balanced Box-Decomposition trees for Approximate nearest-neighbor. Manos Thanos (MPLA) Ioannis Emiris (Dept Informatics) Computational Geometry

Balanced Box-Decomposition trees for Approximate nearest-neighbor. Manos Thanos (MPLA) Ioannis Emiris (Dept Informatics) Computational Geometry Balanced Box-Decomposition trees for Approximate nearest-neighbor 11 Manos Thanos (MPLA) Ioannis Emiris (Dept Informatics) Computational Geometry Nearest Neighbor A set S of n points is given in some metric

More information

Nearest neighbors. Focus on tree-based methods. Clément Jamin, GUDHI project, Inria March 2017

Nearest neighbors. Focus on tree-based methods. Clément Jamin, GUDHI project, Inria March 2017 Nearest neighbors Focus on tree-based methods Clément Jamin, GUDHI project, Inria March 2017 Introduction Exact and approximate nearest neighbor search Essential tool for many applications Huge bibliography

More information

Geometric data structures:

Geometric data structures: Geometric data structures: Machine Learning for Big Data CSE547/STAT548, University of Washington Sham Kakade Sham Kakade 2017 1 Announcements: HW3 posted Today: Review: LSH for Euclidean distance Other

More information

Computational Geometry

Computational Geometry Range searching and kd-trees 1 Database queries 1D range trees Databases Databases store records or objects Personnel database: Each employee has a name, id code, date of birth, function, salary, start

More information

Lecture 24: Image Retrieval: Part II. Visual Computing Systems CMU , Fall 2013

Lecture 24: Image Retrieval: Part II. Visual Computing Systems CMU , Fall 2013 Lecture 24: Image Retrieval: Part II Visual Computing Systems Review: K-D tree Spatial partitioning hierarchy K = dimensionality of space (below: K = 2) 3 2 1 3 3 4 2 Counts of points in leaf nodes Nearest

More information

CMSC 754 Computational Geometry 1

CMSC 754 Computational Geometry 1 CMSC 754 Computational Geometry 1 David M. Mount Department of Computer Science University of Maryland Fall 2005 1 Copyright, David M. Mount, 2005, Dept. of Computer Science, University of Maryland, College

More information

Orthogonal range searching. Orthogonal range search

Orthogonal range searching. Orthogonal range search CG Lecture Orthogonal range searching Orthogonal range search. Problem definition and motiation. Space decomposition: techniques and trade-offs 3. Space decomposition schemes: Grids: uniform, non-hierarchical

More information

kd-trees Idea: Each level of the tree compares against 1 dimension. Let s us have only two children at each node (instead of 2 d )

kd-trees Idea: Each level of the tree compares against 1 dimension. Let s us have only two children at each node (instead of 2 d ) kd-trees Invented in 1970s by Jon Bentley Name originally meant 3d-trees, 4d-trees, etc where k was the # of dimensions Now, people say kd-tree of dimension d Idea: Each level of the tree compares against

More information

Advanced Algorithm Design and Analysis (Lecture 12) SW5 fall 2005 Simonas Šaltenis E1-215b

Advanced Algorithm Design and Analysis (Lecture 12) SW5 fall 2005 Simonas Šaltenis E1-215b Advanced Algorithm Design and Analysis (Lecture 12) SW5 fall 2005 Simonas Šaltenis E1-215b simas@cs.aau.dk Range Searching in 2D Main goals of the lecture: to understand and to be able to analyze the kd-trees

More information

Computational Geometry

Computational Geometry Range trees Range queries Database queries salary G. Ometer born: Aug 16, 1954 salary: $3,500 A database query may ask for all employees with age between a 1 and a 2, and salary between s 1 and s 2 19,500,000

More information

Approximate Nearest Neighbor Problem: Improving Query Time CS468, 10/9/2006

Approximate Nearest Neighbor Problem: Improving Query Time CS468, 10/9/2006 Approximate Nearest Neighbor Problem: Improving Query Time CS468, 10/9/2006 Outline Reducing the constant from O ( ɛ d) to O ( ɛ (d 1)/2) in uery time Need to know ɛ ahead of time Preprocessing time and

More information

Range Searching. Data structure for a set of objects (points, rectangles, polygons) for efficient range queries.

Range Searching. Data structure for a set of objects (points, rectangles, polygons) for efficient range queries. Range Searching Data structure for a set of objects (oints, rectangles, olygons) for efficient range queries. Y Q Deends on tye of objects and queries. Consider basic data structures with broad alicability.

More information

Randomly-oriented RKD-trees. Dimitri N. Nicolopoulos

Randomly-oriented RKD-trees. Dimitri N. Nicolopoulos Randomly-oriented RKD-trees by Dimitri N. Nicolopoulos B.Sc., University of British Columbia Submitted to the Department of Mathematics in partial fulfillment of the requirements for the degree of Graduate

More information

Geometric Algorithms. Geometric search: overview. 1D Range Search. 1D Range Search Implementations

Geometric Algorithms. Geometric search: overview. 1D Range Search. 1D Range Search Implementations Geometric search: overview Geometric Algorithms Types of data:, lines, planes, polygons, circles,... This lecture: sets of N objects. Range searching Quadtrees, 2D trees, kd trees Intersections of geometric

More information

Orthogonal Range Queries

Orthogonal Range Queries Orthogonal Range Piotr Indyk Range Searching in 2D Given a set of n points, build a data structure that for any query rectangle R, reports all points in R Kd-trees [Bentley] Not the most efficient solution

More information

Data Structures for Approximate Proximity and Range Searching

Data Structures for Approximate Proximity and Range Searching Data Structures for Approximate Proximity and Range Searching David M. Mount University of Maryland Joint work with: Sunil Arya (Hong Kong U. of Sci. and Tech) Charis Malamatos (Max Plank Inst.) 1 Introduction

More information

Clustering Billions of Images with Large Scale Nearest Neighbor Search

Clustering Billions of Images with Large Scale Nearest Neighbor Search Clustering Billions of Images with Large Scale Nearest Neighbor Search Ting Liu, Charles Rosenberg, Henry A. Rowley IEEE Workshop on Applications of Computer Vision February 2007 Presented by Dafna Bitton

More information

1 The range query problem

1 The range query problem CS268: Geometric Algorithms Handout #12 Design and Analysis Original Handout #12 Stanford University Thursday, 19 May 1994 Original Lecture #12: Thursday, May 19, 1994 Topics: Range Searching with Partition

More information

Module 8: Range-Searching in Dictionaries for Points

Module 8: Range-Searching in Dictionaries for Points Module 8: Range-Searching in Dictionaries for Points CS 240 Data Structures and Data Management T. Biedl K. Lanctot M. Sepehri S. Wild Based on lecture notes by many previous cs240 instructors David R.

More information

Multidimensional Indexes [14]

Multidimensional Indexes [14] CMSC 661, Principles of Database Systems Multidimensional Indexes [14] Dr. Kalpakis http://www.csee.umbc.edu/~kalpakis/courses/661 Motivation Examined indexes when search keys are in 1-D space Many interesting

More information

Chromatic Nearest Neighbor Searching: A Query Sensitive Approach

Chromatic Nearest Neighbor Searching: A Query Sensitive Approach Chromatic Nearest Neighbor Searching: A Query Sensitive Approach David M. Mount Nathan S. Netanyahu Ruth Silverman Angela Y. Wu Last modified: October 21, 1996. (Minor updates made: August 24, 2000.) Final

More information

Computational Geometry

Computational Geometry Orthogonal Range Searching omputational Geometry hapter 5 Range Searching Problem: Given a set of n points in R d, preprocess them such that reporting or counting the k points inside a d-dimensional axis-parallel

More information

On the Efficiency of Nearest Neighbor Searching with Data Clustered in Lower Dimensions

On the Efficiency of Nearest Neighbor Searching with Data Clustered in Lower Dimensions On the Efficiency of Nearest Neighbor Searching with Data Clustered in Lower Dimensions Songrit Maneewongvatana and David M. Mount {songrit,mount}@cs.umd.edu Department of Computer Science University of

More information

Locality- Sensitive Hashing Random Projections for NN Search

Locality- Sensitive Hashing Random Projections for NN Search Case Study 2: Document Retrieval Locality- Sensitive Hashing Random Projections for NN Search Machine Learning for Big Data CSE547/STAT548, University of Washington Sham Kakade April 18, 2017 Sham Kakade

More information

VQ Encoding is Nearest Neighbor Search

VQ Encoding is Nearest Neighbor Search VQ Encoding is Nearest Neighbor Search Given an input vector, find the closest codeword in the codebook and output its index. Closest is measured in squared Euclidean distance. For two vectors (w 1,x 1,y

More information

1. Meshes. D7013E Lecture 14

1. Meshes. D7013E Lecture 14 D7013E Lecture 14 Quadtrees Mesh Generation 1. Meshes Input: Components in the form of disjoint polygonal objects Integer coordinates, 0, 45, 90, or 135 angles Output: A triangular mesh Conforming: A triangle

More information

Algorithms for GIS:! Quadtrees

Algorithms for GIS:! Quadtrees Algorithms for GIS: Quadtrees Quadtree A data structure that corresponds to a hierarchical subdivision of the plane Start with a square (containing inside input data) Divide into 4 equal squares (quadrants)

More information

CSCE 411 Design and Analysis of Algorithms

CSCE 411 Design and Analysis of Algorithms CSCE 411 Design and Analysis of Algorithms Set 4: Transform and Conquer Slides by Prof. Jennifer Welch Spring 2014 CSCE 411, Spring 2014: Set 4 1 General Idea of Transform & Conquer 1. Transform the original

More information

January 10-12, NIT Surathkal Introduction to Graph and Geometric Algorithms

January 10-12, NIT Surathkal Introduction to Graph and Geometric Algorithms Geometric data structures Sudebkumar Prasant Pal Department of Computer Science and Engineering IIT Kharagpur, 721302. email: spp@cse.iitkgp.ernet.in January 10-12, 2012 - NIT Surathkal Introduction to

More information

Lecture 3 February 9, 2010

Lecture 3 February 9, 2010 6.851: Advanced Data Structures Spring 2010 Dr. André Schulz Lecture 3 February 9, 2010 Scribe: Jacob Steinhardt and Greg Brockman 1 Overview In the last lecture we continued to study binary search trees

More information

Computational Geometry

Computational Geometry Windowing queries Windowing Windowing queries Zoom in; re-center and zoom in; select by outlining Windowing Windowing queries Windowing Windowing queries Given a set of n axis-parallel line segments, preprocess

More information

External-Memory Algorithms with Applications in GIS - (L. Arge) Enylton Machado Roberto Beauclair

External-Memory Algorithms with Applications in GIS - (L. Arge) Enylton Machado Roberto Beauclair External-Memory Algorithms with Applications in GIS - (L. Arge) Enylton Machado Roberto Beauclair {machado,tron}@visgraf.impa.br Theoretical Models Random Access Machine Memory: Infinite Array. Access

More information

CPSC / Sonny Chan - University of Calgary. Collision Detection II

CPSC / Sonny Chan - University of Calgary. Collision Detection II CPSC 599.86 / 601.86 Sonny Chan - University of Calgary Collision Detection II Outline Broad phase collision detection: - Problem definition and motivation - Bounding volume hierarchies - Spatial partitioning

More information

Datenbanksysteme II: Multidimensional Index Structures 2. Ulf Leser

Datenbanksysteme II: Multidimensional Index Structures 2. Ulf Leser Datenbanksysteme II: Multidimensional Index Structures 2 Ulf Leser Content of this Lecture Introduction Partitioned Hashing Grid Files kdb Trees kd Tree kdb Tree R Trees Example: Nearest neighbor image

More information

WINDOWING PETR FELKEL. FEL CTU PRAGUE https://cw.felk.cvut.cz/doku.php/courses/a4m39vg/start. Based on [Berg], [Mount]

WINDOWING PETR FELKEL. FEL CTU PRAGUE https://cw.felk.cvut.cz/doku.php/courses/a4m39vg/start. Based on [Berg], [Mount] WINDOWING PETR FELKEL FEL CTU PRAGUE felkel@fel.cvut.cz https://cw.felk.cvut.cz/doku.php/courses/a4m39vg/start Based on [Berg], [Mount] Version from 15.12.2016 Windowing queries - examples [Berg] Interaction

More information

Spatial Data Structures

Spatial Data Structures CSCI 420 Computer Graphics Lecture 17 Spatial Data Structures Jernej Barbic University of Southern California Hierarchical Bounding Volumes Regular Grids Octrees BSP Trees [Angel Ch. 8] 1 Ray Tracing Acceleration

More information

Machine Learning and Pervasive Computing

Machine Learning and Pervasive Computing Stephan Sigg Georg-August-University Goettingen, Computer Networks 17.12.2014 Overview and Structure 22.10.2014 Organisation 22.10.3014 Introduction (Def.: Machine learning, Supervised/Unsupervised, Examples)

More information

Spatial Data Structures

Spatial Data Structures CSCI 480 Computer Graphics Lecture 7 Spatial Data Structures Hierarchical Bounding Volumes Regular Grids BSP Trees [Ch. 0.] March 8, 0 Jernej Barbic University of Southern California http://www-bcf.usc.edu/~jbarbic/cs480-s/

More information

Ray Tracing Acceleration Data Structures

Ray Tracing Acceleration Data Structures Ray Tracing Acceleration Data Structures Sumair Ahmed October 29, 2009 Ray Tracing is very time-consuming because of the ray-object intersection calculations. With the brute force method, each ray has

More information

Announcements. Written Assignment2 is out, due March 8 Graded Programming Assignment2 next Tuesday

Announcements. Written Assignment2 is out, due March 8 Graded Programming Assignment2 next Tuesday Announcements Written Assignment2 is out, due March 8 Graded Programming Assignment2 next Tuesday 1 Spatial Data Structures Hierarchical Bounding Volumes Grids Octrees BSP Trees 11/7/02 Speeding Up Computations

More information

Voronoi diagram and Delaunay triangulation

Voronoi diagram and Delaunay triangulation Voronoi diagram and Delaunay triangulation Ioannis Emiris & Vissarion Fisikopoulos Dept. of Informatics & Telecommunications, University of Athens Computational Geometry, spring 2015 Outline 1 Voronoi

More information

Chap4: Spatial Storage and Indexing. 4.1 Storage:Disk and Files 4.2 Spatial Indexing 4.3 Trends 4.4 Summary

Chap4: Spatial Storage and Indexing. 4.1 Storage:Disk and Files 4.2 Spatial Indexing 4.3 Trends 4.4 Summary Chap4: Spatial Storage and Indexing 4.1 Storage:Disk and Files 4.2 Spatial Indexing 4.3 Trends 4.4 Summary Learning Objectives Learning Objectives (LO) LO1: Understand concept of a physical data model

More information

Lecture 7. Transform-and-Conquer

Lecture 7. Transform-and-Conquer Lecture 7 Transform-and-Conquer 6-1 Transform and Conquer This group of techniques solves a problem by a transformation to a simpler/more convenient instance of the same problem (instance simplification)

More information

CS Fall 2010 B-trees Carola Wenk

CS Fall 2010 B-trees Carola Wenk CS 3343 -- Fall 2010 B-trees Carola Wenk 10/19/10 CS 3343 Analysis of Algorithms 1 External memory dictionary Task: Given a large amount of data that does not fit into main memory, process it into a dictionary

More information

Algorithms. Algorithms GEOMETRIC APPLICATIONS OF BSTS. 1d range search line segment intersection kd trees interval search trees rectangle intersection

Algorithms. Algorithms GEOMETRIC APPLICATIONS OF BSTS. 1d range search line segment intersection kd trees interval search trees rectangle intersection Algorithms ROBERT SEDGEWICK KEVIN WAYNE GEOMETRIC APPLICATIONS OF BSTS Algorithms F O U R T H E D I T I O N ROBERT SEDGEWICK KEVIN WAYNE 1d range search line segment intersection kd trees interval search

More information

Random Grids: Fast Approximate Nearest Neighbors and Range Searching for Image Search

Random Grids: Fast Approximate Nearest Neighbors and Range Searching for Image Search Random Grids: Fast Approximate Nearest Neighbors and Range Searching for Image Search Dror Aiger, Efi Kokiopoulou, Ehud Rivlin Google Inc. aigerd@google.com, kokiopou@google.com, ehud@google.com Abstract

More information

Algorithms. Algorithms GEOMETRIC APPLICATIONS OF BSTS. 1d range search line segment intersection kd trees interval search trees rectangle intersection

Algorithms. Algorithms GEOMETRIC APPLICATIONS OF BSTS. 1d range search line segment intersection kd trees interval search trees rectangle intersection Algorithms ROBERT SEDGEWICK KEVIN WAYNE GEOMETRIC APPLICATIONS OF BSTS Algorithms F O U R T H E D I T I O N ROBERT SEDGEWICK KEVIN WAYNE 1d range search line segment intersection kd trees interval search

More information

Algorithms. Algorithms GEOMETRIC APPLICATIONS OF BSTS. 1d range search line segment intersection kd trees interval search trees rectangle intersection

Algorithms. Algorithms GEOMETRIC APPLICATIONS OF BSTS. 1d range search line segment intersection kd trees interval search trees rectangle intersection Algorithms ROBERT SEDGEWICK KEVIN WAYNE GEOMETRIC APPLICATIONS OF BSTS Algorithms F O U R T H E D I T I O N ROBERT SEDGEWICK KEVIN WAYNE 1d range search line segment intersection kd trees interval search

More information

CGL Computational Geometric Learning. Randomized kd-trees for Approximate Nearest Neighbor Search

CGL Computational Geometric Learning. Randomized kd-trees for Approximate Nearest Neighbor Search Project number IST-25582 CGL Computational Geometric Learning Randomized kd-trees for Approximate Nearest Neighbor Search STREP Information Society Technologies Period covered: November 1, 2011 October

More information

Spatial Data Structures

Spatial Data Structures 15-462 Computer Graphics I Lecture 17 Spatial Data Structures Hierarchical Bounding Volumes Regular Grids Octrees BSP Trees Constructive Solid Geometry (CSG) April 1, 2003 [Angel 9.10] Frank Pfenning Carnegie

More information

26 The closest pair problem

26 The closest pair problem The closest pair problem 1 26 The closest pair problem Sweep algorithms solve many kinds of proximity problems efficiently. We present a simple sweep that solves the two-dimensional closest pair problem

More information

Approximate Nearest Line Search in High Dimensions

Approximate Nearest Line Search in High Dimensions Approximate Nearest Line Search in High Dimensions Sepideh Mahabadi MIT mahabadi@mit.edu Abstract We consider the Approximate Nearest Line Search (NLS) problem. Given a set L of N lines in the high dimensional

More information

Geometric Data Structures Multi-dimensional queries Nearest neighbour problem References. Notes on Computational Geometry and Data Structures

Geometric Data Structures Multi-dimensional queries Nearest neighbour problem References. Notes on Computational Geometry and Data Structures Notes on Computational Geometry and Data Structures 2008 Geometric Data Structures and CGAL Geometric Data Structures and CGAL Data Structure Interval Tree Priority Search Tree Segment Tree Range tree

More information

Data Mining and Machine Learning: Techniques and Algorithms

Data Mining and Machine Learning: Techniques and Algorithms Instance based classification Data Mining and Machine Learning: Techniques and Algorithms Eneldo Loza Mencía eneldo@ke.tu-darmstadt.de Knowledge Engineering Group, TU Darmstadt International Week 2019,

More information

Intersection Acceleration

Intersection Acceleration Advanced Computer Graphics Intersection Acceleration Matthias Teschner Computer Science Department University of Freiburg Outline introduction bounding volume hierarchies uniform grids kd-trees octrees

More information

Spatial Data Structures

Spatial Data Structures 15-462 Computer Graphics I Lecture 17 Spatial Data Structures Hierarchical Bounding Volumes Regular Grids Octrees BSP Trees Constructive Solid Geometry (CSG) March 28, 2002 [Angel 8.9] Frank Pfenning Carnegie

More information

Module 4: Index Structures Lecture 13: Index structure. The Lecture Contains: Index structure. Binary search tree (BST) B-tree. B+-tree.

Module 4: Index Structures Lecture 13: Index structure. The Lecture Contains: Index structure. Binary search tree (BST) B-tree. B+-tree. The Lecture Contains: Index structure Binary search tree (BST) B-tree B+-tree Order file:///c /Documents%20and%20Settings/iitkrana1/My%20Documents/Google%20Talk%20Received%20Files/ist_data/lecture13/13_1.htm[6/14/2012

More information

Task Description: Finding Similar Documents. Document Retrieval. Case Study 2: Document Retrieval

Task Description: Finding Similar Documents. Document Retrieval. Case Study 2: Document Retrieval Case Study 2: Document Retrieval Task Description: Finding Similar Documents Machine Learning for Big Data CSE547/STAT548, University of Washington Sham Kakade April 11, 2017 Sham Kakade 2017 1 Document

More information

Balanced Binary Search Trees. Victor Gao

Balanced Binary Search Trees. Victor Gao Balanced Binary Search Trees Victor Gao OUTLINE Binary Heap Revisited BST Revisited Balanced Binary Search Trees Rotation Treap Splay Tree BINARY HEAP: REVIEW A binary heap is a complete binary tree such

More information

Orthogonal range searching. Range Trees. Orthogonal range searching. 1D range searching. CS Spring 2009

Orthogonal range searching. Range Trees. Orthogonal range searching. 1D range searching. CS Spring 2009 CS 5633 -- Spring 2009 Orthogonal range searching Range Trees Carola Wenk Slides courtesy of Charles Leiserson with small changes by Carola Wenk CS 5633 Analysis of Algorithms 1 Input: n points in d dimensions

More information

Collision and Proximity Queries

Collision and Proximity Queries Collision and Proximity Queries Dinesh Manocha (based on slides from Ming Lin) COMP790-058 Fall 2013 Geometric Proximity Queries l Given two object, how would you check: If they intersect with each other

More information

Orthogonal Range Search and its Relatives

Orthogonal Range Search and its Relatives Orthogonal Range Search and its Relatives Coordinate-wise dominance and minima Definition: dominates Say that point (x,y) dominates (x', y') if x

More information

GEOMETRIC SEARCHING PART 2: RANGE SEARCH

GEOMETRIC SEARCHING PART 2: RANGE SEARCH GEOMETRIC SEARCHING PART 2: RANGE SEARCH PETR FELKEL FEL CTU PRAGUE felkel@fel.cvut.cz https://cw.felk.cvut.cz/doku.php/courses/a4m39vg/start Based on [Berg] and [Mount] Version from 19.10.2017 Range search

More information

Algorithms GEOMETRIC APPLICATIONS OF BSTS. 1d range search line segment intersection kd trees interval search trees rectangle intersection

Algorithms GEOMETRIC APPLICATIONS OF BSTS. 1d range search line segment intersection kd trees interval search trees rectangle intersection GEOMETRIC APPLICATIONS OF BSTS Algorithms F O U R T H E D I T I O N 1d range search line segment intersection kd trees interval search trees rectangle intersection R O B E R T S E D G E W I C K K E V I

More information

A Comparison of Nearest Neighbor Search Algorithms for Generic Object Recognition

A Comparison of Nearest Neighbor Search Algorithms for Generic Object Recognition A Comparison of Nearest Neighbor Search Algorithms for Generic Object Recognition Ferid Bajramovic 1, Frank Mattern 1, Nicholas Butko 2, Joachim Denzler 1 1 Chair for Computer Vision, Friedrich-Schiller-University

More information

An improvement in the build algorithm for Kd-trees using mathematical mean

An improvement in the build algorithm for Kd-trees using mathematical mean An improvement in the build algorithm for Kd-trees using mathematical mean Priyank Trivedi, Abhinandan Patni, Zeon Trevor Fernando and Tejaswi Agarwal School of Computing Sciences and Engineering, VIT

More information

Chapter 11: Indexing and Hashing

Chapter 11: Indexing and Hashing Chapter 11: Indexing and Hashing Basic Concepts Ordered Indices B + -Tree Index Files B-Tree Index Files Static Hashing Dynamic Hashing Comparison of Ordered Indexing and Hashing Index Definition in SQL

More information

B-Trees. Version of October 2, B-Trees Version of October 2, / 22

B-Trees. Version of October 2, B-Trees Version of October 2, / 22 B-Trees Version of October 2, 2014 B-Trees Version of October 2, 2014 1 / 22 Motivation An AVL tree can be an excellent data structure for implementing dictionary search, insertion and deletion Each operation

More information

Introduction. for large input, even access time may be prohibitive we need data structures that exhibit times closer to O(log N) binary search tree

Introduction. for large input, even access time may be prohibitive we need data structures that exhibit times closer to O(log N) binary search tree Chapter 4 Trees 2 Introduction for large input, even access time may be prohibitive we need data structures that exhibit running times closer to O(log N) binary search tree 3 Terminology recursive definition

More information

Algorithms. Algorithms GEOMETRIC APPLICATIONS OF BSTS. 1d range search kd trees line segment intersection interval search trees rectangle intersection

Algorithms. Algorithms GEOMETRIC APPLICATIONS OF BSTS. 1d range search kd trees line segment intersection interval search trees rectangle intersection KdTree Next Assignment due /26 (Tuesday after Spring Break) This Thursday, precept will cover the assignment in detail using a great worksheet (thanks Maia!). Due two days after Spring break ends. Second

More information

9/29/2016. Chapter 4 Trees. Introduction. Terminology. Terminology. Terminology. Terminology

9/29/2016. Chapter 4 Trees. Introduction. Terminology. Terminology. Terminology. Terminology Introduction Chapter 4 Trees for large input, even linear access time may be prohibitive we need data structures that exhibit average running times closer to O(log N) binary search tree 2 Terminology recursive

More information

Range Reporting. Range Reporting. Range Reporting Problem. Applications

Range Reporting. Range Reporting. Range Reporting Problem. Applications Philip Bille Problem problem. Preprocess at set of points P R 2 to support report(x1, y1, x2, y2): Return the set of points in R P, where R is rectangle given by (x1, y1) and (x2, y2). Applications Relational

More information

Lesson 05. Mid Phase. Collision Detection

Lesson 05. Mid Phase. Collision Detection Lesson 05 Mid Phase Collision Detection Lecture 05 Outline Problem definition and motivations Generic Bounding Volume Hierarchy (BVH) BVH construction, fitting, overlapping Metrics and Tandem traversal

More information

Average case analysis of dynamic geometric optimization

Average case analysis of dynamic geometric optimization Average case analysis of dynamic geometric optimization David Eppstein Department of Information and Computer Science University of California, Irvine, CA 92717 May 19, 1995 Abstract We maintain the maximum

More information

Computational Geometry

Computational Geometry Windowing queries Windowing Windowing queries Zoom in; re-center and zoom in; select by outlining Windowing Windowing queries Windowing Windowing queries Given a set of n axis-parallel line segments, preprocess

More information

Range Searching II: Windowing Queries

Range Searching II: Windowing Queries Computational Geometry Lecture : Windowing Queries INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Tamara Mchedlidze Chih-Hung Liu 23.11.2015 1 Object types in range queries y0 y x x0 Setting

More information

Problem 1: Complexity of Update Rules for Logistic Regression

Problem 1: Complexity of Update Rules for Logistic Regression Case Study 1: Estimating Click Probabilities Tackling an Unknown Number of Features with Sketching Machine Learning for Big Data CSE547/STAT548, University of Washington Emily Fox January 16 th, 2014 1

More information

! Good algorithms also extend to higher dimensions. ! Curse of dimensionality. ! Range searching. ! Nearest neighbor.

! Good algorithms also extend to higher dimensions. ! Curse of dimensionality. ! Range searching. ! Nearest neighbor. Geometric search: Overview Geometric Algorithms Types of data. Points, lines, planes, polygons, circles,... This lecture. Sets of N objects. Geometric problems extend to higher dimensions.! Good algorithms

More information

The Unified Segment Tree and its Application to the Rectangle Intersection Problem

The Unified Segment Tree and its Application to the Rectangle Intersection Problem CCCG 2013, Waterloo, Ontario, August 10, 2013 The Unified Segment Tree and its Application to the Rectangle Intersection Problem David P. Wagner Abstract In this paper we introduce a variation on the multidimensional

More information

Field: We have been doing geometry eg linear programming. But in computational geometry, key difference in focus: low dimension d

Field: We have been doing geometry eg linear programming. But in computational geometry, key difference in focus: low dimension d 1 Geometry Field: We have been doing geometry eg linear programming But in computational geometry, key difference in focus: low dimension d Lots of algorithms that are great for d small, but exponential

More information

Nearest Neighbor Methods

Nearest Neighbor Methods Nearest Neighbor Methods Nicholas Ruozzi University of Texas at Dallas Based on the slides of Vibhav Gogate and David Sontag Nearest Neighbor Methods Learning Store all training examples Classifying a

More information

{ K 0 (P ); ; K k 1 (P )): k keys of P ( COORD(P) ) { DISC(P): discriminator of P { HISON(P), LOSON(P) Kd-Tree Multidimensional binary search tree Tak

{ K 0 (P ); ; K k 1 (P )): k keys of P ( COORD(P) ) { DISC(P): discriminator of P { HISON(P), LOSON(P) Kd-Tree Multidimensional binary search tree Tak Nearest Neighbor Search using Kd-Tree Kim Doe-Wan and Media Processing Lab Language for Automation Research Center of Maryland University March 28, 2000 { K 0 (P ); ; K k 1 (P )): k keys of P ( COORD(P)

More information

Large-scale visual recognition Efficient matching

Large-scale visual recognition Efficient matching Large-scale visual recognition Efficient matching Florent Perronnin, XRCE Hervé Jégou, INRIA CVPR tutorial June 16, 2012 Outline!! Preliminary!! Locality Sensitive Hashing: the two modes!! Hashing!! Embedding!!

More information

Dynamic Collision Detection

Dynamic Collision Detection Distance Computation Between Non-Convex Polyhedra June 17, 2002 Applications Dynamic Collision Detection Applications Dynamic Collision Detection Evaluating Safety Tolerances Applications Dynamic Collision

More information

I/O-Algorithms Lars Arge Aarhus University

I/O-Algorithms Lars Arge Aarhus University I/O-Algorithms Aarhus University April 10, 2008 I/O-Model Block I/O D Parameters N = # elements in problem instance B = # elements that fits in disk block M = # elements that fits in main memory M T =

More information

KD-Tree Algorithm for Propensity Score Matching PhD Qualifying Exam Defense

KD-Tree Algorithm for Propensity Score Matching PhD Qualifying Exam Defense KD-Tree Algorithm for Propensity Score Matching PhD Qualifying Exam Defense John R Hott University of Virginia May 11, 2012 1 / 62 Motivation Epidemiology: Clinical Trials Phase II and III pre-market trials

More information

7 Approximate Nearest Neighbors

7 Approximate Nearest Neighbors 7 Approximate Nearest Neighbors When we have a large data set with n items where n is large (think n = 1,000,000) then we discussed two types of questions we wanted to ask: (Q1): Which items are similar?

More information

Principles of Algorithm Design

Principles of Algorithm Design Principles of Algorithm Design When you are trying to design an algorithm or a data structure, it s often hard to see how to accomplish the task. The following techniques can often be useful: 1. Experiment

More information

Trees. Eric McCreath

Trees. Eric McCreath Trees Eric McCreath 2 Overview In this lecture we will explore: general trees, binary trees, binary search trees, and AVL and B-Trees. 3 Trees Trees are recursive data structures. They are useful for:

More information

Collision Detection. These slides are mainly from Ming Lin s course notes at UNC Chapel Hill

Collision Detection. These slides are mainly from Ming Lin s course notes at UNC Chapel Hill Collision Detection These slides are mainly from Ming Lin s course notes at UNC Chapel Hill http://www.cs.unc.edu/~lin/comp259-s06/ Computer Animation ILE5030 Computer Animation and Special Effects 2 Haptic

More information

Planar Point Location

Planar Point Location C.S. 252 Prof. Roberto Tamassia Computational Geometry Sem. II, 1992 1993 Lecture 04 Date: February 15, 1993 Scribe: John Bazik Planar Point Location 1 Introduction In range searching, a set of values,

More information

Chapter 12: Indexing and Hashing. Basic Concepts

Chapter 12: Indexing and Hashing. Basic Concepts Chapter 12: Indexing and Hashing! Basic Concepts! Ordered Indices! B+-Tree Index Files! B-Tree Index Files! Static Hashing! Dynamic Hashing! Comparison of Ordered Indexing and Hashing! Index Definition

More information

Pseudo code of algorithms are to be read by.

Pseudo code of algorithms are to be read by. Cs502 Quiz No1 Complete Solved File Pseudo code of algorithms are to be read by. People RAM Computer Compiler Approach of solving geometric problems by sweeping a line across the plane is called sweep.

More information

Motivation for B-Trees

Motivation for B-Trees 1 Motivation for Assume that we use an AVL tree to store about 20 million records We end up with a very deep binary tree with lots of different disk accesses; log2 20,000,000 is about 24, so this takes

More information

Massive Data Algorithmics

Massive Data Algorithmics Database queries Range queries 1D range queries 2D range queries salary G. Ometer born: Aug 16, 1954 salary: $3,500 A database query may ask for all employees with age between a 1 and a 2, and salary between

More information

Outline. Other Use of Triangle Inequality Algorithms for Nearest Neighbor Search: Lecture 2. Orchard s Algorithm. Chapter VI

Outline. Other Use of Triangle Inequality Algorithms for Nearest Neighbor Search: Lecture 2. Orchard s Algorithm. Chapter VI Other Use of Triangle Ineuality Algorithms for Nearest Neighbor Search: Lecture 2 Yury Lifshits http://yury.name Steklov Institute of Mathematics at St.Petersburg California Institute of Technology Outline

More information

Search. The Nearest Neighbor Problem

Search. The Nearest Neighbor Problem 3 Nearest Neighbor Search Lab Objective: The nearest neighbor problem is an optimization problem that arises in applications such as computer vision, pattern recognition, internet marketing, and data compression.

More information

doc. RNDr. Tomáš Skopal, Ph.D. Department of Software Engineering, Faculty of Information Technology, Czech Technical University in Prague

doc. RNDr. Tomáš Skopal, Ph.D. Department of Software Engineering, Faculty of Information Technology, Czech Technical University in Prague Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond course: Searching the Web and Multimedia Databases (BI-VWM) Tomáš Skopal, 2011 SS2010/11 doc. RNDr. Tomáš Skopal, Ph.D. Department of

More information

A note on quickly finding the nearest neighbour

A note on quickly finding the nearest neighbour A note on quickly finding the nearest neighbour David Barber Department of Computer Science University College London May 19, 2014 1 Finding your nearest neighbour quickly Consider that we have a set of

More information

Branch and Bound. Algorithms for Nearest Neighbor Search: Lecture 1. Yury Lifshits

Branch and Bound. Algorithms for Nearest Neighbor Search: Lecture 1. Yury Lifshits Branch and Bound Algorithms for Nearest Neighbor Search: Lecture 1 Yury Lifshits http://yury.name Steklov Institute of Mathematics at St.Petersburg California Institute of Technology 1 / 36 Outline 1 Welcome

More information