Table of Contents
Fetching ...

Sequence Variables: A Constraint Programming Computational Domain for Routing and Sequencing

Augustin Delecluse, Pierre Schaus, Pascal Van Hentenryck

TL;DR

Sequence Variables introduce a Constraint Programming computational domain that enables optional visits and insertion-based search for routing and sequencing problems, addressing limitations of classical successor models. The authors formalize the domain, define update operations, and establish consistency notions, alongside an O(n^2) compact encoding and a reversible data-structure implementation. They develop global constraints (Distance, TransitionTimes, Precedence, Cumulative) tailored to sequence variables and demonstrate practical efficacy on the Dial-a-Ride Problem, including integration with Large Neighborhood Search. Experimental results show competitive performance and easier problem modeling, highlighting the approach's compatibility with CP solvers and its potential to broaden CP-based VRP solving.

Abstract

Constraint Programming (CP) offers an intuitive, declarative framework for modeling Vehicle Routing Problems (VRP), yet classical CP models based on successor variables cannot always deal with optional visits or insertion based heuristics. To address these limitations, this paper formalizes sequence variables within CP. Unlike the classical successor models, this computational domain handle optional visits and support insertion heuristics, including insertion-based Large Neighborhood Search. We provide a clear definition of their domain, update operations, and introduce consistency levels for constraints on this domain. An implementation is described with the underlying data structures required for integrating sequence variables into existing trail-based CP solvers. Furthermore, global constraints specifically designed for sequence variables and vehicle routing are introduced. Finally, the effectiveness of sequence variables is demonstrated by simplifying problem modeling and achieving competitive computational performance on the Dial-a-Ride Problem.

Sequence Variables: A Constraint Programming Computational Domain for Routing and Sequencing

TL;DR

Sequence Variables introduce a Constraint Programming computational domain that enables optional visits and insertion-based search for routing and sequencing problems, addressing limitations of classical successor models. The authors formalize the domain, define update operations, and establish consistency notions, alongside an O(n^2) compact encoding and a reversible data-structure implementation. They develop global constraints (Distance, TransitionTimes, Precedence, Cumulative) tailored to sequence variables and demonstrate practical efficacy on the Dial-a-Ride Problem, including integration with Large Neighborhood Search. Experimental results show competitive performance and easier problem modeling, highlighting the approach's compatibility with CP solvers and its potential to broaden CP-based VRP solving.

Abstract

Constraint Programming (CP) offers an intuitive, declarative framework for modeling Vehicle Routing Problems (VRP), yet classical CP models based on successor variables cannot always deal with optional visits or insertion based heuristics. To address these limitations, this paper formalizes sequence variables within CP. Unlike the classical successor models, this computational domain handle optional visits and support insertion heuristics, including insertion-based Large Neighborhood Search. We provide a clear definition of their domain, update operations, and introduce consistency levels for constraints on this domain. An implementation is described with the underlying data structures required for integrating sequence variables into existing trail-based CP solvers. Furthermore, global constraints specifically designed for sequence variables and vehicle routing are introduced. Finally, the effectiveness of sequence variables is demonstrated by simplifying problem modeling and achieving competitive computational performance on the Dial-a-Ride Problem.

Paper Structure

This paper contains 44 sections, 1 theorem, 27 equations, 8 figures, 7 tables, 6 algorithms.

Key Result

Theorem 1

The forbidden insertions $\mathcal{I}^{\text{\textcircled{\scriptsize f}}}( \scaleobj{.85}{\overrightarrow{s}}, \hat{N})$ can be used instead of $\hat{N}$ in the representation of the domain $\mathcal{D}^{\text{\textcircled{\scriptsize s}}}( \scaleobj{.85}{\overrightarrow{s}}) \cap \mathcal{D}^{\t

Figures (8)

  • Figure 1: Paths generated by Algorithm \ref{['alg:branching_darp']} from an initial one (left). Numbers show which are considered first.
  • Figure 2: Compact domain implementation. On the left, the partial sequence $\scaleobj{.85}{\overrightarrow{s}}$ and the graphs $G(V,E)$ are shown. Below them is a table showing the edges ${E}_{ }^{-} , {E}_{ }^{+}$, the counters of insertions $nI$ and the successors ${\mathbf{s}}_{ }^{+}$ and the predecessors ${\mathbf{s}}_{ }^{-}$ of the nodes (only relevant for nodes $v \in \scaleobj{.85}{\overrightarrow{s}}$). The right part shows the domain after performing an insertion with $(\alpha, v_3)$, extending the partial sequence.
  • Figure 3: $\mathrm{Cumulative}( \scaleobj{.85}{\overrightarrow{S}}, (s_0, s_1, s_2, s_3), (e_0, e_1, e_2, e_3), (2, 1, 1, 2), 3)$ over a fixed sequence variable $\scaleobj{.85}{\overrightarrow{S}} = \alpha \cdot s_0 \cdot s_1 \cdot e_1 \cdot e_0 \cdot s_3 \cdot e_3 \cdot \omega$. The sequence is shown at the top, and the graph below shows the accumulated load for each node $v \in \scaleobj{.85}{\overrightarrow{S}}$. Note how nodes $s_2, e_2$ related to activity 2 are not part of the sequence.
  • Figure 4: Sequences created from a fully connected graph $G(V, E)$ with $V = \{\alpha, v_1, v_2, v_3, \omega\}$, where all nodes are required ($V = R$). Nodes $\alpha$ and $\omega$ are implicit and not shown. Left: each sequence is extended by inserting any node at each step. Right: a node is first selected for insertion, then all its feasible positions are considered for insertion before moving to the next node (first $v_1$, then $v_2$, then $v_3$).
  • Figure 5: Number of instances solved for each primal gap value. Curves on the top left are the best.
  • ...and 3 more figures

Theorems & Definitions (12)

  • Example 1
  • Definition 1
  • Definition 2
  • Example 2
  • Theorem 1
  • proof
  • Example 3
  • Definition 3
  • Definition 4
  • Definition 5
  • ...and 2 more