首页 > 其他 > 详细

动态规划基本思想

时间:2015-11-03 00:24:07      阅读:322      评论:0      收藏:0      [点我收藏+]

      动态规划与分治法类似,都是构造子问题的解来求解原问题,但是与分治法不一样的是,分治法求解的是不重叠的子问题,而动态规划恰好是解决重叠子问题,如果用分治法来解决,将会反复求解子问题,使得计算效率极低,对于重叠子问题,动态规划只需要将子问题求解一遍将其记录在一表格中,需要时调用即可,这样提高了时间上的效率,但是需要储存子问题耗费空间量大,以空间为代价换取时间,这是一个典型的时空权衡问题。具体求解动态规划有以下四个步骤:

1.刻画一个最优解的结构特征

2.递归的定义最优解的值

3.计算最优解的值,通常采用自底向上的方法

4.利用计算出来的信息构造一个最优解

前三步是求解最优解的值的步骤,如果需要最优解的信息就需要第四步

动态规划两种等价实现方法:

1.自顶向下法:此方法按自然递归方式编写,但过程会保存每一个子问题,在调用子问题时先判断子问题是否已经求解过。若果是则直接返回保存值,否则按通常方式计算这个问题。

2:自底向上法:这种方法一般需要定义子问题的规模,使得任何问题求解转化为只依赖子问题的解,然而我们将子问题按规模排序,从小到大进行求解,每个子问题求解一次并保存下来,直到所有子问题求解完成。

 

动态规划基本思想

原文:http://www.cnblogs.com/td15980891505/p/4931975.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!