第四讲-动态规划专题讲座.ppt





《第四讲-动态规划专题讲座.ppt》由会员分享,可在线阅读,更多相关《第四讲-动态规划专题讲座.ppt(59页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、算法设计与分析算法设计与分析第四讲第四讲 动态规划动态规划算法设计与分析 第四讲 动态规划l 主要内容主要内容 动态规划的基本原理动态规划的基本原理动态规划的递推方法动态规划的递推方法 经典问题的动态规划算法设计实例经典问题的动态规划算法设计实例l 重点重点 最优性原理,动态规划的递推方法最优性原理,动态规划的递推方法l 难点难点具体问题的动态规划算法具体问题的动态规划算法算法设计与分析 第四讲 动态规划一、多段图问题一、多段图问题k 段有向图段有向图G=(V,E),|V|=n;V=V1,V2,Vk;uVi,vVi+1,1ik-1,E:c(u,v)求求s到到t的成本最小的路径的成本最小的路径s
2、,v2,v3,v4,t,其中其中,viVi。132546879111012stV1V2V3V4V54.1 基本原理基本原理算法设计与分析 第四讲 动态规划求解方案初探求解方案初探1)穷举穷举2)多级决策多级决策:分三个阶段确定最小成本路径上的节点分三个阶段确定最小成本路径上的节点v2,v3,v4132546879111012stV1V2V3V4V5算法设计与分析 第四讲 动态规划二、动态规划二、动态规划任务:任务:决策序列:决策序列:v1,v2,v3,v4,v5;v1=s,v5=t,viVi,i=2,3,4132546879111012stV1V2V3V4V5最优决策序列为路径长度最短的节点序
3、列最优决策序列为路径长度最短的节点序列 s,v2,v3,v4,t确定一个多级决策问题的最优决策序列确定一个多级决策问题的最优决策序列算法设计与分析 第四讲 动态规划状态转移过程状态转移过程状态序列状态序列s0s1sksn状态序列状态序列s0 x1xkxn决策序列决策序列算法设计与分析 第四讲 动态规划最优性原理最优性原理(最优子结构性质最优子结构性质)2)一个一个 n 级级决策是最优的,则以第决策是最优的,则以第 k(kn)级决策形成的状态作级决策形成的状态作为初态的任何一个为初态的任何一个 n-k 级级的子决策也必然是最优的。的子决策也必然是最优的。三种表述三种表述1)对于一个多级决策问题的
4、对于一个多级决策问题的最优决策最优决策来说,无论过程的初始状来说,无论过程的初始状态和初始决策是什么态和初始决策是什么,其余的决策相对于初始决策所产生的状态其余的决策相对于初始决策所产生的状态必然构成一个必然构成一个最优决策子序列最优决策子序列。3)D(i,j)=D(i,k),D(k+1,j)算法设计与分析 第四讲 动态规划例:例:k段图问题的最优性原理说明段图问题的最优性原理说明假设:假设:v1 vq vk是最短路径,是最短路径,那么:那么:v1 vq,vq vk也是最短路径。也是最短路径。算法设计与分析 第四讲 动态规划递推方法递推方法1)递推的任务递推的任务3)向后递推向后递推确定决策向
5、量 X=(x1,x2,xn)各分量的值2)向前递推向前递推算法设计与分析 第四讲 动态规划4.2 多段图多段图(multistage graph)向前递推向前递推c(i,k)=arg minc+c(i+1,j)1iK-1,1k|Vi|,1j|Vi+1|向后递推向后递推c(i,k)=arg minc(i-1,j)+c2iK,1j|Vi-1|,1k|Vi|kjt Vi Vi+1 vi,k vi+1,jc(i,k)c(i+1,j)c一、递推公式一、递推公式算法设计与分析 第四讲 动态规划二、递推算法二、递推算法节点编号节点编号0 n-1,s.t.,k|kVik|kVi+1dn:各各节节点到点到t最小
6、成本路径上的后向最小成本路径上的后向邻邻接接节节点点Cn:各节点到汇点的最短路径,各节点到汇点的最短路径,向前递推算法向前递推算法cii=n:E,cij0;pk:存存储储s到到t最小成本路径上的最小成本路径上的节节点点编编号号.算法设计与分析 第四讲 动态规划ForwardShortestPath(float cn,int k,int n)float Cn;int dn,pk;C0:n-2=MAX;Cn-1=0;for(i=n-2;i=0;i-)for(j=i+1;j0)&(cij+CjCi)Ci=cij+Cj;di=j;for(p0=0,pk-1=n-1,i=1;ik-1;k+)pi=dpi
7、-1;时间复杂度时间复杂度:O(n2)O(n+e)邻接表邻接表 邻接矩阵邻接矩阵算法设计与分析 第四讲 动态规划向后递推算法向后递推算法ForwardShortestPath(float cn,int k,int n)float Cn;int dn,pk;C0=0;C1:n-1=MAX;for(i=1;i=0;j-)if(cji0)&(Cj+cji0;k-)pi=dpi+1;算法设计与分析 第四讲 动态规划例例4.1 把把 n 个资源分配给个资源分配给 r 个项目的问题个项目的问题,如果把如果把 0jn 个资源个资源分配给项目分配给项目 i,所获得的利润为所获得的利润为 N(i,j),要求使总
8、利润最大化的分要求使总利润最大化的分配方法。配方法。r个资源分配问题的个资源分配问题的r+1段图模型段图模型:n=4n=4n=3n=2n=1n=0n=4n=3n=2n=1n=0n=0N(1,0)N(1,1)N(1,2)N(1,3)N(1,4)N(2,0)N(2,1)N(2,0)N(2,1)N(3,4)N(3,3)N(3,2)N(3,1)N(3,0)算法设计与分析 第四讲 动态规划4.3 每对节点之间的最短路径长度每对节点之间的最短路径长度 一、问题描述一、问题描述cnn是是G的成本邻接矩阵的成本邻接矩阵求每对节点之间的最短路径长度求每对节点之间的最短路径长度A(i,j).G=(V,E)为为n节
9、点的有向图节点的有向图123462113算法设计与分析 第四讲 动态规划二、递推公式二、递推公式k:编号最大的中间节点编号最大的中间节点Ak(i,j):最短路径长度最短路径长度令:令:递推公式递推公式向后逐级递推:向后逐级递推:A1(i,j),A2(i,j),An-1(i,j),An(i,j)最短路径长度:最短路径长度:A(i,j)=An(i,j)123462113算法设计与分析 第四讲 动态规划 三、算法实现时需考虑的问题三、算法实现时需考虑的问题 1)怎样表示怎样表示“”2)怎样判断怎样判断 i 到到 j 是否存在最短路径是否存在最短路径3)怎样表示怎样表示 i 到到 j 最短路径上的节点
10、序列最短路径上的节点序列算法设计与分析 第四讲 动态规划用动态规划法设计一个算法用动态规划法设计一个算法,对对page123的图的图5.12,编程并上机编程并上机实现求每对节点间的最短路径长度实现求每对节点间的最短路径长度,输出路径上的节点序列输出路径上的节点序列.课外练习:课外练习:算法设计与分析 第四讲 动态规划4.4 最优二分检索树最优二分检索树(optimal binary search tree)算法设计与分析 第四讲 动态规划ifforwhilerepeatloop图(a)ifforrepeatloopwhile图(b)一、问题描述一、问题描述成功检索的平均比较次数成功检索的平均比
11、较次数:图图(a)图图(b)12/511/54.4 最优二分检索树最优二分检索树(optimal binary search tree)算法设计与分析 第四讲 动态规划已知已知a1,a2,ana1a2anai的检索概率为的检索概率为P(i)假设假设a0=-,an+1=+aiXiai+1Xi的检索概率为的检索概率为Q(i)在整个检索空间在整个检索空间a0 X0 a1 X1 a2 X2,an-1 Xn-1 an Xn an+1算法设计与分析 第四讲 动态规划a2a1a5a4a3x0 x1x5x4x2x3检索的预期成本检索的预期成本最优二分检索树最优二分检索树使使cost(T)最小的二分检索树最小的
12、二分检索树 算法设计与分析 第四讲 动态规划二、递推方法二、递推方法最优二分检索树模型最优二分检索树模型akLR算法设计与分析 第四讲 动态规划预期检索成本预期检索成本令:算法设计与分析 第四讲 动态规划递推公式递推公式c(0,k-1)=cost(TL)c(k,n)=cost(TR)c(0,n)=cost(T)akLR算法设计与分析 第四讲 动态规划构造步骤构造步骤1)令令 j-i=1,求,求c(i,j),W(i,j),r(i,j)r(i,j):包含:包含Xi,ai+1,Xi+1,aj,Xj等节点的最优二分检索树的根等节点的最优二分检索树的根2)令令 j-i=2,3,n,递推地求出所有,递推地
13、求出所有c(i,j),W(i,j),r(i,j)3)根据根据 r(i,j)构造最优二分检索树构造最优二分检索树算法设计与分析 第四讲 动态规划三、递推算法三、递推算法已知已知 an:a0a1a2an-1;pn,qn.初始条件为初始条件为 wii=qi;cii=0,rii=0.计算所有的计算所有的 wij,cij,rij.算法设计与分析 第四讲 动态规划OptRecursion(float*p,float*q,float cn+1,int rn+1)float wn+1n+1;for(i=0;i=n;i+)wii=qi;cii=0;rii=0;for(i=0;i=n-1;i+)wii+1=qi+
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四 动态 规划 专题讲座

限制150内