关闭

动态规划总结

202人阅读 评论(0) 收藏 举报
分类:

1.动态规划是什么:

动态规划是解决多阶段决策问题的一种方法。

2.动态规划的思想是:

在做每一步决策时,列出各种可能的局部解
依据某种判定条件,舍弃那些肯定不能得到最优解的局部解。
以每一步都是最优的来保证全局是最优的。

3.动态规划问题的一般解题步骤:

判断问题是否具有最优子结构性质,若不具备则不能用动态规划。

把问题分成若干个子问题(分阶段)。
建立状态转移方程(递推公式)。
找出边界条件。
将已知边界值带入方程。
递推求解

4.动态规划(01背包)

题目: 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。
基本思路: 这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放

f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。则其状态转移方程便是: f[i][v]=max{f[i-1][v],f[i-1][v-c[i]]+w[i]}

5。动态规划(区间dp)

题目:有一根长度为L的木棍,木棍上面有M个切割点,每一次切割都要付出当前木棍长度的代价,问怎样切割有最小代价
分析: 区间动态规划问题一般都是考虑,对于每段区间,他们的最优值都是由几段更小区间的最优值得到。将一个区间问题不断划分为更小的区间直至一个元素组成的区间,枚举他们的组合,求合并后的最优值。设F[i,j](1<=i<=j<=n)表示区间[i,j]内的数字相加的最小代价 , 最小区间F[i,i]=0(一个数字无法合并,∴代价为0)每次用变量k(i<=k<=j-1)将区间分为[i,k]和[k+1,j]两段


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3745次
    • 积分:396
    • 等级:
    • 排名:千里之外
    • 原创:37篇
    • 转载:0篇
    • 译文:1篇
    • 评论:0条
    文章分类