将整数bucketi为零和的桶的算法

时间:2015-04-01 15:47:33

标签: algorithm optimization

假设我们有一个整数数组(负数和正数)A[1 ... n],这样所有元素总和为零。现在,每当我有一堆总和为零的整数时,我会称它们为,我想将A分成多个不相交的组可能。你能建议任何论文讨论同样的问题吗?

1 个答案:

答案 0 :(得分:0)

听起来你的问题包含两个NP-Complete问题。

第一个是找到解决子集总和问题的所有子集。这个问题确实具有指数时间复杂度(如评论中的amit所暗示的),但从理论角度来看,它是子集和问题的一个非常合理的扩展。例如,如果您可以通过动态编程解决子集和问题并生成规范的2D数组,则此数组将包含足够的信息以使用回溯生成所有可能的解决方案。

问题中嵌入的第二个NP-Complete问题是整数线性规划问题。给定解决子集和问题的所有可能子集N total,我们想要选择选择0 <= n <= N,使得n的值最大化并且不重复A的元素。

我怀疑有一篇专门描述这个问题的出版物,因为它似乎涉及到已知理论的直接应用。

相关问题