2013级--学期安排 (第三学期)

来自问题求解
跳转至: 导航搜索

基本要求

  • 掌握典型应用中抽象出来的重要算法问题的求解方法。
  • 理解并能够应用支持上述内容的离散数学工具与方法。

注意:程序设计能力要求贯穿于整个课程,不再单列。

指定教材

  • CS: Cliff Stein et al.: Discrete Mathematics for Computer Scientists, 1st ed. Addison-Wesley, 2010
  • DW: Douglas West: Introduction to Graph Theory, 2nd ed. Pearson, 2000
  • TC: Thomas Cormen: Introduction to Algorithms, 3rd ed. MIT, 2009
  • TJ: Thomas Judson: Abstract Algebra - Theory and Applications, http://abstract.ups.edu/
  • WS: Walter Savitch: Problem Solving with C++, 7th ed. Addison Wesley, 2008
  • CZ: Gary Chartrand, Ping Zhang: Introduction to Graph Theory

推荐课外读物

  • Larry Nyhoff: ADTs, Data Structures, and Problem Solving with C++, 2nd ed. Prentice Hall, 2004

学习周历

日期 论题 学习目的 阅读材料 引导要点 书面作业 编程任务
9.1--9.5 3-1:动态规划
  • 通过实例掌握动态规划的基本思想与算法设计方法
  • TC第15章
  • 以空间换时间的关键是存储效率
  • 动态规划与指数时间的有效降低
  • TC第15.1节练习1、3
  • TC第15.2节练习2、4
  • TC第15.3节练习3、5、6
  • TC第15.4节练习3、5
  • TC第15.5节练习1
  • TC第15章问题4
9.8-9.12 3-2:贪心算法
  • 掌握利用贪心策略设计算法的思路与方法
  • 掌握用分摊进行算法分析的思想与方法
  • TC第16章第1、2、3节
  • TC第17章
  • 贪心算法的正确性证明
  • TC第16.1节练习2、3
  • TC第16.2节练习1、2
  • TC第16.3节练习2、5、8
  • TC第16章问题1
  • TC第17.1节练习3
  • TC第17.2节练习2
  • TC第17.4节练习1
9.15-9.19 3-3:用于动态等价关系的数据结构
  • 理解动态等价关系的概念以及在问题求解中的意义
  • 掌握以union-find为代表的相应数据结构
  • 进一步理解抽象数据类型的意义
  • TC第21章
  • SB第2章
  • 算法分析的困难性
  • TC第21.1节练习2、3
  • TC第21.2节练习1、3、6
  • TC第21.3节练习1、2、3
  • TC第21章问题1
  • 编一个程序自动生成迷宫(反馈)
9.15-9.19 3-4:图的基本概念
  • 掌握图的基本概念以及图论的基本证明方式
  • CZ(Chartrand/Zhang)第一章;第二章2.1;2.2;2.3;第三章3.1;
  • 图论应用的广泛性以及图论证明方法的独特性
  • 理解图与关系的联系
  • CZ 练习1.2;1.3;1.11;1.12;1.24;
  • CZ 练习2.1; 2.19;2.31;
  • CZ 练习3.1; 3.2
9.22-9.30 3-5:图的计算机表示以及遍历
  • 掌握在计算机中表示图的方式
  • 掌握图的深度优先与广度优先遍历方法
  • TC第22章
  • 图表示中形式与效率的关系
  • 不同遍历方法的算法意义
  • TC第22.1节练习3、8
  • TC第22.2节练习3、4、5
  • TC第22.3节练习6、7、8、9、12
  • TC第22.4节练习2、3
  • TC第22.5节练习5、7
  • 实现深度与广度遍历
  • 反馈
10.8-10.10 3-6:树[3]
  • 理解树的基本数学性质
  • 掌握用加权树建立数学模型的方法
  • 最小生成树算法
  • CZ第4章
  • 树的数学性质在计算机问题求解中的意义
  • 理解贪心算法策略在最小生成树问题上的应用
  • 练习4.4 4.8 4.14 4.22 4.26 4.28 4.30 4.36
  • WS第14章项目10
  • WS第14章项目11
  • Prim和Kruskal算法
  • 反馈
