我想从n个d维点的集合中找到m个最大距离的点子集。
注意:我在这个主题上发现了类似的问题,但不幸的是,提出的答案需要凸优化(QP),这不适合我需要的非常多的点(n)。
Most mutually distant k elements (clustering?)
我尝试过以下算法
返回m个最远点的子集S
这显然是不确定的,因为删除点的顺序会影响S的最终子集(但这偶尔会返回正确的解)。但是复杂度是(n-m)log(n),这是有利的,考虑到n将> 100,000。
有没有人有关于如何改进/替换上述算法同时保持复杂性的想法?
答案 0 :(得分:1)
您可以尝试使用希尔伯特曲线并沿曲线预先分配点,例如在cgal和三角测量中使用它。