Bellman-Ford算法简介
Bellman-Ford算法是一种用于计算加权图中单源最短路径的算法。与Dijkstra算法相比,Bellman-Ford算法可以处理含有负权边的图,但不能处理含有负权回路的图。该算法的基本思想是通过松弛操作不断更新每个顶点到源点的最短路径估计值,直到不再发生更新为止。
Bellman-Ford算法步骤
- 初始化:将源点到自身的距离设置为0,其余所有顶点到源点的距离设置为无穷大。
- 松弛操作:对于每一条边,检查是否可以通过该边更新任何顶点到源点的距离。如果可以,则执行更新。
- 重复松弛:重复步骤2,通常进行 次,其中 是顶点的数量。这是因为在无负权回路的情况下,最长的简单路径不会超过 条边。
|V| - 1
|V|
|V| - 1