算法设计动态规划ppt课件.ppt
《算法设计动态规划ppt课件.ppt》由会员分享,可在线阅读,更多相关《算法设计动态规划ppt课件.ppt(69页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、动态规划法动态规划法 12/28/20221经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用方法概述:发展及研究内容n动态规划(dynamic programming)是运筹学的一个分是运筹学的一个分支,支,20世纪世纪50年代初美国数学家年代初美国数学家R.E.Bellman等人等人在研究在研究多阶段决策过程(multistep decision process)的的优化问题时,提出了著名的时,提出了著名的最优化原理(principle of optimality),把多阶段过程转化为一,把多阶段过程转化为一系
2、列单阶段问题,逐个求解,创立了解决这类系列单阶段问题,逐个求解,创立了解决这类过程优化问题的新方法过程优化问题的新方法动态规划。动态规划。n动态规划问世以来,在经济管理、生产调度、动态规划问世以来,在经济管理、生产调度、工程技术和最优控制等方面得到了工程技术和最优控制等方面得到了广泛的应用广泛的应用。例如最短路线、资源分配、设备更新等问题,例如最短路线、资源分配、设备更新等问题,用动态规划比用其它方法求解更为方便。用动态规划比用其它方法求解更为方便。12/28/20222经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务
3、的费用方法概述:发展及研究内容n虽然动态规划主要虽然动态规划主要用于求解以时间划分阶段的用于求解以时间划分阶段的动态过程的优化问题动态过程的优化问题,但是一些与时间无关的,但是一些与时间无关的静态规划静态规划(如线性规划、非线性规划如线性规划、非线性规划),可以人可以人为地引进时间因素为地引进时间因素,把它视为多阶段决策过程,把它视为多阶段决策过程,也可以也可以用动态规划方法方便地求解用动态规划方法方便地求解。12/28/20223经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用方法概述:基本思想 n动态规划的思
4、想实质是动态规划的思想实质是分治思想和和解决冗余。n与分治法类似的是,将原问题分解成若干个子与分治法类似的是,将原问题分解成若干个子问题,先求解子问题,然后从这些子问题的解问题,先求解子问题,然后从这些子问题的解得到原问题的解。得到原问题的解。n与分治法不同的是,经分解的子问题往往不是与分治法不同的是,经分解的子问题往往不是互相独立的。若用分治法来解,有些共同部分互相独立的。若用分治法来解,有些共同部分(子问题或子子问题)被重复计算了很多次。(子问题或子子问题)被重复计算了很多次。n如果能够保存已解决的子问题的答案,在需要如果能够保存已解决的子问题的答案,在需要时再查找,这样就可以避免重复计算
5、、节省时时再查找,这样就可以避免重复计算、节省时间。动态规划法用一个表来记录所有已解的子间。动态规划法用一个表来记录所有已解的子问题的答案。问题的答案。n这就是动态规划法的基本思路。具体的动态规这就是动态规划法的基本思路。具体的动态规划算法多种多样,但它们具有相同的填表方式。划算法多种多样,但它们具有相同的填表方式。12/28/20224经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用方法概述:求解步骤 1、找出最优解的性质,并刻画其结构特征;、找出最优解的性质,并刻画其结构特征;2、递归地定义最优值(写出动态规
6、划方程);、递归地定义最优值(写出动态规划方程);3、以自底向上的方式计算出最优值;、以自底向上的方式计算出最优值;4、根据计算最优值时记录的信息,构造最优解。、根据计算最优值时记录的信息,构造最优解。注:注:步骤步骤1-3是动态规划算法的基本步骤。在只需要是动态规划算法的基本步骤。在只需要求出最优值的情形,步骤求出最优值的情形,步骤4可以省略;可以省略;若需要求出问题的一个最优解,则必须执行步骤若需要求出问题的一个最优解,则必须执行步骤4,步骤,步骤3中记录的信息是构造最优解的基础中记录的信息是构造最优解的基础12/28/20225经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加
7、赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用方法概述:适用条件 动态规划法的有效性依赖于问题本身所具有的动态规划法的有效性依赖于问题本身所具有的两个重要性质两个重要性质n最优子结构最优子结构:当问题的最优解包含了其子问题:当问题的最优解包含了其子问题的最优解时,称该问题具有最优子结构性质。的最优解时,称该问题具有最优子结构性质。n重叠子问题重叠子问题:在用递归算法自顶向下解问题时,:在用递归算法自顶向下解问题时,每次产生的子问题并不总是新问题,有些子问每次产生的子问题并不总是新问题,有些子问题被反复计算多次。动态规划算法正是利用了题被反复计算多次。动态规划算法正是利用
8、了这种子问题的重叠性质,对每一个子问题只解这种子问题的重叠性质,对每一个子问题只解一次,而后将其解保存在一个表格中,在以后一次,而后将其解保存在一个表格中,在以后尽可能多地利用这些子问题的解。尽可能多地利用这些子问题的解。12/28/20226经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用方法概述:最优性原理及举例 nBellman给出这个原理作为动态规划的适用条给出这个原理作为动态规划的适用条件,后来件,后来Morin在在19821982年证明了这只是一个充年证明了这只是一个充分条件而非必要条件。分条件而非必
9、要条件。Bellman的原定义如下:的原定义如下:n An optimal policy has the property that whatever the initial state and initial decision are,then remaining decisions must constitute an optimal policy with regard to the state resulting from first decision.n最优性原理又称为最优子结构性质最优性原理又称为最优子结构性质:n 如果有一决策序列包含有非最优的决策子序列,则该决如果有一决策序列包
10、含有非最优的决策子序列,则该决策序列一定不是最优的。即一个最优策略的子策略总是最策序列一定不是最优的。即一个最优策略的子策略总是最优的。优的。12/28/20227经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用方法概述:最优性原理及举例(续)n例例1:设:设G是一个有向加权图,则是一个有向加权图,则G从顶点从顶点i到顶点到顶点j之间的最短路径具有最优子结构之间的最短路径具有最优子结构性质。性质。n证明:(反证)证明:(反证)n 设设iipiq j是一条最短路径,但其中子是一条最短路径,但其中子路径路径ipiq
11、j不是最优的,假设最优的路径不是最优的,假设最优的路径为为ipiq jn 则我们重新构造一条路径:则我们重新构造一条路径:iipiq jn 显然该路径长度小于显然该路径长度小于iipiq j,与,与iipiq j是顶点是顶点i到顶点到顶点j的最短路径相矛盾的最短路径相矛盾.n 所以,原问题满足最优性原理。所以,原问题满足最优性原理。n 12/28/20228经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用方法概述:设计技巧n动态规划的设计技巧:阶段的划动态规划的设计技巧:阶段的划分和状态的表示;分和状态的表示;n
12、在动态规划的设计过程中,阶段在动态规划的设计过程中,阶段的划分和状态的表示是非常重要的划分和状态的表示是非常重要的两步,这两步会直接影响该问的两步,这两步会直接影响该问题的计算复杂性,有时候阶段划题的计算复杂性,有时候阶段划分或状态表示的不合理还会使得分或状态表示的不合理还会使得动态规划法不适用。动态规划法不适用。12/28/20229经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用方法概述:存在的问题 n空间溢出的问题,是动态规划解决问空间溢出的问题,是动态规划解决问题时一个普遍遇到的问题;题时一个普遍遇到的问
13、题;n动态规划需要很大的空间以存储中间动态规划需要很大的空间以存储中间产生的结果,这样可以使包含同一个产生的结果,这样可以使包含同一个子问题的所有问题共用一个子问题解,子问题的所有问题共用一个子问题解,从而体现动态规划的优越性,但这是从而体现动态规划的优越性,但这是以牺牲空间为代价的,为了有效地访以牺牲空间为代价的,为了有效地访问已有结果,数据也不易压缩存储,问已有结果,数据也不易压缩存储,因而空间矛盾是比较突出的。因而空间矛盾是比较突出的。12/28/202210经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用
14、l例例1:多段图的最短路问题:多段图的最短路问题多段图:设多段图:设G=是一个有向连通图,是一个有向连通图,其中其中|V|=n,|E|=m,V有划分有划分V1,V2,Vk,这里这里V1=s,s称为源点,称为源点,Vk=t,t称为称为终点,其中终点,其中k 2。对于每条有向边。对于每条有向边 E都存在都存在Vi V,使得,使得u Vi和和v Vi+1,其中其中1ik且每条边且每条边均均附有代价附有代价C(u,v),则称,则称G是一个是一个k段图。段图。12/28/202211经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服
15、务的费用123456789101112s97324212711118654356425V1V2V3V4V5t12/28/202212经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用l最短路:从源点最短路:从源点s到终点到终点t的整条路上的的整条路上的代价之和为最小。代价之和为最小。每个子集每个子集Vi构成图中的一段。由于构成图中的一段。由于E的的约束,每条从约束,每条从s到到t的路径都是从第一段的路径都是从第一段开始,然后顺次经过第开始,然后顺次经过第2段,第段,第3段,段,最后在第,最后在第k段终止。对于每条从
16、段终止。对于每条从s到到t的的路径,可以把它看成在路径,可以把它看成在k-2个阶段中做出个阶段中做出的某个决策序列的相应结果。的某个决策序列的相应结果。12/28/202213经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用l假设假设s,v2,v3,vk-1,t是一条从是一条从s到到t的最短的最短路径,还假定从源点路径,还假定从源点s(初始状态)开始,已做初始状态)开始,已做出了到结点出了到结点v2的决策(初始决策),因此的决策(初始决策),因此v2就是就是初始决策所产生的状态。如果把初始决策所产生的状态。如果把
17、v2看成是原问题看成是原问题的一个子问题的初始状态,解这个子问题就是的一个子问题的初始状态,解这个子问题就是找出一条由找出一条由v2到到t的最短路径。这条路径显然是的最短路径。这条路径显然是 v2,v3,vk-1,t,否则设否则设v2,q3,qk-1,t是一条由是一条由v2到到t的更短路径,则的更短路径,则s,v2,q3,qk-1,t是一条比路径是一条比路径s,v2,v3,vk-1,t 更短的由更短的由s到到t的路径,与的路径,与假设矛盾,故最优化原理成立。假设矛盾,故最优化原理成立。12/28/202214经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿
18、的金额为消费者购买商品的价款或接受服务的费用cost(i,j)=minC(j,r)+cost(i+1,r)rVi+1 EjrtViVi+1最短最短最短最短向前处理法:设向前处理法:设P(i,j)是从是从Vi中的点中的点j到到t的一条最短路,的一条最短路,cost(i,j)是这条路线的是这条路线的耗费。由后向前推算,得到耗费。由后向前推算,得到12/28/202215经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用123456789101112s97324212711118654356425V1V2V3V4V5tc
19、ost(4,9)=4cost(i,j)=minC(j,r)+cost(i+1,r)cost(4,10)=2 cost(4,11)=5cost(3,6)=min6+cost(4,9),5+cost(4,10)=min6+4,5+2=7从第从第3段的顶点段的顶点6到到t的最短路径是的最短路径是6-10-t5+212/28/202216经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用123456789101112s97324212711118654356425V1V2V3V4V5tcost(3,7)=min4+cost
20、(4,9),3+cost(4,10)=min4+4,3+2=5从第从第3段的顶点段的顶点7到到t的最短路径是的最短路径是7-10-t cost(3,8)=7从第从第3段的顶点段的顶点8到到t的最短路径是的最短路径是8-10-t12/28/202217经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用123456789101112s97324212711118654356425V1V2V3V4V5tcost(2,2)=7 从第从第2段顶点段顶点2到到t的最短路是的最短路是2-7-10-tcost(2,3)=9从第从第
21、2段顶点段顶点3到到t的最短路是的最短路是3-6-10-tcost(2,4)=18从第从第2段顶点段顶点4到到t的最短路是的最短路是4-8-10-tcost(2,5)=15从第从第2段顶点段顶点5到到t的最短路是的最短路是5-8-10-tcost(1,1)=16 从第从第1段顶点段顶点1到到t的最短路径由两条:的最短路径由两条:1-2-7-10-t和和1-3-6-10-t12/28/202218经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用从从s到到t的一条最短路径的代价为的一条最短路径的代价为16。用用D(i
22、,j)表示使表示使C(j,r)+cost(i+1,r)取得最小值取得最小值的的r,则在上述求解过程中同时得到:则在上述求解过程中同时得到:D(3,6)=10,D(3,7)=10,D(3,8)=10D(2,2)=7,D(2,3)=6,D(2,4)=8D(2,5)=8,D(1,1)=2设从设从s到到t的最短路径为的最短路径为s,w2,w3,wk-1,t则有则有w2=D(1,1)=2w3=D(2,D(1,1)=D(2,2)=7w4=D(3,D(2,D(1,1)=D(3,D(2,2)=D(3,7)=10所以这条路径是1-2-7-10-t所以这条路径是所以这条路径是1-2-7-10-t12/28/202
23、219经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用为了便于描述算法,对一个为了便于描述算法,对一个k段图的顶点,按段图的顶点,按段的顺序给它的每个顶点编号。设图中有段的顺序给它的每个顶点编号。设图中有n个个顶点,则编号为顶点,则编号为1,2,n。首先,给首先,给s编为编为1号;然后给号;然后给V2中的各个顶点分别编为中的各个顶点分别编为2,3,|V2|+1号;以此类推,最后号;以此类推,最后t编号为编号为n。这样编号使这样编号使Vi+1中的任何顶点的编号大于中的任何顶点的编号大于Vi中中所有顶点的编号。所有顶
24、点的编号。于是,可以按于是,可以按n-1,n-2,1的顺序计算出的顺序计算出cost(i,j)和和D(i,j)。算法中可以利用顺序编号算法中可以利用顺序编号的特点,而不再考虑顶点所在的段。的特点,而不再考虑顶点所在的段。12/28/202220经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用设顶点的编号已知,边已知及边的代价函设顶点的编号已知,边已知及边的代价函数数C(i,j)已知。用已知。用costi表示顶点表示顶点i到到t的最小的最小代价,代价,1i n。用。用Di表示从顶点表示从顶点i到到t的最的最短路径上
25、顶点短路径上顶点i的后继顶点号,用的后继顶点号,用Pi表示表示最短路径经过第最短路径经过第i级的顶点号,级的顶点号,1i k12/28/202221经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用求两点间最短路径的算法:求两点间最短路径的算法:Procedure Fgraph1.for i 1 to n costi 0;2.for j=n-1 step 1 to 1 do 3.找顶点找顶点r,使使 E,且且C(j,r)+costr最小;最小;4.costjC(j,r)+costr;5.Dj r;6.P1 1;Pk
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 设计 动态 规划 ppt 课件
限制150内