Shortest path problem
In graph theory, the single source shortest path problem is the following: Given a weighted graph, (that is a set N of nodess, a set E of edgess and a real-valued function f : E -> R), and given further two elements n, n' of N, find a path P from n to n', so that
A solution to the shortest path problem is sometimes called a "pathing algorithm". The most important algorithms for solving this problem are:
- Dijkstra's algorithm - solves single source problem if all edge weights are greater than or equal to zero. Without worsening the run time, this algorithm can in fact compute the shortest paths from a given start point s to all other nodes.
- Bellman-Ford algorithm - solves single source problem if edge weights may be negative.
- A* algorithm (or A* pathing algorithm) - a heuristic for single source shortest paths.
- Floyd-Warshall algorithm - solves all pairs shortest paths.
- Johnson's algorithm - solves all pairs shortest paths, may be faster than Floyd-Warshall on sparse graphs.