教育教学

相关链接:

教室安排

课程信息

当前位置: 首页 > 教育教学 > 研究生教育 > 课程信息

计算机算法设计与分析  093M1002H-2

学期:2016-2017学年秋 | 课程属性:一级学科核心课 | 任课教师:陈玉福等
课程编号: 093M1002H-2 课时: 60 学分: 3.0
课程属性: 一级学科核心课 主讲教师:陈玉福等
英文名称: The Design and Analysis of Computer Algorithms

教学目的、要求

本课程为软件工程一级学科研究生的核心课程。本课程讲授和讨论计算机算法设计的基本思想、设计策略与技巧,算法的空间、时间复杂性分析技术。主要内容有分治策略、贪心算法、动态规划、回溯算法、分枝限界算法等经典算法和NP完全性理论、NP难问题的算法设计等。
    通过本课程的学习,希望学生能掌握常用经典计算机算法的基本设计思想和策略,能够将实际问题抽象成算法问题,分析与界定问题的难度,设计求解算法;掌握算法的空间和时间复杂性分析技术;了解计算机算法与分析前沿研究领域,了解最新研究成果。

预修课程

离散数学、数据结构、程序设计语言C/C++

教 材

陈玉福,《计算机算法设计与分析》,中国科学院大学讲义,2015.8.

主要内容

第一章 算法引论
1.1 算法与程序
1.2 算法的抽象与描述
1.3 空间复杂性
1.4 时间复杂性
1.5 渐进符号
第二章 图与遍历算法
2.1 图的基本概念
2.2 图的遍历算法
2.3 双联通与网络可靠性
2.4 对策树
第三章 分治算法
3.1 分治策略的基本思想
3.2 排序算法
3.3 选择问题
3.4 关于矩阵乘法
3.5 快速Fourier变换
3.6 最接近点对问题
第四章 贪心算法
4.1 贪心算法的设计思想
4.2 作业排序问题
4.3 最优生成树问题
4.4 单点源最短路径问题
4.5 Huffman编码
第五章 动态规划算法
5.1算法基本思想
5.2 多段图问题
5.3 0/1背包问题
5.4 流水作业调度问题
5.5 最优二叉搜索树
第六章 回溯法
6.1 算法的基本思想
6.2 定和子集问题和0/1背包问题
6.3 n-皇后问题和旅行商问题
6.4 图的着色问题
6.5 回溯算法的效率分析
第七章 分枝-限界算法
7.1 算法的基本思想
7.2 0/1背包问题的分枝限界算法
7.3 电路板布线问题
7.4 优先级的确定与LC-检索
7.5 旅行商问题的分枝限界算法
第八章 NP-完全性理论
8.1关于问题及算法的描述
8.2 图灵机与确定性算法
8.3 P类与NP-类问题
8.4 NP-完全问题
8.5证明新问题是NP-完全问题的方法
8.6 NP-困难问题
第九章 NP难问题的高效算法设计
9.1 约束传播
9.2 冲突分析与学习机制
9.3 打破对称
9.4 禁忌搜索
9.5 模拟退火算法
9.6 遗传算法
9.7 随机算法

教学方式:课堂讲授为主 
考核方式:课堂闭卷(70%)+习题(30%)

参考文献

1. 余祥宣等,《计算机算法基础》,华中理工大学出版社,武汉,2000。
2. Thomas H.Cormen, Charles E.Leiserson, Ronald L.Rivest, Clifford Stein. Introduction to Algorithms(second edition), The MIT Press, 2001.
3.  王晓东,《算法设计与分析(第三版)》,清华大学出版社,2014.2第三版。
4.  曲婉玲、刘田等,《算法设计与分析》,清华大学出版社,2011.5第一版。
5.Francesca Rossi, Peter Van Beek, Toby Walsh. Handbook of Constraint Programming, Elsevier Science Ltd, 2006.
6.  邢文训,谢金星,《现代优化计算方法》,清华大学出版社,2000年。

授课时间: 星期一, 第1、2节
授课地点: 教1-108
授课周次: 2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、17

授课时间: 星期三, 第1、2节
授课地点: 教1-108
授课周次: 2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、17

版权所有©中国科学院大学

地址:北京市怀柔区雁栖湖东路1号 邮编:101408