找到最大化S union A中点之间最小距离的集合S.

时间:2012-06-12 15:53:17

标签: algorithm set distance minimize maximize

我想找到给定基数 k S ,最大化每个点与给定集合 A 之间的最小距离。是否有一个简单的算法来找到这个max-min问题的解决方案?

Given a universe X ⊆ R^d and A ⊆ X,
find the argmax_{S⊆X, |S|=k} min_{s⊆S, s'≠s ⊆ S∪A} distance(s,s')

谢谢!

3 个答案:

答案 0 :(得分:3)

对于给定的k,其中X和A作为输入,暴力强制显然在P中(因为C(| X |,k)是| X |中的多项式。)

如果k也是输入,那么它可能取决于“距离”:

如果'距离'是任意的,那么你的问题相当于在图中找到一个固定大小的团(这是NP完全的):

NP-Hardness

获取clique问题的一个实例,即图(G,E)和整数k。 添加到此图中的顶点'a'连接到每个其他顶点,让(G',E')成为修改后的图形。

(G',E')k + 1则是第一个clique问题实例的等效实例。

创建一个从G'到R ^ d的地图Phi(无论如何都可以在N上映射G')并定义'距离',使距离(Phi(c),Phi(d'))= 1 (c,d)⊆E',否则为0。

X = Phi(G'),A = Phi({a}),k + 1为您提供问题的实例。

你可以注意到,通过构造s≠Phi(a)< =>距离(s,Phi(A))= 1 =最大距离(。,。),即min_ {s⊆S,s'≠s⊆S∪A}距离(s,s')= min_ {s⊆S,如果| S |,s'≠s S}距离(s,s') = k> = 2

解决你的问题的这个实例(X,A,k + 1):这给你一个基数k + 1的集合S,使得min(距离(s,s')| s,s'⊆S,s ≠s')是最大的。

检查是否有s,s'⊆S,s≠s',距离(s,s')= 0(这可以用k ^ 2作为| S | = k):

  • 如果是这种情况则没有基数k + 1的集合,使得forall s,s'距离(s,s')= 1,即没有G'的子图,这是k + 1-clique
  • 如果不是这种情况,则将S映射回G',根据'距离'的定义,在Phi ^ -1(S)的任何顶点之间存在边缘:它是k + 1 clique

这解决了多项式简化问题,相当于集团问题(称为NP-hard)。

NP-Easiness

让X,A,k成为你问题的一个实例。

对于X min_ {s⊆S,s'≠s⊆S∪A}的任何子集S,距离(s,s')只能取{distance(x,y),x,y⊆X}中的值 - 它有一个多项式基数 - 。

要找到一个最大化此距离的集合,我们将按递减顺序测试正确集合的每个可能距离。

为了测试距离d,我们首先将X缩小为X',仅包含距离> = d的点{A点}本身}。

然后我们创建一个图形(X',E)¤其中(s,s')⊆Eiff距离(s,s')> = d。

测试这个图的k-clique(它是NP-easy),通过构造有一个iff,那里它的顶点S是一个具有min_ {s⊆S,s'≠s⊆S∪A}距离的集合(s ,s')> = d


如果'距离'是欧几里德或有任何有趣的财产,它可能在P中,我不知道,但如果我是你,我不会希望太多。

¤我认为X(因此X')在这里是有限的

答案 1 :(得分:1)

这可能是NP难的。贪婪地选择离以前选择最远的点是2近似。 根据Arora和Mitchell的Euclidean TSP方案,可能存在一个复杂的低d近似方案。对于d = 10,请忘记它。

答案 2 :(得分:1)

搜索sphere packing np complete的前2个结果显示了对1981年论文的引用,证明在2d中的最佳包装和覆盖是完整的。我无法访问研究图书馆,因此无法阅读该论文。但是我希望你的问题可以改写为那个问题,在这种情况下你可以证明你有一个NP完全问题。