动态规划总结

原创 2016年05月31日 21:50:42

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]两段


版权声明:本文为博主原创文章,未经博主允许不得转载。

acm动态规划总结

  • 2012年03月05日 21:21
  • 388KB
  • 下载

数据结构动态规划算法总结

  • 2011年07月03日 19:51
  • 218KB
  • 下载

动态规划的简要总结和四个经典问题的c++实现

本文给出了动态规划的简要定义、适用场景、算法实现。并给出了四种经典动态规划:钢条切割求最大收益问题、矩阵链相乘求最小乘法次数问题、最长公共子序列问题、求最小的搜索代价的最优二叉搜索树的c++代码实现。...

动态规划总结-by Amber.doc

  • 2007年09月05日 18:39
  • 95KB
  • 下载

动态规划问题解题思路和总结

  • 2017年04月12日 14:45
  • 1021KB
  • 下载

动态规划、贪心、回溯、分支限界法解0-1背包问题总结

本文通过0-1背包问题的不同解法,深入理解计算机常用算法动态规划、贪心、回溯、分支限界法的思想。 问题描述 0-1背包问题:给定n种物品和一背包。物品i的重量是wi,其价值是vi,背包的容量为C。问...

算法动态规划总结(基础篇)

  • 2012年01月01日 13:56
  • 474KB
  • 下载

动态规划总结

  • 2007年11月13日 11:41
  • 138KB
  • 下载

LeetCode总结,动态规划问题小结

一,参考一般书籍中的“动态规划”讲解 1、基本概念 动态规划(Dynamic Programming)对于子问题重叠的情况特别有效,因为它将子问题的解保存在表格中,当需要某个子问题的解时,直接取值即...

NOIP算法总结——关于简单 线性动态规划

动态规划,显然是一个很让人头疼的地方,也没有个固定的算法,最多就是有一些模板(比如背包啊),要是想要增大做出来的机率,也就只好多做做题找找感觉了~线性动态规划可以说是DP中最简单的类型了,当然里面很多...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:动态规划总结
举报原因:
原因补充:

(最多只允许输入30个字)