【发布时间】:2010-01-03 04:59:04
【问题描述】:
您可能知道,SUBSET-SUM 问题被定义为确定一组整数的子集是否与指定的整数相加。 (subset-sum还有另一种定义,即一组整数总和为零,但我们现在使用这个定义)
例如,((1,2,4,5),6) 是 true,因为 (2,4) 和 6。我们说(2,4) 是"solution"
此外,((1,5,10),7) 是 false,因为参数中没有任何内容与 7 相加
我的问题是,给定SUBSET-SUM 的一组参数数字,可能的解决方案的数量是否存在多项式上限。在第一个示例中,有 (2,4) 和 (1,5)。
我们知道,由于SUBSET-SUM 是 NP-complete,因此在 polynomail 时间内决定可能是不可能的。但是我的问题与决策时间无关,我严格询问解决方案列表的大小。
显然,参数数字的幂集的大小可以是解决方案列表大小的上限,但这具有指数增长。我的直觉是应该有一个多项式界限,但我无法证明这一点。
nb我知道这听起来像是一个家庭作业问题,但请相信我,它不是。我正在尝试自学 CS 理论的某些方面,这就是我的想法。
【问题讨论】:
-
考虑
((2 2 2 2 2 2 2 2 2 2) 10)。在这里,有 5 个 2 的 252 种组合,您可以选择得到 10。如果您计算具有相同数字但不同索引的答案相同,那么在这种情况下只有一种解决方案。您会将以上内容算作 252 个解决方案还是仅算 1 个? -
1,我应该提到我对独特的解决方案感兴趣
-
卡普减少是我曾经用来解决这个问题的方法,仍然安排它欢迎迈克和所有人带来它
-
@Joey 我认为您的数字列表也不是一个集合,它必须具有唯一的元素,尽管我认为子集总和可能仍然是一个“困难”(np-complete)问题,即使列表我们正在获取包含重复项的子集;只是想我应该提出那个细微的区别
标签: theory subset-sum