Delta-stepping: a parallelizable shortest path algorithm
Max-Planck-Institut fur Informatik, Stuhlsatzenhausweg 85, 66123, Saarbrucken, Germany
Journal of Algorithms, Vol. 49, Issue 1 (October 2003), pp. 114-152
@article{meyer1998delta,
title={$Delta$-stepping: A parallel single source shortest path algorithm},
author={Meyer, U. and Sanders, P.},
journal={Algorithms-ESA’98},
pages={1–1},
year={1998},
publisher={Springer}
}
The single source shortest path problem for arbitrary directed graphs with n nodes, m edges and nonnegative edge weights can sequentially be solved using O(n log n + m) operations. However, no work-efficient parallel algorithm is known that runs in sublinear time for arbitrary graphs. In this paper we present a rather simple algorithm for the single source shortest path problem. Our new algorithm, which we call Delta-stepping, can be implemented very efficiently in sequential and parallel setting for a large class of graphs. For random edge weights and arbitrary graphs with maximum node degree d, sequential Delta-stepping needs O(n + m + d * L) total average-case time, where L denotes the maximum shortest path weight from the source node s to any node reachable from s. For example, this means linear time on directed graphs with constant maximum degree. Our best parallel version for a PRAM takes O(d * L * log n + log^2 n) time and O(n + m + d * L * log n) work on average. For random graphs, even O(log^2 n) time and O(n + m) work on average can be achieved. We also discuss how the algorithm can be adapted to work with nonrandom edge weights and how it can be implemented on distributed memory machines. Experiments indicate that already a simple implementation of the algorithm achieves significant speedup on real machines.
February 2, 2011 by hgpu