赞
踩
强烈推荐一个大神的人工智能的教程:http://www.captainai.net/zhanghan
动态规划(dynamic programming)是求解决策过程最优化的数学方法,把多阶段过程转换为一系列单阶段问题,利用各阶段之间的关系,逐个求解,创立了解决这类过程优化问题的新方法。
将待求解的问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。
现在有5个物品,第i个物品的价值为vi,重量为wi,背包的容量为W,其中的参数都为非负数,W=17。求解如何放物品使得背包的总价值最大。假设我们将物品的价值从低到高排好序如下表:
物品编号 | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|
价值v | 4 | 5 | 10 | 11 | 13 |
重量w | 3 | 4 | 7 | 8 | 9 |
1号物品重量为3,我们先将背包分成从0到17,共18份,当背包容量是0时,物品1无法放入背包,所以最大价值为0,依次类推,当背包的容量为3时,刚好可以将1号物品放入背包,则此时背包中最大价值为4(即为物品1的价值,位置为下表格标红处),背包容量依次增大到17,背包中还是盛放1号物品,所以,将1号物品放入背包的最大价值为4。
I\W | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 0 | 0 | 0 | 4 | 4 | 4 |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。