给定 K 组点,从每组中选择一个点,使得所选点之间的两两距离之和最小

Given K sets of points, choose one point from each set such that the sum of pairwise distances between the selected points is minimized

与这个问题非常相似

Selecting an integer from each of the given n sets of integers such that the sum of their pairwise distances is minimized

除了整数以外,我们有多维特征向量和任意距离函数来衡量它们的相似性。

发布该问题的人声称他们已经找到了解决他们问题的多项式时间解决方案,似乎也适用于我的问题,但我无法理解他们的回答,也不清楚它是否是实际上是正确的。

我的问题也等同于这个问题,图的权重等于相似函数的输出。

max-weight k-clique in a complete k-partite graph

但尚不清楚 k-partiteness 是否使这个问题比一般的最大权重 clique 问题更容易。

编辑:

从 David Eisenstat 的回答来看,原始问题似乎无法在多项式时间内解决。但是,如果 objective 最小化所选点之间的最大成对距离,会有什么变化吗?

另一个答案必须是使用整数的特定属性,因为这个版本是 NP-hard。给定 k 和一个无向图 G = (V, E),我们可以通过让点 V × {1, …, n} 并设置 d((v, i), (w , j)) = 1 如果 {v, w} ∈ E 和 i ≠ j,否则 d((v, i), (w, j)) = 2。每个集合由一些点 V × {i} 组成。

Evgeny Kluev 的局部搜索算法可能是值得尝试的合理方法。用随机点初始化一个解决方案,然后重复执行以下操作。对于一些随机集合(或集合的集合),在其他集合的点保持不变的约束下确定最优解。重试整个计算几次以避免局部最小值。