码迷,mamicode.com
首页 > 编程语言 > 详细

动态规划算法

时间:2017-01-22 15:07:09      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:自底向上   规模   示例   构造   迭代   常用   依赖   包含   分解   

1、动态规划与分治法的相似点:都是将待求问题分解成若干个子问题,先求解出这些子问题,然后从子问题的解得到原问题的解

                                  不同点:适合用动态规划求解的问题,经分解得到的子问题一般不是互相独立的。

 

2、动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中可能有许多可行解,每一个解都对应一个值,希望找到具有最优值的解。

 

3、动态规划算法的有效性依赖于最优子结构 和 子问题重叠

最优子结构 指的是问题的最优解 包含了 其子问题的最优解,使得程序能以自底向上的方式递推地从子问题的最优解逐步  构造出 整个问题的最优解

 

子问题重叠 指的是对某些子问题重复求解多次,动态规划能存储这些解。

 

4、解决动态规划的问题的手段:

第一:递归:先自上到底 再 自底到上  优势:正着由大规模问题推向小规模问题,容易想  劣势:但是效率低。

第二:迭代递推: 直接自底向上  优势 效率高   劣势:不好想

 

 

示例:最大子段和

动态规划算法

标签:自底向上   规模   示例   构造   迭代   常用   依赖   包含   分解   

原文地址:http://www.cnblogs.com/wshyj/p/6340194.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!