选择一个子集以最大化点之间的最小距离


12

我有一组点,每个点之间有距离D P iP j。这些距离是欧几里得距离,但这些点实际上在特征空间中。CD(Pi,Pj)

我想从点中选择n点的子集。将此子集称为。我想选择这个子集,以最大限度地提高新的设定点之间所有的最小距离小号Cnss

maxsC|s|=n(mini,jsijD(Pi,Pj))

现在,我正在使用登山来解决这个问题。我知道模拟退火可能会提供更好的解决方案。

是否存在针对此类问题的已知解决方案?还是可以将此问题重新表述为易于解决的另一个问题?


我对类似的问题感兴趣。根据我到目前为止的搜索结果,它与设施位置问题中的p色散问题相当,是一篇不错的评论文章。
XTZ

您知道这个问题的名字是什么吗?
蒲公英

Answers:


7

此优化问题的决策问题版本为:

给定阈值,您想知道是否有可能找到个点的子集,以使子集中的每对点至少相隔单位。ñ Ťtnt

当然,如果您可以解决决策问题,那么我们可以解决您的优化问题(通过对阈值进行二进制搜索)。t

现在,这个决策问题是在欧几里得图中找到一个独立集合的问题,如果点如果它们之间的距离为,则它们之间有一条边。一种方法是查看独立集的标准近似算法。x,yt

更好的是,您可以查看几何相交图中的独立集算法。考虑一组磁盘,其中每个磁盘的直径均为,并以集合一个点为中心。现在我们可以形成一个几何相交图,其中每个圆盘都有一个顶点,并且如果两个顶点的圆盘相交,则两个顶点之间有一条边。已经研究了在这种图形中查找独立集的问题,并且可以尝试使用针对该问题的近似算法。çtC

如果您想要精确的最佳值而不是近似值,则可以使用任何标准的“大锤子”,例如SAT求解器或ILP求解器。有一种直接的方法可以将独立集问题公式化为SAT实例,然后可以对它应用SAT解算器,以查找是否存在个点的子集,它们彼此之间的距离均为单位。nt

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.