动态规划入门讲解教案.ppt
《动态规划入门讲解教案.ppt》由会员分享,可在线阅读,更多相关《动态规划入门讲解教案.ppt(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、动态规划入门讲解 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望引入我们用一个简单的例子来让大家了解什么是动态规划 博丽灵梦是东方幻想乡中博丽神社的巫女,她跟幻想乡中最老资格的妖怪八云紫一起维护着隔绝幻想乡与现实世界的大结界,维护现实世界不被幻想乡中的妖怪侵害,幻想乡中的生物也可以自由自在的维持古老的生活方式。但不幸的是,每隔六十年,结界会有一次大异变,为了维护结界的完整,博丽灵梦必须将灵力注入灵符,让灵力以最好的方式游走来修复结界。灵梦的灵符是一个三角形,由一堆
2、数字组成,每个数字表示灵力经过这个位置获得的修复值,三角形共n层,第i层有i个数字,从上方的最尖端注入灵力,灵力只能前往前位置的左下方或者右下方,最终走的下面的边的某个位置释放,问灵梦最多可以获得多少修复值?灵梦的灵符(灵梦的灵符(USACO 1.5.1)最容易想到的方法:我们可以列举每一条可能的路线,分别累加比较每条路线的修复值进行比较,取得最大的一条作为答案。我们先不引入时间复杂度的计算,来用一个n较小的例子手工计算我们需要做的计算量。为什么会计算那么多次呢?因为这个算法有天然呆天然呆的属性,多次经过同一个点,太健忘了!到这个点为止的最大和其实已经算出来了,而回溯法在每次回溯时会重复计算!
3、这样要计算多少次?我们先不引入时间复杂度的计算,来用一个n较小的例子手工计算我们需要做的计算量。n4,共有2(4-1)8条路线 每条两次加法和一次比较,共24次计算。但是如果n=100呢?n=1000呢?指数级的运算量将会飞快增长 无法接受无法接受换一种方法 取当前和较大的一种路线记录下来,往下走的时候直接用这个数跟下面点的修复值相加。每一层都看做一个这样的问题,也就是到当前位置可以获得的最大值,依次类推。原问题答案:到最下面某个位置(也就是最后一层子问题的当前位置)的最大修复值。这就是传说中的:这样的计算次数 进行1次比较和1次加法 (1+4)*4/2-1=9个点 共计算18次。虽然只少了6
4、次,但n增长时与n2成正比的计算量就可以接受了。动态规划的定定义义动态规划是:运筹学的一个分支解决策过程最优化的数学方法把多阶段过程转化为一系列单阶段问题动态规划求解可以划分求解可以划分阶阶段的最段的最优优化化问题问题的方法的方法效率高局限性必须可以划分阶段并满足几个条件指数级-多项式级 动态规划的适用条件适用条件不是一个纯理论的知识看出来这个题题是考用动态规划求解感性的认识1.最最优优子子结结构构当前取得了最优值,那么直接用这个值来参与计算后面的状态能使后面的也最优只要比较取一个值最优的保存2.无后效性无后效性当前作出决策只会影响后面的状态前面的决策的影响都在状态中被包含了顺序 3.重叠子重
5、叠子问题问题也就是有前所述的那种重复计算的减少,动态规划才能减少算法的运行时间动态规划的要素要素阶段状态决策阶阶段段每个状态属于一个阶段有了前后关系保证最优子结构和无后效性比较明显,是前提也是一种特征比如:时间的前后,灵梦的灵符那种层次关系状状态态动态规划时操作的对象表示我们解到了哪一个子问题1维或者多维所属的阶段,一些相关信息决策决策是前面阶段的状态向后面的状态转移的操作是决策把各个阶段的状态依次求出动态规划的求解模式求解模式和程序程序实现实现划分阶段 设计状态 确定决策写出转移 写出方程和边界 递递推:看作推:看作递递推方程,用循推方程,用循环环依次依次递递推出每一个状推出每一个状态态 记
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 动态 规划 入门 讲解 教案
限制150内