# K shortest path routing

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.

Background
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.