算法设计思想--动态规划

动态规划

一种针对特定类型算法效率优化的思想

适用的问题类型

要求解问题 = 常量处理 + 多个规模较小同类问题 形式求解

分析

则对此算法实现过程进行分析
由于递归的特点
我们求解规模较大问题的过程中,会经历如下递归链
规模较小问题 -> 规模更小问题 -> ... ->可直接求解的规模
当存在重复求解相同的 规模更小问题的情况时,
可选的优化方案
每次较小规模的求解完成时,对其记录
在对较大规模求解时,
先按分治形式,把大规模分解为小规模问题之和+组合形式
对小问题求解时,先查表,
若已经被解,查表,取结果。
若未解,沿递归链展开求解。

另一种,优化方案,
因为问题性质为,给定规模问题可以分解为 多个较小规模问题+组合形式
只要 多个较小规模问题均已经求解,我们可以直接给出,对应规模下的解。
而且,问题规模足够小时,问题可以直接求解。
这样,我们按迭代方式,
按规模从小到大,
每次迭代完成,利用已有结果,直接求出迭代规模下的解。

总结

动态规划
分治法求解
求解过程存在重复求解子问题
优化1:分治+查表
优化2:化分治为迭代。
原创文章 134 获赞 87 访问量 6万+

猜你喜欢

转载自blog.csdn.net/x13262608581/article/details/105891625