动态规划详解讲稿.ppt
《动态规划详解讲稿.ppt》由会员分享,可在线阅读,更多相关《动态规划详解讲稿.ppt(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、动态规划详解动态规划详解动态规划详解动态规划详解第一页,讲稿共三十四页哦动态规划概述 动态规划概述动态规划概述动态规划概述动态规划概述动态规划动态规划动态规划动态规划(Dynamic ProgrammingDynamic Programming),在),在),在),在20 20 世纪世纪世纪世纪5050年代由美国数学家年代由美国数学家年代由美国数学家年代由美国数学家Richard BellmanRichard Bellman(理查德(理查德(理查德(理查德 .贝尔曼)发明,作为贝尔曼)发明,作为贝尔曼)发明,作为贝尔曼)发明,作为多阶段决策过程最优化多阶段决策过程最优化多阶段决策过程最优化多阶
2、段决策过程最优化的一种通用方法,对最优化问题提出的一种通用方法,对最优化问题提出的一种通用方法,对最优化问题提出的一种通用方法,对最优化问题提出最优性原则最优性原则最优性原则最优性原则,从而创建最优化问题,从而创建最优化问题,从而创建最优化问题,从而创建最优化问题的一种新算法设计技术的一种新算法设计技术的一种新算法设计技术的一种新算法设计技术动态规划,它是一种重要的应用数学工具。动态规划,它是一种重要的应用数学工具。动态规划,它是一种重要的应用数学工具。动态规划,它是一种重要的应用数学工具。至少在计算机科学圈子里,人们不仅用它解决特定类型的最优化问题,至少在计算机科学圈子里,人们不仅用它解决特
3、定类型的最优化问题,至少在计算机科学圈子里,人们不仅用它解决特定类型的最优化问题,至少在计算机科学圈子里,人们不仅用它解决特定类型的最优化问题,而最终把它作为一种而最终把它作为一种而最终把它作为一种而最终把它作为一种通用的通用的通用的通用的算法设计技术,即包括某些非最优化问题。算法设计技术,即包括某些非最优化问题。算法设计技术,即包括某些非最优化问题。算法设计技术,即包括某些非最优化问题。多阶段决策过程最优化多阶段决策过程最优化多阶段决策过程最优化多阶段决策过程最优化:现实世界里有许多问题属于这种情况:它有很多解,应用要求最优解。现实世界里有许多问题属于这种情况:它有很多解,应用要求最优解。现
4、实世界里有许多问题属于这种情况:它有很多解,应用要求最优解。现实世界里有许多问题属于这种情况:它有很多解,应用要求最优解。穷举法通过找出全部解,再从中选出最优解。这种方法对于那些计算穷举法通过找出全部解,再从中选出最优解。这种方法对于那些计算穷举法通过找出全部解,再从中选出最优解。这种方法对于那些计算穷举法通过找出全部解,再从中选出最优解。这种方法对于那些计算复杂度很高、计算量很大的问题(如求最佳子集的组合问题),要找出复杂度很高、计算量很大的问题(如求最佳子集的组合问题),要找出复杂度很高、计算量很大的问题(如求最佳子集的组合问题),要找出复杂度很高、计算量很大的问题(如求最佳子集的组合问题
5、),要找出一切可能解,所耗费的计算时间可能是不可以接受的。因此,人们为了一切可能解,所耗费的计算时间可能是不可以接受的。因此,人们为了一切可能解,所耗费的计算时间可能是不可以接受的。因此,人们为了一切可能解,所耗费的计算时间可能是不可以接受的。因此,人们为了降低求解问题的难度,把求解过程分为降低求解问题的难度,把求解过程分为降低求解问题的难度,把求解过程分为降低求解问题的难度,把求解过程分为一系列阶段一系列阶段一系列阶段一系列阶段,各个阶段依次按照,各个阶段依次按照,各个阶段依次按照,各个阶段依次按照最优性原则计算,最后阶段计算得到最优性原则计算,最后阶段计算得到最优性原则计算,最后阶段计算得
6、到最优性原则计算,最后阶段计算得到最优解最优解最优解最优解。包括。包括。包括。包括 分段分段分段分段、求解求解求解求解 两大步。两大步。两大步。两大步。注:不能段化的问题不能用动态规划法求解。注:不能段化的问题不能用动态规划法求解。注:不能段化的问题不能用动态规划法求解。注:不能段化的问题不能用动态规划法求解。第二页,讲稿共三十四页哦最优性原则阶段阶段阶段阶段 1 1阶段阶段阶段阶段 2 2.阶段阶段阶段阶段 n n求解算法求解算法求解算法求解算法求解算法求解算法求解算法求解算法求解算法求解算法求解算法求解算法动态的含义动态的含义动态的含义动态的含义:求解算法施加的状态是变化的。:求解算法施加
7、的状态是变化的。当前状态只与其直接前趋状态有关,对其直接当前状态只与其直接前趋状态有关,对其直接前趋状态施加求解算法,成为当前状态。前趋状态施加求解算法,成为当前状态。最优性原则最优性原则最优性原则最优性原则 (Principle of Optimality):一个最优问题一个最优问题一个最优问题一个最优问题任何实例任何实例任何实例任何实例的最优解,是由该实例的最优解,是由该实例的最优解,是由该实例的最优解,是由该实例的的的的子实例子实例子实例子实例的最优解组成的。的最优解组成的。的最优解组成的。的最优解组成的。对特定问题该原则对特定问题该原则不一定满足(罕见),有必要检查其适用性。不一定满足
8、(罕见),有必要检查其适用性。子实例组成父实例,父实例分解为子实例。子实例组成父实例,父实例分解为子实例。对于某些多阶段决策问题,问题本身没有最优化要求,比如后面要讲到的对于某些多阶段决策问题,问题本身没有最优化要求,比如后面要讲到的求中国象棋马从棋盘上一点移动到另一点的全部路径问题,又如计算裴波求中国象棋马从棋盘上一点移动到另一点的全部路径问题,又如计算裴波那契序列的动态规划算法,它们属于非最优化问题的动态规划法。那契序列的动态规划算法,它们属于非最优化问题的动态规划法。动态规划法的特点动态规划法的特点动态规划法的特点动态规划法的特点:1.分阶段(级)决策。对最优化问题,用最优性原则设计。分
9、阶段(级)决策。对最优化问题,用最优性原则设计。2.一般采用一般采用自顶向下分析自顶向下分析自顶向下分析自顶向下分析(规模减小),(规模减小),自底向上计算自底向上计算自底向上计算自底向上计算(规模增加)。(规模增加)。计算过程是一级一级(一阶段一阶段)地向前推进,直到最终状态。计算过程是一级一级(一阶段一阶段)地向前推进,直到最终状态。第三页,讲稿共三十四页哦数塔 数塔数塔数塔数塔问题问题问题问题:设有一三角形数塔如图。求一条自塔顶到塔底的路径,该路径上设有一三角形数塔如图。求一条自塔顶到塔底的路径,该路径上设有一三角形数塔如图。求一条自塔顶到塔底的路径,该路径上设有一三角形数塔如图。求一条
10、自塔顶到塔底的路径,该路径上 节点值之和最大节点值之和最大节点值之和最大节点值之和最大。分段分段分段分段:每一级台阶自然划分为一个阶段,成为多阶段决策的优化问题。:每一级台阶自然划分为一个阶段,成为多阶段决策的优化问题。:每一级台阶自然划分为一个阶段,成为多阶段决策的优化问题。:每一级台阶自然划分为一个阶段,成为多阶段决策的优化问题。无法分段的问题,不能用动态规划法求解。无法分段的问题,不能用动态规划法求解。无法分段的问题,不能用动态规划法求解。无法分段的问题,不能用动态规划法求解。求解求解求解求解:动态规划法求解。自底向上计算,各实例计算满足最优性原则,:动态规划法求解。自底向上计算,各实例
11、计算满足最优性原则,:动态规划法求解。自底向上计算,各实例计算满足最优性原则,:动态规划法求解。自底向上计算,各实例计算满足最优性原则,如实例如实例如实例如实例1818的子实例为的子实例为的子实例为的子实例为1212和和和和7 7,max(12+6,7+6)=18max(12+6,7+6)=18。5 5 级级级级4 4 级级级级3 3 级级级级2 2 级级级级1 1级级级级18 27 39 3218 27 39 3267 46 6567 46 6578 7378 739191131311118 87 740401414262615158 824246 67 7131312121111第四页,讲
12、稿共三十四页哦数塔问题:动态规划法与穷举法效率比较vv 数塔:动态规划法与穷举法的时间效率比较数塔:动态规划法与穷举法的时间效率比较数塔:动态规划法与穷举法的时间效率比较数塔:动态规划法与穷举法的时间效率比较w w输入规模输入规模输入规模输入规模:为便于分析,选择数塔层数:为便于分析,选择数塔层数:为便于分析,选择数塔层数:为便于分析,选择数塔层数k(k0)k(k0);w w基本操作基本操作基本操作基本操作:节点值求和运算;:节点值求和运算;:节点值求和运算;:节点值求和运算;增长函数增长函数增长函数增长函数:加法次数与:加法次数与:加法次数与:加法次数与 k k 的关系;的关系;的关系;的关
13、系;w w效率类别效率类别效率类别效率类别:没有最佳、最差情况;(都要从塔顶计算到塔底):没有最佳、最差情况;(都要从塔顶计算到塔底):没有最佳、最差情况;(都要从塔顶计算到塔底):没有最佳、最差情况;(都要从塔顶计算到塔底)w w增长率(次数)增长率(次数)增长率(次数)增长率(次数):各层节点数升序:各层节点数升序:各层节点数升序:各层节点数升序:1,2,3,4,1,2,3,4,5 5,6,7,8,9,10,.,6,7,8,9,10,.节点总数节点总数节点总数节点总数 n n 升序:升序:升序:升序:1,3,6,10,1,3,6,10,1515,21,28,36,45,55,.,21,28
14、,36,45,55,.层数层数层数层数k k(顶为(顶为(顶为(顶为1 1):):):):1,2,3,4,1,2,3,4,5 5,6,7,8,9,10,.,6,7,8,9,10,.路径总数路径总数路径总数路径总数 t t 升序:升序:升序:升序:2,2,4,8,4,8,1616,32,.,t=,32,.,t=2 2k-1k-1,k1,k11.1.穷举法穷举法穷举法穷举法:T(k)=(k-1)2T(k)=(k-1)2k-1k-1,k1 k1 (指数级指数级指数级指数级)本例本例本例本例k=5k=5,每条路径上,每条路径上,每条路径上,每条路径上5 5个节点做个节点做个节点做个节点做4 4次加法,
15、共次加法,共次加法,共次加法,共6464次加法。次加法。次加法。次加法。2.2.动态规划法动态规划法动态规划法动态规划法:(:(:(:(层节点数层节点数层节点数层节点数 =层数层数层数层数)自底向上计算,自底向上计算,自底向上计算,自底向上计算,k k层加法总数为层加法总数为层加法总数为层加法总数为k-1k-1层节点数层节点数层节点数层节点数22,有效率计算式:,有效率计算式:,有效率计算式:,有效率计算式:T(k)=2(k-1+.+3+2+1)=k(k-1),k1 T(k)=2(k-1+.+3+2+1)=k(k-1),k1 (平方级平方级平方级平方级)本例加法总数本例加法总数本例加法总数本例
16、加法总数 2(4+3+2+1)=202(4+3+2+1)=20次,比次,比次,比次,比6464次少很多。次少很多。次少很多。次少很多。第五页,讲稿共三十四页哦非最优化问题实例 非最优化问题实例非最优化问题实例非最优化问题实例非最优化问题实例vv 求中国象棋马的路径求中国象棋马的路径求中国象棋马的路径求中国象棋马的路径 问题问题问题问题:在:在:在:在mnmn棋盘上,求马从棋盘上,求马从棋盘上,求马从棋盘上,求马从P P点跳到点跳到点跳到点跳到QQ点的所有路径。点的所有路径。点的所有路径。点的所有路径。6 5 4 3 2 16 5 4 3 2 16 5 4 3 2 16 5 4 3 2 16 5
17、 4 3 2 16 5 4 3 2 1可用回溯法和递归法求解,可用回溯法和递归法求解,可用回溯法和递归法求解,可用回溯法和递归法求解,但递归法效率但递归法效率但递归法效率但递归法效率很低,栈空间占用很大。很低,栈空间占用很大。很低,栈空间占用很大。很低,栈空间占用很大。第六页,讲稿共三十四页哦最小代价子母树 最小代价子母树最小代价子母树最小代价子母树最小代价子母树 问题:问题:问题:问题:n(n1)n(n1)堆沙子,重量向量堆沙子,重量向量堆沙子,重量向量堆沙子,重量向量 W=(wW=(w1 1,.w,.wn n)。要将它们归并为。要将它们归并为。要将它们归并为。要将它们归并为1 1堆,堆,堆
18、,堆,归并规则:每次只能将相邻归并规则:每次只能将相邻归并规则:每次只能将相邻归并规则:每次只能将相邻2 2堆归并为堆归并为堆归并为堆归并为1 1堆,经过堆,经过堆,经过堆,经过 n-1 n-1 次归并后,次归并后,次归并后,次归并后,最终归并为一堆。总代价为归并过程中最终归并为一堆。总代价为归并过程中最终归并为一堆。总代价为归并过程中最终归并为一堆。总代价为归并过程中新产生的新产生的新产生的新产生的沙堆质量之和,沙堆质量之和,沙堆质量之和,沙堆质量之和,这个代价最小的归并树称为最小代价子母树。这个代价最小的归并树称为最小代价子母树。这个代价最小的归并树称为最小代价子母树。这个代价最小的归并树
19、称为最小代价子母树。分析分析分析分析:属于最优化问题,目标为总代价最小。:属于最优化问题,目标为总代价最小。:属于最优化问题,目标为总代价最小。:属于最优化问题,目标为总代价最小。分段分段分段分段:显然需要:显然需要:显然需要:显然需要 n-1 n-1 次归并才能将次归并才能将次归并才能将次归并才能将 n n 堆归并为堆归并为堆归并为堆归并为 1 1 堆。自然地可以将每次堆。自然地可以将每次堆。自然地可以将每次堆。自然地可以将每次 归并划分为一个阶段,成为多阶段决策问题,尝试动态规划法。归并划分为一个阶段,成为多阶段决策问题,尝试动态规划法。归并划分为一个阶段,成为多阶段决策问题,尝试动态规划
20、法。归并划分为一个阶段,成为多阶段决策问题,尝试动态规划法。求解求解求解求解:(此处采用:(此处采用:(此处采用:(此处采用自底向上自底向上自底向上自底向上的分析,找规律较简洁)的分析,找规律较简洁)的分析,找规律较简洁)的分析,找规律较简洁)当当当当 n=2 n=2 时:仅一种归并法即时:仅一种归并法即时:仅一种归并法即时:仅一种归并法即2 2合合合合1 1。当当当当 n=3 n=3 时:有时:有时:有时:有2 2种归并方法,第一种归并方法如图,种归并方法,第一种归并方法如图,种归并方法,第一种归并方法如图,种归并方法,第一种归并方法如图,前前前前1 1堆堆堆堆后后后后2 2堆。堆。堆。堆。
21、13137 78 815152828f(i,j)从第从第 i 堆到第堆到第 j 堆的代价和。堆的代价和。g(i,j)从第从第 i 堆到第堆到第 j 堆的重量和。堆的重量和。f(1,3)=15+28=4343(最优结果)(最优结果)=f(2 2,3 3)+g(1 1,3)序号序号序号序号 1 1 2 3 2 33 3级级级级2 2级级级级1 1级级级级13137 78 8161621214 41818第七页,讲稿共三十四页哦最小代价子母树(续1)n=4n=3n=3时:第二种归并方法,时:第二种归并方法,时:第二种归并方法,时:第二种归并方法,前前前前2 2堆堆堆堆后后后后1 1堆。堆。堆。堆。n
22、=4时:有时:有3大类归并法。大类归并法。前前前前1 1堆堆堆堆后后3堆、堆、前前前前2 2堆堆堆堆后后2堆、堆、前前前前3 3堆堆堆堆后后1堆。堆。因因3堆有堆有2种归并法,所以一共种归并法,所以一共5小类归并法。小类归并法。前前前前1 1堆堆堆堆第第1种情况:种情况:7 78 8161631311515序号序号序号序号 1 1 2 3 4 2 3 413134444f(1,4)=15+31+44=9090 =f(2,4)f(2,4)+g(1,4)w不变不变 =f(2 2,3 3)+g(2,4 4)+g(1 1,4)若若f(2,4)越小,则越小,则f(1,4)就越小。就越小。13137 78
23、 820202828f(i,j)从第从第 i 堆到第堆到第 j 堆的代价和。堆的代价和。g(i,j)从第从第 i 堆到第堆到第 j 堆的重量和。堆的重量和。f(1,3)=20+28=4848 =f(1 1,2 2)+g(1,3 3)序号序号序号序号 1 1 2 3 2 33 3级级级级2 2级级级级1 1级级级级4 4级级级级3 3级级级级2 2级级级级1 1级级级级第八页,讲稿共三十四页哦最小代价子母树(续2)n=4n=4 n=4 时:前时:前时:前时:前1 1堆的第堆的第堆的第堆的第2 2种情况。种情况。种情况。种情况。7 78 816162424313113134444序号序号序号序号
24、1 1 2 3 4 2 3 4f(1,4)=24+31+44=9999 =f(2,4)f(2,4)+g(1,4)w不变不变 =f(3 3,4 4)+g(2 2,4)+g(1 1,4)若若f(2,4)越小,则越小,则f(1,4)就越小。就越小。n=4 n=4 时:前时:前时:前时:前2 2堆情况。堆情况。堆情况。堆情况。7 78 816162424202013134444序号序号序号序号 1 1 2 3 4 2 3 4f(1,4)=20+24+44=8888 =f(1,2)+f(3,4)f(1,2)+f(3,4)+g(1,4)若若f(1,2)+f(3,4)越小,越小,f(1,4)就越小就越小4
25、4级级级级3 3级级级级2 2级级级级1 1级级级级3 3级级级级2 2级级级级1 1级级级级第九页,讲稿共三十四页哦最小代价子母树(续3)n=4n=4 n=4 时:前时:前时:前时:前3 3堆的第堆的第堆的第堆的第1 1种情况。种情况。种情况。种情况。7 78 816162020282813134444n=4 n=4 时:前时:前时:前时:前3 3堆的第堆的第堆的第堆的第2 2种情况。种情况。种情况。种情况。序号序号序号序号 1 1 2 3 4 2 3 4f(1,4)=20+28+44=9292 =f(1,3)f(1,3)+g(1,4)w不变不变 =f(1 1,2 2)+g(1,3 3)+g
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 动态 规划 详解 讲稿
限制150内