您的位置:首页 > 编程语言

SDAU 编程练习三 动态规划和动态规划与背包问题相结合的问题

2016-06-01 14:47 344 查看
  动态规划:

     对于这类问题,可将过程分为若干个互相联系的阶段,在他的每一个阶段都需要做出决策,从而使整个过程到达最好的活动效果,当然啦,各个阶段决策的选取不是任意的哦,他依赖于前面相林的状态,又影响以后的发展,当各个决策都确定时,就组成一个决策序列啦,就可以了。。。就是一种多阶段决策问题。。

   在动态规划问题中最重要的就是状态转移方程了哈,状态转移方程要满足最优性原理,只要列出来了满足条件的状态转移方程题目就ok了(最优性原理实际上就是要求问题的最优策略的子策略也是最优的)。。。。

动态规划与背包问题相结合:

      01背包问题:只考虑i件物品放与不放就可。状态转移方程为  (for i=1'。。n    for    v=V..0  f[v]=max{f[v],f[v-c[i]]+w[i]}   ;)

      完全背包问题:每个物品都有无数件,既要考虑i件放于不妨,还要考虑放多少,状态方程与01不同的是二重循环从0到V(for i=1'。。n    for    v=0。。V  f[v]=max{f[v],f[v-c[i]]+w[i]}   ;)

      多重背包问题:每个物品有多件但不为无数件,既要考虑i件放于不妨,还要考虑放多少。可以运用二进制思想进行优化啦。。。。

        分组背包问题:  有多组物品,每组只能选择一个物品,只要先不考虑租的问题,就类似于01背包问题了。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: