问题基础:有N件物品和一个容量为C的背包。第i件物品的体积是W[i],价值是V[i]。求解将哪些物品装入背包可使这些物品的重量总和不超过背包容量,且价值总和最大。
怎样才能得到放入书包物品的的最大价值呢?
解决方法——【动态规划】
运筹学的分支,纠结决策过程最优化的数学方法
把多阶段问题分解为相互联系单一阶段小问题求解,上一阶段的决策可以对下一阶段的决策产生影响
各个阶段的决策选择最优,从而使整个过程达到最优
令Vi、Wi 分别表示第i个物品的价值和体积,V(i,j)表示前i个物品能装入背包容量为j的背包的最大价值,有以下动态规划函数:
算法大概:即填写二维矩阵,行数为物品个数加1,列数为背包承重加1
例如,有5个物品,其重量分别