Table of Contents
Fetching ...

A parallel pull labelling algorithm for the resource constrained shortest path problem

Bjørn Petersen, Simon Spoorendonk

TL;DR

The paper tackles RCSPP by introducing a parallel pull labelling approach that uses bucket-level parallelism, a bi-directional search with a dynamic midpoint, and SIMD-driven dominance checks. These methods collectively reduce label proliferation and computation, achieving up to $200\times$ speed-ups on some hard instances and around $5\times$ on average across a diverse set of VRPTW-based problems. The innovations are particularly impactful for large-scale RCSPP subproblems in column generation for routing, scheduling, and transport networks. Overall, the work provides a practical, scalable framework that leverages parallelism and vectorization to enhance the efficiency of RCSPP solvers.

Abstract

The Resource Constrained Shortest Path Problem (RCSPP) is a fundamental combinatorial optimisation problem in which the goal is to find a least-cost path in a directed graph subject to one or more resource constraints. In this paper we present a pull labelling algorithm for the RCSPP that introduces i) a highly parallelisable approach at a label bucket level, ii) an extension to bi-directional search with a dynamic midpoint, and iii) a vectorised dominance criterion that uses vector instructions to speed-up the label comparison with another level of parallelisation. Compared to a baseline version of the algorithm the optimisations result in a speed-up of around 14x on a set of hard instances and up to 200x on some of the hardest instances. The proposed algorithm demonstrates significant computational improvements that may enhance the efficiency of column generation frameworks incorporating resource constrained shortest path sub-problems, potentially enabling the efficient solution of larger-scale instances in routing, scheduling, supply chain and transportation network optimisation applications.

A parallel pull labelling algorithm for the resource constrained shortest path problem

TL;DR

The paper tackles RCSPP by introducing a parallel pull labelling approach that uses bucket-level parallelism, a bi-directional search with a dynamic midpoint, and SIMD-driven dominance checks. These methods collectively reduce label proliferation and computation, achieving up to speed-ups on some hard instances and around on average across a diverse set of VRPTW-based problems. The innovations are particularly impactful for large-scale RCSPP subproblems in column generation for routing, scheduling, and transport networks. Overall, the work provides a practical, scalable framework that leverages parallelism and vectorization to enhance the efficiency of RCSPP solvers.

Abstract

The Resource Constrained Shortest Path Problem (RCSPP) is a fundamental combinatorial optimisation problem in which the goal is to find a least-cost path in a directed graph subject to one or more resource constraints. In this paper we present a pull labelling algorithm for the RCSPP that introduces i) a highly parallelisable approach at a label bucket level, ii) an extension to bi-directional search with a dynamic midpoint, and iii) a vectorised dominance criterion that uses vector instructions to speed-up the label comparison with another level of parallelisation. Compared to a baseline version of the algorithm the optimisations result in a speed-up of around 14x on a set of hard instances and up to 200x on some of the hardest instances. The proposed algorithm demonstrates significant computational improvements that may enhance the efficiency of column generation frameworks incorporating resource constrained shortest path sub-problems, potentially enabling the efficient solution of larger-scale instances in routing, scheduling, supply chain and transportation network optimisation applications.

Paper Structure

This paper contains 19 sections, 2 theorems, 2 equations, 16 figures, 3 tables, 1 algorithm.

Key Result

Lemma 1

Label $L_1$ dominates label $L_2$ if:

Figures (16)

  • Figure 1: Pull (left) where labels are pulled into bucket $e$ from buckets $a$, $b$, and $c$. Push (right) where labels are pushed from bucket $e$ to buckets $a$, $b$, and $c$.
  • Figure 2: Initial state of the dependency graph.
  • Figure 3: Minimal dependency graph.
  • Figure 4: Dependency graph for mono-directional pull labelling algorithm.
  • Figure 5: Bucket read/write activity in stages not processed (left), being processed (middle), and processed (right).
  • ...and 11 more figures

Theorems & Definitions (3)

  • Definition 1: Dominance
  • Lemma 1: Sufficient condition
  • Lemma 2: Dominance order