课程主页: https://www.coursera.org/learn/advanced-algorithms-and-complexity
在之前的在线专业课程中,你已经学习了基础算法,现在你准备进入更加复杂的问题和算法领域进行深入探索。本课程《高级算法与复杂性》正是为此而设计的,它建立在基础算法的基础上,并引入了一些新的思路。
首先,我们将介绍网络流,这在许多现实世界的场景中都非常常见,例如在高速公路上运输货物或在互联网上路由数据包。在本单元中,我们将讨论网络流的数学基础和一些重要的流算法。与此同时,我们还将给出一些与我们学到的网络流知识相关的惊人例子。
接下来,我们将学习线性规划。这是一种非常强大的算法工具,可以用来优化一些线性函数,受限于某些线性不等式的系统。线性规划不仅适用于流问题,还可以用于优化生产过程、寻找实现健康饮食的最低成本等多种问题。本单元将着重讨论线性规划的重要性及其解决问题的工具。
本课程的一大亮点是NP-完全问题的学习。尽管你之前学过的一些算法在实践中仍然有效,但许多现实问题并没有已知的有效算法。这些问题通常可以归约为经典的NP-完全问题,这些问题要么无法用多项式算法解决,要么解决它们中的任何一个就能赢取一百万美元的奖金(见千禧年奖金问题)和全球声誉。在这一模块中,你将研究经典的NP-完全问题及其之间的归约,同时实践如何使用高效的专用软件来解决这些在难度上有挑战性的问题。
为了应对NP-完全性的问题,课程的后半部分将展示如何在特定情况下找到有效的多项式时间解决方案。我们将探索一些比暴力算法更快的精确算法,最后介绍近似算法,这些算法在多项式时间内找到接近最优的解决方案。
如果你希望了解在大数据分析中处理流输入的算法,课程还提供了一个可选单元:流算法。在这一单元中,我们讨论了流计算模型及其在设计和推理方面的应用,尤其是如何在大数据环境中维护输入流的小型摘要。
总体而言,《高级算法与复杂性》课程极大地扩展了之前你所学的基础算法知识,为解决实际问题提供了新的视角和工具。对于希望进一步提升算法能力的学习者来说,这是一个极好的选择。
课程主页: https://www.coursera.org/learn/advanced-algorithms-and-complexity