Evolving A* to Efficiently Solve the k Shortest-Path Problem (Extended Version)
Carlos Linares López, Ian Herman
TL;DR
The paper tackles the κ shortest-path problem in directed graphs by evolving A$^*$ into BELA$^*$, a method that preserves the same asymptotic efficiency while enabling explicit path output. Central ideas include partitioning suboptimal paths via centroids tied to sidetrack edges and reconstructing solutions as cross-products of optimal prefixes and corresponding suffixes. BELA$_0$ provides a brute-force, centroid-based enumeration framework with proven completeness and admissibility, while BELA$^*$ injects a consistent heuristic to dramatically reduce expansions without sacrificing correctness. Extensive empirical evaluation across roadmaps, random maps, N-Pancake, and N-Puzzle domains demonstrates that BELA$_0$ and especially BELA$^*$ frequently outperform state-of-the-art approaches (mA$^*$, K$^*$) by one to several orders of magnitude, with robust scalability and practical impact for large-scale κ-shortest-path computations.
Abstract
The problem of finding the shortest path in a graph G(V, E) has been widely studied. However, in many applications it is necessary to compute an arbitrary number of them, k. Even though the problem has raised a lot of interest from different research communities and many applications of it are known, it has not been addressed to the same extent as the single shortest path problem. The best algorithm known for efficiently solving this task has a time complexity of O (|E| + |V|log{|V|}+k|V|)$ when computing paths in explicit form, and is based on best-first search. This paper introduces a new search algorithm with the same time complexity, which results from a natural evolution of A* thus, it preserves all its interesting properties, making it widely applicable to many different domains. Experiments in various testbeds show a significant improvement in performance over the state of the art, often by one or two orders of magnitude.
