【问题标题】:Query the nearest range查询最近的范围
【发布时间】:2011-12-22 12:46:58
【问题描述】:

我有两个集合,A 和 B。这些集合由 N 个维度点组成并且是有序的 (N

我已经检查了 k-d 树。它只有助于在集合中找到最近的点。那么有没有一种算法可以快速找到最近的范围?

谢谢。

【问题讨论】:

    标签: algorithm nearest-neighbor kdtree


    【解决方案1】:

    我相信你这里只需要n个最近邻搜索算法,它是最近邻算法的简单扩展。对集合 A 中的每个点运行此操作并最小化总和。

    this article(“kd-trees 入门教程”)中提到了该算法。对多个最近邻的扩展只是简要提及,但应该非常清楚。这是我成功实现修改算法的文章。

    可以在此处访问 C# 中的参考实现,它带有注释并包含相关的单元测试。它应该很容易适应您选择的命令式语言。

    【讨论】:

    • 感谢您的回答。但问题是返回的点应该是连续的。如果B1的第一个点是b6,接下来的点应该是b7,b8,b9... KNN返回的结果是不连续的。
    • 继续?你的意思是?您显然没有使用该术语的数学定义,它与 epsilon-delta 无穷小有关。
    • 例如,A = {a1,a2,a3..am} 和 B = {b1,b2,b3....,bn}。 B1 是离 A 最近的范围,它从 b3 开始。那么 B1 应该是 {b3,b4,b5..b3+m}。 B1和A之间的距离是b3->a1, b4->a2, b5->a3...am->b3+m。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-01
    • 1970-01-01
    • 2015-10-02
    • 1970-01-01
    • 1970-01-01
    • 2011-12-08
    相关资源
    最近更新 更多