【问题标题】:Find point which sum of distances to set of other points is minimal找到与其他点集的距离总和最小的点
【发布时间】:2011-06-04 08:03:42
【问题描述】:

我有一组 (X) 点(不是很大,比如说 1-20 点)和第二组 (Y),更大的一组点。我需要从 Y 中选择某个点,该点到 X 的 所有 点的距离总和最小。

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

点由地理坐标定义。

【问题讨论】:

  • 你是指曲面上的经纬度,还是平面上的x-y?
  • 质心不会最小化到顶点的距离总和。例如,在三角形的情况下,托里切利点 (en.wikipedia.org/wiki/Torricelli_point) 是最佳的。

标签: algorithm optimization geometry gis


【解决方案1】:

请原谅我建议蛮力。 提出问题的方式我们不知道 X,Y 在哪里。 假设 X 是 30 点,Y 是 1000 点。 然后对于 Y 的每个点总和 30 距离。 总共 30000 次计算,瞬间完成。 这保证了最低限度。 找到 X 的某个“中心”并选择最接近的 Y 只是一个近似解。

更有趣的问题是单独为 X 找到这样一个点。忽略 Y。 仅对于 X 三个点,Fermat-Torichelli 点解决了这个问题。

【讨论】:

    【解决方案2】:

    多边形的质心可能不对,但这样的点是存在的。

    在论文中:n-ellipses and the minimum distance problem,表明如果点(称为焦点,你的 X 集合)不共线,那么

    • 有一个独特的点(称为中心),其距离之和最小。这一点使得从该点到焦点的单位向量之和为零!

    • 距离总和为常数的点的轨迹是包含中心的凸曲线(称为 n 椭圆)

    • 距离 D 的 n 椭圆完全包含 D'

    因此,您可以执行某种类型的爬山算法来找到中心。

    当然,这些 n 椭圆不一定是圆,因此仅选择最接近中心的点可能不起作用,但可能是一个很好的近似值。

    您也许可以对这 20 个点(如果这些点是固定的)进行一些预处理,以找出一个好的分区方案(基于上述信息)。

    希望对您有所帮助。

    【讨论】:

    • 我认为没有必要进行模拟退火。一个简单的爬山就可以了,因为这里只有一个局部最小值。
    • @adam:是的,我的意思实际上是爬山(与那些脱节:-))。谢谢,将编辑。
    【解决方案3】:

    因为您想要最小的距离总和,我相信您可以将点 X 的集合减少到其空间平均值。然后,您可以使用 KDTree 或某种空间分区树来找到 Y 中最接近 X 的空间均值的点。与检查所有可能的点相比,使用空间分区树可以节省大量工作。

    【讨论】:

      【解决方案4】:

      如果您想最小化距离的平方和(而不是距离的总和),那么最小化该和的点就是 X 中点的平均值。

      证明:

      sum(squares of distances) = (x-x0)^2 + (y-y0)^2 + (x-x1)^2 + (y-y1)^2 + ... 
      
      d/dx sum(squares of distances) = 2(x-x0) + 2(x-x1) + ... = 2(Nx - x0 - x1 - ...)
      

      当导数为零时,总和最小化,这发生在Nx = x0+x1+...,所以x = (x0+x1+...)/N

      导数围绕这个点是对称的,函数是二次的,所以我很确定 Y 中离这个平均点最近的点是最好的。

      最小化距离更难,但我怀疑同样的算法,在你测试的 Y 集合中有更多的余地,也可以工作。

      【讨论】:

      • 我不认为您以通常的方式使用平方和这个术语。如果我们谈论的是有效度量,那么任何两点之间的距离将始终大于或等于 0。
      • 我指的是通常的平方和度量,它总是 >= 0。是什么让你认为它不是?
      • 我的观点更多地与阐述的清晰性有关,而不是与数学有关。 OP 要求 Y 中的点最小化该点与 X 中的点之间的距离之和。尽管 OP 没有指定距离度量,例如您将其描述为平方和的欧几里德范数。假设尽管 OP 要求 Y 中的点最小化 Y 中的点与 X 中的点之间的平方距离之和。那么空间平均值将不是一个可行的解决方案。
      • 在没有指定规范的情况下,我假设 OP 是指欧几里得规范。我使用的是欧几里得范数的平方,主要是因为数学很有效。所以我认为你倒过来了,空间平均值适用于欧几里得范数的平方,而不是欧几里得范数本身。
      猜你喜欢
      • 1970-01-01
      • 2020-09-24
      • 2015-01-15
      • 2012-02-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多