课程名称 (Course Name):Algorithm Theory and Analysis
课程代码 (Course Code):X0335331302M02
学分/学时 (Credits/Credit Hours):3/54
开课时间 (Course Term ):春spring
开课学院(School Providing the Course): 电子信息与电气工程学院 seiee
任课教师(Teacher): Xiaofeng Gao (gao-xf@cs.sjtu.edu.cn)
课程讨论时数(Course Discussion Hours): 54 小时(Hours)
课程实验数(Lab Hours): 10小时(Hours)
课程内容简介(Course Introduction):
This course is an advanced algorithm class for graduate students. It mainly focuses on the design techniques of various algorithms like divide-and-conquer, greedy approach, dynamic programming, graph algorithm, etc; and the analysis methodology of corresponding designs like amortized analysis, time/space complexity, correctness proof, NP-completeness, and approximations.
教学大纲(Course Teaching Outline):
Course Objectives
This course introduces students to the analysis and design of algorithms. Upon completion of this course, students will be able to do the following:
Course Outcomes
Students who complete the course will have demonstrated the ability to do the following:
课程进度计划(Course Schedule):
Week |
Lecture Topic |
HW |
Event |
1 |
Syllabus, Preliminary, Introduction to Algorithm Schedule, Grading Policy, Preliminary, Basic Introduction, etc. |
Lab-01 |
|
2 |
Data Structure, Math Functions Data Structure, Graph, Disjoint Set, Mathematical Fundamentals, etc. |
Lab-02 |
|
3 |
Amortized Analysis Aggregate Analysis, Accounting Method, Potential Method |
Lab-03 |
|
4 |
Divide-and-Conquer Mergesort, Selection, Sorting Network, etc. |
Lab-04 |
|
5 |
Greedy Approach (1) Activity Selection, Minimum Spanning Tree, Huffman Code, etc. |
Lab-05 |
|
6 |
Greedy Approach (2) Interval Partitioning, Task Scheduling, Shortest Path, Cache, Matroid |
Lab-06 |
|
7 |
Dynamic Programming (1) Matrix-Chain, Longest Common Subsequence, 0-1 Knapsack, etc. |
Lab-07 |
|
8 |
Dynamic Programming (2) Optimal Substructure, Weighted Interval Scheduling, Alignment, etc. |
|
|
9 |
Application. Exercises. Midterm. |
|
Midterm |
10 |
Graph Algorithms (1) Single Source Shortest Paths, All-Pairs Shortest Paths, etc. |
Lab-08 |
Project-01 |
11 |
Graph Algorithms (2) Maximum Flow, Minimum Cut, etc. |
Lab-09 |
|
12 |
Graph Algorithms (3) Computational Geometry, Real-World Applications |
Lab-10 |
|
13 |
NP-Completeness (1) NP, NP Completeness, NP Hard, Turing Machine, Verification, etc. |
Lab-11 |
|
14 |
NP-Completeness (2) Polynomial time Reduction, Reducibility, Proofs, etc. |
Lab-12 |
|
15 |
Approximation Design (1) Approximation Ratio, Approximation Class, Examples |
Lab-13 |
|
16 |
Approximation Design (2) Sequential Algorithm, Local-Search, LP, Primal-Dual Technique, etc. |
|
|
17-18 |
Review. Exercises. Tutoring. Final Exam |
|
Final |
课程考核要求(Course Assessment Requirements):
The final grade will be derived from your performance on the tests, and assignments. The class participation is shown as follows:
Events: |
|
Midterm Exam |
25% |
Final Exam |
25% |
Assignments |
20% |
Projects |
20% |
Class Participation |
10% |
Total |
100% |
Grading Policy: |
|
90-100% |
A |
80-89% |
B |
70-79% |
C |
60-69% |
D |
59% and below |
F |
参考文献(Course References):
l Algorithm:
n M. H. Alsuwaiyel, Algorithm Design Technique and Analysis, World Scientific, 1999.
n Sanjoy Dasgupta, Christos Papadimitriou, Umesh Vazirani, Algorithm, McGraw-Hill, 2007.
n J. Kleinberg, and E. Tardos, Algorithm Design, Pearson-Addison Wesley, 2005.
n Alfred V. Aho, John E Hopcroft, Jeffery D. Ullman, The Design and Analysis of Computer Algorithms, Addison-Wesley, 1974.
n Udi Manber, Introduction to Algorithms: A Creative Approach, Addison-Wesley, 1989.
n Henming Zou, The Way of Algorithms, China Machine Press, 2010.
l Computational Complexity:
n Christos Papadimitriou, Computational Complexity, Addison Wesley, 1994.
n Theory of Computational Complexity, by Ding-Zhu Du, and Ker-I Ko, published by John Wiley & Sons, Inc., 2000.
n Computational Complexity: A Modern Approach, by Sanjeev Arora and Boaz Barak, Cambridge University Press, 2006.
l Approximation:
n Vijay V. Vazirani, Approximation Algorithms, Springer-Verlag, 2001.
n D.P. Williamson and D.B. Shmoys, The Design of Approximation Algorithms, 2011.
n D.Z Du, K-I. Ko, and X.D. Hu, Design and Analysis of Approximation Algorithms, 2012.