Algorithm and Complexity (2020) Class Website

 

Algorithm and Complexity (2020)

基本信息 (General Information)

Level: Undergraduate
Time & Place: 10:00 – 11:40, Monday & Thursday, Xia Yuan 413 (下院413)
Instructor:
  • Name: Xiaofeng Gao
  • Email: gao-xf(at)cs.sjtu.edu.cn
  • Office: Telecom Building 3-543
  • Phone: 021-34207407
Teaching Assistant:
  • Name: Yiming Liu (刘一鸣)
  • Email: lucien@sjtu.edu.cn
  • Office: SEIEE 3-328
  • Phone: 13262779116
  • Office Hour: 9:00 - 11:00, Tuesday
  • Name: Shuodian Yu (俞铄点)
  • Email: timplex233@sjtu.edu.cn
  • Office: SEIEE 3-328
  • Phone: 18721659971
  • Office Hour: 19:00 - 21:00, Monday
Back to Top     

课堂时间 (Course Schedule)

Back to Top

计划日程 (Syllabus)

Week

Date

Lecture Topic

Event

TA

1

Mar.02

Algorithm Design and Analysis (1)

Introduction of This Class, Basic Concepts, Time / Space Complexity, etc.

Lab-00

俞铄点

1

Mar.05

Algorithm Design and Analysis (2)

Sorting, Searching, and Selection (Deterministic & Randomized)

Lab-01

俞铄点

2

Mar.09

Divide-and-Conquer (1)

Mergesort, Selection, Master’s Theorem, etc.

刘一鸣

2

Mar.12

Divide-and-Conquer (2)

Sorting Network, etc.

Lab-02

刘一鸣

3

Mar.16

Greedy Approach (1)

Interval Scheduling, Interval Partitioning, Minimum Lateness, etc.

俞铄点

3

Mar.19

Greedy Approach (2)

Independent System, Matroid, etc.

Lab-03

俞铄点

4

Mar.23

Greedy Approach (3)

Matroid Example: Greedy-Max Algorithm, etc.

刘一鸣

4

Mar.26

Dynamic Programming (1)

Basic Dynamic Programming, etc.

Lab-04

刘一鸣

5

Mar.30

Dynamic Programming (2)

Weighted Interval Scheduling, Segmented Least Squares, Knapsack, etc.

俞铄点

5

Apr.02

Dynamic Programming (3) & Linear Programming (1)

RNA Secondary Structure, Sequence Alignment, Basic Form, etc.

Lab-05

俞铄点

6

Apr.06

National Holiday

6

Apr.09

Linear Programming (2)

Basic Form, Duality Theory, Simplex Algorithm, etc.

Lab-06

刘一鸣

7

Apr.13

Amortized Analysis (1)

Aggregate Analysis, Accounting Method, etc.

俞铄点

7

Apr.16

Amortized Analysis (2)

Potential Method, Dynamic Table, etc.

Lab-07

俞铄点

8

Apr.20

Graph Algorithms (1)

Basic Concepts, Minimum Spanning Tree, etc.

刘一鸣

8

Apr.23

Graph Algorithms (2)

Searching and Exploration.

Lab-08

刘一鸣

9

Apr.26

Graph Algorithms (3)

Single Source Shortest Paths (Greedy & DP), All-Pair Shortest Paths, etc.

俞铄点

9

Apr.27

Graph Algorithms (4)

Flow Problem, Maximum Flow, Minimum Cut, etc.

俞铄点

9

Apr.30

Turing Machine (1)

Computability, Turing Machine, etc.

Lab-09

俞铄点

10

May.04

National Holiday

刘一鸣

10

May.07

Turing Machine (2)

Turing Machine Variation, Computable & Decidable, etc.

Lab-10

刘一鸣

11

May.11

NP-Completeness (1)

NP class, Polynomial time, etc.

俞铄点

11

May.14

NP-Completeness (2)

Reducibility, Proofs, etc.

Lab-11

俞铄点

12

