第6章-动态规划法ppt课件.ppt
《第6章-动态规划法ppt课件.ppt》由会员分享,可在线阅读,更多相关《第6章-动态规划法ppt课件.ppt(45页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1第第6章章 动态规划法动态规划法教学内容教学内容动态规划的定义及历史动态规划求解问题的步骤动态规划计算二项式系数图问题中的动态规划法组合问题中的动态规划法组合问题中的动态规划法要求要求 掌握动态规划的思想及文体求解步骤,掌握动态规划求解常见问题如:每对节点间的最短距离、最优二分检索树、背包问题等中的应用。第第6章章 动态规划法动态规划法 6.5 实验项目实验项目最大子段和问题最大子段和问题6.4 查找问题中的动态规划法查找问题中的动态规划法6.3 组合问题中的动态规划法组合问题中的动态规划法6.1 概概 述述 6.2 图问题中的动态规划法图问题中的动态规划法6.1 概概 述述 6.1.1 最
2、优化问题最优化问题 6.1.2 最优性原理最优性原理6.1.3 动态规划法的设计思想动态规划法的设计思想约束条件约束条件:有有n个输入,它的解由这个输入,它的解由这n个输入的一个子集组成,个输入的一个子集组成,这个子集必须满足某些事先给定的条件,这些条件称为这个子集必须满足某些事先给定的条件,这些条件称为约束条约束条件件可行解:可行解:满足约束条件的解称为问题的满足约束条件的解称为问题的可行解可行解目标函数:目标函数:满足约束条件的可行解可能不只一个,为了衡量满足约束条件的可行解可能不只一个,为了衡量这些可行解的优劣,事先给出一定的标准,这些标准通常以函这些可行解的优劣,事先给出一定的标准,这
3、些标准通常以函数的形式给出,这些标准函数称为数的形式给出,这些标准函数称为目标函数目标函数最优解:最优解:使目标函数取得极值(极大或极小)的可行解称为使目标函数取得极值(极大或极小)的可行解称为最优解最优解最优化问题:最优化问题:这类问题就称为这类问题就称为最优化问题最优化问题 6.1.1 最优化问题最优化问题什么是最优化问题?什么是最优化问题?例:例:自动柜员机(自动柜员机(POS机)付款问题:机)付款问题:超市的自动柜员机(POS机)要找给顾客数量最少的现金。 假定POS机中有n张面值为pi(1in)的货币,用集合P=p1, p2, , pn表示,如果POS机需支付的现金为A,那么,它必须
4、从P中选取一个最小子集S,使得 (式6.1)miiiSmApSp1|)|(,向量X=( x1, x2, , xn)表示S中所选取的货币,则 (式6.2) SpSpxiii01POS机支付的现金必须满足 (式6.3)Apxniii 1 并且 (式6.4) niixd1min集合集合P:问题的输入问题的输入可行解:可行解:满足式满足式6.1的解称为可行解的解称为可行解解的表现形式:解的表现形式:式式6.2是解的表现形式,因为向量是解的表现形式,因为向量X中有中有n个个元素,每个元素的取值为元素,每个元素的取值为0或或1,所以,可以有,所以,可以有2n个不同的个不同的向量,所有这些向量的全体构成该问
5、题的解空间向量,所有这些向量的全体构成该问题的解空间约束条件:约束条件:式式6.3是该问题的约束条件是该问题的约束条件目标函数:目标函数:式式6.4是该问题的目标函数是该问题的目标函数最优解:最优解:使式使式6.4取得极小值的解称为该问题的最优解取得极小值的解称为该问题的最优解 6.1.2 最优性原理最优性原理 多阶段决策:多阶段决策:n 对于一个具有对于一个具有n n个输入个输入的最优化问题,其求解的最优化问题,其求解过程往往可以划分为过程往往可以划分为若干个阶段若干个阶段n 每一阶段的每一阶段的决策决策仅依赖于前一阶段的仅依赖于前一阶段的状态状态,由,由决策所采取的动作使状态发生转移,成为
6、下一阶段决策所采取的动作使状态发生转移,成为下一阶段决策的依据决策的依据n 一个一个决策序列决策序列在不断变化的状态中产生在不断变化的状态中产生S0P1P2Pn 多阶段决策过程多阶段决策过程S1S2Sn-1Sn分析最优化问题!分析最优化问题!Sn-1SnS1S0s1,1sn,knp1,1s1,k1p1,k1s1,r1 sn-1,kn-1pn,knpn-1,kn-1动态规划的决策过程动态规划的决策过程sn-1,1sn-1,rn-1sn,1sn,rn School of Computer Science and Technology, SWUST 9 最优性原理最优性原理(Principle of
7、 Optimality) 无论过程的初始状态和初始决策是什么,其余的决策都必须相对于初始决策所产生的状态构成一个最优决策序列。 原理告诉我们,一个最优问题的任何实例的最优解是由该实例的子实例的最优解组成的。重要结论:重要结论: 一般来说,如果所求解问题对于最优性原理成立,则说明用动态规划方法有解决该问题。 而解决问题的关键在于获取各阶段问的递推关系式(动态规划函数)动态规划函数)。6.1.3 动态规划法的设计思想动态规划法的设计思想 将原问题分解为若干个子问题,先求子问题的解,然后从这些子问题的解得到原问题的解。 这些子问题的解往往不是相互独立的。在求解的过程中,许多子问题的解被反复地使用。为
8、了避免重复计算,动态规划算法采用了填表来保存子问题解的方法。 在算法中用表格来保存已经求解的子问题的解,无论它是否会被用到。当以后遇到该子问题时即可查表取出其解,避免了重复计算。 原问题的解 原问题 填 表子问题1子问题2子问题n动态规划法的求解过程分治法:分治法:n=5时计算斐波那契数的过程 F(5)F(4)F(3)F(3)F(2)F(2)F(1)F(2)F(1)F(1)F(0)F(1)F(0)F(1)F(0)例:计算斐波那契数:例:计算斐波那契数:2)2() 1(1100)(nnFnFnnnF01234567890112358132134求解斐波那契数F(9)的填表过程 :动态规划法:动态
9、规划法:分析:分析:计算F(n)是以计算它的两个重叠子问题 F(n-1)和F(n-2)的形式来表达的,所以,可以设计一张表填入n+1个F(n)的值。 动态规划的基本要素 最优子结构:问题的最优解是由其子问题的最优解所构成的。 重叠子问题:子问题之间并非相互独立的,而是彼此有重叠的。最优子结构性质使我们能够以自底向上的方式递归地从子结构的最优解构造出问题的最优解。因为子问题重叠,所以存在着重复计算。这样就可以用填表保存子问题解的方法来提高效率。如何证明问题是否满足最优性原理?如何证明问题是否满足最优性原理?用反证法! 先假设由问题的最优解导出的子问题的解不是最优的; 然后再证明在这个假设下可构造
10、出比原问题最优解更好的解,从而导致矛盾。 动态规划的基本方法 动态规划通常可以按以下几个步骤进行: (1)找出最优解的性质,并刻画其结构特征; (2)递归地定义最优值; (3)以自底向上的方式计算出各子结构的最优值并添入表格中保存; (4)根据计算最优值时得到的信息,构造最优解。 步骤13是动态规划算法的基本步骤。若需要最优解,则必须执行第4步,为此还需要在第3步中记录构造最优解所必需的信息。6.2 图问题中的动态规划法图问题中的动态规划法 6.2.1 TSP问题问题 6.2.2 多段图的最短路径问题多段图的最短路径问题6.2.1 TSP问题问题 TSPTSP问题:问题:旅行家要旅行旅行家要旅
11、行n个城市,要求各个城市个城市,要求各个城市经历且仅经历一次然后回到出发城市,并要求所走经历且仅经历一次然后回到出发城市,并要求所走的的路程最短路程最短。 各个城市间的距离可以用代价矩阵来表示。各个城市间的距离可以用代价矩阵来表示。0321C= 3 6 7 5 2 3 6 4 2 3 7 5 带权图的代价矩阵带权图的代价矩阵 设s, s1, s2, , sp, s是从s出发的一条路径长度最短的简单回路,假设从s到下一个城市s1已经求出,则问题转化为求从s1到s的最短路径最短路径,显然s1, s2, , sp, s一定构成一条从s1到s的最短路径最短路径。 如若不然,设s1, r1, r2, ,
12、 rq, s是一条从s1到s的最短路径且经过n-1个不同城市,则s, s1, r1, r2, , rq, s将是一条从s出发的路径长度最短的简单回路且比s, s1, s2, , sp, s要短,从而导致矛盾。 所以,TSP问题满足最优性原理。证明证明TSP问题满足最优性原理问题满足最优性原理构造动态规划函数:构造动态规划函数: 假设从顶点i出发,令d(i, V)表示从顶点i出发经过V中各个顶点一次且仅一次,最后回到出发点i的最短路径长度 开始时,VVi, 于是,TSP问题的动态规划函数动态规划函数为: d(i,V)=mincik+d(k,Vk)(kV) (式6.5) d(k,)=cki(ki)
13、 (式6.6)这一阶段的决策又依赖于下面的计算结果:这一阶段的决策又依赖于下面的计算结果:d(1, 2, 3)=minc12+d(2, 3), c13+ d(3, 2)d(2, 1, 3)=minc21+d(1, 3), c23+ d(3, 1)d(3, 1, 2)=minc31+d(1, 2), c32+ d(2, 1)这一阶段的决策又依赖于下面的计算结果:这一阶段的决策又依赖于下面的计算结果:d(1, 2)= c12+d(2, ) d(2, 3)=c23+d(3, ) d(3, 2)= c32+d(2, ) d(1, 3)= c13+d(3, ) d(2, 1)=c21+d(1, ) d(
14、3, 1)=c31+d(1, ) 最后一个阶段的决策:最后一个阶段的决策:从城市从城市0出发经城市出发经城市1、2、3然后回到城市然后回到城市0的最短路径长度是:的最短路径长度是:d(0,1, 2, 3)=minc01+d(1, 2, 3), c02+d(2, 1, 3), c03+d(3, 1, 2)而下式可以直接获得(括号中是该决策引起的状态转移):而下式可以直接获得(括号中是该决策引起的状态转移):d(1, )=c10=5(10) d(2, )=c20=6(20) d(3, )=c30=3(30)再向前倒推,有:再向前倒推,有:d(1, 2)= c12+d(2, )=2+6=8(12)
15、d(1, 3)= c13+d(3, )=3+3=6(13) d(2, 3)= c23+d(3, )=2+32+3=5(23) d(2, 1)= c21+d(1, )=4+5=9(21)d(3, 1)= c31+d(1, )=7+5=12(31) d(3, 2)= c32+d(2, )=5+6=11(32)再向前倒退,有:再向前倒退,有:d(1, 2, 3)=minc12+d(2, 3), c13+ d(3, 2)=min2+5, 3+11=7(12)d(2, 1, 3)=minc21+d(1, 3), c23+ d(3, 1)=min4+6, 2+12=10(21)d(3, 1, 2)=min
16、c31+d(1, 2), c32+ d(2, 1)=min7+8, 5+9=14(32)最后有:最后有:d(0, 1, 2, 3)=minc01+ d(1, 2, 3), c02+ d(2, 1, 3), c03+ d(3, 1, 2) =min3+7, 6+10, 7+14=10(01) 所以,从顶点所以,从顶点0出发的出发的TSP问题的问题的最短路径长度为最短路径长度为10,路径路径是是01230。 u 假设n个顶点用0n-1的数字编号,首先生成1n-1个元素的子集存放在数组V2n-1中,u设数组dn2n-1存放迭代结果,其中dij表示从顶点i经过子集Vj中的顶点一次且仅一次,最后回到出发
17、点0的最短路径长度。 ji 1231, 21, 32, 31, 2, 30 1015 86 7 269 5 10 331211 14 动态规划法求解动态规划法求解TSP问题的填表过程问题的填表过程0321C= 3 6 7 5 2 3 6 4 2 3 7 5 算法6.1TSP问题 1for (i=1; in; i+) /初始化第0列 di0=ci0; 2for (j=1; j2n-1-1; j+) for (i=1; in; i+) /依次进行第i次迭代 if (子集Vj中不包含i) 对Vj中的每个元素k,计算dij=min(cik+dkj-1); 3.对V2n-1-1中的每一个元素k,计算d0
18、2n-1-1=min(c0k+dk2n-1-2); 4输出最短路径长度d02n-1-1;算法算法6.1的时间复杂性为的时间复杂性为O(2n)。蛮力法蛮力法求解求解TSP问题问题: :时间复杂性是时间复杂性是O(n!) 算法描述算法描述 设顶点之间的代价存放在数组cnn中256.2.2 多段图的最短路径问题多段图的最短路径问题 多段图多段图G(V,E)是是个有向图。它具有如下特性:个有向图。它具有如下特性: 图中的结点被划分成图中的结点被划分成k 2个不相交的集合个不相交的集合Vi ,1ik,ik,其中其中V1和和Vk分别只有一个结点分别只有一个结点s(源点源点)和和t(汇点汇点)。 图中所有的
19、边图中所有的边均具有如下性质:若均具有如下性质:若uVi ,则,则v Vi+1 ,1ik,ik,且每条边且每条边均附有成本均附有成本c(u,v)。 从从s到到t的一条路径成本是这条路径上边的成本和。的一条路径成本是这条路径上边的成本和。 多段图问题多段图问题(multistage graph problem)是求由是求由s到到t的最小成本路的最小成本路径。径。123458761110912st9732227111118654356524V1V2V3V4V52120345678949387684756866537 一个多段图一个多段图 设设s, s1, s2, , sp, t是从是从s到到t的一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 动态 规划 ppt 课件
限制150内