对动态规划的一些看法
来源:互联网 发布:js设置页面刷新 编辑:程序博客网 时间:2024/05/18 03:55
动态规划满足的 基本条件是:
1. 最优子结构
当一个问题的最优解包含了子问题的最优解时,说明这个问题具有最优子结构的特性。
那么如何判断一个问题是否具有这个属性呢?
我们可以通过数学上常用的反证法来证明,假设子问题的解不是最优的,那么该问题的解还是最优的吗?如果不是,那么说明这个问题满足最优子结构的特性,但是,满足了最优子结构特性,也不能说明该问题可以用动态规划来解决问题。我们知道,贪心发也满足最有子结构。
贪心算法和动态规划的区别:
动态规划是自底向上,会保存每个子问题的最优解,在没有搜索完整个空间时是不知道哪个子问题的最优解才会构成整个问题的最优解,贪心算法是局部最优的形式作出选择,他不会保留子问题的解,这样一来贪心算法要明显快于动态规划。
2.子问题相互独立
一个子问题的解不会影响同一个问题的另一个子问题的解,就是指这两个子问题中不会有共同的数据集。
将各阶段按照一定的次序排列好之后,对于某个给定的阶段状态,它以前各阶段的状态无法直接影响它未来的决策,而只能通过当前的这个状态。换句话说,每个状态都是过去历史的一个完整总结。这就是无后向性,又称为无后效性。
3.重叠子问题
不同的子问题i会有很多重叠的子问题,因此在求解过程用空间来换取时间
动态规划算法的四个设计步骤:
1.描述最优解的结构
2.递归定义最优解的值
3.按自底向上的方式构造最优解
备忘录方法:
采用自顶向下的策略,具有动态规划的效率,想动态规划一样记录子问题的解,同时利用递归算法,是程序逻辑变得简单。
- 对动态规划的一些看法
- 对动态规划的看法
- 关于CDN对动态网站加速的一些看法
- 对动态规划问题的一些思考
- 对bootloader的一些看法
- 对企业发展的一些看法
- 对经济学的一些看法
- 对跳槽的一些看法
- 对 XML 的一些看法
- 对大盘的一些看法
- 对Spring的一些看法
- 对动态规划算法思想的一些理解
- 对看过的一些书的看法
- 一些对加拿大的错误看法
- 我对文档的一些看法
- 对测试自动化的一些看法
- 对一些流行观点的看法
- 对Spring的一些负面看法
- 2013-3-26 多益网络笔试题
- opengl在vs2008下的配置过程
- CodeForces 266E More Queries to Array...
- SQL Error (1130): Host '192.168.1.100' is not allowed to connect to this MySQL server
- Ubuntu下网络连接图标丢失后获得方法
- 对动态规划的一些看法
- CodeForces 1B Spreadsheet
- Ubuntu中Lamp的一些配置
- AndEngine游戏编程学习(二) TMX地图
- Ubuntu下Lamp服务器的性能优化
- c++文件操作
- Linux(ubuntu)用户权限管理--赋予用户sudo权限
- Ubuntu输入法的安装
- POJ 1325 Machine Schedule