动态规划法.ppt
《动态规划法.ppt》由会员分享,可在线阅读,更多相关《动态规划法.ppt(58页珍藏版)》请在咨信网上搜索。
1、算法与算法复杂性算法与算法复杂性王王涛涛长春工业大学长春工业大学计算机科学与工程学院计算机科学与工程学院第六章第六章 动态规划法动态规划法6.1 概概 述述 6.2 图问题中的动态规划法图问题中的动态规划法6.3 组合问题中的动态规划法组合问题中的动态规划法6.4 查找问题中的动态规划法查找问题中的动态规划法6.1 概概 述述 6.1.1最优化问题最优化问题6.1.2最优性原理最优性原理6.1.3动态规划法的设计思想动态规划法的设计思想动态规划动态规划(Dynamic programming)是一种算是一种算法设计技术,是用来解决一种多段决策过程法设计技术,是用来解决一种多段决策过程最最优优的
2、通用方法。的通用方法。动态规划方法是一种对具有交叠子问题进行求解的动态规划方法是一种对具有交叠子问题进行求解的技术。技术。动态规划建议,对交叠子问题的每个较小子问题求动态规划建议,对交叠子问题的每个较小子问题求解一次后记录在表中,就可以从表中得到原始问题解一次后记录在表中,就可以从表中得到原始问题的解。的解。对一个最优问题应用动态规划方法要求该问题满足对一个最优问题应用动态规划方法要求该问题满足最优性原则:一个最优问题的任何实例的最优解是最优性原则:一个最优问题的任何实例的最优解是由该实例的子实例的最优解组成的。由该实例的子实例的最优解组成的。付付款款问问题题:超超市市的的自自动动柜柜员员机机
3、(POS机机)要要找找给给顾顾客客数数量量最最少少的的现现金金。例例如如,要要找找4元元6角角现现金金,如如果果POS机机送送出出一一大大堆堆硬硬币币,比比如如46个个1角角钱钱,就就让让人人笑笑话话了了,而最好找而最好找2个个2元、元、1个个5角和角和1个个1角。角。假假定定POS机机中中有有n张张面面值值为为pi(1in)的的货货币币,用用集集合合P=p1,p2,pn表表示示,如如果果POS机机需需支支付付的的现现金金为为A,那那么,它必须从么,它必须从P中选取一个最小子集中选取一个最小子集S,使得,使得(式(式6.1)如果用向量如果用向量X=(x1,x2,xn)表示表示S中所选取的货币,
4、中所选取的货币,则则(式(式6.2)6.1.1最优化问题最优化问题那么,那么,POS机支付的现金必须满足机支付的现金必须满足 (式(式6.3)集合集合P是该问题的输入,满足式是该问题的输入,满足式6.1的解称为可行解,式的解称为可行解,式6.2是解的表现形式,因为向量是解的表现形式,因为向量X中有中有n个元素,每个元个元素,每个元素的取值为素的取值为0或或1,所以,可以有,所以,可以有2n个不同的向量,所有个不同的向量,所有这些向量的全体构成该问题的解空间,式这些向量的全体构成该问题的解空间,式6.3是该问题是该问题的约束条件,式的约束条件,式6.4是该问题的目标函数,使式是该问题的目标函数,
5、使式6.4取得取得极小值的解称为该问题的最优解。极小值的解称为该问题的最优解。并且并且 (式(式6.4)该问题有该问题有n个输入,它的解由这个输入,它的解由这n个输入的一个子集组成,个输入的一个子集组成,这个子集必须满足某些事先给定的条件,这些条件称为这个子集必须满足某些事先给定的条件,这些条件称为约束条件约束条件,满足约束条件的解称为问题的,满足约束条件的解称为问题的可行解可行解。满足。满足约束条件的可行解可能不只一个,为了衡量这些可行解约束条件的可行解可能不只一个,为了衡量这些可行解的优劣,事先给出一定的标准,这些标准通常以函数的的优劣,事先给出一定的标准,这些标准通常以函数的形式给出,这
6、些标准函数称为形式给出,这些标准函数称为目标函数目标函数,使目标函数取,使目标函数取得极值(极大或极小)的可行解称为最优解,这类问题得极值(极大或极小)的可行解称为最优解,这类问题就称为就称为最优化问题最优化问题。6.1.2最优性原理最优性原理对对于于一一个个具具有有n n个个输输入入的的最最优优化化问问题题,其其求求解解过过程程往往往往可可以以划划分分为为若若干干个个阶阶段段,每每一一阶阶段段的的决决策策仅仅依依赖赖于于前前一一阶阶段段的的状状态态,由由决决策策所所采采取取的的动动作作使使状状态态发发生生转转移移,成成为为下下一一阶阶段段决决策策的的依依据据。如如图图6.16.1所所示示,S
7、 S0 0是是初初始始状状态态,依依据据此此状状态态作作出出决决策策P P1 1,按按照照P P1 1所所采采取取的的动动作作,使使状状态态转转换换为为S S1 1,依依据据状状态态S S1 1作作出出决决策策P P2 2,按按照照P P2 2所所采采取取的的动动作作,使使状状态态S S1 1转转换换为为S S2 2,经经过过一一系系列列的的决决策策和和状状态态转转换换,到到达达最最终终状状态态S Sn n,从从而而,一一个个决决策策序序列列在在不不断断变变化化的的状状态态中中产产生生。这这个个决决策策序序列列产产生生的的过程称为多阶段决策过程。过程称为多阶段决策过程。S0P1P2Pn图图6.
8、1多阶段决策过程多阶段决策过程S1S2Sn-1Sn最优性原理最优性原理(Optimal Principle):无论决策过程的初始状态和):无论决策过程的初始状态和初始决策是什么,其余的决策都必须相对于初始决策所产生的当前初始决策是什么,其余的决策都必须相对于初始决策所产生的当前状态,构成一个最优决策序列。换言之,在多阶段决策中,各子问状态,构成一个最优决策序列。换言之,在多阶段决策中,各子问题的解只与它前面的子问题的解相关,而且各子问题的解都是相对题的解只与它前面的子问题的解相关,而且各子问题的解都是相对于当前状态的最优解,整个问题的最优解是由各个子问题的最优解于当前状态的最优解,整个问题的最
9、优解是由各个子问题的最优解构成。如果一个问题满足最优性原理通常称此问题具有构成。如果一个问题满足最优性原理通常称此问题具有最优子结构最优子结构性质。性质。最优性原理最优性原理u无论过程的初始状态和初始决策是什么,其余的决无论过程的初始状态和初始决策是什么,其余的决策都必须相对于初始决策所产生的状态构成一个最优策都必须相对于初始决策所产生的状态构成一个最优决策序列。决策序列。u原理告诉我们,一个最优问题的任何实例的最优解原理告诉我们,一个最优问题的任何实例的最优解是由该实例的子实例的最优解组成。是由该实例的子实例的最优解组成。u一般来说,如果所求解问题对于最优性原理成立,一般来说,如果所求解问题
10、对于最优性原理成立,则说明用动态规划方法有可能解决该问题。而解决问则说明用动态规划方法有可能解决该问题。而解决问题的关键在于获取各阶段问的递推关系式。题的关键在于获取各阶段问的递推关系式。6.1.3动态规划法的设计思想动态规划法的设计思想动态规划法将待求解问题分解成若干个相互重叠的子问动态规划法将待求解问题分解成若干个相互重叠的子问题,每个子问题对应决策过程的一个阶段,一般来说,题,每个子问题对应决策过程的一个阶段,一般来说,子问题的重叠关系表现在对给定问题求解的递推关系子问题的重叠关系表现在对给定问题求解的递推关系(也就是动态规划函数)中,将子问题的解求解一次并(也就是动态规划函数)中,将子
11、问题的解求解一次并填入表中,当需要再次求解此子问题时,可以通过查表填入表中,当需要再次求解此子问题时,可以通过查表获得该子问题的解而不用再次求解,从而避免了大量重获得该子问题的解而不用再次求解,从而避免了大量重复计算。为了达到这个目的,可以用一个表来记录所有复计算。为了达到这个目的,可以用一个表来记录所有已解决的子问题的解,这就是动态规划法的设计思想。已解决的子问题的解,这就是动态规划法的设计思想。具体的动态规划法是多种多样的,但他们具有相同的填具体的动态规划法是多种多样的,但他们具有相同的填表形式。表形式。原问题的解原问题的解原问题原问题图图6.3动态规划法的求解过程动态规划法的求解过程填填
12、表表子问题子问题1子问题子问题2子问题子问题n划分阶段:划分阶段:按照问题的时间或空间特征,把问题分为若干个阶段。按照问题的时间或空间特征,把问题分为若干个阶段。选择状态:选择状态:将问题发展到各个阶段时所处于的各种客观情况用不同将问题发展到各个阶段时所处于的各种客观情况用不同的状态表示出来。的状态表示出来。确定决策并写出状态转移方程:确定决策并写出状态转移方程:状态转移就是根据上一阶段的状态和决策来导出本阶段状态转移就是根据上一阶段的状态和决策来导出本阶段的状态。的状态。写出规划方程(包括边界条件):写出规划方程(包括边界条件):动态规划的基本方程是规划方程的通用形式化表达式。动态规划的基本
13、方程是规划方程的通用形式化表达式。动态规划算法的基本步骤动态规划算法的基本步骤可以用动态规划法求解的问题除了能够分解为相互重叠的可以用动态规划法求解的问题除了能够分解为相互重叠的若干子问题外,还要满足最优性原理(也称最优子结构性若干子问题外,还要满足最优性原理(也称最优子结构性质),这类问题具有如下特征:该问题的最优解中也包含质),这类问题具有如下特征:该问题的最优解中也包含着其子问题的最优解。在分析问题是否满足最优性原理时,着其子问题的最优解。在分析问题是否满足最优性原理时,通常先假设由问题的最优解导出的子问题的解不是最优的,通常先假设由问题的最优解导出的子问题的解不是最优的,然后再设法说明
14、在这个假设下可构造出比原问题最优解更然后再设法说明在这个假设下可构造出比原问题最优解更好的解,从而导致矛盾。好的解,从而导致矛盾。动动态态规规划划法法利利用用问问题题的的最最优优性性原原理理,以以自自底底向向上上的的方方式式从从子子问问题题的的最最优优解解逐逐步步构构造造出出整整个个问问题题的的最最优优解解。应应用用动态规划法设计算法一般分成三个阶段:动态规划法设计算法一般分成三个阶段:(1 1)分段:将原问题分解为若干个相互重叠的子问题;)分段:将原问题分解为若干个相互重叠的子问题;(2 2)分分析析:分分析析问问题题是是否否满满足足最最优优性性原原理理,找找出出动动态态规规划划函数的递推式
15、;函数的递推式;(3 3)求解:利用递推式自底向上计算,实现动态规划过程。)求解:利用递推式自底向上计算,实现动态规划过程。6.2图问题中的动态规划法图问题中的动态规划法6.2.1TSP问题问题6.2.2多段图的最短路径问题多段图的最短路径问题6.2.1TSP问题问题TSP问题问题是指旅行家要旅行是指旅行家要旅行n个城市,要个城市,要求各个城市求各个城市经历经历且且仅经历仅经历一次然后回到一次然后回到出出发发城市,并要求所走的路程最短。城市,并要求所走的路程最短。各个城市各个城市间间的距离可以用代价矩的距离可以用代价矩阵阵来表来表示,如果示,如果(i,j)E,则则cij。假设从顶点假设从顶点i
16、出发,令出发,令d(i,V)表示从顶点表示从顶点i出发经过出发经过V中各个顶点一次且仅一次,最后回到出发点中各个顶点一次且仅一次,最后回到出发点i的最短路的最短路径长度,开始时,径长度,开始时,VVi,于是,于是,TSP问题的动问题的动态规划函数为:态规划函数为:d(i,V)=mincik+d(k,Vk)(kV)(式(式6.5)d(k,)=cki(ki)(式(式6.6)从城市从城市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)这这是是最最后
17、后一一个个阶阶段段的的决决策策,它它必必须须依依据据d(1,2,3)、d(2,1,3)和和d(3,1,2)的计算结果,而:的计算结果,而: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(3,1)=c31+d(1
18、,)而而下下式式可可以以直直接接获获得得(括括号号中中是是该该决决策策引引起起的的状状态态转转移移):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)d(1,3)=c13+d(3,)=3+3=6(13)d(2,3)=c23+d(3,)=2+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+
19、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)=minc31+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。假设对假设对n n个顶点分别用个顶点分别用0 0n-1
20、n-1的数字编号,考虑从顶点的数字编号,考虑从顶点0 0出发求解出发求解TSPTSP问题的填表形式。首先,按个数为问题的填表形式。首先,按个数为1 1、2 2、n-1n-1的顺序生成的顺序生成1 1n-1n-1个元素的子集存放在数组个元素的子集存放在数组V2n-1V2n-1中,例如当中,例如当n=4n=4时,时,V1=1,V2=2,V3=3,V4=1,2,V5=1,3,V1=1,V2=2,V3=3,V4=1,2,V5=1,3,V6=2,3,V7=1,2,3V6=2,3,V7=1,2,3。设数组。设数组dn2n-1存放迭代结果,存放迭代结果,其中其中dij表示从顶点表示从顶点i经过子集经过子集V
21、j中的顶点一次且仅一次,最后中的顶点一次且仅一次,最后回到出发点回到出发点0的最短路径长度。首先,根据式的最短路径长度。首先,根据式6.6将数组将数组d的第的第0列初列初始化,然后根据式始化,然后根据式6.5逐列计算,其填表过程如图所示。逐列计算,其填表过程如图所示。ji1231,21,32,31,2,30101586726951033121114图6.7动态规划法的填表过程设顶点之间的代价存放在数组cnn中,动态规划法求解TSP问题的算法如下:算法算法6.1TSP问题问题1for(i=1;in;i+)/初始化第初始化第0列列di0=ci0;2for(j=1;j2n-1-1;j+)for(i=
22、1;i=0;i-)2.1对顶点对顶点i的每一个邻接点的每一个邻接点j,根据式,根据式6.7计算计算costi;2.2根据式根据式6.8计算计算pathi;3输出最短路径长度输出最短路径长度cost0;4.输出最短路径经过的顶点:输出最短路径经过的顶点:4.1i=04.2循环直到循环直到pathi=n-14.2.1输出输出pathi;4.2.2i=pathi;动态规划法求解多段图的最短路径问题的算法动态规划法求解多段图的最短路径问题的算法6.3 6.3 组合问题中的动态规划法组合问题中的动态规划法 6.3.1 0/16.3.1 0/1背包问题背包问题 6.3.2 6.3.2 最长公共子序列问题最
23、长公共子序列问题6.3.10/1背包问题背包问题给给定定n种种物物品品和和一一个个背背包包,物物品品i的的重重量量是是wi,其其价价值值为为vi,背背包包的的容容量量为为C。背背包包问问题题是是如如何何选选择择装装入入背背包包的的物物品品,使使得得装装入入背背包包中中物物品品的的总总价价值值最最大大?如如果果在在选选择择装装入入背背包包的的物物品品时时,对对每每种种物物品品i只只有有两两种种选选择择:装装入入背背包包或或不不装装入入背背包包,即即不不能能将将物物品品i装装入入背背包包多多次次,也也不不能能只只装装入入物物品品i的的一一部部分分,则则称称为为0/1背包问题。背包问题。在在0/1背
24、背包包问问题题中中,物物品品i或或者者被被装装入入背背包包,或或者者不不被被装装入入背背包包,设设xi表表示示物物品品i装装入入背背包包的的情情况况,则则当当xi=0时时,表表示示物物品品i没没有有被被装装入入背背包包,xi=1时时,表表示示物物品品i被被装装入入背背包包。根根据据问问题题的的要要求求,有有如如下下约约束束条条件件和和目标函数:目标函数:(式(式6.9)(式(式6.10)问问题题归归结结为为寻寻找找一一个个满满足足约约束束条条件件式式6.9,并并使使目目标函数式标函数式6.10达到最大的解向量达到最大的解向量X=(x1,x2,xn)。首先证明首先证明0/1背包问题满足最优性原理
25、。背包问题满足最优性原理。设设(x1,x2,xn)是是所所给给0/1背背包包问问题题的的一一个个最最优优解解,则则(x2,xn)是下面一个子问题的最优解:是下面一个子问题的最优解:如若不然,设如若不然,设(y2,yn)是上述子问题的一个最优解,是上述子问题的一个最优解,则则 ,且,且 。因此,。因此,这说明,这说明(x1,y2,yn)是所给是所给0/1背包问题比背包问题比(x1,x2,xn)更优的解,从而导致矛盾。更优的解,从而导致矛盾。0/1背包问题可以看作是决策一个序列背包问题可以看作是决策一个序列(x1,x2,xn),对,对任一变量任一变量xi的决策是决定的决策是决定xi=1还是还是xi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 动态 规划
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。