We present algorithms and hardness results for several problems related to finding multiple simple shortest paths in a graph. Our main result is a new algorithm for finding k simple shortest paths for all pairs of vertices in a weighted directed graph G = (V, E). For k = 2 our algorithm runs in O(mn + n 2 log n) time where m and n are the number of edges and vertices in G. Our approach is based on forming suitable path extensions to find simple shortest paths; this method is different from the 'detour finding' technique used in most of the prior work on simple shortest paths, replacement paths, and distance sensitivity oracles. We complement this result by showing that finding 2 simple shortest paths even for a single pair of vertices is at least as hard as finding a minimum weight cycle in G, for which no sub-mn time algorithm is known. We present new algorithms for generating simple cycles and simple paths in G in nondecreasing order of their weight. The algorithm for generating simple paths is much faster, and uses another variant of path extensions. We also give hardness results for sparse graphs, relative to the complexity of computing a minimum weight cycle in a graph, for several variants of problems related to finding k simple paths and cycles, and we give related results for undirected graphs.
In REF , new algorithms were presented to find k multiple simple cycles and simple paths in a graph, in non-decreasing order of their weights.
Finding $k$ Simple Shortest Paths and Cycles
ArXiv
ArXiv
Computer Science Mathematics