Papers
Topics
Authors
Recent
Search
2000 character limit reached

Instance-Optimality of Bidirectional Dijkstra on Simple Graphs

Published 25 Aug 2026 in cs.DS | (2608.24380v1)

Abstract: We study the shortest-path problem on graphs with positive real-valued edge weights. Given a source vertex ss and a target vertex tt, the goal is to calculate the length of the shortest path from ss to tt. We are particularly interested in instances that can be solved in sublinear time. Recently, Haeupler, Hladík, Rozhoň, Tarjan, and Tětek proved that (a version of) the bidirectional Dijkstra's algorithm is instance-optimal on positively weighted multigraphs, both directed and undirected, considering the number of vertices and edges queried by the algorithm. However, multigraphs are not the canonical setting for the shortest-path problem. The problem is typically formulated on simple graphs without loops and parallel edges. They therefore left as an open problem whether bidirectional Dijkstra remains instance-optimal on simple weighted graphs. We answer this question, but for simple graphs, the answer is more complex, depending on the setting. We show that bidirectional Dijkstra is still instance-optimal on simple undirected weighted graphs under the order-oblivious model, where incident edges are given in a random order. In contrast, under the order-dependent model, where incident edges have a given order, we show that bidirectional Dijkstra is not instance-optimal. For simple directed weighted graphs, we show that bidirectional Dijkstra is not instance-optimal under either the order-oblivious or the order-dependent model, being off by a factor of Θ(m/n)Θ(m/n) in both cases. We further show that no algorithm can have instance-optimality ratio o(m/n)o(m/n) under the order-dependent model, or under the order-oblivious model when m=O(nn)m=O(n\sqrt{n}). On the positive side, the above results imply that bidirectional Dijkstra is instance-optimal up to logarithmic factors on all sparse directed and undirected graphs satisfying m/n=log<sup>O(1)</sup>nm/n=\log<sup>{O(1)}</sup> n.

Summary

No one has generated a summary of this paper yet.

Paper to Video (Beta)

No one has generated a video about this paper yet.

Whiteboard

No one has generated a whiteboard explanation for this paper yet.

Continue Learning

We haven't generated follow-up questions for this paper yet.