English

Breaking the Bellman-Ford Shortest-Path Bound

Data Structures and Algorithms 2019-06-19 v2

Abstract

In this paper we give a single-source shortest-path algorithm that breaks, after over 60 years, the O(nm)O(n \cdot m) time bound for the Bellman-Ford algorithm, where nn is the number of vertices and mm is the number of arcs of the graph. Our algorithm converts the input graph to a graph with nonnegative weights by performing at most min(n,m/logn)\min(\sqrt{n},\sqrt{m/\log n}) calls to Dijkstra's algorithm, such that the shortest-path tree is the same for the new graph as that for the original. When Dijkstra's algorithm is implemented using Fibonacci heaps, the running time of our algorithm is therefore O(nm+nmlogn)O(\sqrt{n} \cdot m + n \cdot \sqrt{m \log n}). We also give a second implementation that performs few calls to Dijkstra's algorithm if the graph contains few negative arcs on the shortest-path tree.

Keywords

Cite

@article{arxiv.1905.01325,
  title  = {Breaking the Bellman-Ford Shortest-Path Bound},
  author = {Amr Elmasry},
  journal= {arXiv preprint arXiv:1905.01325},
  year   = {2019}
}

Comments

There are mistakes in the proofs. The running time bounds may not be correct

R2 v1 2026-06-23T08:56:37.444Z