【动态规划】01背包问题_两种解法
问题描述 0-1背包问题:给定 \(n\) 种物品和一背包。物品i的重量是 \(w_i\) ,其价值为 \(v_i\) ,背包的容量为 \(C\) 。问:应该如何选择装入背包的物品,使得装人背包中物品的总价值最大? 在选择装人背包的物品时,对每种物品 \(i\) 只有两种选择,即装人背包或不装入背包。不能将物品 \(i\) 装入背包多次,也不能只装入部分的物品 \(i\) 。因此,该问题称为 0-1背包问题 。 此问题的形式化描述是,给定 \(C>0\) , \(w_i>0\) , \(v_i>0\) , \(1≤i≤n\) ,要求找出 \(n\) 元0-1向量 \((x_1,x_2,\cdots,x_n), x_i\in\{0,1\},1 \leq i \leq n\) ,使得 \(\sum_{i=1}^{n} w_ix_i \leq C\) ,而且 \(\sum_{i=1}^{n} v_ix_i\) 达到最大。因此,0-1背包问题是一个特殊的整数规划问题。 \[max\sum_{i=1}^{n} v_ix_i\] \[\left\{\begin{matrix} \sum_{i=1}^{n} w_ix_i \leq C & \\ x_i\in\{0,1\}, & 1 \leq i \leq n \end{matrix}\right.\] 最优子结构性质 0