【发布时间】:2012-02-26 23:17:01
【问题描述】:
我有一个问题,表面上看起来像 0-1 背包。我有一组可以选择(或不选择)的可能“候选人”,每个候选人都有一个“权重”(成本)和一个潜在的“价值”。如果这是整个问题,我会使用 DP 方法并完成它。但这里是曲线球:可能存在于最终解决方案中的候选对象存在“分区约束”。
我的意思是候选空间被分成离散的等价类。对于我的特定问题,大约有 300 个候选人和 12 个可能的等价类。有“商业规则”说我最多只能说 C1 班的 3 名候选人和 C2 班的 6 名候选人等。
此约束建议使用分支定界技术或某种其他形式的修剪的图搜索类型方法,但是由于我只熟悉 0-1 背包的 DP 解决方案,因此我对如何开始感到有些困惑.什么技术/方法可能适合这个问题?我也想过可能使用约束编程库,但不确定它是否能够找到解决方案?
【问题讨论】:
标签: algorithm optimization dynamic-programming knapsack-problem