A multi-source label-correcting algorithm for the all-pairs shortest paths problem

The All-Pairs Shortest Paths (APSP) problem seeks the shortest path distances between all pairs of vertices, and is one of the most fundamental graph problems. In this paper, a fast algorithm with a small working space for the APSP problem on sparse graphs is presented, which first divides the vertices into sets of vertices with each set having a constant number of vertices and then solves the multi-source shortest paths (MSSP) problem for each set in parallel. For solving the MSSP problems, we give a multi-source label-correcting algorithm, as an extension of a label-correcting algorithm for the single-source shortest path problem. Our algorithm uses fewer operations on the priority queue than an implementation based on Dijkstra's algorithm. Our experiments showed that an implementation of our algorithm with SIMD instructions achieves an order of magnitude speedup for real-world geometric graphs compared to an implementation based on Dijkstra's algorithm.

[1]  Andrew V. Goldberg,et al.  Shortest paths algorithms: Theory and experimental evaluation , 1994, SODA '94.

[2]  Ronald L. Rivest,et al.  Introduction to Algorithms, third edition , 2009 .

[3]  Viktor K. Prasanna,et al.  Cache-Friendly implementations of transitive closure , 2007, IEEE PACT.

[4]  Robert E. Tarjan,et al.  Fibonacci heaps and their uses in improved network optimization algorithms , 1984, JACM.

[5]  Stephen Warshall,et al.  A Theorem on Boolean Matrices , 1962, JACM.

[6]  Ronald L. Rivest,et al.  Introduction to Algorithms , 1990 .

[7]  Franz Franchetti,et al.  Program generation for the all-pairs shortest path problem , 2006, 2006 International Conference on Parallel Architectures and Compilation Techniques (PACT).

[8]  Peter Sanders,et al.  Engineering highway hierarchies , 2012, JEAL.

[9]  Ronald L. Rivest,et al.  Introduction to Algorithms, Second Edition , 2001 .

[10]  Uday Bondhugula,et al.  Parallel FPGA-based all-pairs shortest-paths in a directed graph , 2006, Proceedings 20th IEEE International Parallel & Distributed Processing Symposium.

[11]  Donald B. Johnson,et al.  Efficient Algorithms for Shortest Paths in Sparse Networks , 1977, J. ACM.

[12]  David R. Karger,et al.  Finding the hidden path: time bounds for all-pairs shortest paths , 1991, [1991] Proceedings 32nd Annual Symposium of Foundations of Computer Science.

[13]  Tadao Takaoka All Pairs Shortest Paths via Matrix Multiplication , 2008, Encyclopedia of Algorithms.

[14]  Giuseppe F. Italiano,et al.  Engineering Shortest Path Algorithms , 2004, WEA.

[15]  Peter Sanders,et al.  Computing Many-to-Many Shortest Paths Using Highway Hierarchies , 2007, ALENEX.

[16]  Clifford Stein,et al.  Introduction to Algorithms, 2nd edition. , 2001 .

[17]  Edsger W. Dijkstra,et al.  A note on two problems in connexion with graphs , 1959, Numerische Mathematik.

[18]  P. J. Narayanan,et al.  Accelerating Large Graph Algorithms on the GPU Using CUDA , 2007, HiPC.

[19]  Joseph T. Kider,et al.  All-pairs shortest-paths for large graphs on the GPU , 2008, GH '08.

[20]  Rolf H. Möhring,et al.  Fast Point-to-Point Shortest Path Computations with Arc-Flags , 2006, The Shortest Path Problem.

[21]  Cees Duin,et al.  A Branch-Checking Algorithm for All-Pairs Shortest Paths , 2005, Algorithmica.

[22]  Fumihiko Ino,et al.  A Task Parallel Algorithm for Computing the Costs of All-Pairs Shortest Paths on the CUDA-Compatible GPU , 2008, 2008 IEEE International Symposium on Parallel and Distributed Processing with Applications.

[23]  Catherine C. McGeoch All-pairs shortest paths and the essential subgraph , 2005, Algorithmica.