算法设计——动态规划的基本要素

两大性质

1.最优子结构
2.子问题重叠性质

最优子结构

定义
问题的最优解包含着其子问题的最优解。这种性质称为最优子结 构性质。
证明
首先假设由问题的最优解导出的子问题的解不是最优的。
然后再设法说明在这个假设下可构造出比原问题最优解更好的解,从 而导致矛盾。
利用问题的最优子结构性质,以自底向上的方式从子问题的最优 解逐步构造出整个问题的最优解。 最优子结构是问题能用动态规划算法求解的前提

重叠子问题

递归算法求解问题时,每次产生的子问题并不总是新问题,有些子问题被反复计算多次。
特点:动态规划算法正是利用了这种重叠子问题的性质,对每个子问题只解一次,而后将其保存在一个表格中再次需要时直接调用

时间复杂性:通常不同的子问题个数随问题的大小呈多项式增长 因此用动态规划算法只需要多项式时间,从而获得较高的解题效率

备忘录方法

备忘录方法的控制结构与直接递归方法的控制结构相同,区别在于备忘录方 法为每个解过的子问题建立了备忘录以备需要时查看,避免了相同子问题的重复求解

备忘录方法VS动态规划
备忘录方法:计算次序自顶向下,且当部分子问题可不必求解时好

动态规划:计算次序自底向上 ,当一个问题的所有子问题都至少要解一次时好

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值