You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
**🎯 Breakthrough Result**: This paper presents the first deterministic algorithm to break Dijkstra's O(m + n log n) time bound for directed single-source shortest paths, achieving **O(m log^(2/3) n)** time complexity.
8
10
9
11
Currently implemented in:
12
+
10
13
- ✅ Python
11
14
- ✅ Go
12
15
- ✅ Fortran
@@ -16,56 +19,267 @@ Currently implemented in:
16
19
17
20
---
18
21
19
-
## Algorithms Implemented
20
-
1.**FindPivots** (Lemma 3.2) – bounded Bellman–Ford expansion with pivot selection.
21
-
2.**BaseCase** – small-instance solver using Dijkstra.
The BMSSP (Bounded Multi-Source Shortest Path) algorithm uses a novel recursive partitioning technique that merges ideas from both Dijkstra's algorithm and the Bellman-Ford algorithm:
25
+
26
+
### Core Innovation
27
+
28
+
-**Frontier Reduction**: Instead of maintaining a frontier of size Θ(n), the algorithm reduces it to |U|/log^Ω(1)(n)
29
+
-**Pivot Selection**: Uses bounded Bellman-Ford expansion to identify "pivot" vertices that cover large subtrees
30
+
-**Recursive Structure**: Employs O(log n / t) levels of recursion with specialized data structures
31
+
32
+
### Key Components
33
+
34
+
1.**FindPivots** (Lemma 3.2) – Bounded Bellman-Ford expansion with pivot selection
35
+
2.**BaseCase** – Small-instance solver using Dijkstra-like approach
36
+
3.**BMSSP** – Main recursive bounded multi-source shortest path solver
37
+
4.**DQueue** – Specialized data structure supporting bounded batch operations
38
+
39
+
📚 **New to BMSSP?** See our [detailed algorithm walkthrough](ALGORITHM_WALKTHROUGH.md) with step-by-step examples and complexity analysis.
23
40
24
41
---
25
42
26
-
## Structure
27
-
Each language has its own folder with:
28
-
-`bmssp` source file(s)
29
-
- A `tests/` folder for correctness verification against known shortest paths
| Sparse Random | n ≈ 200-500 |~60% faster |~20% |
73
+
| Scale-Free | n ≈ 100-300 |~70% faster |~25% |
74
+
| Small-World | n ≈ 300-600 |~50% faster |~15% |
75
+
| Grid | n ≈ 400-800 |~40% faster |~10% |
76
+
77
+
📚 See [`benchmarks/README.md`](benchmarks/README.md) for detailed performance analysis documentation.
31
78
32
79
---
33
80
34
-
## Running Python Version
81
+
## Algorithm Overview
82
+
83
+
The BMSSP (Bounded Multi-Source Shortest Path) algorithm uses a novel recursive partitioning technique that merges ideas from both Dijkstra's algorithm and the Bellman-Ford algorithm:
84
+
85
+
### Core Innovation
86
+
87
+
-**Frontier Reduction**: Instead of maintaining a frontier of size Θ(n), the algorithm reduces it to |U|/log^Ω(1)(n)
88
+
-**Pivot Selection**: Uses bounded Bellman-Ford expansion to identify "pivot" vertices that cover large subtrees
89
+
-**Recursive Structure**: Employs O(log n / t) levels of recursion with specialized data structures
90
+
91
+
### Key Components
92
+
93
+
1.**FindPivots** (Lemma 3.2) – Bounded Bellman-Ford expansion with pivot selection
94
+
2.**BaseCase** – Small-instance solver using Dijkstra-like approach
95
+
3.**BMSSP** – Main recursive bounded multi-source shortest path solver
96
+
4.**DQueue** – Specialized data structure supporting bounded batch operations
97
+
98
+
---
99
+
100
+
## Important Notes
101
+
102
+
⚠️ **These are research algorithm implementations**, not general-purpose shortest path solvers:
103
+
104
+
-**Theoretical Focus**: Optimized for asymptotic complexity O(m log^(2/3) n), not practical performance on small graphs
105
+
-**Bounded Computation**: May not compute complete shortest path trees due to algorithmic bounds and early termination conditions
106
+
-**Parameter Sensitivity**: Uses specific parameters k = ⌊log^(1/3) n⌋ and t = ⌊log^(2/3) n⌋ derived from theoretical analysis
107
+
-**Research Code**: Prioritizes algorithmic clarity over production optimizations
108
+
109
+
For practical shortest path computation, use standard implementations of Dijkstra's algorithm or other established methods.
All implementations assume constant-degree graphs. For general graphs, the algorithm applies a standard vertex-splitting transformation to achieve constant in-degree and out-degree while preserving shortest paths.
248
+
249
+
---
250
+
251
+
## Research Context
252
+
253
+
This work represents a significant theoretical breakthrough in graph algorithms:
254
+
255
+
-**First** to break the sorting barrier for directed SSSP in the comparison-addition model
256
+
-**Deterministic** improvement over previous randomized results
257
+
-**Novel techniques** combining Dijkstra and Bellman-Ford through recursive partitioning
258
+
259
+
The algorithm demonstrates that Dijkstra's approach, while optimal when vertex ordering is required, is not optimal for computing distances alone.
260
+
261
+
---
262
+
263
+
## Citation
264
+
265
+
```bibtex
266
+
@article{duan2025breaking,
267
+
title={Breaking the Sorting Barrier for Directed Single-Source Shortest Paths},
268
+
author={Duan, Ran and Mao, Jiayi and Mao, Xiao and Shu, Xinkai and Yin, Longhui},
269
+
journal={arXiv preprint arXiv:2504.17033},
270
+
year={2025}
271
+
}
272
+
```
273
+
274
+
---
275
+
276
+
## Contributing
277
+
278
+
When contributing to this repository:
279
+
280
+
1.**Maintain algorithmic fidelity** - Preserve the theoretical structure of BMSSP
281
+
2.**Follow paper notation** - Use variable names and structure consistent with the research paper
282
+
3.**Test carefully** - Ensure implementations match expected BMSSP behavior, not standard SSSP
283
+
4.**Document clearly** - Explain any implementation-specific choices or optimizations
284
+
285
+
For questions about the algorithm itself, refer to the original research paper.
0 commit comments