# Breaking the Bellman-Ford Shortest-Path Bound

**Authors:** Amr Elmasry

arXiv: 1905.01325 · 2019-06-19

## TL;DR

This paper introduces a novel shortest-path algorithm that surpasses the long-standing $O(n 	imes m)$ time bound of Bellman-Ford by leveraging graph transformation and multiple Dijkstra calls, achieving faster performance.

## Contribution

It presents a new algorithm that converts graphs to nonnegative weights and uses multiple Dijkstra calls to improve shortest-path computation efficiency.

## Key findings

- Breaks the $O(n 	imes m)$ time bound for Bellman-Ford
- Achieves $O(	ext{sqrt}(n) 	imes m + n 	imes 	ext{sqrt}(m 	imes 	ext{log} n))$ runtime with Fibonacci heaps
- Provides a second implementation optimized for graphs with few negative arcs

## Abstract

In this paper we give a single-source shortest-path algorithm that breaks, after over 60 years, the $O(n \cdot m)$ time bound for the Bellman-Ford algorithm, where $n$ is the number of vertices and $m$ 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(\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(\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.

---
Source: https://tomesphere.com/paper/1905.01325