algorithm - 对点进行排序,使连续点之间的最小欧氏距离最大化

标签 algorithm math geometry mathematical-optimization

给定 3D 笛卡尔空间中的一组点,我正在寻找一种算法来对这些点进行排序,以使两个连续点之间的最小欧氏距离最大化。

如果该算法倾向于最大化连续点之间的平均欧几里得距离,这也将是有益的。

编辑:

我已经在 https://cstheory.stackexchange.com/ 上交叉发布了并得到了一个很好的答案。参见 https://cstheory.stackexchange.com/questions/8609/sorting-points-such-that-the-minimal-euclidean-distance-between-consecutive-poin .

最佳答案

这是解决方案成本的下限,它可以作为分支限界或更不可靠的不完整搜索算法的构建 block :

对点之间的距离进行排序,并以非递增的顺序考虑它们。使用 http://en.wikipedia.org/wiki/Disjoint-set_data_structure跟踪点集,在通过两点之间的链接连接时合并两组。将所有点合并为一组时遇到的最短距离的长度是完美解中最小距离的上限,因为完美解也将所有点合并为一个。然而,您的上限可能比完美解决方案的最小距离长,因为您加入的链接可能会形成一棵树,而不是一条路径。

关于algorithm - 对点进行排序,使连续点之间的最小欧氏距离最大化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7731501/

相关文章:

c++ - 启动 Mersenne twister PRNG

c# - 分解二维变换矩阵

c# - 将壁面列表转换为连贯多边形的算法

c++ - OpenGL 谷歌地图样式 2D 相机/缩放到鼠标光标

c# - 画一条平行线

arrays - 在不同数组中查找 "most common elements"的算法

寻找最佳可用时间的算法

math - 分数的2的补码表示法?

c++ - 在 C++ 中求解 Ax = b, A = 下三角矩阵

html - XPath 和 CSS 查询算法的区别