专题三总结

原创 2016年05月31日 20:59:23

这个专题讲的是动态规划的内容,到现在为止,已经做了3个专题了,我个人认为,动态规划这个专题还是挺好做的,没有刚开始老师说的的那么难。

先来点理论知识吧。所谓动态规划,它是解决多阶段决策问题的一种方法。动态规划的指导思想就是在做每一步决策时,列出各种可能的局部解,依据某种判定条件,舍弃那些肯定不能得到最优解的局部解。以每一步都是最优的来保证全局是最优的。以我个人的观点来看,我觉得折合贪心算法差不多,只不过我觉得动态规划比贪心更严谨罢了,贪心也是在每一步求最优解然后组成整体的最优解,只是它不严谨,并不能保证最后的答案一定是最优的。

动态规划的基本模型

动态规划问题具有以下基本特征:

问题具有多阶段决策的特征。

每一阶段都有相应的“状态”与之对应,描述状态的量称为“状态变量”。

每一阶段都面临一个决策,选择不同的决策将会导致下一阶段不同的状态。

每一阶段的最优解问题可以递归地归结为下一阶段各个可能状态的最优解问题,各子问题与原问题具有完全相同的结构。

动态规划的一般解题步骤

1、判断问题是否具有最优子结构性质,若不具备则不能用动态规划。

2、把问题分成若干个子问题(分阶段)。

3、建立状态转移方程(递推公式)。

4、找出边界条件。

5、将已知边界值带入方程。

6、递推求解。

以上的都是课件上的一些理论知识,接下来的才是我自己通过亲身做动态规划的题目的一些感悟。

动态规划在求解问题的过程中,也是分步来进行的,列出每一步所有的可能的解,然后依据某种规则,题目中的要求去挑选出一种最合理的解(最优解),以我个人的观点来看,我觉得和贪心算法差不多,只不过我觉得动态规划比贪心更严谨罢了,贪心也是在每一步求最优解然后组成整体的最优解,只是它不严谨,一些题目用贪心并不能保证最后的答案一定是最优的。

在动态规划这个专题中,我觉得要想做好题目,最重要的是要找到每个题目的状态转移方程,当然这是思想的方面,至于技术方面,我觉得一定要熟练掌握递归,这个是写这些题目的根本,而且,我觉得动态规划和数学的联系很密切,像一些数学方面的递推公式在这方面都可以得到应用,我记得这个专题里面就有好几道这样的题目,对于像这样的类似的题目,只要我们找到其中的公式,代码就非常简单了,有的就只有几行,可以说就是事半功倍了。然后,这个专题中,涉及到一些背包问题,像01背包,完全背包还有分组背包,对于这3种问题,我觉得最难的不是代码,二是我们遇到问题的时候能否想起来用它这才是最根本的,特别是分组背包,很难在实际做题的时候想到去用它,这三种背包问题的状态转移方程都已经总结好了,这里就不再特别说明了,我们还是要好好想想这3中问题的应用场景,实际问题中好好想想应该用哪一种。还有个经典的是求最长自序列问题,这类题目用递推,一个字符一个字符的比较,直到递推结束,还有,要了解自序列和子串的区别,不要混淆了。

差不多就是这些了,想到什么再补充吧。

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

二维数组专题总结

  • 2012年02月02日 21:01
  • 47KB
  • 下载

Java专题总结

  • 2011年12月24日 11:57
  • 158KB
  • 下载

ACM第一专题—贪心算法总结

这一专题的题目做了不少,但似乎对贪心的感念依然有些模糊,下面简单写下我的理解。   一.概述   所谓贪心算法,就是用将一个大的问题细化成若干小问题,通过逐一解决这些小问题,最终求得问题解的方法。这种...

SSIS专题三 进阶技巧指南

  • 2013年10月29日 16:40
  • 2MB
  • 下载

Java总结——反射专题

反射入门详解 引言:反射很多人说很难,其实很简单,就是一般类的应用(个人愚见),如果你对此感兴趣,请认真读完,你就会发现反射入门很简单。 反射是Java的一个特性,其实也是一种面向对象思想的一个深...

专题三:操作系统知识.rar

  • 2008年11月30日 23:03
  • 39KB
  • 下载

专题三:操作系统知识

  • 2009年05月23日 23:11
  • 155KB
  • 下载

【专题】三分法和牛顿迭代法总结

下面总结两种迭代方法:三分法和牛顿迭代 1.三分法 二分法作为分治中最常见的方法,适用于单调函数,逼近求解某点的值。但当函数是凸性函数时,二分法就无法适用,这时三分法就可以大显身手。 如下...

09年数学三专题辅导资料

  • 2008年12月11日 22:19
  • 1.52MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:专题三总结
举报原因:
原因补充:

(最多只允许输入30个字)