大事化小、小事化了的动态规划

1. 推荐阅读

2. 什么是动态规划

动态规划是一种分阶段求解决策问题的数学思想。简单来说,就是“大事化小,小事化了”,把一个复杂的问题分阶段进行简化,逐步化简成简单的问题。

  • 假定一种状态可以做出多种决策,而每一种决策可以产生一种新的状态;
  • 最优决策是在最后阶段形成的,然后往前倒退,直到初始阶段;
  • 而决策的具体结果及所产生的状态转移,是由初始阶段开始进行计算,然后往后递归或迭代,直到最终结果。

3. 何时用动态规划

  • 每个阶段只有一个状态—>递推;
  • 每个阶段的最优状态都是由上一个阶段的最优状态得到的—>贪心;
  • 每个阶段的最优状态是由之前所有阶段的状态的组合得到的—>搜索;
  • 每个阶段的最优状态可以从之前某个阶段的某个或某些状态直接得到而不管之前这个状态是如何得到的—>动态规划。

4. 问题建模

动态规划中包含3个重要概念:最优子结构、边界、状态转移方程。

下面我们以漫画中的跳台阶为例展开介绍:
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

4.1 根据问题,找到【最优子结构】

找到【最优子结构】是把原问题从大化小的第一步,找到比当前问题要小一号的最好的结果,而一般情况下当前问题可以由最优子结构进行表示
在这里插入图片描述

4.2 确定问题的【边界】

根据上述的最优子结构,一步一步从大化小,最终可以得到最小的,可以一眼看出答案的最优子结构,也就是【边界】。如果一个问题没有边界,将永远无法得到有限的结果。

注意:关于【边界】需要仔细考虑,不要凭借主观感觉猜测f(0),应该用f(1),f(2)倒推计算f(0)
在这里插入图片描述

4.3 分析【状态转移方程】

状态转移方程是确定由一个状态到另一个状态的演变过程。通过分析最优子结构与最终问题之间的关系,我们可以得到【状态转移方程】。
在这里插入图片描述

5. 问题求解:自底向上迭代

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值