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

1. 贪心算法和动态规划算法有什么共同点和区别?它们都有那些优势和劣势?

共通点:动态规划和贪心算法都是一种递推算法 ,均有局部最优解来推导全局最优解

区别:贪心算法中,作出的每步贪心决策都无法改变,每一步的最优解一定包含上一步的

最优解,而上一部之前的最优解则不作保留。

动态优化算法,全局最优解中一定包含某个局部最优解,但不一定包含前一个局部最优解,

因此需要记录之前的所有最优解

动态规划算法利用子问题重叠性质,对每一个子问题只计算一次,将其解保存在一个表格中。

不同的子问题个数随着输入问题的规模呈多项式增长,因此,动态规划算法通常只需要多项

式时间,从而获得较高的解题效率。但它需要计算之前所有情况花费,更加耗费空间。

贪心算法所作的选择依赖于以往所作过的选择,但决不依赖于将来的选择,这使得算法在编

码和执行过程中都有一定的速度优势。贪心算法是只是找局部最优解,不一定是全局最优解。

2. 试比较回溯法与分枝限界算法,分别谈谈这两个算法比较适合的问题?

二者都是在解空间树里搜索问题的可靠解或最优解,但是搜索的方式不同,回溯法采用深

度优先的方式,直到达到问题的一个可行解,或经判断沿此路径不会达到问题的可行解或最

优解时,停止向前搜索,并沿原路返回到该路径上最后一个还可扩展的节点,然后,从该节

点出发朝新的方向纵深搜索。分枝限界法采用的是宽度优先的方式,它将活节点存放在一个

特殊 的表中,其策略是,在扩展节点处,首先生成其所有的儿子节点,将那些导致不可行

解或导致非最优解的儿子节点舍弃,其余儿子节点加入活节点表中,然后,从活节点中取出

一个节点作为当前扩展节点,重复上述节点中扩展过程。可以看出,回溯法一般用于求问题

的一个可行解,而分枝限界可以用于求出问题的所有可行解。

3. 何谓最优化原理?采用动态规划算法必须满足的条件是什么?动态规划算法是通过什

么问题的什么特性提高效率的?

一个最优化策略的子策略总是最优的。一个问题满足最优化原理又称其具有最优子结构性质。

最优子结构性质,子问题重叠性质是计算模型采用动态规划算法求解的两个基本要素。

动态规划算法利用子问题重叠性质,对每一个子问题只计算一次,将其解保存在一个表格中。

不同的子问题个数随着输入问题的规模呈多项式增长,因此,动态规划算法通常只需要多项

式时间,从而获得较高的解题效率

4. 什么是多项式时间算法?

若存在一个常数C,使得对于所有n>=0,都有|f(n)| <= C*|g(n)|,则称函数f(n)是O(g(n))。

时间复杂度是O(p(n))的算法称为多项式时间算法,这里p(n)是关于n 的多项式。

时间复杂度为O(nlog(n))、O(n^3)的算法都是多项式时间算法,时间复杂度为O(n^log(n))、

O(n!)、O(2^n)的算法是指数时间算法。

一个优化问题如果已经找到了多项式时间算法,则称该问题为多项式时间可解问题,并

将这类问题的集合记为P,因此多项式时间可解问题就称为P 类问题。。

5. 多项式时间确定性算法与多项式时间非确定性算法的主要区别是什么?

在算法计算复杂性的研究中,一个算法如果存在图灵机可计算的多项式时间计算复杂性算

法,就将这个算法归入P 类,如果存在非确定性图灵机可计算的多项式时间计算复杂性算

法,就将其归入NP 类

6. 陈述算法在最坏情况下的时间复杂度和平均时间复杂度;这两种评估算法复杂性的方法

各自有什么实际意义?

最坏时间复杂度式算法在最差情况下的时间复杂度,也就是花费时间最多的情况。平均时间

复杂度是因为它是期望的运行时间。它更有意义,现实中,平均运行时间很难通过分析得到,

一般都是通过运行一定数量的实验数据后估算而来的。而最坏运行时间是一种保证,那就是

运行时间不会再坏了。在应用中,这是最重要的需求,通常我们提到的运行时间都是最坏情

况下的运行时间,时间复杂度是最坏情况下的时间复杂度。

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

当问题的规模n 趋向无穷大时,影响算法效率的重要因素是T(n) 的数量级,而其他因素仅

是使时间复杂度相差常数倍。使用渐进表达式可以略去低阶项所留下的主项,更加简单。

P11

8. 在对算法进行复杂性分析时,时间复杂度用什么量反映的?其间做了什么假定?复杂性

函数的渐进上界反映了复杂性函数的什么性质?

通常我们提到的运行时间都是最坏情况下的运行时间,时间复杂度是最坏情况下的时间复

