动态规划算法的基本思想_计算机五大算法之三,动态规划

一、基本思想和策略

通常用于求解具有最优性质的问题,跟分治法类似,基本思想也是将待求解问题分解成若干个子问题,用子问题的解得到原问题的解。

与分治法不同的是,动态规划求解的问题,子问题往往不是相互独立的,若用分治法解这类问题,分解得到的子问题太多,有些子问题,重复计算很多次。

如果能保存已解决子问题的解,需要时找出已求解的解,就可以避免大量重复计算,所以可以用一个表来记录已求解子问题的解,这就是动态规划的基本思路。

二、适用情况和基本特征

适用动态规划算法必须满足最优化原理、无后效性和子问题重叠性

1. 最优化原理(最优子结构性质)

即一个最优化策略具有这样的性质,不论之前的状态和决策如何,对之前决策所形成的状态,后边的决策必须构成最优策略。也就是说,一个最优化策略的子策略总是最优的。一个问题满足最优化原理又称其具有最优子结构性质。

2. 无后效性

即某阶段状态一旦确定,就不受这个状态之后决策的影响,某状态之后的过程不会影响之前的状态,换句话说,每个状态都是过去历史的一个完整总结,这就是无后向性,又称为无后效性。

3. 子问题重叠性

即子问题之间不是相互独立的,一个子问题可能在之后决策中被多次用到。

三、算法特点总结

动态规划将原来具有指数级时间复杂度的搜索算法,改进成了具有多项式时间复杂度的算法。其中的关键就是解决冗余,这是动态规划的根本目的。动态规划实质上是一种以空间换时间的技术,不得不存储各种状态,所以它的空间复杂度要大于其他算法。

到底什么时候用动态规划:当每个阶段的最优状态可以从之前某个阶段的某个或者某些状态直接得到,而不管之前这个状态是如何得到的。

什么时候用贪心法:每个阶段的最优状态都由上个阶段的最优状态得到的。

四、实际应用场景:全路径最短路径的Floyd算法、0-1背包问题

68f74928a0d3650a66fba7118eaf64c2.png
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值