4

给定一组点p,我想在空间内找到一个点,该点与b该区域的边界p尽可能远离其中的所有点p

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

编辑:换句话说,我想找到一个尽可能远离其他点的任意点p,同时保持在p.

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

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

这是在二维平面中。

4

2 回答 2

3

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

于 2011-11-29T19:09:19.703 回答
1

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

于 2011-11-29T19:15:50.387 回答