全部课程/CS170

CS170:高效算法与难解问题

以本地 Fall 2023 资料为权威来源,系统学习分治、图算法、贪心、动态规划、线性规划、网络流与 NP 完全性;收录 13 份 Discussion、14 份 Homework 及本地官方解答。

面对越来越大的输入,怎样同时证明算法会停、答案正确,并让代价增长得足够慢?

加州大学伯克利分校John Wright、Nika Haghtalab2023 年秋季10 讲官方课程 ↗

从这里开始

序言:算法、斐波那契与渐近分析

已完成 0 / 10 讲 · 记录保存在当前浏览器
开始学习

学习进度

0 / 10讲义已完成

已完成 0 / 27 份实践
由你确认,不自动标记

课程地图

  1. 1算法与分治第 1–3 讲

    怎样把问题拆成可计算的部分?

  2. 2图与贪心第 4–6 讲

    局部选择何时保证全局正确?

  3. 3状态与优化第 7–8 讲

    怎样表示并优化可行解?

  4. 4复杂性边界第 9–10 讲

    哪些问题无法期待高效精确解?

三种学习方式

学习

读讲义,理解原理与机制。
明确输入、候选解、递推或图上的局部选择。

查看讲义

思考

做讨论题,自己推一遍。
在每次迭代、分治或交换论证后检查正确性为何仍成立。

查看讨论

实践

用工作簿与实验验证方法。
改变权重或输入规模,测试贪心、复杂度与最优性边界。

查看实践

课程讲义

算法与分治

怎样把问题拆成可计算的部分?

  1. 01序言:算法、斐波那契与渐近分析讲义
  2. 02数值算法讲义
  3. 03分治算法讲义

图与贪心

局部选择何时保证全局正确?

  1. 04图的分解与遍历讲义
  2. 05图上的路径讲义
  3. 06贪心算法讲义

状态与优化

怎样表示并优化可行解?

  1. 07动态规划讲义
  2. 08线性规划与网络流讲义

复杂性边界

哪些问题无法期待高效精确解?

  1. 09NP 完全问题讲义
  2. 10应对 NP 完全性讲义

思考 · 讨论工作簿

先预测,再动手推,最后对照解析。

  1. 01讨论课 1:渐近分析、递推关系与分治工作簿
  2. 03讨论 2工作簿
  3. 05讨论 3工作簿
  4. 07CS 170 2023 年秋季学期 Discussion 4:图简答与双连通分量工作簿
  5. 09讨论课 5工作簿
  6. 11Prim 算法与集合覆盖工作簿
  7. 13讨论 7工作簿
  8. 15讨论课 8:最长公共子序列工作簿
  9. 17讨论课 9工作簿
  10. 19讨论 10:零和博弈与归约工作簿
  11. 21讨论课 11:NP 完全性工作簿
  12. 23讨论课 12:NP 完全性归约与进阶话题工作簿
  13. 25讨论 13:随机算法分析与近似算法工作簿

实践 · 工作簿与实验

把理解落到可检查的推导、测试与实现证据。

  1. 02CS 170 2023 年秋季作业 1工作簿
  2. 04CS 170 2023年秋季 作业2工作簿
  3. 06作业 3工作簿
  4. 08UC Berkeley CS 170 2023年秋季 作业 4工作簿
  5. 10CS 170 2023 年秋季学期 作业 5(选做)工作簿
  6. 12CS 170 作业 6工作簿
  7. 14CS 170 2023年秋季 作业7:动态规划工作簿
  8. 16CS 170 2023年秋季 作业8工作簿
  9. 18作业 9工作簿
  10. 20UC Berkeley CS 170 Fall 2023 作业 10(选做)工作簿
  11. 22作业 11工作簿
  12. 24作业 12工作簿
  13. 26UC Berkeley CS 170 Fall 2023 作业 13工作簿
  14. 27CS 170 2023 年秋季作业 14(选做)工作簿