步步为营(十七)动态规划(一)理论初探

本文探讨动态规划这一算法核心思想,解析其适用条件和一般步骤,并通过斐波那契数列举例说明动态规划如何减少重复计算,提高效率。动态规划将问题分解为子问题,通过无后效性的子问题状态转移达到最优解,适用于具有重叠子问题的问题。
摘要由CSDN通过智能技术生成

终于讲到动态规划了~该来的总会来的……

作为算法的一大核心,我大动态规划的影响力不可谓不大。很多工业级的算法里,都清晰可见动态规划的模样。
你问我为何这么普及?道理很简单。丫的动态规划也是一种思想!!!

相信刚开始学算法的同学都有过被贪心虐的死去活来的时候,那种策略的论证过程,有时明明就是只差一点点,但是就是做不出……
如果你喜欢这种感觉,那么恭喜你,动态规划也是充斥着这种没着没落的感觉…… 如果你不喜欢~反正也上了算法这条贼船,多学点东西总是没坏处的~

动态规划思想

好了,不废话了。如果之前接触过贪心问题的话,对于问题的子问题化、分别求解和组合出最后结果的整个思想肯定不陌生。动态规划使用相同的思想,也是将待求解的问题分解为若干个子问题,按顺序求解子问题,同时前一子问题的解,为后一子问题的求解提供了有用的信息。

  1. 与贪心算法、分治法类似,在求解子问题时只保存针对当前子问题的最优解。
  2. 由于动态规划解决的问题多数有重叠子问题这个特点,为减少重复计算,对每一个子问题只解一次,将其不同阶段的不同状态保存在一个数组中。
  3. 值得注意的是,适合于用动态规划法求解的问题,经分解后得到的子问题往往不是互相独立的(即下一个子阶段的求解是建立在上一个子阶段的解的基础上,进行进一步的求解)。

动态规划适用条件

既然说动态规划是一种思想,那么就要讨论下动态规划的成立条件。

  1. 总问题可划分为多个子问题。
  2. 通过子问题的最优解可以获得整个问题的最终最优解。<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值