自底向上和自顶向下

本文解析了动态规划的基本概念,包括自底向上与自顶向下的计算方法,并介绍了如何通过构造DAG来理解动态规划过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

动态规划的式子都是状态P由状态Q1、Q2、Q3……之中选择一个或几个计算出来的形式,但是如果一直是一些状态这样递归下去,最后会无限循环的,所以每个式子一直写下去最后都会得到一些状态P是常数(递归边界)的形式。(以上可构造一个DAG)

自底向上就是已经知道了所有递归边界,把所有可能的状态都算出来。基本步骤是一个拓扑排序的过程,从所有递归边界出发,当一个状态被所有可能的下层状态更新后,就用这个状态去更新后面的状态。直到所求的状态被彻底更新完成为止。

自顶向下就是不考虑整个图结构,直接从要求的状态开始展开式子,如果式子中的某个状态的值还不清楚,就递归的从这个状态展开。递归结束后式子中的状态都被对应的值替换了,所求状态自然也就清楚了。


作者:Adder
链接:https://www.zhihu.com/question/31555807/answer/52463111
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值