2020-2021中科院陈玉福算法设计与分析期末考试

2020-2021中科院陈玉福算法设计与分析期末考试

中科院沈阳计算所 时文康 于2020.12.31

一、(20 分)简答题
1,陈述算法在最坏时间下的时间复杂度和平均时间复杂度;这两种评估算法复杂性的方法各自有什么意义?
答:最坏情况下的时间复杂度称之为最坏时间复杂度,一般不特别说明,讨论的时间复杂度均是最坏情况下的时间复杂度。
这样做的原因是:最坏情况下的时间复杂度是算法在任何输入实例上运行时间的上界,这就保证了算法的运行时间不会比任何更长。
平均时间复杂度是指所有可能的输入实例均以同等概率出现的情况下,算法的期望运行时间。
2,阐述动态规划算法与贪心算法的区别,他们都有哪些优势和劣势?
答:动态规划算法与贪心算法都要求具有最优子结构性质,这是二者的一个共同点。
动态规划与分治法和贪心算法类似,它也是将原问题分解成为若干个更小的,相似的子问题,并通过求解子问题产生一个全局最优解,与分治法和贪心法的不足在于:
使用贪心算法时,当前要做的选择可能要依赖于之前已经作出的所有选择,但不依赖于有待于作出的选择以及子问题。因此,贪心算法是自顶向下(即从起点到终点),一步一步的作出贪心选择。当然,如果当前的选择可能要依赖于子问题的解时,则难以通过局部的贪心策略达到全局最优解。
使用分治算法的时候,原问题分解出各相互独立的子问题,即不包含公共的子问题,因此,一旦递归地求出各个子问题的解后,便可以自下向上的将各个子问题的解合并成原问题的解。如果,各个子问题不相互独立,则分治算法要作出许多不必要的工作,重复的求解公共的子问题。
动态规划允许由原问题分解出的问题之间的相互依赖,每一个子问题只求解一次,并将结果保存起来,再碰到此问题就不需要重复计算。

3,阐述回溯算法与分支限界算法的共同点和不同点,提高算法效率的关键是什么?
答:回溯法与分治限界法的联系在于所求解的目标,即回溯法以深度优先的方式搜索解空间树,求解目标是找出解空间树中满足约束条件的所有解,故回溯法更适用于寻找所有可行解的问题。回溯法主要强调如何组织解空间的结构来提高求解效率,同时也利用约束函数和限界函数来避免无效的搜索,从而提高效率。
而分治限界法以广度优先或是以最小耗费优先的方式搜索解空间树,求解目标是找出满足约束条件的一个解,因此它更适用于处理求最优解的问题,主要强调利用约束函数,限界函数和优先级函数来提高效率;
4.分支界限的约束函数、限界函数、优先级函数分别起到什么作用?

二、(20 分)用动态规划算法解如下图示的多段图问题在这里插入图片描述

1.说明多段图问题具有最优子结构性质
答:设一个多段图有且仅有一个起点 S,有且仅有一个终点 T。S->S1->S2->…Sn->T 为从起点 S 到终点 T 的最短路径,设 S->S1 的开销已经求出。则从起点 S 到终点 T 的最小开销的求解将转换为对点 S1 到终点 T 的最小开销进行求解。
假设 S1->S2->S3…Sn->T 不是点 S1 到终点 T 的最短路径,则必然存在另一条路径 S1->R1->R2…Rn->T 的开销更小,即起点 S 到终点 T 的最短路径为 S->S1->R1->R2…Rn->T。
然而已知路径 S->S1->S2->…Sn->T 为起点 S 到终点 T 的最短路径,不可能存在其他路径的总开销比该路径的开销还要小,产生了矛盾,因此多段图的最短路径问题满足最优子结构。
2.写出多段图问题最优值的递推公式
在这里插入图片描述

3.给出问题的一个最优解并在图上标注说明

三.(25 分)用 LC-分枝限界算法求解 0/1 背包问题: ,物品重量和价值分别是:w=(2,3,6,9) p=(8,9,12,18) M=12
1.画出由算法生成的状态空间树,并标明各节点的优先级的值;
2.给出各节点被选作当前扩展节点的先后次序;
3.给出最优解。

(真题给的数字是除不尽的)

