0

我已经成功编写了一个函数,该函数遍历 Kd-Tree 以获得点的最近单个邻居。

但是,我正在尝试切换此功能,以便它找到 K 近邻,而不仅仅是单个。事实证明,这比我最初想象的要艰巨得多,而且我发现自己需要一些帮助……

关于 kD-trees 的维基百科文章说:

该算法可以通过简单的修改以多种方式扩展。它可以通过保持 k 个当前最佳值而不是仅仅一个来为一个点提供 k 个最近邻。只有当它们的点不能比任何 k 当前最佳值更接近时,分支才会被消除。

...但它没有说明如何获得最初的当前最佳值。找到第一个“最佳”很简单,但我不知道如何在不删除以前的最佳并重新搜索的情况下找到其余的 k-current 最佳……这基本上违背了拥有一个快速算法,因为我必须做 k(在我的情况下,17)次。

如果我有一个包含 17 个初始“最佳”的填充列表,我相信我的算法会找到正确的点。

如果这含糊不清,我深表歉意。如果需要任何代码示例,我很乐意提供。虽然如果对这个问题有一个简单的解释,可能没有必要发布它,所以我一开始不会。

提前致谢!

4

0 回答 0