《算法设计与分析》教学大纲
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《算法分析与设计》课程教学大纲
【课程编号】:14314025
【英文译名】:Analysis and Design of Computer Algorithms
【适用专业】:软件工程、计算机科学与技术、信息安全
【学分数】:3
【总学时】:48学时
【实践学时】:0
一、本课程教学目的和课程性质
本课程是软件工程、计算机科学与技术、信息安全等专业的选修课程,也可作为其它计算机相关专业的选修课程。课程属于专业教育课。
课程主要介绍计算机算法分析、算法设计及复杂性理论的基本概念、基本的算法分析方法和常用的算法设计方法。通过本课程的教学,强化学生算法分析与设计的基础理论知识,使学生掌握计算机算法分析的基本方法及常见的算法设计方法(如:分治法、回溯法、贪心法、动态规划法、分枝限界法等)。通过学习,学生能够用利用常见的算法设计方法来解决软件开发中的实际问题。培养扎实的专业知识和基本技能和从事应用软件开发和测试的能力。
二、本课程的基本要求
本课程的基本要求是让学生理解计算机算法效率分析与设计所涉及的基本概念和基础知识,掌握基本的算法分析方法和常见的算法设计方法,能熟练应用课程介绍的算法设计方法来解决软件开发中的实际问题。通过对算法实例的分析,进一步加深学生对算法设计方法的认识和理解。
1、理解算法的基本概念和算法的效率分析方法。
2、理解分治策略的原理、效率分析,掌握分支策略在常见问题(如:二分检索、归并分类、快速排序、选择问题等)问题中的应用。了解分治策略的变形(减治策略、变治策略)的思想和简单应用。
3、理解动态规划的原理、适用条件,了解算法的效率,掌握该算法在常见问题(如:多段图、最优二分检索树、0/1背包问题、货郎担问题、可靠性设计等)问题中的应用。
4、理解贪心方法的原理、效率分析方法,掌握在常见问题(如:背包问题、带有期限的作业排序、最小生成树、单源点最短路径等)问题中的应用。
5、理解回溯法的原理,掌握在常见问题(如:8-皇后、子集和数、图的着色、哈密顿环等)问题中的简单应用。
6、了解分支-限界方法的基本思想和简单应用。
7、了解基本的检索和周游方法的基本思想。
8、了解NP-难度和NP-完全问题基本思想和简单应用。
9、了解概率算法的基本思想及简单应用。
三、本课程与其他课程的关系
该课程主要涉及算法的分析与设计,要求学生具备较好的程序设计能力,具有一定的数据结构、离散数学和数学分析基础。
前修课程:离散数学、数据结构
四、课程内容
(一)算法的概念与效率分析基础
1、算法分析基础:算法的定义和特征,算法的时间复杂性、空间复杂性,算法运行时间估计,最优算法,递归算法的效率分析;
2、算法的表示:伪代码的使用。
重点:
算法的定义和特征,算法效率分析的基本方法和表示方法、递归算法的效率分析。
难点:
算法时间复杂性的估计与表示、递归算法的效率分析。
(二)分治策略
1、分治策略率的基本原理和效率分析;
2、分治策略的典型问题应用及算法的效率分析(如:二分检索、找最大和最小元素、归并分类、快速分类、选择问题、斯特拉森矩阵乘法);
3、分治策略的变形(减治策略、变治策略)及简单应用。
重点:
分治策略的基本思想及其应用。
难点:
二分检索、归并分类、快速分类等问题中的算法时间复杂性的分析。
(三)贪心方法
1、贪心方法的基本思想、适用条件和效率分析;
2、贪心方法的典型问题的应用及算法效率分析(背包问题、带有限期的作业排序、最优归并模式、最小生成树、单源点最短路径)。
重点:
贪心策略的基本思想及其适用条件。
难点:
背包问题、最小生成树问题、最短路径问题的解决方法及时间复杂性的分析。
(四)动态规划
1、动态规划的基本思想和适用条件,最优性原理;
2、动态规划典型问题的应用及算法效率分析(如:多段图、每对结点之间的最短路径、最优二分检索树、0/1背包问题、可靠性设计、货郎担问题、流水线调度问题等)。
重点:
动态规划的基本思想、适用条件及其应用。
难点:
多段图、最短路径、0/1背包、可靠性设计、货郎担问题的解决方法及时间复杂性的分析。
(五)基本检索及周游方法
1、图的基本检索与遍历方法简介;
2、深度优先搜索及其应用;
3、广度优先搜索及其应用。
重点:
图的遍历的基本思想及其应用。
难点:
图遍历算法的时间复杂性的分析。
(六)回溯法与分支限界法
1、回溯法的基本思想及效率估计,限界函数;
2、回溯法在典型问题(8-皇后问题、子集和树的问题、图的着色、哈密顿环、背包问题等)中的简单应用及算法;
3、分支限界法的基本思想及简单应用。
重点:
回溯法的基本思想、适用条件及其简单应用。
难点:
限界函数的确定,8-皇后问题、子集和数问题、图的着色问题的解决方法及时间复杂性的分析。
*(七)概率算法
1、概率算法的概念;
2、随机数;
3、数值概率算法。
重点、难点
概率算法的概念、随机数的概念、数值概率算法。
*(八)NP-完全问题
1、计算模型;
2、P类与NP类;
3、NP完全问题;
4、NP完全问题的近似算法。
重点:
NP完全问题的基本概念和计算模型。
难点:
NP完全问题的近似算法。
*(九)计算复杂性引论
1、计算模型:图灵机;
2、k带图灵机和时间复杂性;
3、离线图灵机和空间复杂性;
4、带压缩和线性增速复杂性;
5、类之间的关系归约;
6、完全性;
重点:
计算模型—图灵机。
难点:
各类图灵机的时空复杂性分析。
注:打“*”为选将内容。
五、教学方法建议
本课程涉及了常见算法分析方法和算法设计技术,比较抽象且难懂。建议采用案例教学并结合演示让学生理解和掌握各种算法设计方法,通过课堂讨论、课后作业和实验训练,加强学生对各种算法设计方法的掌握。
六、考核方式
考核可采用开卷笔试,主要考察学生应用算法设计方法来解决具体问题的能力,再结合平时作业及课堂讨论的表现来考核,平时成绩占总成绩的30%~40%。
七、选用教材及主要参考书
1、教材
[1] (美) Anany Levtin著. 算法分析与设计基础,潘彦译,清华大学出版社,2004年6月
2、参考资料
[1] 余祥宣,崔国华,邹海明.计算机算法基础(第二版).武汉:华中科技大学出版社 . 2000