Bidirectional Dijkstra's Algorithm is Instance-Optimal
Bernhard Haeupler, Richard Hlad\'ik, Vaclav Rozhon, Robert E. Tarjan, Jakub T\v{e}tek

TL;DR
This paper proves that a carefully implemented bidirectional Dijkstra's algorithm is instance-optimal for weighted graphs, and bidirectional BFS is nearly optimal for unweighted graphs, providing strong theoretical justification for their practical use.
Contribution
The paper establishes the instance-optimality of bidirectional search algorithms for shortest path problems, filling a theoretical gap in understanding their efficiency.
Findings
Bidirectional Dijkstra's is instance-optimal for weighted graphs.
Bidirectional BFS is nearly optimal for unweighted graphs, up to a factor of O(Δ).
The optimality bounds are tight, matching lower bounds for these algorithms.
Abstract
Although Dijkstra's algorithm has near-optimal time complexity for the problem of finding a shortest path from a given vertex to a given vertex , in practice other algorithms are often superior on huge graphs. A prominent example is bidirectional search, which concurrently executes Dijkstra's algorithm forward from and backward from , and stops when these executions meet. In this paper, we give a strong theoretical justification for the use of bidirectional search to find a shortest -path. We prove that for weighted multigraphs, both directed and undirected, a careful implementation of bidirectional search is instance-optimal with respect to the number of edges it examines. That is, we prove that no correct algorithm can outperform our implementation of bidirectional search on any single instance by more than a constant factor. For unweighted graphs, we show that…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsConstraint Satisfaction and Optimization
