9

给定具有 x 和 y 坐标的 N 个点(在 2D 中)。您必须找到一个点 P(在 N 个给定点中),使得从其他(N-1)个点到 P 的距离之和最小。

例如。给定 N 个点 p1(x1,y1),p2(x2,y2) ...... pN(xN,yN)。我们在 p1 , p2 .... PN 中找到了一个点 P,它与所有其他点的距离之和最小。

我使用了蛮力方法,但我需要更好的方法。我也尝试找到中位数、平均值等,但它不适用于所有情况。

然后我想出了一个想法,我将 X 视为多边形的顶点并找到该多边形的质心,然后我将从 Y 中选择一个离质心最近的点。但我不确定质心是否会最小化它到多边形顶点的距离之和,所以我不确定这是否是一个好方法?有没有解决这个问题的算法?

4

3 回答 3

2

如果您的点分布得很好,并且如果它们太多以至于蛮力(计算从每个点到每个其他点的总距离)没有吸引力,那么以下可能会给您一个足够好的答案。我所说的“分布良好”是指(大约)均匀地或(大约)随机地,并且在多个位置没有标记的聚类。

在您的空间中创建一个统一的k*k网格,其中k是一个奇数。如果您的点分布良好,那么您正在寻找的点(可能)位于该网格的中央单元格中。对于网格中的所有其他单元格,计算每个单元格中的点数并近似每个单元格中点的平均位置(使用单元格中心或计算单元格(x,y)中点的平均值)。

对于中央单元格中的每个点,计算到中央单元格中每个其他点的距离,以及到其他单元格中的点的加权平均距离。当然,这将是从该点到其他单元格中点的“平均”位置的距离,由其他单元格中的点数加权。

您必须在较高值的增加精度k与增加的计算负载之间进行权衡,并找出最适合您的点的方法。如果跨单元的点分布远非均匀,那么这种方法可能不适合。

这种方法在大规模模拟中得到了广泛的应用,在这些模拟中,点具有在距离上运行的重力和电荷等属性。是否适合你的需求,我不知道。

于 2012-04-25T11:03:58.283 回答
2

考虑的点被称为几何中位数

质心或质心,类似于几何中值,定义为最小化到每个样本的距离的平方和,可以通过一个简单的公式找到——它的坐标是样本坐标的平均值,但没有这样的公式以几何中位数而闻名,并且已经表明,一般不存在显式公式,也不存在仅涉及算术运算和第 k 个根的精确算法。

于 2012-08-30T07:49:29.323 回答
0

我不确定我是否理解您的问题,但是当您计算最小生成树时,从树的任何点到任何其他点的总和都是最小的。

于 2012-04-25T10:49:29.757 回答