$\texttt{bucket-graph-spprc}$: an extensible C++ library for the shortest path problem with resource constraints

📅 2026-06-29
📈 Citations: 0
✨ Influential: 0
📄 PDF
🤖 AI Summary
This work addresses the resource-constrained shortest path problem (SPPRC), a core subproblem in branch-cut-and-price algorithms for combinatorial optimization problems such as vehicle routing. We propose an efficient solution method based on bucket-based labeling, integrating bidirectional dynamic programming, arc-joining, bucket fixing, and arc elimination techniques. To accelerate dominance checks, we employ a structure-of-arrays memory layout combined with SIMD vectorization. A novel compile-time resource mechanism is introduced, enabling zero-runtime-overhead extension to arbitrary resource types through a fixed set of seven function interfaces, with state layouts resolved entirely at compile time. Experimental results on public benchmark instances demonstrate that our approach achieves 1.3–2.35× speedup over PathWyse in single-threaded performance (geometric mean) and reaches 1.9–2.4× the performance of parallel pull-based labeling algorithms.
📝 Abstract
We present $\texttt{bucket-graph-spprc}$ ($\texttt{bgspprc}$ for short), an open-source, header-only C++23 library for the shortest path problem with resource constraints (SPPRC), the pricing subproblem at the heart of branch-cut-and-price for vehicle routing and related problems. The library implements the bucket-graph labelling algorithm of Sadykov, Uchoa and Pessoa (2021), with bidirectional labelling, across-arc concatenation, bucket fixing and arc elimination, and a structure-of-arrays label store with SIMD-accelerated dominance. Its central design feature is a compile-time resource concept: a new SPPRC variant is added by implementing a fixed seven-function interface, and resources compose into a label state with no runtime dispatch, the state layout fixed at compile time. Five resources ship built in: time/capacity, ng-path elementarity relaxation, rank-1 cuts, cumulative cost, and pickup-and-delivery. In a reproducible, head-to-head comparison on shared public instances at an identical bound, $\texttt{bgspprc}$ outperforms PathWyse (Salani, Basso and Giuffrida, 2024), the main open-source comparator, by $1.3\times$--$2.35\times$ in shifted geometric mean (and by $1.3\times$--$2.3\times$ even when itself run single-threaded), and runs within $1.9\times$--$2.4\times$ of parallel pull labelling (Petersen and Spoorendonk, 2025), a different labelling technique for the same problem. The library, benchmark scripts, and pinned instances are publicly available.
Problem

Research questions and friction points this paper is trying to address.

shortest path problem with resource constraints
SPPRC
vehicle routing
branch-cut-and-price
resource-constrained shortest path
Innovation

Methods, ideas, or system contributions that make the work stand out.

compile-time resource composition
SIMD-accelerated dominance
bucket-graph labeling
header-only C++23 library
SPPRC extensibility
🔎 Similar Papers
No similar papers found.