【发布时间】:2013-10-07 20:47:36
【问题描述】:
我在维度 d 中有一组 n 个点,如果需要,我可以计算所有成对距离。我需要在这个集合中选择 k 个点,以使它们的成对距离之和最大。换句话说,稍微更数学的话,我希望 S 中的 p1, ..., pk 使得 sum(i,j
我知道这个问题与this one(这与我的基本相同,但 k=2 相同)和this one(用“最远”而不是“最近”)有关。
对此我不太确定,但也许所有可能的解决方案都在凸包中具有所有点?
任何合理的近似/启发式都可以。
虚拟奖励点 #1 适用于任何函数,该解决方案在四个点中给出分数(其中一个可能是平方距离之和的平方根)。
如果解决方案很容易在 python + numpy/scipy 中实现,则虚拟奖励点 #2。
【问题讨论】:
-
Re:凸包上的所有解决方案点:不幸的是,这不是真的,因为凸包的顶点数可能少于
k。 -
那么,如果k h,h是船体中的点数,是不是真的?
-
通常“最远”/“最长”比“最近”更难用图表。 不要认为如果你能找到最近的点/最小值,那么你也可以使用几乎相同的代码和相同的时间找到最远的点/最大值。
-
我问过类似的问题,得到了一些很好的答案:stackoverflow.com/questions/48925086/…。我的问题的不同之处在于我想优化距离的最小值而不是距离的总和。
标签: python algorithm numpy geometry