May.18

NP-Completeness (3)

Reducibility Examples, Proofs, etc.

刘一鸣

12

May.21

NP-Completeness (4)

Reducibility Examples, Proofs, etc.

刘一鸣

13

TBD

Final Exam

Back to Top

作业与课后阅读 (Assignments and Readings)

Lecture 0: Preliminary

Lecture 1: Algorithm Analysis

Lecture 2: Divide and Conquer

Lecture 3: Sorting Network

Lecture 4: Greedy Strategy

Lecture 5: Matroid

Lecture 6: Dynamic Programming

Lecture 7: Dynamic Programming Practice

Lecture 8: Linear Programming

Lecture 9: Amortized Analysis

Lecture 10: Graph Exploration

Lecture 11: Shortest Path

Lecture 12: Network Flow

Lecture 13: Turing Machine

Lecture14: NP and Reduction

Back to Top

提交引导 (Submission Guidelines)

  • 请登录右上角的JAccount进行作业提交,登录后可以下载课件、提交作业。
    Please log in by JAccountat the top right corner to download course materials and submit your homework.
  • 作业只能提交一个文档,如果有多个文档请放在一个文件夹里,将其压缩成.rar.zip文件。作业可以多次提交,每次上传版本会覆盖原来版本。可通过点击右上方“Check Hw.”一栏查看作业提交、成绩与反馈情况(建议下载检查上传版本)。
    You can only submit ONE document for each homework. If there are multiple documents, please put them inside a folder, and compress it in the form of .rar or .zip You can submit homework multiple times, while the original submitted version will be covered by the latest submitted one. You can click on “Check Hw.”at the top right corner to check the homework submission, grade, and feedback.(Suggestion: You can download your submitted homework to check it.)
  • 若已登录的情况下提示权限不足,请刷新或者注销后重新登录,若仍权限不足,请及时与助教联系。如出现无法提交、不懂操作、系统Bug等情况请与助教及时联系。
    If it shows that you do not have access after you log in, please refresh the webpage or re-log in again. If it still does not work, please contact teaching assistants in time. If you have other problems, e.g., you cannot or don’t know how to submit your homework, or find Bugs please contact your teaching assistants in time.
Back to Top

分组活动说明 (Group Project Description)

  • Grouping
    • Each group can have at most 3 persons.  
    • Please find your group member before 10:00am 04/30/2020 in our class.  
    • If you haven't found your group member by this ddl, then by default we consider that you choose random grouping.  
  • Project Description
  • Related Document

分组活动细节 (Group Project Detail)

