【问题标题】:0-1 Knapsack w/ partitioning constraints0-1 带分区约束的背包
【发布时间】:2012-02-26 23:17:01
【问题描述】:

我有一个问题,表面上看起来像 0-1 背包。我有一组可以选择(或不选择)的可能“候选人”,每个候选人都有一个“权重”(成本)和一个潜在的“价值”。如果这是整个问题,我会使用 DP 方法并完成它。但这里是曲线球:可能存在于最终解决方案中的候选对象存在“分区约束”。

我的意思是候选空间被分成离散的等价类。对于我的特定问题,大约有 300 个候选人和 12 个可能的等价类。有“商业规则”说我最多只能说 C1 班的 3 名候选人和 C2 班的 6 名候选人等。

此约束建议使用分支定界技术或某种其他形式的修剪的图搜索类型方法,但是由于我只熟悉 0-1 背包的 DP 解决方案,因此我对如何开始感到有些困惑.什么技术/方法可能适合这个问题?我也想过可能使用约束编程库,但不确定它是否能够找到解决方案?

【问题讨论】:

    标签: algorithm optimization dynamic-programming knapsack-problem


    【解决方案1】:

    您可以尝试使用整数线性规划求解器,其中有一个用于选择每个候选者的二进制变量。约束很容易表示为线性不等式。有 300 个变量,求解器应该不会有太多麻烦。

    最简单的方法可能是以文本格式(例如 CPLEX LP format)编写您的问题,然后使用 Coin CBC 或 GLPK 等求解器。

    【讨论】:

      猜你喜欢
      • 2022-01-13
      • 1970-01-01
      • 2020-03-14
      • 2015-09-09
      • 2018-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多