回溯法和分支限界法解决 0-1 背包题(14页)Good is good, but better carries it
精益求精,善益求善
0-1 背包问题计科 1 班 朱润华 2025040732方法 1:回溯法一、回溯法描述:用回溯法解问题时,应明确定义问题的解空间
问题的解空间至少包含问题的一个(最优)解
对于 0-1 背包问题,解空间由长度为 n 的 0-1 向量组成
该解空间包含对变量的所有 0-1 赋值
例如 n=3 时,解空间为: {(0,0,0),(0,1,0),(0,0,1),(1,0,0),(0,1,1),(1,0,1),(1,1,0),(1,1,1)} 然后可将解空间组织成树或图的形式,0-1 背包则可用完全二叉树表示其解空间给定 n 种物品和一背包
物品 i 的重量是 wi,其价值为 vi,背包的容量为 C
问:应如何选择装入背包的物品,使得装入背包中物品的总价值最大
形式化描述:给定 c >0, wi >0, vi >0 , 1≤i≤n
要求找一 n 元向量(x1,x2,…,xn,), xi∈{0,1},
∑ wi xi≤c,且∑ vi xi 达最大
即一个特别的整数规划问题
二、回溯法步骤思想描述:0-1 背包问题是子集选取问题
0-1 背包问题的解空间可以用子集树表示
在搜索解空间树时,只要其左儿子节点是一个可行节点,搜索就进入左子树
当右子树中有可能含有最优解时,才进入右子树搜索
否则,将右子树剪去
设 r 是当前剩余物品价值总和,cp 是当前价值;bestp 是当前最优价值