序号
(No.)
队名
(Team Name)
队员 一
(Member 1)
队员 二
(Member 2)
队员 三
(Member 3)
成都数据
(Data 1)
海口数据
(Data 2)
1 蒜法带师 方泓杰 颜培深 薛春宇 2016/11/5 2017/10/11-10/14
2 爱卿 葛龙渊 郝宏坤 王星力 2016/11/17 2017/8/25-8/28
3 Huskies 薛昊天 卞思沅 刘一凡 2016/11/6 2017/10/7-10/10
4 9-9-6 罗旸 韦福韬 向谨溢 2016/11/7 2017/10/3-10/6
5 专业团队 刘畅 胡胜超 谢哲 2016/11/8 2017/9/30-10/2
6 不知叫什么好 武晨洋 林少雄 苏勇文 2016/11/9 2017/9/26-9/29
7 不会起名字队 侯晟元 陈牧遥 谢泽宇 2016/11/10 2017/9/22-9/25
8 Intrepid Charming Modeling 彭乐天 姚迪熙 李洪旭 2016/11/11 2017/9/18-9/21
9 anl.sjtu.edu.cn 卓建衡 华晟驿 闫家硕 2016/11/12 2017/9/14-9/17
10 Algo Team 1 KAR CHUN T... CHANYOUNG ... TAKEHIRO M... 2016/11/13 2017/9/10-9/13
11 1145141919810 王政栋 郑东林 姚以真 2016/11/14 2017/9/6-9/9
12 名字真难取 穆凡 唐嘉璇 杨涵章 2016/11/15 2017/9/2-9/5
13 上流社会 张靖炜 方志成 周烨彤 2016/11/16 2017/8/29-9/1
14 乌兹,永远滴神 曹俊翔 李森 吴仕渠 2016/11/4 2017/10/15-10/18
15 美很 赵梓淇 惠宇龙 魏逸飞 2016/11/18 2017/8/21-8/24
16 algiaorithm队 陈铮 白骐硕 贺知行 2016/11/19 2017/8/17-8/20
17 奥利给 汤学涵 严秉昊 陈梦实 2016/11/20 2017/8/13-8/16
18 不做完project不起名字 温一帆 朱佳栋 林超 2016/11/21 2017/8/9-8/12
19 Deep♂Dark♂Fantasy♂ 陈冲 黎学丞 张振东 2016/11/22 2017/8/5-8/8
20 Hello World 徐昕宇 王泽浩 刘旭 2016/11/23 2017/8/1-8/4
21 老师让我起个好名字 张一弛 焦壮壮 黄中钰 2016/11/24 2017/7/28-7/31
22 名字不重要 王翊辰 黄霖 龚玲禾 2016/11/25 2017/7/24-7/27
23 邪王真眼是最强的 刁义嘉 陈思远 周轾 2016/11/26 2017/7/20-7/23
24 Not Today ELIZAVETA ... LUDOVIC TA... YERNUR KAS... 2016/11/27 2017/7/16-7/19
25 取名癌晚期患者 田书翰 沈嘉辰 高文轩 2016/11/28 2017/7/12-7/15
26 算法小分队1 沈君陶 赵翔宇 白忱枫 2016/11/29 2017/7/8-7/11
27 算法小分队2 霍达 付益聪 AKBOTA KUA... 2016/11/30 2017/7/4-7/7
Back to Top

学生名册与课堂记录 (Roster and Event)

Back to Top

光荣榜 (Honor Roll)

