子集和概率的变化。 (多重约束)

时间:2016-11-14 15:27:11

标签: algorithm optimization knapsack-problem heuristics subset-sum

让我举一个例子,说明正在尝试解决的正常子集和问题的变化:

给定的是 S = {1,2,3,4,5,6,7,8,9},最大容量为c0 = 40。此外,我们对 S 的3个不同子集有3个额外约束:

  1. S1 = {2,3,4},约束c1 = 5
  2. S2 = {3,4,5,6},约束c2 = 12
  3. S3 = {7,8,9},约束c3 = 25
  4. 目标是找到 S 的子集,使得(包含项目的)总和最大化,但不超过 ANY 约束(c0-c4)

    重要提示:

    • 交叉路口是可能的! (见S1& S2)
    • 3只是约束计数的一个例子 - 它可能会更多!
    • 虽然 S 的项目在此示例中是整数值,但它也可以是正实数

    问题: 这个特定的子集和问题是否有特定的名称和/或是否有任何论文/文献评论?

1 个答案:

答案 0 :(得分:0)

这听起来像背包问题:https://en.wikipedia.org/wiki/Knapsack_problem

请参阅该文章中关于子集求和问题的部分:

“子集和问题是决策的特例和0-1问题,其中每种项目,权重等于值[...]在密码学领域,术语背包问题经常用于具体指的是子集和问题,通常被称为卡普的21个NP完全问题之一。[30]

子集和问题的推广被称为多子集和问题,其中存在具有相同容量的多个容器。已经证明,推广没有FPTAS。[31]“