Efficient Nearest Neighbor Search Using Dynamic Programming
<|reference_start|>Efficient Nearest Neighbor Search Using Dynamic Programming: When dealing with point clouds distributed on manifold surfaces in 3D space, or when the query point is far from the data, the efficiency of traditional nearest neighbor search algorithms (e.g., KD Tree and R Tree) may degrade. In extreme cases, the complexity of the query can approach O(n). In this paper, we propose a novel dynamic programming technique that precomputes a Directed Acyclic Graph (DAG) to enable more efficient nearest neighbor queries for 2D manifold data. By leveraging this structure, only a small number of distance comparisons between point pairs are required to accurately identify the nearest neighbor. Extensive experimental results demonstrate that our method achieves query speeds that are 1x-10x faster than traditional methods. Moreover, our algorithm exhibits significant potential. It achieves query efficiency comparable to KD-trees on uniformly distributed point clouds. Additionally, our algorithm supports nearest neighbor queries among the first k points. Coupled with our algorithm, a farthest point sampling algorithm with lower complexity can also be implemented. Furthermore, our method has the potential to support nearest neighbor queries with different types of primitives and distance metrics. We believe that the method proposed in this paper represents the most concise and straightforward exact nearest neighbor search algorithm currently available, and it will contribute significantly to advancements in the field.<|reference_end|>
@article{wang2024efficient,
    title={Efficient Nearest Neighbor Search Using Dynamic Programming},
    author={Pengfei Wang, Jiantao Song, Shiqing Xin, Shuangmin Chen, Changhe Tu,
  Wenping Wang, Jiaye Wang},
    journal={arXiv preprint arXiv:2409.15023},
    year={2024},
    archivePrefix={arXiv},
    eprint={2409.15023},
    primaryClass={cs.CG cs.GR}
}