四.(20分)证明题
五.(15分)AC4和打破对称在这里插入图片描述

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
计算机算法设计与分析 期末试题 一。选择题 1、二分搜索算法是利用( A )实现的算法。 A、分治策略 B、动态规划法 C、贪心法 D、回溯法 2、下列不是动态规划算法基本步骤的是( A )。 A、找出最优解的性质 B、构造最优解 C、算出最优解 D、定义最优解 3、最大效益优先是( A )的一搜索方式。 A、分支界限法 B、动态规划法 C、贪心法 D、回溯法 4、在下列算法中有时找不到问题解的是( B )。 A、蒙特卡罗算法 B、拉斯维加斯算法 C、舍伍德算法 D、数值概率算法 5. 回溯法解旅行售货员问题时的解空间树是( A )。 A、子集树 B、排列树 C、深度优先生成树 D、广度优先生成树 6.下列算法中通常以自底向上的方式求解最优解的是( B )。 A、备忘录法 B、动态规划法 C、贪心法 D、回溯法 7、衡量一个算法好坏的标准是(C )。 A 运行速度快 B 占用空间少 C 时间复杂度低 D 代码短 8、以下不可以使用分治法求解的是(D )。 A 棋盘覆盖问题 B 选择问题 C 归并排序 D 0/1背包问题 9. 实现循环赛日程表利用的算法是( A )。 A、分治策略 B、动态规划法 C、贪心法 D、回溯法 10、下列随机算法中运行时有时候成功有时候失败的是(C ) A 数值概率算法 B 舍伍德算法 C 拉斯维加斯算法 D 蒙特卡罗算法 11.下面不是分支界限法搜索方式的是( D )。 A、广度优先 B、最小耗费优先 C、最大效益优先 D、深度优先 12.下列算法中通常以深度优先方式系统搜索问题解的是( D )。 A、备忘录法 B、动态规划法 C、贪心法 D、回溯法 13.备忘录方法是那种算法的变形。( B ) A、分治法 B、动态规划法 C、贪心法 D、回溯法 14.哈弗曼编码的贪心算法所需的计算时间为( B )。 A、O(n2n) B、O(nlogn) C、O(2n) D、O(n) 15.分支限界法解最大团问题时,活结点表的组织形式是( B )。 A、最小堆 B、最大堆 C、栈 D、数组 16.最长公共子序列算法利用的算法是( B )。 A、分支界限法 B、动态规划法 C、贪心法 D、回溯法 17.实现棋盘覆盖算法利用的算法是( A )。 A、分治法 B、动态规划法 C、贪心法 D、回溯法 18.下面是贪心算法的基本要素的是( C )。 A、重叠子问题 B、构造最优解 C、贪心选择性质 D、定义最优解 19.回溯法的效率不依赖于下列哪些因素( D ) A.满足显约束的值的个数 B. 计算约束函数的时间 C. 计算限界函数的时间 D. 确定解空间的时间 20.下面哪种函数是回溯法中为避免无效搜索采取的策略( B ) A.递归函数 B.剪枝函数 C。随机数函数 D.搜索函数 21、下面关于NP问题说法正确的是(B ) A NP问题都是不可能解决的问题 B P类问题包含在NP类问题中 C NP完全问题是P类问题的子集 D NP类问题包含在P类问题中 22、蒙特卡罗算法是( B )的一种。 A、分支界限算法 B、概率算法 C、贪心算法 D、回溯算法 23.下列哪一种算法不是随机化算法( C ) A. 蒙特卡罗算法B. 拉斯维加斯算法C.动态规划算法D.舍伍德算法 24. ( D )是贪心算法与动态规划算法的共同点。 A、重叠子问题 B、构造最优解 C、贪心选择性质 D、最优子结构性质 25. 矩阵连乘问题的算法可由( B)设计实现。 A、分支界限算法 B、动态规划算法 C、贪心算法 D、回溯算法 26. 分支限界法解旅行售货员问题时,活结点表的组织形式是( A )。 A、最小堆 B、最大堆 C、栈 D、数组 27、Strassen矩阵乘法是利用( A )实现的算法。 A、分治策略 B、动态规划法 C、贪心法 D、回溯法 29、使用分治法求解不需要满足的条件是(A )。 A 子问题必须是一样的 B 子问题不能够重复 C 子问题的解可以合并 D 原问题和子问题使用相同的方法解 30、下面问题(B )不能使用贪心法解决。 A 单源最短路径问题 B N皇后问题 C 最小花费生成树问题 D 背包问题 31、下列算法中不能解决0/1背包问题的是(A ) A 贪心法 B 动态规划 C 回溯法 D 分支限界法 32、回溯法搜索状态空间树是按照(C )的顺序。 A 中序遍历 B 广度优先遍历 C 深度优先遍历 D 层次优先遍历 33、下列随机算法中运行时有时候成功有时候失败的是(C ) A 数值概率算法 B 舍伍德算法 C 拉斯维加斯算法 D 蒙特卡罗算法 34.实现合并排序利用的算法是( A )。 A、分治策略 B、动态规划法 C、贪心法 D、回溯法 35.下列是动态规划算法基本要素的是( D )。 A、定义最优解 B、构造最优解 C
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值