我有两组,A和B.这些组由N个维度点组成并且有序(N <10)。我需要找到B到A的最近部分。让我们说最近的部分是B1。 B1中的点数应与A相同,B1与A中所有点的距离之和应最小。
我检查了k-d树。它只能帮助找到集合中的最近点。那么有一种算法可以快速找到最近的范围吗?
感谢。
答案 0 :(得分:0)
我相信你这里只需要一个 n最近邻搜索算法,这是最近邻算法的简单扩展。对集合A中的每个点运行此操作并最小化总和。
该算法在this article中提到(“关于kd-trees的一个intoductory教程”)。只是简单地提到了对一个以上最近邻居的扩展,但它应该非常清楚。这篇文章是我成功实现修改后的算法的。
这里可以访问C#中的参考实现,它被注释并包含相关的单元测试。应该很容易适应你选择的命令式语言。