Overview
Bidirectional Dijkstra shrinks the explored area when both directions use compatible edge costs and stop after the best meeting path is proven optimal.
Finds a shortest path by running Dijkstra search forward from the start and backward from the goal.
Compact metadata for implementation and discovery.
Bidirectional Dijkstra shrinks the explored area when both directions use compatible edge costs and stop after the best meeting path is proven optimal.
Quick facts
Runtime and memory behavior at a glance.
Best
O(E log V)
Average
O(E log V)
Worst
O(E log V)
Space
O(V)
dist[v] = min(dist[v], dist[u] + weight(u, v))Updates a candidate distance when a route through the current node is shorter.
best = min(best, dist_f[v] + dist_b[v])Tracks the shortest path found where the two searches meet.
Show the frontier, settled nodes, and the final path over the search space.
Bidirectional Dijkstra should be used with the assumptions and tradeoffs of shortest Path in mind.
What each reference supports for this entry.
Textbook support for Bidirectional Dijkstra invariants, recurrences, relaxation rules, or asymptotic analysis.
Open sourceShortest-path reference covering Bidirectional Dijkstra bidirectional search conditions, stopping rule, and route-planning context.
Good next jumps from the relationship graph, ranked for useful discovery.
It applies bidirectional search to nonnegative weighted shortest paths.
Bidirectional Dijkstra runs weighted search from source and target.