后验修正的分支与学习方法研究
1. 0 - 1 背包问题(未知重量)
1.1 问题描述
给定一组物品,每个物品有重量 $w_i$ 和价值 $v_i$,以及一个容量为 $C$ 的背包。目标是在所选物品总重量不超过背包最大容量的约束下,最大化所选物品的总价值。当重量未知时,可能出现所选物品的估计重量符合要求,但实际总重量超过容量的情况。
1.2 解决方法
- 分支算法适配 :使用 B&L 提出的模板,将 0 - 1 背包问题的分支算法进行适配。估计解 $x^*(a_iγ + b_i)$ 是所选物品的集合,在 Convert 返回的 $E_i(γ)$ 的每个区间内,所选物品集合(即估计解)保持不变。
- 修正函数 :
- 修正函数 A :按价值/重量比的升序逐个移除估计解中的所选物品,直到容量足够。
- 修正函数 B :按重量的降序逐个移除估计解中的所选物品,直到容量足够。
- 修正函数 C :当估计解不可行时,移除所有所选物品。
- 惩罚函数 :
- 惩罚函数 I :当第 $i$ 个物品从估计解中移除时,扣除 $σ_iv_i$ 单位的价值,其中 $σ ≥ 0$ 是一个非负可调向量。
超级会员免费看
订阅专栏 解锁全文
2469

被折叠的 条评论
为什么被折叠?



