欢迎来到天天文库
浏览记录
ID:59465087
大小:124.00 KB
页数:8页
时间:2020-11-02
《算法分析与设计期末.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1.下面程序段的所需要的计算时间为()。intMaxSum(intn,int*a,int&besti,int&bestj){intsum=0;for(inti=1;i<=n;i++){intthissum=0;for(intj=i;j<=n;j++){thissum+=a[j];if(thissum>sum){sum=thissum;besti=i;bestj=j;}}}returnsum;}2.有11个待安排的活动,它们具有下表所示的开始时间与结束时间,如果以贪心算法求解这些活动的最优安排(即为活动安排问题
2、:在所给的活动集合中选出最大的相容活动子集合),得到的最大相容活动子集合为活动({1,4,8,11})。1413121110987654f[i]122886535031S[i]1110987654321i3.所谓贪心选择性质是指(所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到)。4.所谓最优子结构性质是指(问题的最优解包含了其子问题的最优解)。5.回溯法是回溯法是指(具有限界函数的深度优先生成法)。6.用回溯法解题的一个显著特征是在搜索过程中动态产生问题的解空间。在任何时刻,算法只保存从根
3、结点到当前扩展结点的路径。如果解空间树中从根结点到叶结点的最长路径的长度为h(n),则回溯法所需的计算空间通常为(O(h(n)))。7.回溯法的算法框架按照问题的解空间一般分为(子集树)算法框架与(排列树)算法框架。8.用回溯法解0/1背包问题时,该问题的解空间结构为(子集树)结构。9.用回溯法解批处理作业调度问题时,该问题的解空间结构为(排列树)结构。10.用回溯法解0/1背包问题时,计算结点的上界的函数如下所示,请在空格中填入合适的内容:TypepKnap::Bound(inti
4、){//计算上界Typewcleft=c-cw;//剩余容量Typepb=cp;//结点的上界//以物品单位重量价值递减序装入物品while(i<=n&&w[i]<=cleft){cleft-=w[i];b+=p[i];i++;}//装满背包if(i<=n)(b+=p[i]/w[i]*cleft);returnb;}11.用回溯法解布线问题时,求最优解的主要程序段如下。如果布线区域划分为的方格阵列,扩展每个结点需O(1)的时间,L为最短布线路径的长度,则算法共耗时(O(mn)),构造相应的最短距离需要(O(L
5、))时间。for(inti=0;i6、2.用回溯法解图的m着色问题时,使用下面的函数OK检查当前扩展结点的每一个儿子所相应的颜色的可用性,则需耗时(渐进时间上限)(O(mn))。BoolColor::OK(intk){//for(intj=1;j<=n;j++)if((a[k][j]==1)&&(x[j]==x[k]))returnfalse;returntrue;}13.旅行售货员问题的解空间树是(排列树)。1.2.二、证明题1.一个分治法将规模为n的问题分成k个规模为n/m的子问题去解。设分解阀值n0=1,且adhoc解规模为1的问题耗费1个7、单位时间。再设将原问题分解为k个子问题以及用merge将k个子问题的解合并为原问题的解需用f(n)个单位时间。用T(n)表示该分治法解规模为8、P9、=n的问题所需的计算时间,则有:通过迭代法求得T(n)的显式表达式为:试证明T(n)的显式表达式的正确性。2.举反例证明0/1背包问题若使用的算法是按照pi/wi的非递减次序考虑选择的物品,即只要正在被考虑的物品装得进就装入背包,则此方法不一定能得到最优解(此题说明0/1背包问题与背包问题的不同)。证明:举例如:p={7,4,4},w={3,2,2},c=4时,由于10、7/3最大,若按题目要求的方法,只能取第一个,收益是7。而此实例的最大的收益应该是8,取第2,3个。3.求证:O(f(n))+O(g(n))=O(max{f(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)
6、2.用回溯法解图的m着色问题时,使用下面的函数OK检查当前扩展结点的每一个儿子所相应的颜色的可用性,则需耗时(渐进时间上限)(O(mn))。BoolColor::OK(intk){//for(intj=1;j<=n;j++)if((a[k][j]==1)&&(x[j]==x[k]))returnfalse;returntrue;}13.旅行售货员问题的解空间树是(排列树)。1.2.二、证明题1.一个分治法将规模为n的问题分成k个规模为n/m的子问题去解。设分解阀值n0=1,且adhoc解规模为1的问题耗费1个
7、单位时间。再设将原问题分解为k个子问题以及用merge将k个子问题的解合并为原问题的解需用f(n)个单位时间。用T(n)表示该分治法解规模为
8、P
9、=n的问题所需的计算时间,则有:通过迭代法求得T(n)的显式表达式为:试证明T(n)的显式表达式的正确性。2.举反例证明0/1背包问题若使用的算法是按照pi/wi的非递减次序考虑选择的物品,即只要正在被考虑的物品装得进就装入背包,则此方法不一定能得到最优解(此题说明0/1背包问题与背包问题的不同)。证明:举例如:p={7,4,4},w={3,2,2},c=4时,由于
10、7/3最大,若按题目要求的方法,只能取第一个,收益是7。而此实例的最大的收益应该是8,取第2,3个。3.求证:O(f(n))+O(g(n))=O(max{f(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)
此文档下载收益归作者所有