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 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.
Further, the running time is far better predictable due to very small
dispersion