算法——动规

                              动规

      动规就是动态规则的意思。前面讲到 分治算法是把大问题分解成多个独立的小问题来求解,但很多问题分解后子问题并不是独立的,或者说如果要分解成独立的子问题,子问题太多,这样反而降低了性能。在这些不独立的子问题中,有很多数据被重复计算,其实这些重复计算的数据可以通过一个表达式来保存,就可以避免很多重复的计算。
       动规用一个表来记录计算过的子问题的答案,通过填表的方式来求得最终的节点。在填表的过程中,需要用到前面的结果,通过最优值的表达式来计算下一步的结果。动态规划可以解决很多最优值的问题,动规问题的基本求解过程如下
       (1)根据最优解的性质,构造求解表达式
       (2)确定范围
       (3)自底向上计算最优值
       (4)根据求得的最优值,构造最优解
       其中最难的就是确定最优值的关系,最优值的关系构造时基本都是基于递归的,然后从低向上构造最优解。要用动规来解决问题,就必须要构造最优值之间的关系,但不是所有的问题的最优值都能建立起关系,只有具有最优子结构的问题才能构造出最优值之间的关系。最优子结构是指如果用子问题求出的最优解来求父问题的解一定也是最优的。比如说求从A到C的最短路径,而A到C必须经过B,那么求出A到B的最短路径和B到C的最短路径就一定能求出A到C的最优路径。 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值