零.前言
1.确立解空间
回溯法需要用到树的概念 . 这个树就是问题的解空间{x1,x2,x3....xn}.
其中,左右连线表示做出了某个选择;每个结点表示做出选择后的一个状态; 每一层代表一个数组元素
2.搜索解空间
①约束条件:满足某个条件才能向左子树扩展,表示放入物品.
cw:已装入重量; w[i]:当前物品的重量; W:总容积
cw + w[i] <= W 时间复杂度=O(1)
②限界条件:向右子树扩展,即使不放入该物品,最后也可能产生最优解
cp:当前价值; rp:剩下物品的总价值; bestp:计算过程中当前的最优解
cp+rp>=bestp 只有满足限界条件,才有向右子树扩展的价值 rp需要累加得解,时间复杂度=O(n)
③编写程序
递归程序的编写,是要在逻辑上的二