算法设计与分析
课程序号:
课程 名称 | 中文 | 算法设计与分析 | |||||||||||||
英文 | The Design and Analysis of Algorithms | ||||||||||||||
课程编号 | S00901 | 课程适用学位级别 | B专业基础课(硕士) | ||||||||||||
总学时 | 60 | 课内学时 | 60 | 学分 | 3 | ||||||||||
实践环节 | 上机实验、研究报告 | 用机小时 | 30 | ||||||||||||
开课院(系) | 计算机科学与工程系 | 开课学期 | 秋季 | 考试方式 | 笔试 | ||||||||||
主讲教师 | 教师姓名 | 邓建明 | 学位 | 博士 | 博导或硕导 | 硕导 | |||||||||
职称 | 教授 | 学历 | 数理情报专业博士研究生 | ||||||||||||
e-mail | jmdeng@seu.edu.cn | 网页地址 | http://cse.seu.edu.cn/people/jmdeng | ||||||||||||
授课语言 | 汉语或双语教学 | 课件地址 | 暂无 | ||||||||||||
适用学科范围 | 一级 | 适用学科名称 | 计算机科学与技术 | ||||||||||||
实验(案例)个数 | 4 | 先修课程 | 数据结构、离散数学、组合数学 | ||||||||||||
教学用书 | 教材名称 | 教材编者 | 出版社 | 出版年月 | 版次 | ||||||||||
主要教材 | Algorithms Design Techniques and Analysis | M.H.Alsuwaiyel | 电子工业出版社(影印版,原为World Scientific Publishing Co.Pte.Ltd) | 2003.1 | 1st | ||||||||||
The Design and Analysis of Computer Algorithms | Aho, Hopcroft, Ullman | Addison-Wesley Publishing Company | 1976.7 | 3rd | |||||||||||
主要参考书 | Introduction to Algorithms | Thomas Cormen Charles Leiserson Ronald L.Rivest Clifford Stein | 高等教育出版社(影印版,原为The MIT Press) | 2002.5 | 第2版 | ||||||||||
计算机算法设计与分析 | 王晓东 | 电子工业出版社 | 2001.9 | 第1版 | |||||||||||
Computer Algorithms- Introduction to Design and Analysis | Sara Baase, Allen Gelder | 高等教育出版社 (影印版,原为Peason Education) | 2001.7 | 第3版 | |||||||||||
本课程是计算机科学技术中的处于核心地位的课程,是本一级学科各专业方向必修的一门重要的专业基础课。在任何一个与计算机科学技术相关的研究领域,无论是计算机理论、计算机系统、系统软件还是计算机的各种应用方向中,算法设计与分析都是不可缺少的,是计算机科学通常要解决的主要问题之一。本课程的主导思想是面向设计,将系统地介绍计算机科学技术领域中的一些常用的、经典的非数值算法,系统地分析这些算法所需的时间和空间,同时严格证明这些算法的正确性。通过本课程的学习,使学生掌握算法设计的常用方法,提高学生算法设计与复杂性分析的素质和能力,为学生能够独立进行算法的设计和计算复杂性的分析奠定一个比较坚实的基础。以便使学生在将来从事计算机领域或其它有关领域的研究中,能够运用这些方法来设计解决一些常用的或较为复杂的实际问题的算法,并力争做到快捷、有效,从而提高程序的质量并较好地解决科学
要求学生掌握计算机科学技术领域中的一些常用的、经典的算法设计技术,学会分析算法、估计算法的时空复杂性,在非数值计算的层面上,具备把实际问题抽象描述为数学模型的能力,同时能针对不同的问题对象设计有效的算法,用典型的方法来解决科学研究及实际应用中所遇到的问题。并且具备分析算法效率的能力,能够科学地评估有关算法和处理方法的效率。
a) RAM,RASP,Turing机的基本概念和时间复杂度的分析。
b)
c)
2)
a) 算法的五个特征,评价算法的标准,算法的正确性,程序的测试。
b)
c)
3)
a) 分治与平衡的基本概念,大整数相乘的分治法,斯特拉森矩阵乘法。
b)
4)
a) 动态规划法的基本概念,矩阵链相乘问题,最优二叉搜索树问题算法设计与分析。
b)
5)
a) UNION-FIND算法的设计与分析。
b)
6)
a) 随机算法的基本概念,Las Vegas方法, Monte Carlo方法和Sherwood方法等基本方法。
b)
7)
a) 非确定性Turing机,多项式变换与验证基本概念,Cook定理。
b)
8)
a) Bin Packing问题的算法和分析,PTAS和FPTAS的概念与实例。
b)
9)
选择和对手论证,求最大、最小元问题,排序问题,选择问题。
三、教学周历:
周次 | 教学内容 | 教学方式 |
1 | 计算模型:RAM,RASP,Turing机的基本概念和时间复杂度的分析。 | 讲课 |
2 | 各种计算模型时间复杂度相互之间的关系。原始、一般、部分递归函数。 | 讲课 |
3 | 算法基本概念与算法数学基础,生成函数,递归方程求解的主定理。 | 讲课 |
4 | 分治法与平衡:基本概念,斯特拉森矩阵乘法,选择问题,最近点对等问题。 | 讲课 |
5 | 动态规划法:基本概念,矩阵链相乘问题,最优二叉搜索树问题算法设计与分析。 | 讲课 |
6 | 动态规划法:最长公共子序列问题,流水线调度问题的算法设计与分析。 | 讲课 |
7 | 基于集合的数据结构和算法:UNION-FIND算法的设计与分析。 | 讲课 |
8 | 基于集合的数据结构和算法:字典,优先队列,可并堆,可连接队列。 | 讲课 |
9 | 随机算法:Las Vegas方法, Monte Carlo方法和Sherwood方法等基本方法。 | 讲课 |
10 | 随机算法设计与分析实例:字符串匹配,素数测试,最近点对问题。 | 讲课 |
11 | NP完全性理论:非确定性Turing机,多项式变换与验证基本概念,Cook定理。 | 讲课 |
12 | NP完全问题的证明:3-CNT-SAT, CLIQUE, VERTEX-COVER, SUBSET-SUM等。 | 讲课 |
13 | 近似算法:Bin Packing问题的算法和分析,PTAS和FPTAS的概念与实例。 | 讲课 |
14 | 近似算法:Knapsack, 多Knapsack, TSP问题的近似算法和分析。 | 讲课 |
15 | 下界理论:选择和对手论证,求最大、最小元问题,排序问题,选择问题。 | 讲课 |
16 | | |
17 | 考试 | |
18 | | |