如何用同一物品组完美填充两个分数背包并实现最低成本?
双背包分数填充优化问题
问题设定
- 两个背包分别为 Knapsack A 和 Knapsack B,各自有固定的最大容量限制。
- 存在多类可重复取用的物品,每类物品具备三个属性:
price:物品的单位价格X:取用单位物品时占用Knapsack A的容量Y:取用单位物品时占用Knapsack B的容量
核心逻辑示例
示例仅展示物品取用后的容量变化逻辑,非解决方案
Knapsack A capacity: 10 Knapsack B capacity: 20 items: Item 1 price: 10 X: 3 Y: 9
取用Item 1后,背包状态更新为:
Knapsack A remaining capacity: 7 (capacity of A - X of item 1) Knapsack B remaining capacity: 11 (capacity of B - Y of item 1)
此时需支付10单位费用(即Item 1的price)。
需求目标
寻找最优物品组合,满足以下条件:
- 可无限次取用任意类物品,也可取用物品的部分份额(此时X、Y、price均按对应比例折算)
- 必须完美填满两个背包的全部容量
- 最终的总成本最低
求助点
尝试修改传统分数背包算法来解决该问题,但不清楚需要调整哪些核心逻辑,特此寻求帮助。
内容的提问来源于stack exchange,提问作者adamsass
相关产品推荐
相关产品推荐

