language-icon Old Web
English
Sign In

K shortest path routing

The k shortest path routing algorithm is an extension algorithm of the shortest path routing algorithm in a given network.Algorithm: The k shortest path routing algorithm is an extension algorithm of the shortest path routing algorithm in a given network. It is sometimes crucial to have more than one path between two nodes in a given network. In the event there are additional constraints, other paths different from the shortest path can be computed. To find the shortest path one 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 a generalization of the shortest path problem. The algorithm not only finds the shortest path, but also k − 1 other paths in non-decreasing order of cost. k is the number of shortest paths to find. The problem can be restricted to have the k shortest path without loops (loopless k shortest path) or with loop. Since 1957 there have been many papers published on the k shortest path routing algorithm problem. 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 1960s and up to 2001. Since then, most of the recent research has been about the applications of the algorithm and its variants. In 2010, Michael Günther et al. published a book on Symbolic calculation of k-shortest paths and related measures with the stochastic process algebra tool CASPA. The Dijkstra algorithm can be generalized to find the k shortest paths. There are two main variations of the k shortest path routing algorithm, though others falling between these exist. In the first, paths in which nodes are visited more than once are allowed, creating loops. In the second, paths are required to be simple and loopless. The first is solvable using Eppstein's algorithm and the latter by Yen's algorithm and is also known as the loopless k shortest path routing problem. In the first variant, the problem is simplified by not requiring paths to be loopless. A solution was given by B. L. Fox in 1975 in which the k-shortest paths are determined in O(m + kn log n) asymptotic time complexity (using big O notation. In 1998, David Eppstein reported an approach that maintains an asymptotic complexity of O(m + n log n + k) by computing an implicit representation of the paths, each of which can be output in O(n) extra time. In 2007, John Hershberger and Subhash Suri proposed a replacement paths algorithm, a more efficient implementation of Eppstein's algorithm with O(n) improvement in time. In 2015, Akuba et al. devised an indexing method as a significantly faster alternative for Eppstein's algorithm, in which a data structure called an index is constructed from a graph and then top-k distances between arbitrary pairs of vertices can be rapidly obtained. The second variant adds a restriction that paths are required to be loopless, adding an additional level of complexity, and was solved by Jin Y. Yen. 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, a technique requiring only 2n2 additions and n2 comparison, fewer than other available shortest path algorithms need. The running time complexity is pseudo-polynomial, being O(kn(m + n log n)) (where m and n represent the number of edges and vertices, respectively). The following example makes use of 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. More details can be found here.The code provided in this example attempts to solve the k shortest path routing problem for a 15-nodes network containing a combination of unidirectional and bidirectional links: Another example is the use of k shortest paths algorithm to track multiple objects. The technique implements a multiple object tracker based on the k shortest paths routing algorithm. A set of probabilistic occupancy maps is used as input. An object detector provides the input.

[ "Shortest path problem", "Graph", "Contraction hierarchies", "Constrained Shortest Path First", "Shortest Path Faster Algorithm", "shortest path search", "Euclidean shortest path" ]
Parent Topic
Child Topic
    No Parent Topic