杂度

我们假定N 充分大,渐近上界也反映了复杂性函数在N 充分大的情况下复杂性的上界

9. 什么是NPC 问题?证明一个问题是NPC 问题一般采用哪几个步骤?

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

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

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

  2. 国科大学习资料--计算机视觉(胡占义、董秋雷)--2018-2019第二学期期末试卷

    国科大学习资料–计算机视觉(胡占义.董秋雷)–2018-2019第二学期期末试卷 国科大学习资料–计算机视觉(胡占义.董秋雷)–2018-2019第二学期期末试卷 国科大学习资料–计算机视觉(胡占义. ...

  3. 举例说明计算机在六个方面的应用,第六章 计算机应用基础简答题答案.doc

    <计算机应用基础>课后习题简答题答案 习题一 1.计算机的应用领域主要有哪些? 答:1.科学计算:2.事务处理:3.过程控制:4.辅助工程:5.网络应用 2.何谓指令?指令中的操作码.操作 ...

  4. 计算机科学与工业工程会议,国科大硕士研究生李邓宇卉获第49届计算机与工业工程国际会议最佳论文奖...

    10月18日至21日,第49届计算机与工业工程国际会议(The 49th International Conference on Computers & Industrial Engineer ...

  5. 计算机网络安全教程(第三版)第七章简答题答案

    第 7 章 恶意代码分析与防治 简述研究恶意代码的必要性. 答: 在 Internet 安全事件中,恶意代码造成的经济损失占有最大的比例.如今,恶意代码已成为信息战.网络战的重要手段.日益严重的恶意代 ...

  6. 计算机网络安全教程(第三版)第一章简答题答案

    第 1 章 网络安全概述与环境配置 网络攻击和防御分别包括哪些内容? 答: 攻击技术主要包括以下几个方面. (1)网络监听:自己不主动去攻击别人,而是在计算机上设置一个程序去监听目标计算机与其他计算机 ...

  7. 计算机网络安全教程(第三版)第十章简答题答案

    第 10 章 防火墙与入侵检测 什么是防火墙?古时候的防火墙和目前通常说的防火墙有什么联系和区别? 答: 防火墙的本义原指古代人们的房屋之间修建的墙,这道墙可以防止火灾发生时蔓延到别的房屋.现今防火墙 ...

  8. 计算机网络安全教程(第三版)第三章简答题答案

    第 3 章 网络安全编程基础 简述 Windows 操作系统的内部机制. 答: Windows 操作系统的内部机制如下: Windows 是一个"基于事件的,消息驱动的"操作系统. ...

  9. 最硬核毕业证:带着自己设计的芯片毕业,国科大16级本科生交付「一生一芯」首期成果...

    程序员的成长之路 互联网/程序员/技术/资料共享 关注 阅读本文大概需要 15 分钟. 来自:知乎 链接:https://www.zhihu.com/question/409298856 近日,五位来 ...

最新文章

  1. 软件设计之 数据库设计
  2. 第四范式完成C轮融资,金额超10亿元
  3. 如何在文件夹中运行cmd命令行
  4. arm920T与arm926的区别[转载]
  5. 截屏没有了_原来华为手机的截屏方法不止3种,用了这么久,现在才知道新玩法?...
  6. STL之涉及到的算法
  7. videojs 动态加载视频
  8. 最新剑指offer刷题笔记js(含新旧俩版所有题)
  9. SpringMVC小结(四)
  10. java脚本语言 dim_写给新手windows脚本的入门
  11. C++随机数生成器(default_random_engine)
  12. Vivado HLS教程
  13. 论文阅读|Openpose
  14. 通过温度和湿度计算露点函数
  15. 技巧分享-电脑版微信如何登录多个账号
  16. python基础知识(五)---集合set
  17. 服务器安装sata固态硬盘吗,SATA接口固态硬盘安装教程
  18. 计算机考试遇到不会读的字,不会读的字怎么打 轻松几招教你怎样打不会读的字...
  19. ora-28040解决方法
  20. python程序设计第二章序列类型 题库及选解

热门文章

  1. 数据的统计分析与描述
  2. 第二次作业+105032014149
  3. iOS 设计中 网络请求之 同步请求(json 请求--新方法和老方法)
  4. 由.Net类库提供的农历计算(C#农历)
  5. Java面向对象之继承、super关键字、方法重写
  6. 汉化几乎所有编程软件
  7. 的table数据重复添加_Excel中的超级表Table详细介绍(一)
  8. Node.js下载安装及各种npm、cnpm、nvm、nrm配置(保姆式教程---提供全套安装包)---npm的安装与配置(2)
  9. unable to locate package vi_什么是VI设计?
  10. 微课|玩转Python轻松过二级(2.1.1):常量与变量