算法分析报告与设计期末

上传人:新** 文档编号:490308154 上传时间:2024-03-09 格式:DOC 页数:8 大小:127.50KB
返回 下载 相关 举报
算法分析报告与设计期末_第1页
第1页 / 共8页
算法分析报告与设计期末_第2页
第2页 / 共8页
算法分析报告与设计期末_第3页
第3页 / 共8页
算法分析报告与设计期末_第4页
第4页 / 共8页
算法分析报告与设计期末_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《算法分析报告与设计期末》由会员分享,可在线阅读,更多相关《算法分析报告与设计期末(8页珍藏版)》请在金锄头文库上搜索。

1、word1. 下面程序段的所需要的计算时间为 。int MaxSum(int n, int *a, int &besti, int &bestj)int sum=0;for(int i=1;i=n;i+) int thissum=0;for(int j=i;jsum)sum=thissum;besti=i;bestj=j;return sum;2. 有11个待安排的活动,它们具有下表所示的开始时间与完毕时间,如果以贪心算法求解这些活动的最优安排即为活动安排问题:在所给的活动集合中选出最大的相容活动子集合,得到的最大相容活动子集合为活动 1,4,8,11 。1413121110987654fi1

2、22886535031Si1110987654321i3. 所谓贪心选择性质是指所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到。4. 所谓最优子结构性质是指问题的最优解包含了其子问题的最优解。5. 回溯法是指具有限界函数的深度优先生成法。6. 用回溯法解题的一个显著特征是在搜索过程中动态产生问题的解空间。在任何时刻,算法只保存从根结点到当前扩展结点的路径。如果解空间树 中从根结点到叶结点的最长路径的长度为h(n),如此回溯法所需的计算空间通常为O(h(n)。7. 回溯法的算法框架按照问题的解空间一般分为子集树算法框架与排列树算法框架。8. 用回溯法解0/1背包问题时,该问题

3、的解空间结构为子集树结构。9.用回溯法解批处理作业调度问题时,该问题的解空间结构为排列树结构。10.用回溯法解0/1背包问题时,计算结点的上界的函数如下所示,请在空格中填入适宜的内容:Typep Knap:Bound(int i)/ 计算上界 Typew cleft = c - cw; / 剩余容量 Typep b = cp; / 结点的上界 / 以物品单位重量价值递减序装入物品 while (i = n & wi = cleft) cleft -= wi; b += pi; i+; / 装满背包 if (i = n) b += pi/wi * cleft; return b;11. 用回溯法

4、解布线问题时,求最优解的主要程序段如下。如果布线区域划分为的方格阵列,扩展每个结点需O(1)的时间,L为最短布线路径的长度,如此算法共耗时 ( O(mn) ),构造相应的最短距离需要O(L)时间。for (int i = 0; i NumOfNbrs; i+) nbr.row = here.row + offseti.row; nbr.col = here.col + offseti.col; if (gridnbr.rownbr.col = 0) / 该方格未标记 gridnbr.rownbr.col = gridhere.rowhere.col + 1; if (nbr.row = fin

5、ish.row) & (nbr.col = finish.col) break; / 完成布线 Q.Add(nbr); 12. 用回溯法解图的m着色问题时,使用下面的函数OK检查当前扩展结点的每一个儿子所相应的颜色的可用性,如此需耗时渐进时间上限Omn。Bool Color:OK(int k)/ for(int j=1;j=n;j+)if(akj= =1)&(xj= =xk) return false;return true;13. 旅行售货员问题的解空间树是排列树。6.7.二、 证明题1. 一个分治法将规模为n的问题分成k个规模为nm的子问题去解。设分解阀值n0=1,且adhoc解规模为1的

6、问题消耗1个单位时间。再设将原问题分解为k个子问题以与用merge将k个子问题的解合并为原问题的解需用f(n)个单位时间。用T(n)表示该分治法解规模为|P|=n的问题所需的计算时间,如此有:通过迭代法求得Tn的显式表达式为:试证明Tn的显式表达式的正确性。2. 举反例证明0/1背包问题假如使用的算法是按照pi/wi的非递减次序考虑选择的物品,即只要正在被考虑的物品装得进就装入背包,如此此方法不一定能得到最优解此题说明0/1背包问题与背包问题的不同。证明:举例如:p=7,4,4,w=3,2,2,c=4时,由于7/3最大,假如按题目要求的方法,只能取第一个,收益是7。而此实例的最大的收益应该是8

7、,取第2,3 个。3.求证:O(f(n)+O(g(n) = O(maxf(n),g(n) 。证明:对于任意f1(n) O(f(n) ,存在正常数c1和自然数n1,使得对所有nn1,有f1(n) c1f(n) 。类似地,对于任意g1(n) O(g(n) ,存在正常数c2和自然数n2,使得对所有nn2,有g1(n) c2g(n) 。令c3=maxc1, c2, n3 =maxn1, n2,h(n)= maxf(n),g(n) 。如此对所有的 n n3,有f1(n) +g1(n) c1f(n) + c2g(n) c3f(n) + c3g(n)= c3(f(n) + g(n) c32 maxf(n),

8、g(n)= 2c3h(n) = O(maxf(n),g(n) .4. 求证最优装载问题具有贪心选择性质。最优装载问题:有一批集装箱要装上一艘载重量为c的轮船。其中集装箱i的重量为Wi。最优装载问题要求确定在装载体积不受限制的情况下,将尽可能多的集装箱装上轮船。设集装箱已依其重量从小到大排序,(x1,x2,xn)是最优装载问题的一个最优解。又设。如果给定的最优装载问题有解,如此有。证明:三、 解答题1. 机器调度问题。问题描述:现在有n件任务和无限多台的机器,任务可以在机器上得到处理。每件任务的开始时间为si,完成时间为fi,si n) / 到达叶结点更新最优解bestx,bestw;retur

9、n; r -= wi;if (cw + wi bestw) xi = 0; / 搜索右子树backtrack(i + 1); r += wi;5. 用分支限界法解装载问题时,对算法进展了一些改良,下面的程序段给出了改良局部;试说明斜线局部完成什么功能,以与这样做的原因,即采用这样的方式,算法在执行上有什么不同。/ 检查左儿子结点 Type wt = Ew + wi; / 左儿子结点的重量 if (wt bestw) bestw = wt; / 参加活结点队列 if (i bestw & i 0 故Ew+rbestw总是成立。也就是说,此时右子树测试不起作用。为了使上述右子树测试尽早生效,应提早更新bestw。又知算法最终找到的最优值是所求问题的子集树中所有

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号