Finding the k Shortest Paths

We give algorithms for finding the k shortest paths (not required to be simple) connecting a pair of vertices in a digraph. Our algorithms output an implicit representation of these paths in a digraph with n vertices and m edges, in time O(m + n log n + k). We can also find the k shortest paths from a given source s to each vertex in the graph, in total time O(m + n log n + kn). We describe applications to dynamic programming problems including the knapsack problem, sequence alignment, maximum inscribed polygons, and genealogical relationship discovery.

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

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

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

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

[5]  Edward Minieka,et al.  On computing sets of shortest paths in a graph , 1974, Commun. ACM.

[6]  A. Bakó,et al.  All paths in an activity network , 1976 .

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

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

[9]  Eugene L. Lawler Comment on a computing the k shortest paths in a graph , 1977, CACM.

[10]  Yehoshua Perl,et al.  Finding Two Disjoint Paths Between Two Pairs of Vertices in a Graph , 1978, JACM.

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

[12]  Ahnont Wongseelashote Semirings and path spaces , 1979, Discret. Math..

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

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

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

[16]  M S Waterman,et al.  Sequence alignments in the neighborhood of the optimum with general application to dynamic programming. , 1983, Proceedings of the National Academy of Sciences of the United States of America.

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

[18]  Michael S. Waterman,et al.  Technical Note - Determining All Optimal and Near-Optimal Solutions when Solving Shortest Path Problems by Dynamic Programming , 1984, Oper. Res..

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

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

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

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

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

[24]  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.

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

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

[27]  Shirley Dex,et al.  JR 旅客販売総合システム(マルス)における運用及び管理について , 1991 .

[28]  Greg N. Frederickson,et al.  An Optimal Algorithm for Selection in a Min-Heap , 1993, Inf. Comput..

[29]  Andrew V. Goldberg,et al.  Scaling algorithms for the shortest paths problem , 1995, SODA '93.

[30]  Alok Aggarwal,et al.  Finding a minimum weight K-link path in graphs with Monge property and applications , 1993, SCG '93.

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

[32]  Hiroshi Imai,et al.  How to Treat Delete Requests in Semi-Online Problems , 1993, International Symposium on Algorithms and Computation.

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

[34]  Zvi Galil,et al.  Improved Sparsification , 1993 .

[35]  Philip N. Klein,et al.  Faster Shortest-Path Algorithms for Planar Graphs , 1997, J. Comput. Syst. Sci..

[36]  Dalit Naor,et al.  On Near-Optimal Alignments of Biological Sequences , 1994, J. Comput. Biol..

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

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

[39]  Hiroshi Imai,et al.  FINDING A REALISTIC DETOUR BY AI SEARCH TECHNIQUES , 1995 .

[40]  Vasileios Hatzivassiloglou,et al.  Unification-Based Glossing , 1995, IJCAI.

[41]  David Eppstein,et al.  Algorithms for Proximity Problems in Higher Dimensions , 1995, Comput. Geom..

[42]  M. C. Sinclair,et al.  A Comparative Study of k-Shortest Path Algorithms , 1996 .

[43]  Hiroshi Imai,et al.  Detour Queries in Geographical Databases for Navigation and Related Algorithm Animations , 1996, CODAS.

[44]  H. Imai,et al.  Enumerating suboptimal alignments of multiple biological sequences efficiently. , 1997, Pacific Symposium on Biocomputing. Pacific Symposium on Biocomputing.

[45]  David Eppstein,et al.  Sparsification—a technique for speeding up dynamic graph algorithms , 1997, JACM.

[46]  Greg N. Frederickson Ambivalent Data Structures for Dynamic 2-Edge-Connectivity and k Smallest Spanning Trees , 1997, SIAM J. Comput..

[47]  Hiroshi Imai,et al.  New flexible approaches for multiple sequence alignment , 1997, RECOMB '97.

[48]  D. Eppstein Finding Common Ancestors and Disjoint Paths in DAGs , 1999 .

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

[50]  J. W. Suuballe,et al.  Disjoint Paths in a Network , 2022 .