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和打破对称在这里插入图片描述

计算机算法设计与分析》是由陈玉福编写的一本计算机算法领域的教材。本书主要介绍了算法设计和分析的基本概念与方法,并用大量的例子和习题来帮助读者理解和掌握这些知识。 该教材从算法设计开始,介绍了分治、动态规划、贪心算法、回溯法、分支限界等常用的算法设计方法,并详细解释了它们的原理和应用场景。同时,还介绍了一些经典的算法问题,如最大子序列和、背包问题、旅行商问题等,并给出了相应的算法解决方案。 在算法的分析方面,本书介绍了时间复杂度和空间复杂度的概念和计算方法,同时还介绍了渐进符号、复杂度的比较、算法效率的理论分析等内容。通过学习这些知识,读者可以评估和比较不同算法的效率,并选择最合适的算法来解决具体的问题。 此外,该教材还介绍了一些高级算法设计与分析的内容,如图算法、字符串匹配、排序算法等,并给出了相应的算法实现和性能分析。这些内容对于深入理解算法设计与分析的原理和方法具有重要意义。 综上所述,《计算机算法设计与分析》是一本全面介绍计算机算法设计与分析的教材,内容详实、通俗易懂,适合作为计算机相关专业的教材或参考书使用。无论是对于初学者还是对于有一定算法基础的读者,该书都能帮助他们加深对算法设计与分析的理解,并提高算法解决问题的能力。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值