tbd 3-7:单源最短通路算法[4] [5]
  • 掌握单源最短通路问题的解决方法
  • 理解最短通路的数学性质并理解其在正确性证明中的作用
  • TC第24章
  • 贪心策略在不同算法中的不同体现
  • TC第24.1节练习2、3、4
  • TC第24.2节练习2
  • TC第24.3节练习2、4、7
  • TC第24.5节练习2、5
  • TC第24章问题2、3
10.21-10.25 3-8:多源最短通路算法 [6]
  • 掌握多源最短通路问题的解法
  • TC第25章
  • 不同领域表面上完全不同的问题如何归结为同一个模型上的问题
  • TC第25.1节练习4、5、6、9、10
  • TC第25.2节练习2、4、6、8
  • TC第25.3节练习2、3
  • TC第25章问题2
10.27-10.31 3-9:图中的连通度和距离 [7]
  • 理解图中连通度和距离的概念与相关理论
  • CZ 5.1-5.4 CZ 12.1 12.2
  • 图连通性的度量方式及其等效性
  • CZ: 5.4、5.8
  • CZ: 5.10、5.12
  • CZ: 5.18、5.22、5.26
  • CZ: 5.34
  • 证明PPT第21页的定理
11.10-11.15 3-10:旅行问题 [8]
  • 哈密尔顿回路问题、TSP问题
  • CZ第6章
  • 如何针对具体问题建立图模型,并利用图上的“旅行”概念对问题的解进行描述
  • CZ:6.4,6.6,6.10,6.12,6.20
11.17-11.22 3-11:图中的匹配与覆盖 part1part2
  • 掌握图中匹配与覆盖的概念、关键问题与算法
  • CZ第8章
  • 点与边、匹配与覆盖的对称性
  • CZ 8.3, 8.5, 8.14, 8.16
  • CZ 8.18, 8.21, 8.24
tbd 3-12:最大流算法 [9]
  • 掌握网络最大流问题的算法
  • TC第26章
  • 最大流与最小割集的关系在算法正确性证明中的影响
  • 叠加式算法及其分析
  • TC第26.1节练习1、2、6、7
  • TC第26.2节练习2、6、8、10、12、13
  • TC第26.3节练习3
  • TC第26章问题1、2
12.8-12.12 3-13:平面图与图着色[10]
  • 理解图论中一些著名的问题以及它们在计算机问题求解中的地位,包括图顶点着色问题、平面图等
  • CZ 9.1 9.2, 10.1~10.3
  • 图模型应用的广泛性
  • CZ 9.3, 9.5,9.7,9.8
  • CZ 10.2,10.3,10.4,10.5
tbd 3-14:矩阵计算[11]
  • 掌握矩阵计算中一些基本问题的算法以及其在线性系统中的应用
  • TC第28章
  • 线性系统及其在问题求解中的重要性
  • TC第28.1节练习2、3、6、7
  • TC第28.2节练习1、2、3
  • TC第28.3节练习1、3
  • TC第28章问题1
  • LUP decomposition
tbd 3-15:线性规划[12]
  • 掌握线性规划的基本概念,问题描述方式以及基本算法
  • TC第29章
  • 线性规划的意义与适用性
  • TC第29.1节练习4、5、6、7、9
  • TC第29.2节练习2、3、6
  • TC第29.3节练习2、3、5
  • TC第29.4节练习2
  • TC第29章问题1
  • Simplex算法
tbd 3-17:群与拉格郎日定理[13]
  • 理解抽象代数结构的基本概念
  • 理解群的数学性质以及抽象代数典型推导方法
  • TJ第3、4、5、6章
  • 公理化系统的思想
  • TJ第3章练习3、6、7、17、28、36、38、41、48、52
  • TJ第4章练习1、12、21、24、32
  • TJ第5章练习3、5、16、27、29
  • TJ第6章练习11、12、16、21
  • TJ第9章练习6、7、8、9
  • WS第12章项目1
  • WS第12章项目8