【发布时间】:2014-02-11 04:00:58
【问题描述】:
我有一组 3D 点,每个点都与一个方向相关联(例如一个单位向量)。给定另一个点+方向,我想找出集合中最接近的点(使用标准 2 范数),它也满足方向向量的某个条件(例如,两个方向向量之间的角度在某个角度范围内)。到目前为止,我对 3D 点进行了基于 KD 树的范围搜索,然后检查这些点是否符合角度约束,但意识到这是一个高度未优化的 hack。想知道是否有明显更好的方法来做到这一点。
非常感谢。
【问题讨论】:
-
您能否还包括您正在处理的大致点数的详细信息?您当前的算法有多快/多慢?你想优化什么?速度?记忆?代码清晰?我的第一直觉是尝试将其表述为凸优化问题,因为将最近点返回到一组点的函数是凸函数,而您的约束似乎是线性的。
-
大致处理 8k 到 15K 点。希望优化速度 - 内存绝对不是问题。谢谢!