《算法优化策略》PPT课件.ppt
《《算法优化策略》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《算法优化策略》PPT课件.ppt(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第1010章章 算法优化策略算法优化策略1算法设计策略的比较与选择算法设计策略的比较与选择 2最大子段和问题最大子段和问题 给定由n个整数(可能为负整数)组成的序列a1,a2,an,求该序列形如 的子段和的最大值。当所有整数均为负整数时定义其最大子段和为。依此定义,所求的最优值为:例如:A=(-2,11,-4,13,-5,-2)最大子段和为3简单算法简单算法public static int maxSum()int n=a.length-1;int sum=0;for(int i=1;i=n;i+)int thissum=0;for(int j=i;j=n;j+)for(int k=i;ks
2、um)sum=thissum;besti=i;bestj=j;return sum;thissum+=aj;注意到 ,则可将算法中的最后一个for循环省去,避免重复计算只需要O(n2)的计算时间。4分治算法分治算法如果将所给的序列a1:n分为长度相等的2段a1:n/2和an/2+1:n,分别求出这2段的最大子段和,则a1:n的最大子段和有3种情况。(1)a1:n的最大子段和与a1:n/2最大子段和相同;(2)a1:n的最大子段和与an/2+1:n最大子段和相同;(3)a1:n的最大子段和为 ,且1in/2,n/2+1jn。对于情形(3)。容易看出,an/2与an/2+1在最优子序列中。因此,可
3、以在a1:n/2中计算出 ,并在an/2+1:n中计算出 。则s1s2即为出现情形(3)时的最优值。据此可设计出求最大子段和的分治算法。复杂度分析复杂度分析T(n)=O(nlogn)5动态规划算法动态规划算法记 ,1 j n,则所求的最大子段和为当bj-10时bj=bj-1+aj,否则bj=aj。由此可得计算bj的动态规划递归式bj=maxbj-1+aj,aj,1 j n算法显然需要O(n)计算时间和O(n)空间。public static int maxSum()int n=a.length-1;int sum=0,b=0;for(int i=1;i0)b+=ai;else b=ai;if(
4、bsum)sum=b;return sum;6最大子矩阵和问题最大子矩阵和问题记 最大子矩阵和问题的最优值为由于其中,设 ,则给定一个m行n列的整数矩阵a,试求矩阵a的一个子矩阵,使其各元素之和为最大。由于解最大子段和问题的动态规划算法需要时间O(n),故算法的双重for循环需要计算时间O(m2n)。7最大最大m子段和问题子段和问题给定由n个整数(可能为负整数)组成的序列a1,a2,an,以及一个正整数m,要求确定序列的m个不相交子段,使这m个子段的总和达到最大。设b(i,j)表示数组a的前j项中i个子段和的最大值,且第i个子段含aj(1 i m,i j n)。则所求的最优值显然为与最大子段和
5、问题类似地,计算b(i,j)的递归式为初始时,b(0,j)=0,(1 j n);b(i,0)=0,(1 i m)。优化:注意到在上述算法中,计算bij时只用到数组b的第i-1行和第i行的值。因而算法中只要存储数组b的当前行,不必存储整个数组。另一方面,b(i-1,t)的值可以在计算第i-1行时预先计算并保存起来。计算第i行的值时不必重新计算,节省了计算时间和空间。8动态规划加速原理动态规划加速原理 四边形不等式9货物储运问题货物储运问题在一个铁路沿线顺序存放着n堆装满货物的集装箱。货物储运公司要将集装箱有次序地集中成一堆。规定每次只能选相邻的2堆集装箱合并成新的一堆,所需的运输费用与新的一堆中
6、集装箱数成正比。给定各堆的集装箱数,试制定一个运输方案,使总运输费用最少。设合并ai:j,1ijn,所需的最少费用为mi,j,则原问题的最优值为m1,n。由最优子结构性质可知,根据递归式,按通常方法可设计计算m(i,j)的O(n3)动态规划算法10四边形不等式四边形不等式货物储运问题的动态规划递归式是下面更一般的递归计算式的特殊情形。对于 ,当函数w(i,j)满足时称w满足四边形不等式。当函数w(i,j)满足 时称W关于区间包含关系单调 对于满足四边形不等式的单调函数w,可推知由递归式定义的函数m(i,j)也满足四边形不等式,即11四边形不等式四边形不等式定义由函数m(i,j)的四边形不等式性
7、质可推出函数s(i,j)的单调性,即根据前面的讨论,当w是满足四边形不等式的单调函数时,函数s(i,j)单调,从而 s(i,j)s(i,j+1)s(i+1,j+1),i j改进后算法speedDynamicProgramming所需的计算时间为 12问题的算法特征问题的算法特征13贪心策略贪心策略采用每次合并集装箱数最少的相邻2堆货物的贪心策略,并不能得到最优解。适当放松相邻性约束,引入相容结点对概念。如图,原始结点用方形结点表示,合并生成的结点用圆形结点表示。最小相容结点对ai和aj 是满足下面条件的结点对:(1)结点ai和aj 之间没有方形结点;(2)在所有满足条件(1)的结点中ai+aj
8、的值最小;(3)在所有满足条件(1)和(2)的结点中下标 i 最小;(4)在所有满足条件(1)(2)和(3)的结点中下标 j 最小。相应的最小相容合并树,如图所示。14相同层序定理相同层序定理相同层序定理相同层序定理相同层序定理相同层序定理:存在货物储运问题的最优合并树,其各原始结:存在货物储运问题的最优合并树,其各原始结:存在货物储运问题的最优合并树,其各原始结:存在货物储运问题的最优合并树,其各原始结点在最优合并树中所处的层序与相应的原始结点在相容合并树点在最优合并树中所处的层序与相应的原始结点在相容合并树点在最优合并树中所处的层序与相应的原始结点在相容合并树点在最优合并树中所处的层序与相
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法优化策略 算法 优化 策略 PPT 课件
限制150内