【算法】可用动态规划求解的问题的基本特征
2013-09-09 10:36
706 查看
对于动态规划思想,每一个刚刚接触的人都会都会十分迷惑,哪些问题可以用动态规划思想求解呢?最近一直在学习动态规划,书中也讲了好多关于能用动态规划求解问题的特征,根据自己的想法,我总结了以下几个可以用动态规划的问题的基本特征:
1,最优子结构
母问题的最优解包含其子问题的最优解,我们就称此问题具有最优子结构。即也就是说,子问题最优时,母问题通过优化一定能求得最优解
2,子问题重叠
子问题本质上是和母问题一样的,只是问题的输入参数不一样,就可以称之为子问题重叠,这是动态规划解决问题的高效的本质所在,我们可以利用很多子问题具有相同的输入参数这一个性质,来减少计算量。
3,问题存在边界
子问题在一定情况下就不存在子问题了, 我们称这种情况为问题存在边界,对于自顶向上和自底向下的方法,边界分别是问题的出口和入口。
4,子问题相互独立
个子问题在求解最优解时事相互独立的,即本自问题的求解和其他平行子问题是不相干的。当平行子问题解决后,选择权交给母问题时,它才会考虑各子问题之间的关系,是求最大值还是最小值,还是要做相关的运算得到母问题的最优解。
1,最优子结构
母问题的最优解包含其子问题的最优解,我们就称此问题具有最优子结构。即也就是说,子问题最优时,母问题通过优化一定能求得最优解
2,子问题重叠
子问题本质上是和母问题一样的,只是问题的输入参数不一样,就可以称之为子问题重叠,这是动态规划解决问题的高效的本质所在,我们可以利用很多子问题具有相同的输入参数这一个性质,来减少计算量。
3,问题存在边界
子问题在一定情况下就不存在子问题了, 我们称这种情况为问题存在边界,对于自顶向上和自底向下的方法,边界分别是问题的出口和入口。
4,子问题相互独立
个子问题在求解最优解时事相互独立的,即本自问题的求解和其他平行子问题是不相干的。当平行子问题解决后,选择权交给母问题时,它才会考虑各子问题之间的关系,是求最大值还是最小值,还是要做相关的运算得到母问题的最优解。
相关文章推荐
- JAVA代码—算法基础:最少货币换钱问题求解(动态规划)
- 每周算法练习——用动态规划求解最短路径问题
- 算法笔记:动态规划求解最长子序列问题
- 可用贪心算法解决的几个基本问题
- 动态规划求解01背包相关的基本问题
- 可用贪心算法解决的几个基本问题
- poj-1322-Chocolate 使用动态规划求解的一种概率问题的算法
- 动态规划在求解传递闭包问题中的应用(JAVA)--Warshell算法
- 算法|动态规划问题
- 第四章 分治策略 4.1 最大子数组问题 (暴力求解算法)
- 数据库--事务(定义、基本特征、并发问题)
- 算法3:动态规划(二)——背包问题
- 基因表达式编程的任务指派问题求解算法设计与实现
- 全面解析回溯法:算法框架与问题求解
- 算法之道_流水线装配问题_动态规划
- 53. Maximum Subarray动态规划求解最大子串问题
- 2705:扩号匹配问题(2.2基本算法之递归和自调用函数)
- 动态规划求解资源最优分配问题
- 简单的算法问题9——爬楼梯(动态规划)
- 使用动态规划求解旅行商问题