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