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 Introduction We consider a long-studied generalization of the shortest path problem, in which not one but several short paths must be produced. The k shortest paths problem is to list the k paths connecting a given source-destination pair in the digraph with minimum total length. Our techniques also apply to the problem of listing all paths shorter than some given threshhold length. In the version of these problems studi...
|
524
|
Flows in networks
– Ford, Fulkerson
- 1962
|
|
503
|
Data Structures and Network Algorithms
– Tarjan
- 1974
|
|
412
|
Fibonacci heaps and their uses in improved network optimization algorithms
– Fredman, Tarjan
- 1987
|
|
213
|
On a routing problem
– Bellman
- 1958
|
|
132
|
Trans-dichotomous algorithms for minimum spanning trees and shortest paths
– Fredman, Willard
- 1994
|
|
104
|
Sparsification—a technique for speeding up dynamic graph algorithms
– Eppstein, Galil, et al.
- 1997
|
|
99
|
Faster shortest-path algorithms for planar graphs
– Henzinger, Klein, et al.
- 1997
|
|
92
|
Finding the k shortest loopless paths in a network
– Yen
|
|
83
|
Faster algorithms for the shortest path problem
– Ahuja, Mehlhorn, et al.
- 1990
|
|
70
|
Ambivalent data structures for dynamic 2-edge-connectivity and k smallest spanning trees
– Frederickson
- 1991
|
|
68
|
An Appraisal of Some Shortest-Path Algorithms
– Dreyfus
- 1969
|
|
59
|
Disjoint paths in a network
– Suurballe
- 1974
|
|
45
|
A procedure for computing the k best solutions to discrete optimization problems and its application to the shortest path problem
– Lawler
- 1972
|
|
38
|
Scaling algorithms for the shortest paths problem
– Goldberg
- 1993
|
|
36
|
A priority queue in which initialization and queue operations take O(log log D) time
– Johnson
- 1982
|
|
28
|
Improved sparsification
– Eppstein, Galil, et al.
- 1993
|
|
28
|
An efficient algorithm for k shortest simple paths”, Networks 12
– Katoh, Ibaraki, et al.
- 1982
|
|
24
|
On near-optimal alignments of biological sequences
– Naor, Brutlag
- 1994
|
|
20
|
On algorithms for finding the k shortest paths in a network”, Networks 9
– Shier
- 1979
|
|
18
|
Finding a minimum weight K-link path in graphs with Monge property and applications
– Aggarwal, Schieber, et al.
- 1993
|
|
18
|
On finding single-source single-destination k shortest paths
– Chong, Maddila, et al.
- 1995
|
|
17
|
Algorithms for proximity problems in higher dimensions
– Dickerson, Eppstein
- 1996
|
|
16
|
Finding two disjoint paths between two pairs of vertices in a graph
– Perl, Shiloach
- 1978
|
|
15
|
A comparative study of k-shortest path algorithms
– Brander, Sinclair
- 1995
|
|
14
|
An algorithm for the ranking of shortest paths
– Azevedo, Costa, et al.
- 1993
|
|
14
|
An algorithm for ranking paths that may contain cycles
– Martins
- 1984
|
|
14
|
Algorithms for the quickest path problem and the enumeration of quickest paths
– Rosen, Sun, et al.
- 1991
|
|
14
|
Sequence alignments in the neighborhood of the optimum with general application to dynamic programming
– Waterman
- 1983
|
|
13
|
Iterative methods for determining the k shortest paths in a network”, Networks 6
– Shier
- 1976
|
|
12
|
An optimal algorithm for selection in a min-heap
– Frederickson
- 1993
|
|
11
|
Determining all optimal and near-optimal solutions when solving shortest path problems by dynamic programming
– Byers, Waterman
- 1984
|
|
10
|
Solving k-shortest and constrained shortest path problems efficiently
– Skiscim, Golden
- 1989
|
|
9
|
Data Structures and Network Algorithms CBMS 44. Society for Industrial and applied mathematics
– Tarjan
- 1983
|
|
9
|
Another algorithm for finding the K shortest loopless network paths
– Yen
- 1972
|
|
8
|
Implementation of algorithms for K shortest loopless paths
– Perko
- 1986
|
|
8
|
Computational experience with an algorithm for finding the k shortest paths in a network
– Shier
- 1974
|
|
7
|
k-th shortest paths and applications to the probabilistic networks
– Fox
- 1975
|
|
6
|
An ecient algorithm for k shortest simple paths
– Katoh, Ibaraki, et al.
- 1982
|
|
6
|
On computing sets of shortest paths in a graph
– Minieka
- 1974
|
|
6
|
Finding a realistic detour by AI search techniques
– Shibuya, Ikeda, et al.
- 1995
|
|
5
|
Finding the K quickest Simple paths in a Network
– Chen
- 1994
|
|
5
|
Finding common ancestors and disjoint paths in DAGs
– Eppstein
- 1995
|
|
5
|
Comment on computing the k shortest paths in a graph
– Lawler
- 1977
|
|
4
|
Algorithms for the constrained quickest path problem and the enumeration of quickest paths
– Chen, Hung
- 1994
|
|
4
|
Enumerating Suboptimal Alignments of Multiple Biological Sequences Efficiently
– Shibuya, Imai
- 1997
|
|
3
|
An algorithm for finding the k quickest paths in a network
– Chen
- 1993
|
|
3
|
Unification-based glossing
– Hatzivassiloglou, Knight
- 1995
|
|
3
|
Computing k-shortest path for nuclear spent fuel highway transportation
– Miaou, Chin
- 1991
|
|
3
|
A note on an algebra for the k best routes in a network
– Minieka, Shier
- 1973
|
|
3
|
New flexible approaches for multiple sequence alignment
– Shibuya, Imai
- 1997
|