算法设计与分析05动态规划课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《算法设计与分析05动态规划课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 设计 分析 05 动态 规划 课件
- 资源描述:
-
1、nT(n/2)T(n/2)T(n/2)T(n/2)T(n)=nT(n)=n/2T(n/4)T(n/4)T(n/4)T(n/4)n/2T(n/4)T(n/4)T(n/4)T(n/4)n/2T(n/4)T(n/4)T(n/4)T(n/4)n/2T(n/4)T(n/4)T(n/4)T(n/4)n=n/2T(n/4)T(n/4)T(n/4)T(n/4)n/2n/2T(n/4)T(n/4)n/2T(n/4)T(n/4)T(n/4)T(n/4)T(n/4)T(n)Those who cannot remember the past are doomed to repeat it.George Santay
2、ana,The life of Reason,Book I:Introduction and Reason in Common Sense(1905)12345678910111297324327111181456356425V1V2V3V4V55段图段图即,是v2 v3,.,vk-1t构成从v2至t的最短路径11,1,111111rrOPTjjpj就一个特定的r1,j1而言s0r1,1r1,2.r1,p1sn1,j11,11,21p1kkjkjkpkjrrOPTkkk,1就一个特定的就一个特定的rk,jk而言而言s0 s1 s2.sk-1rk,1rk,2.rk,pksnk,jkk,1k,2k
3、pk),1(),(min),(),(1liCOSTljcjiCOSTEljvliEtj,l1l2.lpi+1tjViVi+112345678910111297324227111181456356425V1V2V3V4V55段图段图)(en),(),1(min),(),(1jlcliCOSTjiBCOSTEjlvliEj ,112345678910111297324227111181456356425V1V2V3V4V55段图段图),(max0prNjnp指向汇点的边指向汇点的边注,并不是分给注,并不是分给的资源越多,得的资源越多,得到的净利就越大到的净利就越大jikknjia1max,0max
4、201341142kka1jikkjjikkaaannkkninnikknijikkasasnjnniaC121222211maxmax12,21,.int MaxSubSum(int a,int left,int right)int MaxSubSum(int a,int left,int right)int sum=0;int sum=0;if(left=right)sum=aleft0?aleft:0;if(left=right)sum=aleft0?aleft:0;elseint center=(left+right)/2;elseint center=(left+right)/2;i
5、nt leftsum=MaxSubSum(a,left,center);int leftsum=MaxSubSum(a,left,center);int rightsum=MaxSubSum(a,center+1,right);int rightsum=MaxSubSum(a,center+1,right);int s1=0;lefts=0;int s1=0;lefts=0;for(int i=center;i=left;i-)for(int i=center;i=left;i-)lefts+=ai;lefts+=ai;if(leftss1)s1=lefts;if(leftss1)s1=lef
6、ts;int s2=0;rights=0;int s2=0;rights=0;for(int i=center+1;i=right;i+)for(int i=center+1;is2)s2=rights;if(rightss2)s2=rights;sum=s1+s2;sum=s1+s2;if(sumleftsum)sum=leftsum;if(sumleftsum)sum=leftsum;if(sumsightsum)sum=rightsum;if(sumsightsum)sum=rightsum;return sum;return sum;nnOnTcnnOnTcnOnTlog221复杂性分
7、析:jnjjikkjinjjkknjijikkjijbaanjab111111maxmaxmaxmax1max为,则所求的最大子段和,若记E(G),ji(i,j)(i,k)(k,j)(k,k)ik且且kj,则有则有Ak(i,j)minAk-1(i,j),Ak(i,k)+Ak-1(k,j)在第在第i-1到第到第i次的迭代次的迭代过程中,过程中,A的第的第k行、行、第第k列元素不变列元素不变ki且且jk,则有则有Ak(i,j)minAk-1(i,j),Ak-1(i,k)+Ak(k,j)(k,k)(k,j)(i,k)(i,j)(k,j)(k,k)(i,j)(i,k)ki且且kj,则有则有Ak(i,j
8、)minAk-1(i,j),Ak(i,k)+Ak(k,j)642 113v1v2v3)(3n 2/31/42111111nnnnnCnCnPnknPkPnnPnnk,其中,jipppjkmkimjijimjkijki1,1,min0,22nnnclass MatrixChainpublic:MatrixChain(int mSize,int*q);int MChain();int LookupChain();void Traceback();private:void Traceback(int i,int j);int LookupChain(int i,int j);int*p,*m,*s,
9、n;int MatrixChain:MChain()/求求A0:n-1的最优解值的最优解值 for(int i=0;in;i+)mii=0;for(int r=2;r=n;r+)for(int i=0;i=n-r;i+)int j=i+r-1;mij=mi+1j+pi*pi+1*pj+1;sij=i;for(int k=i+1;kj;k+)int t=mik +mk+1j+pi*pk+1*pj+1;if(tmij)mij=t;sij=k;return m0n-1;void MatrixChain:Traceback(int i,int j)if(i=j)coutAi;return;if(isi
展开阅读全文