中国科学院研究生院              课程编号:711008Z-1

        试 题 专 用 纸                       课程名称:计算机算法设计与分析

                                               任课教师: 陈玉福

———————————————————————————————————————————————

   姓名      学号    成绩

一.回答下列问题: (每小题5分)

1.陈述算法在最坏情况下的时间复杂度和平均时间复杂度;这两种评估算法复杂性的方法各自有什么实际意义?

最坏情况下的时间复杂度称最坏时间复杂度。一般不特别说明,讨论的时间复杂度均是最坏情况下的时间复杂度。
这样做的原因是:最坏情况下的时间复杂度是算法在任何输入实例上运行时间的上界,这就保证了算法的运行时间不会比任何更长。

平均时间复杂度是指所有可能的输入实例均以等概率出现的情况下,算法的期望运行时间。

2.阐述动态规划算法与贪心算法的区别,它们都有那些优势和劣势?

动态规划算法与贪心算法都要求问题具有最优子结构性质,这是二者的一个共同点。但是对于具有最优子结构的问题应该选择前者还后者来解决?下面通过两个经典的组合优化问题谈谈动态规划算法与贪心算法的主要差异

动态规划法与分治法和贪心法类似,它也是将原问题分解为若干个更小的、相似的子问题,并通过求解子问题产生一个全局最优解。与分治法和贪心法不同之处在于:

① 使用贪心法时,当前的选择可能要依赖于已经作出的所有选择,但不依赖于有待于做出的选择和子问题。因此贪心法是自顶向下(即从起点到终点),一步一步地作出贪心选择。当然,如果当前的选择可能要依赖于子问题的解时,则难以通过局部的贪心策略达到全局最优解。

② 使用分治法时,由原问题分解出的各子问题通常是相互独立的,即不包含公共的子问题,因此一旦递归地求出各子问题的解后,便可自下而上地将各子问题的解合并成问题的解。如果各子问题不是相互独立的,则分治法要做许多不必要的工作,重复地求解公共的子问题。

③ 动态规划允许由原问题分解出的子问题之间相互依赖。每一个子问题只求解一次,并将结果保存起来,避免每次碰到此子问题时都要重复计算

3.阐述回溯算法与分枝限界算法的共同点和不同点,提高算法效率的关键是什么?

4.在对算法进行复杂性分析时,强调渐进复杂性的意义是什么?

算法的复杂性是算法效率的度量,是评价算法优劣的重要依据。一个算法的复杂性的高低体现在运行该算法所需要的计算机资源的多少上面,所需的资源越多,我们就说该算法的复杂性越高;反之,所需的资源越低,则该算法的复杂性越低简化算法复杂性分析的方法和步骤,即只要考察当问题的规模充分大时,算法复杂性在渐近意义下的阶。与此简化的复杂性分析方法相配套,问题复杂程度和规模的线性增长导致的时耗的增长和空间需求的增长,对低效算法来说,都是超线性的,决非计算机速度和容量的线性增长带来的时耗减少和存储空间的扩大所能抵销。

二.(20分)试用Prim算法求解下面无向赋权图的最小生成树,指出最小生成树及该树中各边被选中的先后次序;写出算法的基本步骤。

解:根据Prim算法,从V1开始,选择10    V1和V4加入集合

找出集合中顶点相邻的最小权值点V7加入集合

依次为V 1 V4 V7 V8 V3V5 V2 V6

基本步骤:从第一个结点开始,加入集合A

每次选择A中顶点与A外的顶点权值最小的顶点,加入集合A

直到集合A包含所有顶点

三.(20分)用LC-分枝限界算法求解0/1背包问题: ,物品重量和价值分别是:

w=(2,3,4,6,9)  p=(8,9,10,12,18)

1.画出由算法生成的状态空间树,并标明各节点的优先级的值;

2.给出各节点被选作当前扩展节点的先后次序;

3.给出最优解。

解:30

具体步骤就不写了

四. (20分)已知一组数满足,且被搜索的对象的概率分布是:

其中a表示被搜索对象在区间内的概率,b表示被搜索对象为的概率,

使用动态规划算法求该搜索问题的最优二叉搜索树。

解:各子树的根:

1 1 1 4 4

0 2 3 4 4

0 0 3 4 4

0 0 0 4 4

0 0 0 0 5

最优二叉树结构:

k4是根

k1是k4的左孩子

d0是k1的左孩子

k3是k1的右孩子

k2是k3的左孩子

d1是k2的左孩子

d2是k2的右孩子

d3是k3的右孩子

k5是k4的右孩子

d4是k5的左孩子

d5是k5的右孩子

0.1      0.37      0.54     0.89     1.645     2.425

0      0.01      0.11    0.345      0.85      1.63

0         0      0.02    0.195      0.64      1.42

0         0         0     0.04      0.39      1.17

0         0         0         0     0.03     0.535

0         0         0        0         0      0.2

五.(20分) 假定已知“无向图的Hamilton回路”问题是NPC问题,证明“旅行商判定问题”也是NPC问题。

解:首先,旅行商问题是NP的,因为对其解的任一猜想,要检验它是否是最优的,需要同所有其它 的环游戏比较,这样的环游会有指数个,因而不可能 在多项式时间内完成

