假设我们有一个整数数组(负数和正数)A[1 ... n]
,这样所有元素总和为零。现在,每当我有一堆总和为零的整数时,我会称它们为组,我想将A
分成多个不相交的组可能。你能建议任何论文讨论同样的问题吗?
答案 0 :(得分:0)
听起来你的问题包含两个NP-Complete问题。
第一个是找到解决子集总和问题的所有子集。这个问题确实具有指数时间复杂度(如评论中的amit所暗示的),但从理论角度来看,它是子集和问题的一个非常合理的扩展。例如,如果您可以通过动态编程解决子集和问题并生成规范的2D数组,则此数组将包含足够的信息以使用回溯生成所有可能的解决方案。
问题中嵌入的第二个NP-Complete问题是整数线性规划问题。给定解决子集和问题的所有可能子集N total,我们想要选择选择0 <= n <= N,使得n的值最大化并且不重复A的元素。
我怀疑有一篇专门描述这个问题的出版物,因为它似乎涉及到已知理论的直接应用。