K shortest path routing
This article, K shortest path routing, has recently been created via the Articles for creation process. Please check to see if the reviewer has accidentally left this template after accepting the draft and take appropriate action as necessary.
Reviewer tools: Inform author |
Sometimes it is crucial to have more than one path between two nodes in a given network. In the event there are additional constraints, we could use a path different from the shortest one to achieve our goal. To find the shortest path we can use shortest path algorithms such as Dijkstra’s algorithm or Bellman Ford algorithm and extend them to find more than one path. The K-shortest path routing algorithm is an extension algorithm of the shortest-path routing algorithm in a network. It is a generalization of the shortest path problem. K-shortest path routing algorithms not only find the shortest path, but also K other paths in order of increasing cost. K is the number of shortest paths to find. The constraints that can be imposed on the shortest path can be the following: Minimum cost with bounded total latency, Minimum cost with additive link metrics such as delay, Minimum cost with minimum bandwidth, Minimum cost and including/excluding certain nodes (also called [[ http://www.cs.odu.edu/~toida/nerzic/content/digraph/definition.html%7Cvertices]]) or certain links (also referred to as edges). Moreover we can be restricted to have the K shortest path without loops (loopless K shortest path) or with loop. This last constraint is the most relevant in mesh optical network.
HISTORY
They are many papers on K-Shortest path problem going back as far as 1957. The collection of bibliographies and scientific literature in computer science website, which address is http://liinwww.ira.uka.de/bibliography/Theory/k-path.html#browse gives a visual statistic on the K shortest path research papers until 2001. The following figure is a Bibliographic Statistics that lists papers studying a generalization of the shortest path problem:
Scientists are still exploring the K-Shortest path problem. One of the most recent works is by Michael Gunter et al. who published a book in 2010 on some “Symbolic calculation of k-shortest paths and related measures with the stochastic process algebra tool CASPA”.[1] But as stated on the Bibliographies on algorithms for k-shortest paths website most of the fundamental works on not just finding the single shortest path between a pair of nodes, but instead listing a sequence of the K shortest paths were done between the 60’s and up to 2001. Since then, most of the papers are about the applications of the algorithm and its variants. The article by J. Y.Yen, “FINDING THE K SHORTEST LOOPLESS PATHS IN A NETWORK*-1971” [2] is the most referred article on the subject. Here are some of the most important research papers on the K-Shortest path problem:
For more references, visit the following link: http://www.ics.uci.edu/~eppstein/bibs/kpath.bib David Eppstein and Ingo Althöfer have done a lot of research on the K Shortest path problem.
ALGORITHM
Dijkstra algorithm can be generalized to find the K-Shortest path[3].
- Note: To better understand the concept of Vertex, Vertices and edges, the reader is encouraged to visit the following http://www.cs.odu.edu/~toida/nerzic/content/digraph/definition.html.
Definitions:
Algorithm:
|
They are mainly two variants of the K-Shortest path algorithm:
First Variant
In the first variant, the paths are not required to be loopless (this is the simple one): David Eppstein algorithm achieves the best running time complexity [4]
Second Variant
In the second variant, attributed to Jin Y. Yen, the paths are required to be loopless[5] (this restriction introduced another level of complexity).
- To make it easy to understand Yen's algorithm is used in the case where simple paths only are considered, whereas Eppstein algorithm is when non-simple paths are allowed (e.g., paths are allowed to revisit the same node multiple times).
Paths are not required to be loopless
Eppstein algorithm provides the best results. The full article can be found here[6]. Eppstein model finds the K shortest paths (allowing cycles) connecting a given pair of vertices in a digraph, in time O(m + nlogn + K).
Breadth first search (BFS) [7] technique is applied. This model can also find the K shortest paths from a given source s to each vertex in the graph, in total time O(m + nlogn + kn).
Loopless K-Shortest path algorithm
The best running time for this model is attributed to Jin. Y. Yen and the full article can be found here[8]. Yen's algorithm finds the lengths of all shortest paths from a fixed node to all other nodes in an n-node non negative-distance network. This technique only requires 2n2 additions and n2 comparisons-which is less than what other available algorithms required. An implementation of Yen’s algorithm can be found here[9].
The running time complexity is O(K n(m + nlogn)).
SOME EXAMPLES AND DESCRIPTION
Example #1
The following example makes use of the Yen’s model to find the first K shortest paths between communicating end nodes. That is it finds the first, second, third, etc up to the Kth shortest path. Please follow this link ( http://www.technical-recipes.com/2012/the-k-shortest-paths-algorithm-in-c/#more-2432) for more details. The code provided in this example attempts to solve the K Shortest path problem for a 15-nodes network containing a combination of unidirectional and bidirectional links:
Example #2
Another example is the use of K Shortest algorithm to track multiple objects. The technique implements a multiple object tracker based on the K Shortest paths algorithm. A set of probabilistic occupancy maps is used as input. An object detector provides the input. The complete details can be found here.
APPLICATIONS
The K Shortest is a good alternative for:
- Geographic path planning
- Network routing, especially in mesh optical network where there are additional constraints that cannot be solved by using ordinary shortest path algorithms.
- Hypothesis generation in computational linguistics
- Sequence alignment and metabolic pathway finding in bioinformatics
- Multiple object tracking as described above
- Road Networks: road junctions are the nodes (vertices) and each edge (link) of the graph is associated with a road segment between two junctions.
VARIATIONS
They are two main variations of the K Shortest path algorithm as mentioned above. Other variations only fall in between these.
- In the first variation, loops are allowed, that is paths are allowed to revisit the same node multiple times. The following papers deal with this variation [10].
- The second variation deals with simple paths. It is also called loopless K-Shortest path problem and is attributed to J. Y. Yen [11]
RELATED PROBLEMS
- Dijkstra's algorithm solves the single-source shortest path problems.
- Bellman–Ford algorithm solves the single-source problem if edge weights may be negative.
- Breath-First Search algorithm is used when the search is only limited to two operations
- Floyd–Warshall algorithm solves all pairs shortest paths.
- Johnson's algorithm solves all pairs shortest paths, and may be faster than Floyd–Warshall on sparse graphs.
- Perturbation theory finds (at worst) the locally shortest path.
Cherkassky et al.[12] provide more algorithms and associated evaluations.
SEE ALSO
- Shortest Path problem
- Constrained shortest path routing
- Diverse Path Routing
- Shared Risk Group (SRG) and Shared Link Risk Group (SRLG)
NOTES
- ^ Michael Günther et al.: “Symbolic calculation of k-shortest paths and related measures with the stochastic process algebra tool CASPA”. In: Int’l Workshop on Dynamic Aspects in Dependability Models for Fault-Tolerant Systems (DYADEM-FTS), ACM Press (2010) 13–18.
- ^ Yen J. Y: “Finding the K-Shortest Loopless Paths in a Network”. Management Science 1971; 17:712-716
- ^ Eric Bouillet, Georgios Ellinas, Jean-Francois Labourdette, Ramu Ramamurthy: “Path Routing in Mesh Optical Networks”; Wiley-Interscience; 1st edition (November 20, 2007): P132-133
- ^ D. Eppstein:” Finding the k shortest paths”. 35th IEEE Symp. Foundations of Comp. Sci., Santa Fe, 1994, pp. 154-165. Tech. Rep. 94-26, ICS, UCI, 1994. SIAM J. Computing 28(2):652-673, 1998.
- ^ Yen J. Y: “Finding the K-Shortest Loopless Paths in a Network”. Management Science 1971; 17:712-716
- ^ D. Eppstein:” Finding the k shortest paths”. 35th IEEE Symp. Foundations of Comp. Sci., Santa Fe, 1994, pp. 154-165. Tech. Rep. 94-26, ICS, UCI, 1994. SIAM J. Computing 28(2):652-673, 1998.
- ^ Breath First Search Algorithm: http://en.wikipedia.org/wiki/Breadth-first_search
- ^ J. Y. Yen article on loopless K-Shortest path algorithm: http://adrian.idv.hk/lib/exe/fetch.php/paper/y71-shortestpath.pdf
- ^ An implementation of Yen’s algorithm: http://code.google.com/p/k-shortest-paths/
- ^ D. Eppstein:” Finding the k shortest paths”. 35th IEEE Symp. Foundations of Comp. Sci., Santa Fe, 1994, pp. 154-165. Tech. Rep. 94-26, ICS, UCI, 1994. SIAM J. Computing 28(2):652-673, 1998.
- ^ Yen J. Y: “Finding the K-Shortest Loopless Paths in a Network”. Management Science 1971; 17:712-716
- ^ Cherkassky, Boris V.; Goldberg, Andrew V.; Radzik, Tomasz (1996). "Shortest paths algorithms: theory and experimental evaluation". Mathematical Programming. Ser. A 73 (2): 129–174.
REFERENCES
- Michael Günther et al.:[http://www.unibw.de/inf3/personen/profs/siegle/Papers/DYADEM2010.pdf Symbolic calculation of k-shortest paths and related measures with the stochastic process algebra tool CASPA. In: Int’l Workshop on Dynamic Aspects in Dependability Models for Fault-Tolerant Systems (DYADEM-FTS), ACM Press (2010) 13–18
- Yen J. Y:[http://adrian.idv.hk/lib/exe/fetch.php/paper/y71-shortestpath.pdf Finding the K-Shortest Loopless Paths in a Network. Management Science 1971; 17:712-716
- Eric Bouillet, Georgios Ellinas, Jean-Francois Labourdette, Ramu Ramamurthy:Path Routing in [[Mesh networks|Mesh Optical Networks]; Wiley-Interscience; 1st edition (November 20, 2007): P132-133
- D. Eppstein:[http://pdf.aminer.org/001/059/121/finding_the_k_shortest_paths.pdf Finding the k shortest paths. 35th IEEE Symp. Foundations of Comp. Sci., Santa Fe, 1994, pp. 154-165. Tech. Rep. 94-26, ICS, UCI, 1994. SIAM J. Computing 28(2):652-673, 1998.
- Cherkassky, Boris V.; Goldberg, Andrew V.; Radzik, Tomasz (1996). "Shortest paths algorithms: theory and experimental evaluation". Mathematical Programming. Ser. A 73 (2): 129–174.
EXTERNAL LINKS
- Code example for a 15-nodes network implementing Yen’s algorithm: http://www.technical-recipes.com/2012/the-k-shortest-paths-algorithm-in-c/#more-2432
- Multiple objects tracking technique using K-shortest path algorithm: http://cvlab.epfl.ch/software/ksp/