输出集合A的子集以使其最大化成对的总和的算法

时间:2017-01-23 18:14:49

标签: algorithm optimization dynamic-programming combinatorics number-theory

假设我有一组A={a_1, a_2, ..., a_n}。我还有一个函数f:AxA->R,可以从A赋予一对特定的实际值。我想从S_k中提取大小为k的子集A,以便最大化S_k

中所有元素的整体成对总和

是否有任何已知算法可以在合理时间内执行此操作?多项式/准多项式时间也许?

编辑:工作示例

假设A={a_1,a_2,a_3,a_4}k=3的{​​{1}}定义为:

ff(a_1,a_2)=0f(a_1,a_3)=0f(a_1,a_4)=0f(a_2,a_3)=1f(a_2,a_4)=5

然后f(a_3,a_4)=10,因为它最大化了总和S_k={a_2,a_3,a_4}。 (即S_k中所有元素的成对和)

1 个答案:

答案 0 :(得分:6)

不太可能 - 这个问题概括了找到k-clique(将权重设置为图的邻接矩阵)的问题,其中最着名的算法是指数的(参见强指数时间假设)。 p>