相关笔记

概览

全章围绕所有结点对的最短路径(All-Pairs Shortest Paths, APSP)问题展开。首先建立最短路径与矩阵乘法的联系,利用逐步扩展重复平方策略得到 的算法(23.1);然后介绍经典的Floyd-Warshall算法,通过动态规划在 时间内求解(23.2);最后针对稀疏图,Johnson算法通过重赋权技术将Bellman-Ford与Dijkstra结合,达到 的时间复杂度(23.3)。全章的核心主线是 如何高效计算所有顶点对之间的最短路径——三种算法分别适用于不同的图密度场景。


知识结构总览

flowchart TD
    A["第23章 所有结点对的最短路径"] --> B["23.1 矩阵乘法方法"]
    A --> C["23.2 Floyd-Warshall"]
    A --> D["23.3 Johnson算法"]

    B --> B1["逐步扩展 L^(m)"]
    B --> B2["EXTEND-SHORTEST-PATHS"]
    B --> B3["SLOW: O(V⁴)"]
    B --> B4["FAST: O(V³ lg V)"]

    C --> C1["动态规划 d^(k)"]
    C --> C2["中间顶点k"]
    C --> C3["传递闭包"]
    C --> C4["O(V³)"]

    D --> D1["重赋权 w'"]
    D --> D2["Bellman-Ford计算h"]
    D --> D3["V次Dijkstra"]
    D --> D4["O(V²lg V + VE)"]

    B --> C
    C --> D

核心概念回顾

三种算法对比

比较维度矩阵乘法(FAST)Floyd-WarshallJohnson
时间复杂度
适用图一般有向图一般有向图一般有向图
负权边✅ 支持✅ 支持✅ 支持
负权环不检测✅ 可检测✅ 可检测
核心思想重复平方+矩阵乘法动态规划(中间顶点)重赋权+V次Dijkstra
稀疏图优势✅ 显著优于FW
稠密图优势✅ 实现简单
空间

算法选型指南

根据图密度选择算法

  • 稠密图(边数接近 ):Floyd-Warshall,复杂度为 V 的三次方,实现简单
  • 稀疏图(边数远小于 ):Johnson,利用 Dijkstra 优势
  • 需要传递闭包:Floyd-Warshall 的变体直接计算

核心递推关系

逐步扩展(23.1)

Floyd-Warshall(23.2)

Johnson重赋权(23.3)

,其中


跨章关联

与第22章(单源最短路径)的关系

第22章算法第23章应用
Bellman-FordJohnson算法第一阶段:计算重赋权函数
DijkstraJohnson算法第二阶段:对每个顶点运行Dijkstra
松弛操作所有APSP算法的基础操作

与第4章(分治策略)的关系

  • 矩阵乘法方法中的重复平方策略本质上是分治思想的应用
  • Strassen矩阵乘法可进一步优化矩阵乘法方法的常数因子
  • vs (Strassen优化)

与第21章(最小生成树)的关系

  • MST的Prim算法与SSSP的Dijkstra算法结构相似(已在第22章讨论)
  • APSP问题与MST问题都是图论中的经典”全局”优化问题

综合复习题


常见误区

误区1:Floyd-Warshall只能处理非负权图

正确理解:Floyd-Warshall可以处理负权边(不像Dijkstra)。它还能检测负权环(检查 )。只有当存在负权环时,某些顶点对的最短路径无定义。

误区2:Johnson算法的时间复杂度总是优于Floyd-Warshall

正确理解:仅在稀疏图上Johnson更优。在稠密图()上,两者均为 ,且Floyd-Warshall的常数因子更小。

误区3:矩阵乘法方法比Floyd-Warshall更好

正确理解:FAST-ALL-PAIRS-SHORTEST-PATHS的 比 Floyd-Warshall的 多了一个 因子。矩阵乘法方法的理论价值在于揭示了最短路径与矩阵乘法的联系,以及Strassen优化的可能性,但在实际应用中Floyd-Warshall更常用。


学习要点总结

学习目标掌握程度对应笔记
逐步扩展性质与EXTEND操作掌握23.1 最短路径与矩阵乘法
重复平方策略掌握23.1 最短路径与矩阵乘法
Floyd-Warshall递推与正确性熟练23.2 Floyd-Warshall算法
传递闭包的计算掌握23.2 Floyd-Warshall算法
Johnson重赋权技术熟练23.3 稀疏图的Johnson算法
Johnson正确性证明掌握23.3 稀疏图的Johnson算法
三种算法的选型依据熟练全章

参见Wiki

概念页尚未创建