Algorithm for 2D nearest-neighbour queries with dynamic points

Viewed 2844

I am trying to find a fast algorithm for finding the (approximate, if need be) nearest neighbours of a given point in a two-dimensional space where points are frequently removed from the dataset and new points are added.

(Relatedly, there are two variants of this problem that interest me: one in which points can be thought of as being added and removed randomly and another in which all the points are in constant motion.)

Some thoughts:

  • kd-trees offer good performance, but are only suitable for static point sets
  • R*-trees seem to offer good performance for a variety of dimensions, but the generality of their design (arbitrary dimensions, general content geometries) suggests the possibility that a more specific algorithm might offer performance advantages
  • Algorithms with existing implementations are preferable (though this is not necessary)

What's a good choice here?

2 Answers
Related