【问题标题】:Find a point that maximizes total distance from a set of points within a bounded area在有界区域内找到一个与一组点的总距离最大的点
【发布时间】:2012-01-09 00:35:06
【问题描述】:

给定一组点p,我想在空间b 内找到一个点,该点与p 的区域相界,并且与p 内的所有点尽可能远。

这是关于根据Craig Reynolds' Boids 在群集模拟中实施避免邻居的 - 如果这不是避免邻居的最佳方式,我会喜欢建议。

编辑: 换句话说,我想找到一个尽可能远离p 中其他点的任意点,同时保持在p 周围的边界框内。

我所说的边界框是指解决方案应该是一个点,其 y 坐标位于上点和最低点之间,x 坐标位于左点和最右点之间。

为了更抽象地提出这个问题,我正在将此算法视为一种为代理找到目标的方法,该代理希望保持在其最近邻居的M 单位内,而不是接近于m 他们的单位.此算法返回的解决方案应返回与其最近邻之间距离最大的点。

这是在二维平面中。

【问题讨论】:

  • 也就是说,在b 中找到点p' 到所有其他点的所有平方距离之和最小?试试最小二乘法?
  • zerm:你倒退了——他想最大化距离的总和。我的感觉是,如果可以设置,最小化适当的对偶问题应该会很好地工作。
  • 另一种解决方案是最大化最近邻距离。 javanix,您能否更具体地说明您的问题?
  • 我还预计距离总和函数的能量景观对于迭代拟合非常不利 - 最大值接近边缘和所有。
  • 边界框到底是什么意思?点的凸包?这是在二维平面中吗(因为您在谈论区域)?你不是很具体。

标签: algorithm optimization points maximization


【解决方案1】:

我认为最远的点应该在盒子的边界上,或者在它的两个最近点之间的距离相等。如果不是,那么您应该能够稍微移动它以使其远离两点中较近的点。这将它放在图表的一条线上。沿该线的方向之一将使其远离两个点,因此您可以移动它,直到该线在某一点与另一条线连接。因此,我希望它要么在边界上,要么在http://en.wikipedia.org/wiki/Voronoi_diagram 的交叉点之一上。您可以检查边界的角,Voronoi 图的线与边界相交的位置,以及 Voronoi 图的交点以找到最远的点。即使您不这样做,您也可能会发现 Voronoi 图可作为另一种方法查找最近邻居的有用方法 - 某些分支和边界可能会起作用。

【讨论】:

    【解决方案2】:

    听起来解决方案必须位于(其他)代理的 Voronoi 图的交点之一。因此,一种算法解决方案是构建 Voronoi 图,迭代交叉点,并选择与邻居距离最短的交叉点。

    【讨论】:

      猜你喜欢
      • 2010-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-15
      • 1970-01-01
      • 2011-06-04
      • 2015-02-19
      相关资源
      最近更新 更多