Table of Contents
Fetching ...

Asynchronous Cooperative Optimization of a Capacitated Vehicle Routing Problem Solution

Luca Accorsi, Demetrio Laganà, Federico Michelotto, Roberto Musmanno, Daniele Vigo

TL;DR

We address the CVRP, an NP-hard problem, by introducing FILO2$^x$, a parallel shared-memory framework that cooperatively optimizes a single CVRP solution without explicit problem decomposition. Each of $x$ FILO2-based solvers operates asynchronously on localized regions of the shared solution, coordinated by a dispatcher via safe queues, enabling a true single-trajectory search with minimal synchronization. FILO2$^x$ preserves the strong local-search characteristics of FILO2—localized improvements, vertex caching, and memory-efficient data structures—while achieving substantial time reductions: near-linear speedups on large sets of instances and competitive final quality across X (up to 1000 customers), B (up to 30,000 customers), and I (up to 1,000,000 customers) datasets. The approach demonstrates that increased parallelism yields greater acceleration particularly when many routes are required, with the core generation step dominating runtime and synchronization overhead remaining manageable. Overall, FILO2$^x$ provides a scalable, decomposition-free parallel optimization framework that delivers rapid, high-quality CVRP solutions suitable for very large-scale instances.

Abstract

We propose a parallel shared-memory schema to cooperatively optimize the solution of a Capacitated Vehicle Routing Problem instance with minimal synchronization effort and without the need for an explicit decomposition. To this end, we design FILO2$^x$ as a single-trajectory parallel adaptation of the FILO2 algorithm originally proposed for extremely large-scale instances and described in Accorsi and Vigo (2024). Using the locality of the FILO2 optimization applications, in FILO2$^x$ several possibly unrelated solution areas are concurrently asynchronously optimized. The overall search trajectory emerges as an iteration-based parallelism obtained by the simultaneous optimization of the same underlying solution performed by several solvers. Despite the high efficiency exhibited by the single-threaded FILO2 algorithm, the computational results show that, by better exploiting the available computing resources, FILO2$^x$ can greatly enhance the resolution time compared to the original approach, still maintaining a similar final solution quality for instances ranging from hundreds to hundreds of thousands customers.

Asynchronous Cooperative Optimization of a Capacitated Vehicle Routing Problem Solution

TL;DR

We address the CVRP, an NP-hard problem, by introducing FILO2, a parallel shared-memory framework that cooperatively optimizes a single CVRP solution without explicit problem decomposition. Each of FILO2-based solvers operates asynchronously on localized regions of the shared solution, coordinated by a dispatcher via safe queues, enabling a true single-trajectory search with minimal synchronization. FILO2 preserves the strong local-search characteristics of FILO2—localized improvements, vertex caching, and memory-efficient data structures—while achieving substantial time reductions: near-linear speedups on large sets of instances and competitive final quality across X (up to 1000 customers), B (up to 30,000 customers), and I (up to 1,000,000 customers) datasets. The approach demonstrates that increased parallelism yields greater acceleration particularly when many routes are required, with the core generation step dominating runtime and synchronization overhead remaining manageable. Overall, FILO2 provides a scalable, decomposition-free parallel optimization framework that delivers rapid, high-quality CVRP solutions suitable for very large-scale instances.

Abstract

We propose a parallel shared-memory schema to cooperatively optimize the solution of a Capacitated Vehicle Routing Problem instance with minimal synchronization effort and without the need for an explicit decomposition. To this end, we design FILO2 as a single-trajectory parallel adaptation of the FILO2 algorithm originally proposed for extremely large-scale instances and described in Accorsi and Vigo (2024). Using the locality of the FILO2 optimization applications, in FILO2 several possibly unrelated solution areas are concurrently asynchronously optimized. The overall search trajectory emerges as an iteration-based parallelism obtained by the simultaneous optimization of the same underlying solution performed by several solvers. Despite the high efficiency exhibited by the single-threaded FILO2 algorithm, the computational results show that, by better exploiting the available computing resources, FILO2 can greatly enhance the resolution time compared to the original approach, still maintaining a similar final solution quality for instances ranging from hundreds to hundreds of thousands customers.

Paper Structure

This paper contains 34 sections, 2 equations, 15 figures, 12 tables, 3 algorithms.

Figures (15)

  • Figure 1: High-level FILO2$^x$ schema. Different filling patterns are used to associated candidate changes to the respective generator solver. Queues highlight how solvers may have not all applied the same amount of received changes, but changes in all queues are received in the same order.
  • Figure 2: Component activities during the parallel core optimization procedure. The solver is depicted by the gray box with the top lighter part representing the synchronization stage and the bottom darker one illustrating the generation stage.
  • Figure 3: Performance charts of FILO2$^x$ and FILO2 on the $\mathbb{X}$ dataset when performing standard (left) and long (right) runs. The individual numbers identify how many solvers have been used to run the FILO2$^x$ algorithm.
  • Figure 4: Performance charts of FILO2$^x$ and FILO2 on the $\mathbb{B}$ dataset when performing standard (left) and long (right) runs. The individual numbers identify how many solvers have been used to run the FILO2$^x$ algorithm.
  • Figure 5: Performance charts of FILO2$^x$ and FILO2 on the $\mathbb{I}$ dataset when performing standard (left) and long (right) runs. The individual numbers identify how many solvers have been used to run the FILO2$^x$ algorithm.
  • ...and 10 more figures