Creative Commons Attribution 3.0 Unported license
We present an algorithm for the k shortest simple path problem on weighted directed graphs (kSSP) that is based on Eppstein’s algorithm for a similar problem in which paths are allowed to contain cycles. In contrast to most other algorithms for kSSP, ours is not based on Yen's algorithm [Networks, 1971] and does not solve replacement path problems. Its worst-case running time is on par with state-of-the-art algorithms for kSSP. Using our algorithm, one may find O(m) simple paths with a single shortest path tree computation and O(n+m) additional time per path in well-behaved cases, where n is the number of nodes and m is the number of edges. Our computational results show that on random graphs and large road networks, these well-behaved cases are quite common and our algorithm is faster than existing algorithms by an order of magnitude.
@InProceedings{kurz_et_al:LIPIcs.ISAAC.2016.49,
author = {Kurz, Denis and Mutzel, Petra},
title = {{A Sidetrack-Based Algorithm for Finding the k Shortest Simple Paths in a Directed Graph}},
booktitle = {27th International Symposium on Algorithms and Computation (ISAAC 2016)},
pages = {49:1--49:13},
series = {Leibniz International Proceedings in Informatics (LIPIcs)},
ISBN = {978-3-95977-026-2},
ISSN = {1868-8969},
year = {2016},
volume = {64},
editor = {Hong, Seok-Hee},
publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
address = {Dagstuhl, Germany},
URL = {https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ISAAC.2016.49},
URN = {urn:nbn:de:0030-drops-68199},
doi = {10.4230/LIPIcs.ISAAC.2016.49},
annote = {Keywords: directed graph, k-best, shortest path, simple path, weighted graph}
}