动态规划new讲稿.ppt
《动态规划new讲稿.ppt》由会员分享,可在线阅读,更多相关《动态规划new讲稿.ppt(65页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、动态规划new第一页,讲稿共六十五页哦推荐书籍推荐书籍 第二页,讲稿共六十五页哦动态规划的历史(动态规划的历史(1/51/5)有有许许多多问问题题,用用穷穷举举法法才才能能得得到到最最佳佳解解。苦苦输输入入量量n n稍稍大大一一些些,计计算算量量太太大大,特特别别对对渐渐近近时时间间复复杂杂性性为为输输入入量量的的指指数数函函数数的的问问题题,计计算算机机无无法法完完成成。采采用用动动态态规规划划(Dynamic Dynamic programmingprogramming)能能得得到到比比穷穷举举法法更更有有效效的的算算法法。动动态态规规划划的的指指导导思思想想是是,在在每每种种情情况况下下
2、,列列出出各各种种可可能能的的局局部部解解,从从局局部部解解中中挑挑出出那那些些有有可可能能产产生生最最佳佳的的结结果果而而扬扬弃弃其其余余,从而大大缩减了计算量。从而大大缩减了计算量。第三页,讲稿共六十五页哦动态规划的历史动态规划的历史(2/52/5)动态规划遵循的动态规划遵循的“最佳原理最佳原理”简而言之,简而言之,“一一个最优策略的子策略总是最优的个最优策略的子策略总是最优的”。动态规划是运。动态规划是运筹学的一个分支,它是解决多阶段决策过程最优化筹学的一个分支,它是解决多阶段决策过程最优化的一种方法,大约产生于的一种方法,大约产生于5050年代,由美国数学家年代,由美国数学家贝尔曼贝尔
3、曼(RBellmanRBellman)等人,根据一类多阶段决策)等人,根据一类多阶段决策问题的特点,把多阶段决策问题变换为一系列互相问题的特点,把多阶段决策问题变换为一系列互相联系单阶段问题,然后逐个加以解决。联系单阶段问题,然后逐个加以解决。第四页,讲稿共六十五页哦动态规划的历史动态规划的历史(3/53/5)动态规划开始只是应用于动态规划开始只是应用于多阶段决策性多阶段决策性问题,问题,后来渐渐被发展为解决后来渐渐被发展为解决离散最优化问题离散最优化问题的有效手段,的有效手段,进一步应用于一些连续性问题上。然而,动态规划进一步应用于一些连续性问题上。然而,动态规划更像是一种思想而非算法,它没
4、有固定的更像是一种思想而非算法,它没有固定的数学模型数学模型,没有固定的实现方法,其正确性也缺乏严格的理论没有固定的实现方法,其正确性也缺乏严格的理论证明。因此,一直以来动态规划的数学理论模型是证明。因此,一直以来动态规划的数学理论模型是一个研究的热点。一个研究的热点。第五页,讲稿共六十五页哦动态规划的历史(动态规划的历史(4/54/5)贝尔曼,贝尔曼,R Richard Bellman(1920R Richard Bellman(19201984)1984)美国美国数学家数学家,美国科学院院士美国科学院院士,动态规划的创始人动态规划的创始人。19201920年年8 8月月2626日生于美国纽
5、约。日生于美国纽约。19841984年年3 3月月1919日逝世。日逝世。19411941年在布鲁克年在布鲁克林学院毕业,获理学士学位,林学院毕业,获理学士学位,19431943年在威斯康星大学获理学硕士学年在威斯康星大学获理学硕士学位,位,19461946年在普林斯顿大学获博士学位。年在普林斯顿大学获博士学位。1946194619481948年在普林斯顿年在普林斯顿大学任助理教授大学任助理教授,1948,194819521952年在斯坦福大学任副教授年在斯坦福大学任副教授,1953,195319561956年年在美国兰德公司任研究员,在美国兰德公司任研究员,19561956年后在南加利福尼亚
6、大学任数年后在南加利福尼亚大学任数学教授、电气工程教授和医学教授。学教授、电气工程教授和医学教授。贝尔曼因提出动态规划而获美国数学会和美国工程数贝尔曼因提出动态规划而获美国数学会和美国工程数学与应用数学会联合颁发的第一届维纳奖金(学与应用数学会联合颁发的第一届维纳奖金(19701970),卡内基),卡内基梅隆大学颁发的第一届迪克森奖金梅隆大学颁发的第一届迪克森奖金(1970)(1970),美国管理科学研究会,美国管理科学研究会和美国运筹学会联合颁发的诺伊曼理论奖金和美国运筹学会联合颁发的诺伊曼理论奖金(1976)(1976)。19771977年贝尔年贝尔曼当选为曼当选为美国艺术与科学研究院院士
7、美国艺术与科学研究院院士和和美国工程科学院院士美国工程科学院院士。第六页,讲稿共六十五页哦动态规划的历史(动态规划的历史(5/55/5)贝尔曼因在研究贝尔曼因在研究多段决策过程多段决策过程中提出动态规划而闻名于世。中提出动态规划而闻名于世。19571957年他的专著年他的专著动态规划动态规划出版后,被迅速译成俄文、日出版后,被迅速译成俄文、日文、德文和法文,对文、德文和法文,对控制理论界控制理论界和和数学界数学界有深远影响。贝有深远影响。贝尔曼还把不变嵌入原理应用于理论物理和数学分析方面,尔曼还把不变嵌入原理应用于理论物理和数学分析方面,把两点边值问题化为初值问题,简化了问题的分析和求解把两点
8、边值问题化为初值问题,简化了问题的分析和求解过程。过程。19551955年后贝尔曼开始研究年后贝尔曼开始研究算法算法、计算机仿真计算机仿真和和人工智人工智能能,把建模与仿真等数学方法应用到工程、经济、社会和医,把建模与仿真等数学方法应用到工程、经济、社会和医学等方面,取得许多成就。贝尔曼对稳定性的矩阵理论、时学等方面,取得许多成就。贝尔曼对稳定性的矩阵理论、时滞系统、自适应控制过程、分岔理论、微分和积分不等式等滞系统、自适应控制过程、分岔理论、微分和积分不等式等方面都有过贡献。方面都有过贡献。贝尔曼曾是贝尔曼曾是数学分析与应用杂志数学分析与应用杂志及及数学生物科数学生物科学杂志学杂志的主编,的
9、主编,科学与工程中的数学科学与工程中的数学丛书的主编。已丛书的主编。已出版出版3030本著作和本著作和7 7本专著,发表了本专著,发表了600600多篇研究论文。多篇研究论文。第七页,讲稿共六十五页哦动态规划的基本思想动态规划的基本思想 动态规划算法与分治法类似动态规划算法与分治法类似,其基本思想也是将待求解其基本思想也是将待求解问题分解成若干个子问题问题分解成若干个子问题,先求解子问题先求解子问题,然后从这些子问题然后从这些子问题的解得到原问题的解。的解得到原问题的解。动态规划算法与分治法不同的是,经分解得到的子动态规划算法与分治法不同的是,经分解得到的子问题往往不是相互独立的,有大量子问题
10、会重复出现。问题往往不是相互独立的,有大量子问题会重复出现。为了避免重复计算,动态规划法是用一个表来存放一计为了避免重复计算,动态规划法是用一个表来存放一计算过的子问题。算过的子问题。第八页,讲稿共六十五页哦动态规划算法适用于求解最优化问题动态规划算法适用于求解最优化问题 通常按如何四步骤设计动态规划算法:通常按如何四步骤设计动态规划算法:(1)找出最优解的性质,并刻画其结构特征;找出最优解的性质,并刻画其结构特征;(2)递归定义求最优值的公式递归定义求最优值的公式(3)以自底向上方式计算最优值以自底向上方式计算最优值(4)根据计算最优值时得到的信息,构造最优解。根据计算最优值时得到的信息,构
11、造最优解。第九页,讲稿共六十五页哦引导例子(引导例子(1/101/10)最短路径问题描述:最短路径问题描述:输入:输入:起点集合起点集合 S S1 1,S S2 2,.,.,S Sn n ,终点集合终点集合 T T1 1,T T2 2,.,.,T Tm m,中间结点集,中间结点集,边集边集E E,对于任意边,对于任意边e e有长度有长度输出:输出:一条从起点到终点的最短路一条从起点到终点的最短路第十页,讲稿共六十五页哦引导例子引导例子(2/10)(2/10)一个实例一个实例第十一页,讲稿共六十五页哦引导例子引导例子(3/10)(3/10)蛮力算法蛮力算法:考察每一条从某个起点到某个终点的路径,
12、计算长度,:考察每一条从某个起点到某个终点的路径,计算长度,从其中找出最短路径。从其中找出最短路径。在上述实例中,如果网络的层数为在上述实例中,如果网络的层数为k k,那么路径条数将接近于,那么路径条数将接近于2 2K K。动态规划算法动态规划算法:多阶段决策过程:多阶段决策过程.每步求解的问题是后面阶每步求解的问题是后面阶段求解问题的子问题段求解问题的子问题.每步决策将依赖于以前步骤的决策结每步决策将依赖于以前步骤的决策结果果.第十二页,讲稿共六十五页哦引导例子引导例子(4/10)(4/10)第十三页,讲稿共六十五页哦引导例子引导例子(5/10)(5/10)蛮力算法蛮力算法:考察每一条从某个
13、起点到某个终点的路径,计算:考察每一条从某个起点到某个终点的路径,计算长度,从其中找出最短路径。长度,从其中找出最短路径。在上述实例中,如果网络的层数为在上述实例中,如果网络的层数为k k,那么路径条数将接近于,那么路径条数将接近于2 2K K。动态规划算法动态规划算法:多阶段决策过程:多阶段决策过程.每步求解的问题是后面阶段求每步求解的问题是后面阶段求解问题的子问题解问题的子问题.每步决策将依赖于以前步骤的决策结果每步决策将依赖于以前步骤的决策结果.第十四页,讲稿共六十五页哦引导例子引导例子(6/10)(6/10)前边界不变,后边界前移前边界不变,后边界前移第十五页,讲稿共六十五页哦引导例子
14、引导例子(7/10)(7/10)第十六页,讲稿共六十五页哦引导例子引导例子(8/10)(8/10)第十七页,讲稿共六十五页哦引导例子引导例子(9/10)(9/10)求总长模求总长模1010的最小路径的最小路径第十八页,讲稿共六十五页哦引导例子引导例子(10/10)(10/10)第十九页,讲稿共六十五页哦3.1 3.1 矩阵连乘问题矩阵连乘问题 给定给定n n个矩阵个矩阵AA1 1,A A2 2,,A,An n,其中其中A Ai i与与A Ai+1 i+1 是可乘的。考察这是可乘的。考察这N N个矩个矩阵的连乘积阵的连乘积 A A1 1A A2 2A An n分析:分析:由于矩阵乘法满足结合律,
15、故计算矩连乘积由于矩阵乘法满足结合律,故计算矩连乘积 A A1 1A A2 2A An n可可以有多个计算次序。以有多个计算次序。例如:例如:(A(A1 1(A(A2 2(A(A3 3A A4 4)等等等等 (A(A1 1(A(A2 2A A3 3)A)A4 4)(A (A1 1A A2 2)(A)(A3 3A A4 4)第二十页,讲稿共六十五页哦先考虑两个矩阵乘积的计算量先考虑两个矩阵乘积的计算量设设A A为为rara caca矩阵矩阵 B B为为rbrb cbcb矩阵,矩阵,void matrixMultiply(int*a,int*b,int*c,int ra,int ca,int rb
16、,int cb)if(ca!=rb)error(“Cant multiply”);for(i=0;ira;+i)for(j=0;jcb;+j)cij=0;for(k=0;kca;+k)cij+=aik*bkj;第二十一页,讲稿共六十五页哦矩连连乘的不同计算次序会导致不同的计算量矩连连乘的不同计算次序会导致不同的计算量例如例如 AA1 1,A A2 2,A A3 3 A A1 1 10*100 10*100 A A2 2 100*5 100*5 A A3 3 5*50 5*50第第1 1种加括号种加括号 (A A1 1A A2 2)A A3 3)10*100*5 10*100*5 +10*5*5
17、0 =7500 +10*5*50 =7500第第2 2种加括号种加括号 (A A1 1(A A2 2A A3 3)100*5*50 100*5*50 +10*100*50 =75000 +10*100*50 =75000第二十二页,讲稿共六十五页哦所谓矩阵连乘问题:所谓矩阵连乘问题:对于给定对于给定n n个矩阵个矩阵AA1 1,A A2 2,,A,An n,其中其中A Ai i的维数是的维数是p pi-1 i-1 p pi i 如何确定计算矩阵连乘积如何确定计算矩阵连乘积A A1 1A A2 2A An n的计算次序,使得计的计算次序,使得计算矩阵连乘积的数乘次数最少。算矩阵连乘积的数乘次数最
18、少。方法一:方法一:枚举所有可能的计算次序。枚举所有可能的计算次序。(2n/n3/2)方法二:方法二:动态规划。动态规划。O(n3)第二十三页,讲稿共六十五页哦第一种:矩阵连乘的递归求解方法第一种:矩阵连乘的递归求解方法 记记 Ai:jAi:j为为 A Ai iA Ai+1i+1A Aj j 考察计算考察计算A1:nA1:n的最优计算次序的最优计算次序不妨设不妨设 计算计算A1:nA1:n最优次序的最后一次乘积位置在最优次序的最后一次乘积位置在 K K 处处 (A A1 1A A2 2A Ak k)(A Ak+1k+1A An n)k=1,2,k=1,2,n-1n-1其计算量为其计算量为 (1
19、)(1)计算计算 A1:kA1:k (2)(2)计算计算 Ak+1:nAk+1:n (3)(3)最后一次矩阵乘积最后一次矩阵乘积p p0 0 p pk k p pn n 第二十四页,讲稿共六十五页哦1.1.分析最优解的结构分析最优解的结构 计算计算A1:nA1:n的最优次序所包含的子链计算的最优次序所包含的子链计算 A1:k A1:k 和和 Ak+1:nAk+1:n也一定是最优次序的。也一定是最优次序的。事实上事实上 若有一个计算若有一个计算A1:kA1:k的次序所需的计算量更少,则取代之。的次序所需的计算量更少,则取代之。类似,计算类似,计算Ak+1:nAk+1:n的次序也一定是最优的。的次
20、序也一定是最优的。因此,矩阵连乘计算次序问题的最优解,包含了其子问题的因此,矩阵连乘计算次序问题的最优解,包含了其子问题的最优解。最优解。第二十五页,讲稿共六十五页哦2.2.建立递归关系,定义最优值建立递归关系,定义最优值 设计算设计算Ai:jAi:j所需的最少数乘次数为所需的最少数乘次数为mij mij 则原问题的最优值为则原问题的最优值为m1n m1n 不妨设不妨设 计算计算Ai:jAi:j最优次序的最后一次乘积位置在最优次序的最后一次乘积位置在 K K 处处 ((A Ai iA A2 2A Ak k)(A Ak+1k+1A Aj j)k=i,2,k=i,2,j-1j-1则则 mij=0
21、i=jmij=0 i=j MINMINmik+mk+1j+pmik+mk+1j+pi-1i-1p pk kp pj j ijij i=kj i=kj第二十六页,讲稿共六十五页哦3.3.伪码分析伪码分析算法算法1 RecurMatrixChain(P,i,j)1 RecurMatrixChain(P,i,j)1.mi,j1.mi,j2.si,ji2.si,ji3.for ki to j3.for ki to j 1 do1 do4.qRecurMatrixChain(P,i,k)4.qRecurMatrixChain(P,i,k)+RecurMatrixChain(P,k+1,j)+p +Rec
22、urMatrixChain(P,k+1,j)+pi i 1 1p pk kp pj j5.if q mi,j5.if q mi,j6.then mi,jq6.then mi,jq7.si,jk7.si,jk8.return mi,j8.return mi,j这里没有写出算法的全部描述(递归边界)这里没有写出算法的全部描述(递归边界)第二十七页,讲稿共六十五页哦4.4.子问题的产生子问题的产生 n=5n=5第二十八页,讲稿共六十五页哦5.5.子问题的计数子问题的计数边界不同的子问题:边界不同的子问题:1515个个递归计算的子问题:递归计算的子问题:8181个个边界次数边界次数边界次数1-181-
23、242-422-2122-353-523-3143-451-414-4124-542-515-581-321-51第二十九页,讲稿共六十五页哦6.6.结论结论与蛮力算法相比较,动态规划算法利用了子问题优化函数与蛮力算法相比较,动态规划算法利用了子问题优化函数间的依赖关系,时间复杂度有所降低。间的依赖关系,时间复杂度有所降低。动态规划算法的递归实现效率不高,原因在于同一子问题动态规划算法的递归实现效率不高,原因在于同一子问题多次重复出现,每次出现都需要重新计算一遍。多次重复出现,每次出现都需要重新计算一遍。采用空间换时间策略,记录每个子问题首次计算结果,后采用空间换时间策略,记录每个子问题首次计
24、算结果,后面再用时就直接取值,每个子问题只算一次。面再用时就直接取值,每个子问题只算一次。第三十页,讲稿共六十五页哦第二种矩阵连乘的迭代求解方法第二种矩阵连乘的迭代求解方法(1/10)(1/10)迭代求解的关键:迭代求解的关键:l每个子问题只计算一次每个子问题只计算一次l迭代过程迭代过程 从最小的子问题算起从最小的子问题算起 考虑计算顺序,以保证后面用到的值前面已经计考虑计算顺序,以保证后面用到的值前面已经计 算好算好 存储结构保存计算结果存储结构保存计算结果备忘录备忘录l解的追踪解的追踪 设计标记函数标记每步的决策设计标记函数标记每步的决策 考虑根据标记函数追踪解的算法考虑根据标记函数追踪解
25、的算法第三十一页,讲稿共六十五页哦第二种矩阵连乘的迭代求解方法第二种矩阵连乘的迭代求解方法(2/10)(2/10)矩阵连乘的不同子问题:矩阵连乘的不同子问题:长度长度1 1:只含只含1 1个矩阵,有个矩阵,有n n个子问题个子问题(不需要计算不需要计算)长度长度2 2:含含2 2个矩阵,个矩阵,n n-1-1个子问题个子问题长度长度3 3:含含3 3个矩阵,个矩阵,n n-2-2个子问题个子问题 .长度长度n n-1-1:含含n n-1-1个矩阵,个矩阵,2 2个子问题个子问题长度长度n n:原始问题,只有原始问题,只有1 1个个第三十二页,讲稿共六十五页哦第二种矩阵连乘的迭代求解方法第二种矩
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 动态 规划 new 讲稿
限制150内