An efficient implementation of an algorithm for finding K shortest simple paths

In this article, we present an efficient computational implementation of an algorithm for finding the K shortest simple paths connecting a pair of vertices in an undirected graph with n vertices, m arcs, and nonnegative arc lengths. A minimal number of intermediate paths is formed based on the method of Katoh, Ibaraki and Mine [Networks 12 (1982), 411–427], which has the lowest worst-case complexity of O(n2) among all other existing algorithms for this problem. A theoretical description of the algorithm is presented with detailed explanations and some examples of the more complicated steps. Efficient data structures for storing and retrieving a large number of paths are given. The results of wide-ranging experimentation with a large number of randomly generated graphs of varying size and density confirm the linear dependency of computing time on K, as proven in Katoh et al., and the quadratic dependency of computing time on graph size as suggested by the worst-case computational complexity. © 1999 John Wiley & Sons, Inc. Networks 34: 88–101, 1999

[1]  Mikkel Thorup,et al.  Undirected single source shortest paths in linear time , 1997, Proceedings 38th Annual Symposium on Foundations of Computer Science.

[2]  Eric Ruppert,et al.  Finding the k Shortest Paths in Parallel , 1997, Algorithmica.

[3]  Nicos Christofides,et al.  A new exact algorithm for the vehicle routing problem based onq-paths andk-shortest paths relaxations , 1995, Ann. Oper. Res..

[4]  David Eppstein,et al.  Finding the k shortest paths , 1994, Proceedings 35th Annual Symposium on Foundations of Computer Science.

[5]  Y. L. Chen,et al.  Finding the k Quickset Simple Paths in a Network , 1994, Inf. Process. Lett..

[6]  Gen-Huey Chen,et al.  Algorithms for the constrained quickest path problem and the enumeration of quickest paths , 1994, Comput. Oper. Res..

[7]  E. Martins,et al.  An algorithm for the ranking of shortest paths , 1993 .

[8]  Teodor Gabriel Crainic,et al.  Shortest path algorithms: A computational study with the C programming language , 1991, Comput. Oper. Res..

[9]  J. Ben Rosen,et al.  Algorithms for the quickest path problem and the enumeration of quickest paths , 1991, Comput. Oper. Res..

[10]  Shih-Miao Chin,et al.  Computing k-shortest path for nuclear spent fuel highway transportation , 1991 .

[11]  D. Willard,et al.  Trans-dichotomous algorithms for minimum spanning trees and shortest paths , 1990, Proceedings [1990] 31st Annual Symposium on Foundations of Computer Science.

[12]  Donald Goldfarb,et al.  Efficient Shortest Path Simplex Algorithms , 1990, Oper. Res..

[13]  Fred W. Glover,et al.  New Sharpness Properties, Algorithms and Complexity Bounds for Partitioning Shortest Path Procedures , 1989, Oper. Res..

[14]  Bruce L. Golden,et al.  Solvingk-shortest and constrained shortest path problems efficiently , 1989 .

[15]  S.-P. Chan,et al.  An electrical method for finding suboptimal routes , 1989, IEEE International Symposium on Circuits and Systems,.

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

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

[18]  Aarni Perko,et al.  Implementation of algorithms for K shortest loopless paths , 1986, Networks.

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

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

[21]  E. Martins An algorithm for ranking paths that may contain cycles , 1984 .

[22]  Narsingh Deo,et al.  Shortest-path algorithms: Taxonomy and annotation , 1984, Networks.

[23]  Toshihide Ibaraki,et al.  An efficient algorithm for K shortest simple paths , 1982, Networks.

[24]  U. Pape,et al.  Algorithm 562: Shortest Path Lengths [H] , 1980, TOMS.

[25]  G. J. Horne,et al.  Finding the K Least Cost Paths in an Acyclic Activity Network , 1980 .

[26]  Douglas R. Shier,et al.  On algorithms for finding the k shortest paths in a network , 1979, Networks.

[27]  Bennett L. Fox,et al.  Data Structures and Computer Science Techniques in Operations Research , 1978, Oper. Res..

[28]  Dirck Van Vliet,et al.  IMPROVED SHORTEST PATH ALGORITHMS FOR TRANSPORT NETWORKS , 1978 .

[29]  Donald B. Johnson,et al.  Efficient Algorithms for Shortest Paths in Sparse Networks , 1977, J. ACM.

[30]  Douglas R. Shier,et al.  Computational experience with an algorithm for finding the k shortest paths in a network , 1974 .

[31]  E. Minieka,et al.  A Note on an Algebra for the k Best Routes in a Network , 1973 .

[32]  E. Lawler A PROCEDURE FOR COMPUTING THE K BEST SOLUTIONS TO DISCRETE OPTIMIZATION PROBLEMS AND ITS APPLICATION TO THE SHORTEST PATH PROBLEM , 1972 .

[33]  J. Y. Yen Finding the K Shortest Loopless Paths in a Network , 1971 .

[34]  Stuart E. Dreyfus,et al.  An Appraisal of Some Shortest-Path Algorithms , 1969, Oper. Res..

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

[36]  Richard Pavley,et al.  A Method for the Solution of the Nth Best Path Problem , 1959, JACM.

[37]  Dimitri P. Bertsekas,et al.  A simple and fast label correcting algorithm for shortest paths , 1993, Networks.

[38]  Yen-Liang Chen,et al.  An algorithm for finding the k quickest paths in a network , 1993, Comput. Oper. Res..

[39]  Donald Goldfarb,et al.  Shortest path algorithms using dynamic breadth-first search , 1991, Networks.

[40]  Christopher C. Skiscim,et al.  Computing k-shortest path lengths in euclidean networks , 1987, Networks.

[41]  Alfred V. Aho,et al.  Data Structures and Algorithms , 1983 .

[42]  Douglas R. Shier,et al.  Iterative methods for determining the k shortest paths in a network , 1976, Networks.

[43]  Ahnont Wongseelashote,et al.  An algebra for determining all path-values in a network with application to K-shortest-paths problems , 1976, Networks.

[44]  J. W. Suurballe Disjoint paths in a network , 1974, Networks.