We have evolved a classification scheme to characterize algorithms for solving shortestpath problems. The algorithms are classified according t o (A) the problem type, i.e., the question being asked about the given network; (B) the input type, i.e., the salient features of the given network which impact on the design of the algorithm and selection of data structures; and (C) the type of underlying technique employed t o solve the problem. An annotated bibliography of 79 selected references on shortest-path algorithms is included. We have also provided a more complete listing of 222 references carefully culled out of a larger body of literature on shortest-path algorithms through the year 1979.
DefinitionsA directed graph G = ( V , E ) consists of a finite set V of nodes and a finite set E of arcs. We will use n and e to denote the number of elements in V and E , respectively.The node set is assumed to have elements { 1, 2, . . . , n } . An arc a in E is an ordered pair (u, u ) of nodes. We say that a = (u, u) is directed from u t o u, and we also say a begins at u and ends at u. The indegree of a node u is the number of arcs in E that end at u . The outdegree of a node u is the number of arcs in E that begin at u. A directed network (or simply network) is a directed graph G together with a real-valued function l on the set of arcs. For any arc a, l(a) is called the arc length (or weight) of a . A positive arc is an arc with a positive arc length, and a negative arc is an arc with SHORTEST-PATH ALGORITHMS 277 SHORTEST PATH PROBLEMS . \ ALGEBRAICALLY RELATED PROBLEMS \ WITH CYCLES FIG. 1. Classification of shortest-path problems.a negative arc length. The weight matrix or arc length matrix (or adjacency matrix, if all edges have unit weight) of a network is an n X n matrix whose (u, u)th entry equals Z(u, u) if the arc (u, u) exists, and equals infinity otherwise. An undirected network is a network that has a symmetric arc length matrix. A path is a finite sequence of arcs P = ( a l , a?, . . . , ak), such that ai starts where ai-l ends, for i = 2, . . . , k. The individual arcs, the q ' s , are called the tracks of P. The path length (or simply length) of P is defined to be d(P) = l(al ) t . * t l(ak). If ai = ui) for i = 1 , . . . , k , the path P is also denoted by the node sequence (uo, u l , . . . , uk); uo is called the source (or origin) of P, uk is called the destination of P, and P is called a path from uo to uk. P is simple if uf # ul for all i # j . P is a cycle if uo = uk. A cycle with negative path length is a negative cycle. Pis a shortest path from u to u if d(P) is the minimum length of any path from u to u; in this case, d(P) is the shortest distance from u to u. The shortest distance matrix is an n X n matrix whose (u, u)th entry is the shortest distance from u to u. Note that there may be more than one shortest path from u to u. Therefore one talks of a shortest path but the shortest distance from x toy. When track sequence of a shortest path is emphasized some authors use the term shortest route...