Shortest path algorithms: A computational study with the C programming language

Abstract The main purpose of this study is to evaluate the computational efficiency of algorithms for calculating shortest paths when they are correctly coded by using the C programming language. The eight algorithms that we selected for this experiment are the most efficient, either measured in terms of worst-case bounds or marked as such from previous computational studies; they include the redistributive heap algorithm. We suggest computer implementations that use the full power of C. In particular, the network representation and the various data structures used to keep the scan eligible list may be managed by using only additions and no multiplications, while it is not possible with FORTRAN. These capabilities, unique to C, yield several interesting conclusions: one may expect to speed up a shortest path algorithm by a factor of 20%; in some cases, this factor may reach 30%. Interestingly, the level of programming difficulty required to achieve these benefits is not greater than that required by implementations using arrays.

[1]  Ming S. Hung,et al.  A computational study of efficient shortest path algorithms , 1988, Comput. Oper. Res..

[2]  Fred W. Glover,et al.  A New Polynomially Bounded Shortest Path Algorithm , 1985, Oper. Res..

[3]  Giorgio Gallo,et al.  Shortest path algorithms , 1988, Handbook of Optimization in Telecommunications.

[4]  Kurt Mehlhorn,et al.  Faster algorithms for the shortest path problem , 1990, JACM.

[5]  Fred W. Glover,et al.  Computational study of an improved shortest path algorithm , 1984, Networks.

[6]  E. Denardo,et al.  Shortest-Route Methods: 1. Reaching, Pruning, and Buckets , 1979, Oper. Res..

[7]  Alfred V. Aho,et al.  The Design and Analysis of Computer Algorithms , 1974 .

[8]  U. Pape,et al.  Implementation and efficiency of Moore-algorithms for the shortest route problem , 1974, Math. Program..

[9]  Douglas R. Shiert,et al.  Properties of Labeling Methods for Determining Shortest Path Trees , 1981 .

[10]  Robert E. Tarjan,et al.  Fibonacci heaps and their uses in improved network optimization algorithms , 1984, JACM.

[11]  G. Gallo,et al.  SHORTEST PATH METHODS: A UNIFYING APPROACH , 1986 .

[12]  Robert E. Tarjan,et al.  Data structures and network algorithms , 1983, CBMS-NSF regional conference series in applied mathematics.

[13]  F. Glover,et al.  A computational analysis of alternative algorithms and labeling techniques for finding shortest path trees , 1979, Networks.

[14]  Edsger W. Dijkstra,et al.  A note on two problems in connexion with graphs , 1959, Numerische Mathematik.

[15]  F. Glover,et al.  New Polynomial Shortest Path Algorithms and Their Computational Attributes , 1985 .

[16]  Brian W. Kernighan,et al.  The state of C , 1988 .

[17]  Robert B. Dial,et al.  Algorithm 360: shortest-path forest with topological ordering [H] , 1969, CACM.

[18]  L. R. Ford,et al.  NETWORK FLOW THEORY , 1956 .

[19]  Richard Bellman,et al.  ON A ROUTING PROBLEM , 1958 .

[20]  Ellis L. Johnson On shortest paths and sorting , 1972, ACM Annual Conference.