Section-3 Shortest Path
第3节 最短路径
- BellmanFord - BellmanFord算法
- Dijkstra - Dijkstra算法
- FloydWarshall - FloydWarshall算法
- DifferentConstraints - 差分约束
最短路径(Shortest Path)/松弛操作(Relaxation)
图中所有边都拥有一个正整数距离,若从顶点可以到达,必然存在一条距离最短的路径,即最短路径。最短路径中不存在环。
存在边的距离为0,或负值的图不存在最短路径。距离为0的边可以无限重复使用而不会增加两顶点之间的距离,距离为负值的边可以减小整个路径的距离,这些情况都会让最短路径中出现环。
用表示顶点到达的最短距离(表示到的距离为无限远,即不可达)。当存在顶点满足:
说明经由到达的距离比当前已知的最短路径距离更近,这时更新之间的距离:
下图演示了一个最简单的松弛操作:
该更新过程即为松弛操作,松弛操作是最短路径算法的主要手段。