Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Cover tree

From Wikipedia, the free encyclopedia
Type of data structure

Thecover tree is a type ofdata structure incomputer science that is specifically designed to facilitate the speed-up of anearest neighbor search. It is a refinement of the Navigating Net data structure, and related to a variety of other data structures developed for indexing intrinsically low-dimensional data.[1]

The tree can be thought of as a hierarchy of levels with the top level containing the rootpoint and the bottom level containing every point in the metric space. Each levelC is associated with an integer valuei that decrements by one as the tree is descended. Each levelC in the cover tree has three important properties:

Complexity

[edit]

Find

[edit]

Like othermetric trees the cover tree allows for nearest neighbor searches inO(ηlogn){\displaystyle O(\eta *\log {n})} whereη{\displaystyle \eta } is a constant associated with the dimensionality of the dataset and n is the cardinality. To compare, a basic linear search requiresO(n){\displaystyle O(n)}, which is a much worse dependence onn{\displaystyle n}. However, in high-dimensionalmetric spaces theη{\displaystyle \eta } constant is non-trivial, which means it cannot be ignored in complexity analysis. Unlike other metric trees, the cover tree has a theoretical bound on its constant that is based on the dataset'sexpansion constant or doubling constant (in the case of approximate NN retrieval). The bound on search time isO(c12logn){\displaystyle O(c^{12}\log {n})} wherec{\displaystyle c} is the expansion constant of the dataset.

Insert

[edit]

Although cover trees provide faster searches than the naive approach, this advantage must be weighed with the additional cost of maintaining the data structure. In a naive approach adding a new point to the dataset is trivial because order does not need to be preserved, but in a cover tree it can takeO(c6logn){\displaystyle O(c^{6}\log {n})} time. However, this is an upper-bound, and some techniques have been implemented that seem to improve the performance in practice.[2]

Space

[edit]

The cover tree uses implicit representation to keep track of repeated points. Thus, it only requires O(n) space.

See also

[edit]

References

[edit]
Notes
  1. ^Kenneth Clarkson. Nearest-neighbor searching and metric space dimensions. In G. Shakhnarovich, T. Darrell, andP. Indyk, editors, Nearest-Neighbor Methods for Learning and Vision: Theory and Practice, pages 15--59. MIT Press, 2006.
  2. ^"Cover Tree".
Bibliography
Search trees
(dynamic sets/associative arrays)
Heaps
Tries
Spatial data partitioning trees
Other trees
Retrieved from "https://en.wikipedia.org/w/index.php?title=Cover_tree&oldid=1182773785"
Category:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp