2 Dijkstra’s Algorithm
Djikstra’s algorithm solves the problem of finding the shortest path from a source to a destination.
It turns out that one can find the shortest paths from a given source to all vertices in a graph in
the same time; hence, this problem is sometimes called the single-source shortest paths problem.
In fact, this algorithm can be used to deliver the set of edges connecting all vertices such that the
sum of the edge lengths from the source to each node is minimized.
For each vertex v 2 V , Dijkstra’s algorithm maintains an attribute ±[v], which is an upper
bound on the weight of a shortest path from the source to v. We call ±[v] a shortest-path estimate.
Initially, the shortest-path estimates of all vertices other than the source are set to be 1. Dijkstra’s
algorithm also maintains a set S of vertices whose final shortest-path weights from the source have
not yet been determined. The algorithm repeatedly selects the vertex u 2 S with the minimum
shortest-path estimate, and re-evaluates the shortest-path estimates of the vertices adjacent to u.
The re-evaluation is often referred to as a relaxation step. Once a vertex is removed from S, its
shortest-path weight from the source is determined and finalized.
reachable from the source, the shortest-path weights are well defined. Thus when talking about the