data-structurestreenearest-neighborhamming-distance

insert into vantage-point tree


Given a large collection of 64 bit integers, my goal is to find the integer with the smallest Hamming distance from a new integer, after which the new integer will be inserted in the collection. For this practice, I plan on using a vantage-point tree, as it uses a small amount of storage for the lookup performance it provides. However, I am having problems with figuring out how to insert in(and possibly delete from) such a tree.

After looking around I am not sure anymore if this datastructure is suitible for this operation, so my question is as follows:

Is it possible to insert into a vantage-point tree without rebuilding the whole tree?

If yes, I would also like to ask what the time complexity of this operation is, and some directions on how to do it.

I have used the following references for the tree:


Solution

  • The paper that introduced the structure does not provide an algorithm for insertion. It sounds like it should be possible, though.

    Yianilos, Peter N. "Data structures and algorithms for nearest neighbor search in general metric spaces." SODA. Vol. 93. No. 194. 1993.

    One solution is to use a separate, less efficient data structure for inserts (and deletes), and when it gets too large, rebuild the tree with the new data.