GraphTheory[BellmanFordAlgorithm] - find the cheapest weighted path using the Bellman-Ford algorithm
|
Calling Sequence
|
|
BellmanFordAlgorithm(G, s, t)
BellmanFordAlgorithm(G, s, T)
BellmanFordAlgorithm(G, s)
|
|
Parameters
|
|
G
|
-
|
a graph, unweighted, or weighted with no negative cycles
|
s, t
|
-
|
vertices of the graph G
|
T
|
-
|
list of vertices of the graph G
|
|
|
|
|
Description
|
|
•
|
The BellmanFordAlgorithm uses the Bellman-Ford algorithm to find the cheapest weighted path from s to t.
|
•
|
If G is an unweighted graph, the edges are assumed all to have weight 1.
|
•
|
In the second calling sequence where T is a list of vertices of G, this is short for , except that the algorithm does not need to recompute cheapest paths.
|
•
|
In the third calling sequence where no destination vertices are given, this is short for BellmanFordAlgorithm(G,s, Vertices(G)), and the cheapest path from s to every vertex in G is output.
|
•
|
To compute distances between all pairs of vertices simultaneously, use the AllPairsDistance command. To ignore edge weights (and use a faster breadth-first search), use the ShortestPath command.
|
•
|
Note that G can have no negative cycles, which also means that any edges with negative weights must be directed (as otherwise the undirected negative weight edge forms a negative weight cycle between the vertices it connects). If G has no negative edge weights, DijkstrasAlgorithm may be able to find the cheapest paths more efficiently.
|
|
|
Examples
|
|
>
|
|
>
|
|
| (1) |
>
|
|
| (2) |
>
|
|
| (3) |
>
|
|
>
|
|
| (4) |
>
|
|
| (5) |
|
|
Download Help Document
Was this information helpful?