动态规划

本文探讨了动态规划解决问题的两个核心条件:最优子结构和重叠子问题。解释了如何利用表来记录不同规模的子问题解决方案,进而求解原问题。介绍了识别动态规划问题的方法和步骤。

1 可以用动态规划解决的问题的两个条件

最优子结构和重叠的子问题。最优子结构很难定义,定义了也很难理解。就看原问题可不可以被分解从更小规模的子问题,并且解决了子问题后就可以从逻辑上解决原问题,这样的分解就是有效的,就是具有最优子结构的。至于重叠的子问题,这个是为了构造一个表来保存更小规模的子问题的解,然后加速更大规模的问题的解决的。

2 关于表

规模小的子问题先计算出来放在表中,规模大的子问题要用到的时候去查表,然后计算出来之后再填入表中,供规模更大的子问题使用。所以,这个表在循环的过程中逐渐填满的,填满的时候最终的结果也就计算出来了。

3 动态规划的子问题和原问题的的关系

子问题和原问题是同一类问题,不是说把某个子问题解决了,原问题就可以解决,而是要把所有的不同规模的子问题都解决了,才能解决原问题,并且更小规模的子问题的结果是更大规模的子问题所公用的,它们需要一个表来记录下来。当思考一个问题时,发现从当个的子问题和原问题很相关,但是通过解决单个的子问题又不能解决原问题时,就应该想到用动态规划的方法来解决,即解决所有的子问题,最终谋求原问题的解决。

解决动态规划问题分两步:
第一,明确这是一个动态规划问题,最明显的特征就是要解决原问题,必须要解决所有的子问题,并且可以用表来记录这些子问题。

第二,用表来记录子问题,最终谋求原问题的解决。

 

转载于:https://www.cnblogs.com/hustdc/p/8038570.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值