序号
(Number)
姓名
(Name)
加分时间
(Time)
加分原因
(Reason)
加分人
(Recorder)
1 韦福韬 2020/02/22 指正Slide01-Proof中Proper Subset和Strict Subset的定义 高晓沨
2 方泓杰 2020/02/22 指正Slide01-Proof中强数学归纳法示例P(n)的指代 高晓沨
3 黄中钰 2020/02/24 指正Slide02-AlgorithmAnalysis中Bubble Sort的时间复杂度分析 高晓沨
4 方泓杰 2020/02/24 指正Slide02-AlgorithmAnalysis伪代码数组起始项、撰写渐进复杂度表格 高晓沨
5 苏勇文 2020/02/25 指正Slide02-AlgorithmAnalysis中LinearSearch的伪代码 俞铄点
6 方泓杰 2020/03/02 课堂回答Quiz问题 (Algorithm Analysis) 俞铄点
7 赵梓淇 2020/03/05 课堂回答Quiz问题 (Algorithm Analysis) 俞铄点
8 刘一凡 2020/03/07 指正Lab01中关于log的定义 (log默认为log_2,lg默认为log_10) 俞铄点
9 薛春宇 2020/03/10 分享主定理推导笔记 刘一鸣
10 方泓杰 2020/03/12 Best Lab for Lab00-Proof 刘一鸣
11 葛龙渊 2020/03/12 Best Lab for Lab00-Proof 刘一鸣
12 徐昕宇 2020/03/12 Best Lab for Lab00-Proof 刘一鸣
13 谢哲 2020/03/19 Best Lab for Lab01-AlgorithmAnalysis 俞铄点
14 惠宇龙 2020/03/19 Best Lab for Lab01-AlgorithmAnalysis 俞铄点
15 方泓杰 2020/03/19 Best Lab for Lab01-AlgorithmAnalysis 俞铄点
16 方泓杰 2020/03/20 证明 Disjoint Path Matroid正确性,并写出完整证明过程 刘一鸣
17 王泽浩 2020/03/20 提出Disjoint Path Matroid证明思路 刘一鸣
18 卓建衡 2020/03/20 提出Disjoint Path Matroid证明思路 刘一鸣
19 姚迪熙 2020/03/20 提出Disjoint Path Matroid证明思路 刘一鸣
20 黄中钰 2020/03/20 提出Disjoint Path Matroid证明思路 刘一鸣
21 方泓杰 2020/03/26 Best Lab for Lab02-DivideConquer 刘一鸣
22 侯晟元 2020/03/26 Best Lab for Lab02-DivideConquer 刘一鸣
23 卞思沅 2020/03/26 Best Lab for Lab02-DivideConquer 刘一鸣
24 方泓杰 2020/04/02 Best Lab for Lab03-GreedyStrategy 俞铄点
25 韦福韬 2020/04/02 Best Lab for Lab03-GreedyStrategy 俞铄点
26 惠宇龙 2020/04/02 Best Lab for Lab03-GreedyStrategy 俞铄点
27 周烨彤 2020/04/09 Best Lab for Lab04-Matroid 刘一鸣
28 胡胜超 2020/04/09 Best Lab for Lab04-Matroid 刘一鸣
29 方泓杰 2020/04/09 Best Lab for Lab04-Matroid 刘一鸣
30 薛春宇 2020/04/09 指出Slide08-Linear Programming中ILP里整数和自然数使用混淆的错误 刘一鸣
31 王星力 2020/04/09 指出Slide07-Dynamic Programming中斜边权值的错误 刘一鸣
32 KAR CHUN TEONG 2020/04/09 课堂回答Quiz问题 (Linear Programming) 刘一鸣
33 苏勇文 2020/04/16 Best Lab for Lab05-DynamicProgramming 俞铄点
34 武晨洋 2020/04/16 Best Lab for Lab05-DynamicProgramming 俞铄点
35 方泓杰 2020/04/16 Best Lab for Lab05-DynamicProgramming 俞铄点
36 方泓杰 2020/04/23 Best Lab for Lab06-LinearProgramming 刘一鸣
37 苏尧 2020/04/23 Best Lab for Lab06-LinearProgramming 刘一鸣
38 赵梓淇 2020/04/23 Best Lab for Lab06-LinearProgramming 刘一鸣
39 彭乐天 2020/04/23 课堂回答Quiz问题 (BFSDFS) 刘一鸣
40 杨涵章 2020/04/23 指正Lab08中1.c无向图Dist关系 刘一鸣
41 焦壮壮 2020/04/28 指正lab06第二题答案的问题 刘一鸣
42 方泓杰 2020/04/30 Best Lab for Lab07-Amortized Analysis 俞铄点
43 吴仕渠 2020/04/30 Best Lab for Lab07-Amortized Analysis 俞铄点
44 谢哲 2020/04/30 Best Lab for Lab07-Amortized Analysis 俞铄点
45 郝宏坤 2020/04/30 课堂回答Quiz问题 (Turing Machine) 俞铄点
46 方泓杰 2020/05/07 Best Lab for Lab08-GraphExploration 刘一鸣
47 向谨溢 2020/05/07 Best Lab for Lab08-GraphExploration 刘一鸣
48 周烨彤 2020/05/07 Best Lab for Lab08-GraphExploration 刘一鸣
49 卓建衡 2020/05/14 课堂回答Hamilton Cycle问题 (NP Reduction) 俞铄点
50 方泓杰 2020/05/14 课堂回答Hamilton Cycle问题 (NP Reduction) 俞铄点
51 华晟驿 2020/05/14 Best Lab for Lab09-NetworkFlow 俞铄点
52 张一弛 2020/05/14 Best Lab for Lab09-NetworkFlow 俞铄点
53 方泓杰 2020/05/14 Best Lab for Lab09-NetworkFlow 俞铄点
54 陈铮 2020/05/25 Best Lab for Lab10-TuringMachine 刘一鸣
55 王星力 2020/05/25 Best Lab for Lab10-TuringMachine 刘一鸣
56 方泓杰 2020/05/25 Best Lab for Lab10-TuringMachine 刘一鸣
57 方泓杰 2020/05/31 Best Lab for Lab11-NPReduction 俞铄点
58 薛昊天 2020/05/31 Best Lab for Lab11-NPReduction 俞铄点
59 赵梓淇 2020/05/31 Best Lab for Lab11-NPReduction 俞铄点
60 薛昊天 2020/06/16 绘制n=3, k=3时3D-MATCHING下的规约 俞铄点
61 方泓杰 2020/06/16 绘制n=3, k=3时3D-MATCHING下的规约 俞铄点
62 卞思沅 2020/06/16 绘制n=3, k=3时3D-MATCHING下的规约 俞铄点
63 黄中钰 2020/06/16 绘制n=3, k=3时3D-MATCHING下的规约 俞铄点
64 颜培深 2020/06/16 绘制n=3, k=3时3D-MATCHING下的规约 俞铄点
65 焦壮壮 2020/06/16 绘制n=3, k=3时3D-MATCHING下的规约 俞铄点
66 苏勇文 2020/06/17 视频组字幕制作校对 俞铄点
67 李洪旭 2020/06/17 视频组字幕制作校对 俞铄点
68 姚迪熙 2020/06/17 视频组字幕制作校对 俞铄点
69 龚玲禾 2020/06/17 视频组视频剪辑 俞铄点
70 颜培深 2020/06/17 视频组视频剪辑 俞铄点
71 张振东 2020/06/17 视频组视频剪辑 俞铄点
72 黎学丞 2020/06/19 指正 Slide16-NPReduction中的错误 刘一鸣
Back to Top