考虑图的哈密顿回路问题,已知无向图G |V|=n,构造其对应的旅行商问题为

Dij={1,if(vi,vj)属于边,2,否则}

显然,这一变换可以在多项式时间内完成,而且,G有哈回路的充分必要条件是上述构建的旅行商问题有解,且解对应的路长度为N,因为,若G中不含哈回路,则路长至少为n+1 因为已知哈回路问题是NPC问题,并且上述变换为多项式变换,所以旅行商问题也为NPC问题

有问题直接回复即可!

共 2 页       第2 页

中科院算法试题 陈玉福相关推荐

  1. 陈玉福计算机算法与设计答案,中科院计算机算法陈玉福历年试题..doc

    中国科学院研究生院课程编号:711008Z-1 试 题 专 用 纸课程名称:计算机算法设计与分析 任课教师: 陈玉福 ----------------------------------------- ...

  2. 国科大计算机算法设计与分析陈玉福,中科院陈玉福计算机算法设计与分析期末简答题答案.pdf...

    中科院陈玉福计算机算法设计与分析期末简答题答案 1. 贪心算法和动态规划算法有什么共同点和区别?它们都有那些优势和劣势? 共通点:动态规划和贪心算法都是一种递推算法 ,均有局部最优解来推导全局最优解 ...

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

    2020-2021中科院陈玉福算法设计与分析期末考试 中科院沈阳计算所 时文康 于2020.12.31 一.(20 分)简答题 1,陈述算法在最坏时间下的时间复杂度和平均时间复杂度:这两种评估算法复杂 ...

  4. 国科大计算机算法设计与分析陈玉福,中科院陈玉福计算机算法设计与分析期末简答题答案...

    中科院陈玉福计算机算法设计与分析期末简答题答案 1. 贪心算法和动态规划算法有什么共同点和区别?它们都有那些优势和劣势? 共通点:动态规划和贪心算法都是一种递推算法 ,均有局部最优解来推导全局最优解 ...

  5. 输入一个数寻找丑数C语言,数据结构与算法试题80道.doc

    数据结构与算法试题80道 由于这些题,实在太火了.所以,应广大网友建议要求,在此把之前已整理公布的前80题, 现在,一次性分享出来.此也算是前80题第一次集体亮相. 此些题,已有上万人,看到或见识到, ...

  6. 中科院 陈玉福算法简答题

    1.  贪心算法和动态规划算法有什么共同点和区别?它们都有那些优势和劣势? 共通点:动态规划和贪心算法都是一种递推算法 ,均有局部最优解来推导全局最优解 区别:贪心算法中,作出的每步贪心决策都无法改变 ...

  7. 中科院陈玉福算法设计与分析 动态规划矩阵连乘计算问题

    题目描述: 已知矩阵

  8. 陈玉福算法设计与分析期末考试题-简答部分

            陈述算法在最坏时间下的时间复杂度和平均时间复杂度:这两种评估算法复杂性的方法各自有什么意义?陈述算法在最坏时间下的时间复杂度和平均时间复杂度:这两种评估算法复杂性的方法各自有什么意义? ...

  9. 数据结构与算法试题集锦

    1数组 1.1两个已排序的整型数组,求交集,最快算法  (百度)输入:两个已排序的整型数组(int a[m], b[n]) 输出:两个数组的交集 分析:注意有4种情况: a升序,b升序: a升序,b降 ...

最新文章

  1. JavaScript学习(十三)---RegExp对象
  2. 使用U盘安装Windows Server2008
  3. Serverless 究竟是什么?
  4. 汉能:让人类像叶绿素一样利用太阳能
  5. 在fritzing中怎么导入_电路图制作软件(Fritzing)
  6. jQuery常见的50种用法
  7. 云图说|小云妹带你揭秘数据复制服务DRS四大功能
  8. python的read_聊一聊python 的readinto
  9. 标准模板库中的优先队列(priority_queue)
  10. python里的拆包、引用、递归与匿名函数
  11. iOS中关于文件操作
  12. tensorflow-gpu_TensorFlow GPU单机多卡训练amp;reloadamp;predict
  13. Java | 内部类的实例化
  14. Sublime 编译汇编程序
  15. 关于zip命令的使用问题
  16. PLSQL下载与安装
  17. lol一直显示服务器异常怎么办,lol服务器连接异常即将退出怎么解决
  18. 30 | 安全运营:“黑灰产”打了又来,如何正确处置?
  19. python有趣的例子和故事_Python几个有趣和特别的小故事
  20. 读书·2020(26本)

热门文章

  1. 解决spring+c3p0数据库连接一直增加的问题
  2. [附源码]Nodejs计算机毕业设计农产品追溯系统设计与实现Express(程序+LW)
  3. 重力的动态理论(转)
  4. 2022最新视频打赏系统全开源版本+附教程/亲测可用
  5. 旋转图片轮播html,js实现旋转图片轮播
  6. go云原生语法-结构体(一)
  7. SAP Concur 中国峰会先睹为快:超强演讲嘉宾阵容悉数亮相
  8. java大数据面试总结
  9. 通俗易懂细说坐标系、投影
  10. 对付身体小毛病的80妙招