Week |
Date |
Lecture Topic |
Event |
TA |
1 |
Feb. 16 |
Course Introduction and Preliminary Introduction of This Class, Basic Concepts, Time / Space Complexity, etc. |
|
H. Fang |
2 |
Feb. 23 |
Algorithm Design and Analysis Computation and Complexity, Sorting, Searching, and Selection. |
Lab-01 |
W. Shi |
3 |
Mar. 2 |
Divide-and-Conquer Mergesort, Selection, Master’s Theorem, Sorting Network, Zero-One Principle, etc. |
|
H. Fang |
4 |
Mar. 9 |
Greedy Approach (1) Interval Scheduling, Interval Partitioning, Minimum Lateness, etc. |
Lab-02 |
W. Shi |
5 |
Mar. 16 |
Greedy Approach (2) Optimal Caching, Coin Charging, etc. |
|
H. Fang |
6 |
Mar. 23 |
Matroid (1) Independent System, Matroid, Example: Greedy-Max Algorithm, etc. |
Lab-03 |
H. Fang |
7 |
Mar. 30 |
Matroid (2) Min-Max Conversion, Unit-Time Interval Scheduling, etc. |
|
W. Shi |
8 |
Apr. 6 |
Dynamic Programming (1) Weighted Interval Scheduling, RNA Secondary Structure, etc. |
Project |
W. Shi |
9 |
Apr. 13 |
Dynamic Programming (2) & Linear Programming String Similarity, Duality Theory, Simplex Algorithm, etc. |
Lab-04 |
H. Fang |
10 |
Apr. 20 |
Amortized Analysis Aggregate Analysis, Accounting Method, Potential Method, etc. |
|
J. Lv |
11 |
Apr. 27 |
Graph Algorithms (1) Basic Concepts, MST, DFS, BFS, etc. |
Lab-05 |
J. Lv |
12 |
May. 4 |
International Workers' Holiday
|
|
|
13 |
May. 11 |
Graph Algorithms (2) SSSP (Greedy & DP), All-Pair Shortest Paths, Flow Problem, etc. |
|
H. Fang |
14 |
May. 18 |
Graph Algorithms (3) & NP-Completeness (1) Maximum Flow, Minimum Cut, P and NP class, etc. |
|
H. Fang |
15 |
May. 25 |
NP-Completeness (2) Reduction, Proofs. |
Lab-06 |
J. Lv |
16 |
Jun. 1 |
NP-Completeness (3) Reduction Examples. |
|
H. Fang |
Reading Materials
Syllabus & Grading Policy: Syllabus-AlgorithmComplexity.pdf
Slide for Prologue: Slide01-Prologue.pdf (Print Version: 01-Prologue.pdf)
Slide for Symbols: Slide02-Symbols.pdf (Print Version: 02-Symbols.pdf)
Reference
Reference01-Set.pdf Appendix B.1-B.3 of "Introduction to Algorithms" by T. Cormen, C. Leiserson, R. Rivest, C. Stein, The MIT Press, 2009. (3rd Edition);
Reference02-Proof.pdf Chapter 2.1 of "Introduction to Languages and the Theory of Computation" by John Martin, McGraw-Hill, 2002.
Latex Tutorial
Latex Example: LatexExample.pdf (Source: LatexExample.tex, Fig-GraphG1.pdf, Fig-GraphG2.pdf)
Latex Helper: LatexHelper(ENG).pdf (Chinese Version: LatexHelper(CHI).pdf)
Algorithm Package Helper: AlgorithmPackage.pdf
Latex Tutorial: LaTeXTutorial.pdf
AlgorithmSample: AlgorithmSample.pdf (Source: AlgorithmSample.tex)
VariableSample: VariableSample.pdf (Source: VariableSample.tex)
Lab 0: Preliminary
Self-Introduction: Please log in to the course website with Jaccount, click the name button in the upper right corner, complete the self-introduction and upload a personal photo.
Pre-class survey (in Chinese): Please complete the pre-class survey to help us adjust the course content, address: https://www.wjx.cn/vj/tUZqfy3.aspx
Reading Materials
Slide: Slide03-AlgorithmAnalysis.pdf (Print Version: 03-AlgorithmAnalysis.pdf)
Reference:
* Reference03-AlgorithmAnalysis.pdf Chapter 1 in "Algorithm Design Technique and Analysis" by M. H. Alsuwaiyel, World Scientific, 1999;
* Reference04-Summations.pdf Appendix A of "Introduction to Algorithms" by T. Cormen, C. Leiserson, R. Rivest, C. Stein, The MIT Press, 2009. (3rd Edition).
Lab01: Algorithm Analysis (Due: 10:00am, 03/09/2022)
Lab01-AlgorithmAnalysis: Lab01-AlgorithmAnalysis.pdf, Lab01-QuickSort.cpp
LaTeX Source of Lab01: Lab01-AlgorithmAnalysis.tex
Lab01-Solution: Lab01-Solution.pdf, Lab01-QuickSort-Solution.cpp
Best Labs: Lab01-YuqiaoPei.pdf, Lab01-ZhengxiangHuang.pdf, Lab01-ZhenranXiao.pdf
Poster
Reading Materials
Slide for Divide and Conquer: Slide04-DivideConquer.pdf (Print Version: 04-DivideConquer.pdf)
Slide for Sorting Network: Slide05-SortingNetwork.pdf (Print Version: 05-SortingNetwork.pdf)
Reference:
Reference05-DivideConquer.pdf Chapter 2 of "Algorithm" by S. Dasgupta, C. H. Papadimitriou, and U. V. Vazirani, McGraw-Hill, 2007;
Reference06-MasterTheorem.pdf Chapter 4.4-4.6 of "Introduction to Algorithms" by T. Cormen, C. Leiserson, R. Rivest, C. Stein, The MIT Press, 2009, (3rd Edition);
Reference07-SortingNetwork.pdf Chapter 27 of "Introduction to Algorithms" by T. Cormen, C. Leiserson, R. Rivest, C. Stein, The MIT Press, 2002, (2nd Edition).
Tkinter Tutorial (Optional)
Official Documentation: Tkinter - Python interface to Tcl/Tk
Tkinter Tutorial: TkinterTutorial.pdf
Sorting Network: Code-SortingNetwork.rar
Poster
Reading Materials
Slide for Greedy Algorithm: Slide06-GreedyAlgorithm.pdf (Print Version: 06-GreedyAlgorithm.pdf)
Slide for Matroid: Slide07-Matroid.pdf (Print Version: 07-Matroid.pdf)
Reference
Reference08-GreedyAlgorithm.pdf Chapter 4.1-4.3 in "Algorithm Design" by J. Kleinberg, and E. Tardos, Pearson-Addison Wesley, 2005
Reference09-Matroid.pdf Chapter 16.4 in "Introduction to Algorithms" by T. Cormen, C. Leiserson, R. Rivest, C. Stein, The MIT Press, 2009. (3rd Edition)
Reference10-GreedyMax.pdf Chapter 2.1-2.2 in "Design and Analysis of Approximation Algorithms" by D.-Z. Du, K.-I. Ko, and X. D. Hu, Springer, 2012
Movie: Wall Street (1987)
Lab02: DC&Greedy (Due: 10:00am, 03/23/2022)
Lab02-DC&Greedy: Lab02-DC&Greedy.pdf
LaTeX Source of Lab02: Lab02-DC&Greedy.tex
Lab02-Solution: Lab02-Solution.pdf
Best Labs: Lab02-LuZhang.pdf, Lab02-YizhongQiu.pdf, Lab02-ZichunYe.pdf
Posters and Proof for Disjoint Path Matroid (by Hongjie Fang)
Reading Materials
Slide for DP: Slide08-DynamicProgramming.pdf (Print Version: 08-DynamicProgramming.pdf)
Slide for LP: Slide09-LinearProgramming.pdf (Print Version: 09-Linear Programming.pdf)
CPLEX Tutorial
Get CPLEX from IBM ILOG CPLEX Optimization Studio (jbox)
Get official documentation from IBM Knowledge Center
CPLEX Tutorial: CPLEXTutorial.pdf, Model_Building_in_Mathematical_Programmi.pdf
Reference
Reference11-DynamicProgramming.pdf Chapter 6.1-6.7 in "Algorithm Design" by J. Kleinberg, and E. Tardos, Pearson-Addison Wesley, 2005;
Reference12-LinearProgramming.pdf Chapter 29.1 in "Introduction to Algorithms" by T. Cormen, C. Leiserson, R. Rivest, C. Stein, The MIT Press, 2009. (3rd Edition) & Chapter 7.4 in "Algorithms" by S. Dasgupta, C. H. Papadimitriou, and U. V. Vazirani, McGraw-Hill, 2007.
Reference13-SimplexAlgorithm.pdf Chapter 29.3 in "Introduction to Algorithms" by T. Cormen, C. Leiserson, R. Rivest, C. Stein, The MIT Press, 2009. (3rd Edition);
Reference14-ModelFormulation.pdf Chapter 12.3-12.4 in "Introduction to Operations Research" by Frederick S. Hillier, Gerald J. Lieberman, Tata McGraw-Hill Education, 2015. (10th Edition).
Lab03: Matroid&DP (Due: 10:00am, 04/13/2022)
Lab03-Matroid&DP: Lab03-Matroid&DP.pdf
LaTeX Source of Lab03: Lab03-Matroid&DP.tex, Fig-P3Example.jpeg
Lab03-Solution: Lab03-Solution.pdf
Best Labs: Lab03-WeihaoJiang.pdf, Lab03-YanningChen.pdf, Lab03-YuqiaoPei.pdf
Posters
Reading Materials
Slide: Slide10-AmortizedAnalysis.pdf (Print Version: 10-AmortizedAnalysis.pdf)
Reference: Reference15-AmortizedAnalysis.pdf Chapter 17 in "Introduction to Algorithms" by T. Cormen, C. Leiserson, R. Rivest, C. Stein, The MIT Press, 2009. (3rd Edition)
Lab04: Programming & Amortized Analysis (Due: 10:00am, 04/27/2022)
Lab Description: Lab04-Programming&Amortized Analysis.pdf
LaTeX Source of Lab04: Lab04-Programming&Amortized Analysis.tex, Fig-1.png, Fig-2.jpeg
Code Source of Lab04: Lab04-JingyeFu.cpp, Lab04-JingyeFu.in
Lab04-Solution: Lab04-Solution.pdf
Best Labs: Lab04-ZhengxiangHuang.pdf, Lab04-YanningChen.pdf, Lab04-ShangfeiYang.pdf
Best Codes: Lab04-JingyeFu-BoqianChen.cpp, Lab04-JingyeFu-YizhongQiu.cpp, Lab04-JingyeFu-ZhengxiangHuang.cpp, Lab04-JingyeFu-ShangfeiYang.cpp
The online judge of this programming problem is based on PTA platform. You can register an PTA account and then bind it according to this link to enter.
Poster
Reading Materials
Slide for DFSBFS: Slide11-DFSBFS.pdf (Print Version: 11-DFSBFS.pdf)
Learn Borüvka Algorithm from Wikipedia
Slide for ShortestPath: Slide12-ShortestPath.pdf (Print Version: 12-ShortestPath.pdf)
Slide for NetworkFlow: Slide13-NetworkFlow.pdf (Print Version: 13-NetworkFlow.pdf)
Reference
Reference16-GraphDecomposition.pdf Chapter 3, 4 in "Algorithm" by S. Dasgupta, C. H. Papadimitriou, and U. V. Vazirani, McGraw-Hill, 2007;
Reference17-ShortestPath.pdf Chapter 24 in "Introduction to Algorithms" by T. Cormen, C. Leiserson, R. Rivest, C. Stein, The MIT Press, 2009. (3rd Edition);
Reference18-ShortestPathDP.pdf Chapter 6.8, 6.10 in "Algorithm Design" by J. Kleinberg, and E. Tardos, Pearson-Addison Wesley, 2005;
Reference19-AllPairShortestPathDP.pdf Chapter 25 in "Introduction to Algorithms" by T. Cormen, C. Leiserson, R. Rivest, C. Stein, The MIT Press, 2009. (3rd Edition);
Reference20-Heaps.pdf, Reference21-FibonacciHeaps.pdf Slide for Heap in Data Structure Class from Kevin Wayne @ Princeton;
Reference22-NetworkFlow.pdf Chapter 25 in "Introduction to Algorithms" by T. Cormen, C. Leiserson, R. Rivest, C. Stein, The MIT Press, 2009. (3rd Edition).
Lab05: Graph Algorithm (Due: 10:00am, 05/25/2022)
Lab Description: Lab05-Graph Algorithm.pdf
LaTeX Source of Lab05: Lab05-Graph Algorithm.tex, Fig-1.png, Fig-2.png, Fig-3.jpeg
Code Source of Lab05: Lab05-Telegram.cpp, Lab05-Telegram.in, Lab05-SHMetro.cpp, Lab05-SHMetro.in
Lab05-Solution: Lab05-Solution.pdf
Best Labs: Lab05-KaiLiu.pdf, Lab05-RongShan.pdf, Lab05-XunZhou.pdf
Best Codes: Lab05-Telegram-ShangfeiYang.cpp, Lab05-Telegram-YizhongQiu.cpp, Lab05-SHMetro-KaiLiu.cpp, Lab05-SHMetro-ShangfeiYang.cpp
The online judge of this programming problem is based on PTA platform. You can register an PTA account and then bind it according to this link to enter.
Poster
Reading Materials
Slide: Slide14-NPReduction.pdf (Print Version: 14-NPReduction.pdf)
Reference: Reference24-NPReduction.pdf Chapter 8 in "Algorithm Design" by J. Kleinberg, and E. Tardos, Pearson-Addison Wesley, 2005.
Music: The Longest Path (1988)
Lab06: NP Reduction (Due: 10:00am, 06/06/2022)
Lab Description: Lab06-NPReduction.pdf
LaTeX Source of Lab06: Lab06-NPReduction.tex
Lab06-Solution: Lab06-Solution.pdf
Best Labs: Lab06-KaiLiu.pdf, Lab06-WeihaoJiang.pdf, Lab06-ZhengxiangHuang.pdf
Poster
序号 (No.) |
队名 (Team Name) |
队员
一
(Member 1) |
队员
二
(Member 2) |
队员
三
(Member 3) |
助教 (TA) |
时间 (Time) |
1 | 啊对对队 | 肖真然 | 叶梓淳 | 龙马彪 | Fang | 09:30-09:45 |
2 | 双王流 | 刘立伟 | 王虹霖 | 王梓先 | Lyu | 09:30-09:45 |
3 | 做的全队 | 刘楷 | 黄正翔 | 单榕 | Fang | 09:45-10:00 |
4 | 这个做的队 | 张忠睿 | 张真 | 张昊琰 | Lyu | 09:45-10:00 |
5 | 算法小分队1 | 姚一航 | 裴禹乔 | 沈嘉路 | Fang | 10:00-10:15 |
6 | 跟算法做队 | 张伟伦 | 李知恒 | 张兆祥 | Lyu | 10:00-10:15 |
7 | 苟全性命于乱世 | 周迅 | 李腾 | 夏贤贤 | Fang | 10:15-10:30 |
8 | 啥队 | 薛雨滢 | 苏畅 | 陈彦宁 | Lyu | 10:15-10:30 |
9 | 对不队 | 郭潇 | 高然 | 赵智游 | Fang | 10:30-10:45 |
10 | swag bad | 闫泉林 | 卫雨禾 | 甘梓言 | Lyu | 10:30-10:45 |
11 | 算法小分队2 | 杨尚霏 | 白忱枫 | 黄霖 | Fang | 10:45-11:00 |
12 | 算法小分队3 | 邱以中 | 陳博謙 | 馮予讀 | Lyu | 10:45-11:00 |
13 | 算法小分队4 | 金子童 | 杨宇轩 | 刘嘉欣 | Fang | 11:00-11:15 |
14 | 算法小分队5 | 张杰 | 张露 | 蒋圩淏 | Lyu | 11:00-11:15 |
15 | 算法小分队6 | 张曦燃 | 姚元祺 | 解金洋 | Fang | 11:15-11:30 |
16 | 算法小分队7 | 彭乾煜 | 王凯俊 | 池天骏 | Lyu | 11:15-11:30 |
序号 (Number) |
姓名 (Name) |
加分时间 (Time) |
加分原因 (Reason) |
加分人 (Recorder) |
---|---|---|---|---|
1 | 金子童 | 02/16/2022 | 课堂书写Minimal Counterexample Principle例题 | 方泓杰 |
2 | 张忠睿 | 02/16/2022 | 课堂帮助书写Minimal Counterexample Principle例题 | 方泓杰 |
3 | 张曦然 | 02/23/2022 | 课堂上黑板做题目分析算法复杂度(Binary Search) | 石望华 |
4 | 单榕 | 02/23/2022 | 课堂上黑板做题目分析算法复杂度(Linear Search) | 石望华 |
5 | 刘楷 | 03/02/2022 | 课堂上黑板画n=16排序网络 | 方泓杰 |
6 | 王虹霖 | 03/07/2022 | 在线上课回答问卷星Quiz1 | 石望华 |
7 | 杨尚霏 | 03/26/2022 | Lab04-Q4 给出了更低复杂度的实现方法 | 石望华 |
8 | 李腾 | 03/30/2022 | 在线课堂回答拟阵例题 | 石望华 |
9 | 杨尚霏 | 04/18/2022 | 指出作业Lab04-Q3题目中的错误 | 吕佳霖 |
10 | 叶梓淳 | 04/20/2022 | 指出作业Lab04-Q1题目中的错误 | 吕佳霖 |
11 | 邱以中 | 06/20/2022 | 指出期末考试选择题第9题的错误 | 吕佳霖 |
12 | 杨尚霏 | 06/20/2022 | Lab05作业中正确求解第3题和第4题 | 吕佳霖 |