引用材料 (Reference)

  • Textbooks
    • T. Cormen, C. Leiserson, R. Rivest, C. Stein, Introduction to Algorithms, MIT Press, 2009.
    • J. Kleinberg, and E. Tardos, Algorithm Design, Pearson-Addison Wesley, 2005.
    • S. Dasgupta, C. Papadimitriou, U. Vazirani, Algorithm, McGraw-Hill, 2007.
  • Algorithm
    • M. H. Alsuwaiyel, Algorithm Design Technique and Analysis, World Scientific, 1999.
    • Alfred V. Aho, John E Hopcroft, Jeffery D. Ullman, The Design and Analysis of Computer Algorithms, Addison-Wesley, 1974.
    • Udi Manber, Introduction to Algorithms: A Creative Approach, Addison-Wesley, 1989.
    • Henming Zou, The Way of Algorithms, China Machine Press, 2010.
  • Computational Complexity
    • Christos Papadimitriou, Computational Complexity, Addison Wesley, 1994.
    • Theory of Computational Complexity, by Ding-Zhu Du, and Ker-I Ko, published by John Wiley & Sons, Inc., 2000.
    • John Martin, Introduction to Languages and the Theory of Computation, McGraw-Hill, 2002.
    • Computational Complexity: A Modern Approach, by Sanjeev Arora and Boaz Barak, Cambridge University Press, 2006.
  • Approximation
    • Vijay V. Vazirani, Approximation Algorithms, Springer-Verlag, 2001.
    • D.P. Williamson and D.B. Shmoys, The Design of Approximation Algorithms, 2011.
    • D.Z Du, K-I. Ko, X.D. Hu, Design and Analysis of Approximation Algorithms, 2012.
  • Acknowledgement
    • Special thanks is given to Prof. Kevin Wayne, Prof. Charles E. Leiserson, Prof. Salah E. Elmaghraby, Prof. Neeraj Mittal, Prof. Ding-Zhu Du, Prof. Yuxi Fu, Prof. Yijia Chen, Prof. Pinyan Lu, Dr. Xiaojuan Cai for sharing their teaching materials.
Back to Top