Keywords

1 Introduction

Cross-docking is an intermediate activity within a supply chain network for enabling a transshipment process. The purpose is to consolidate different shipments for a particular destination in a full truckload (FTL), such that direct shipment with less than truckload (LTL) can be avoided, and thus the transportation cost is minimized [1]. The VRPCD as the integration of the vehicle routing problem (VRP) and cross-docking was first introduced by [5], which aims to construct a set of routes to deliver a single type of products from a set of suppliers to a set of customers through a cross-dock facility, such that the operational and transportation costs are minimized, with respect to vehicle capacity and time limitations.

The idea of combining metaheuristics with elements of exact mathematical programming algorithms, known as matheuristics, for solving the VRP was first introduced by [3]. [4] introduced matheuristic based on large neighborhood search for solving the VRPCD with resource constraints. In this study, we design a matheuristic which only requires a heuristic scheme to generate columns [2]. The column generation scheme is performed by an adaptive large neighborhood search (ALNS) and the set partitioning formulation is used to solve a subset of columns to find the final solution. The matheuristic is tested on one set of benchmark VRPCD instances, and the results are compared against those of the state-of-the-art algorithms. Preliminary experimental results show that our proposed matheuristic is able to obtain 29 out of 30 optimal solutions and outperform the state-of-the-art algorithms: tabu search (TS) [5], improved tabu search (imp-TS) [6], and simulated annealing (SA) [7].

2 Problem Description

The VRPCD network consists of a set of suppliers \(S = \{1, 2, \ldots , |S|\}\) delivering a single product to a set of customers \(C = \{1, 2, \dots , |C|\}\) through a single cross-dock facility, denoted as node 0. Two major processes involved are: the pickup process at the suppliers and the delivery process to the customers. \(P_i\) products must be picked up from node i in S, and \(D_i\) products must be delivered to node i in C. Each pair of nodes (ij) in S is connected by travel time \(t_{ij}^{'}\) and transportation cost \(c_{ij}^{'}\). Each pair of nodes (ij) in C is connected by travel time \(t_{ij}^{''}\) and transportation cost \(c_{ij}^{''}\). The VRPCD network is illustrated in Fig. 1.

Fig. 1.
figure 1

VRPCD network

A fleet of homogeneous vehicles \(V = \{1, 2, ..., |V|\}\) with capacity Q is available at the cross-dock facility to be utilized for shipments. Each vehicle can only perform either a pickup process or a delivery process, or neither. In the pickup process, vehicles depart from the cross-dock, visit one (or more) supplier(s) to pickup their products, and return to the cross-dock for consolidating products. After the products are consolidated according to customers’ demand, vehicles depart from the cross-dock, visit one (or more) customer(s) to deliver their demand, and return to the cross-dock. For each vehicle used, an operational cost H will be charged. The VRPCD aims to determine the number of vehicles used and its corresponding routes, such that the operational and transportation costs are minimized. The constraints in the VRPCD are as follows:

  • the total transportation time for the pickup and delivery processes together does not exceed \(T_{max}\)

  • each supplier and customer can only be visited exactly once

  • the number of vehicles utilized in both the pickup and delivery process together does not exceed |V|

  • the amount of loads on the pickup route and on the delivery route in each vehicle does not exceed Q.

3 Proposed Algorithm

The matheuristic is decomposed into two phases: (i) adaptive large neighborhood search (ALNS) and (ii) the set partitioning formulation. The first phase aims to generate feasible candidate routes as many as possible, represented as columns. Those routes are then accommodated in two different pools, \(\varOmega _{s}\) and \(\varOmega _{c}\), for pickup and delivery process respectively. In the second phase, a set partitioning formulation is solved over the set of routes stored in \(\varOmega _{s}\) and \(\varOmega _{c}\) to find a combination of routes that satisfies the VRPCD constraints. We define \(Sol_0\) and \(Sol^*\) as the current and the best found solutions so far. An initial solution is constructed based on a greedy approach, where the node with the least additional transportation cost is inserted, such that each vehicle starts (ends) its route from (in) the cross-dock without violating the vehicle capacity and time horizon constraints. First, the \(Sol_0\) and \(Sol^*\) are set to be the same as the initial solution. Then, the constructed routes (pickup routes and delivery routes) are added into \(\varOmega _{s}\) and \(\varOmega _{c}\) respectively. Let \(R = \{1, 2, \ldots , |R|\}\) be a set of destroy operators, \(I = \{1, 2, \ldots , |I|\}\) be a set of repair operators. The score \(s_j\) and weight \(w_j\) of each operator \(j \in R \cup I\) is set such that its probability of choosing each operator \(j, p_j\), in both R and I is equally likely in the beginning. At each iteration, a destroy operator \(R_i\) is randomly selected to remove \(\pi \) nodes from \(Sol_0\). Consequently, a repair operator \(I_i\) is selected to reinsert the \(\pi \) removed nodes back to the \(Sol_0\), resulting in a new neighborhood solution. In our implementation, \(\pi = 5\).

Several destroy and repair operators that we use are Random removal (\(R_1\)): remove a randomly selected node from \(Sol_0\), Worst removal (\(R_2\)): remove a node with a high removal cost (the difference in objective function values between including and excluding a particular node), Route removal (\(R_3\)): randomly select a vehicle and remove its visited nodes, Greedy insertion (\(I_1\)): insert a node to a position with the lowest insertion cost (the difference in objective function values between after and before inserting a node to a particular position), k-regret insertion (\(I_2\), \(I_3\), \(I_4\)): insert a node to a position with the largest regret value (the difference in objective function values when a node is inserted in the best position and in the k-best position). We use \(k=2, 3,\) and 4.

Each of the removed nodes is only considered as a candidate to be inserted in a route of \(Sol_0\) if it satisfies both vehicle capacity and time horizon constraints. Therefore, the feasibility of \(Sol_0\) is guaranteed, unless some of the removed nodes cannot be inserted to any positions in \(Sol_0\). If that happens, a high penalty value is added to the objective function value (total cost TC). \(Sol_0\) is accepted if and only if it improves \(Sol^*\). Otherwise, \(Sol_0\) is set to be \(Sol^*\), such that a new neighborhood solution is always explored from \(Sol^*\). Each of the operators’ score \(s_j\) is then updated by following Eq. (1), where \(\delta _1 > \delta _2\). We implemented 0.5 and 0 for \(\delta _1\) and \(\delta _2\) respectively.

$$\begin{aligned} s_j = {\left\{ \begin{array}{ll} s_j + \delta _1, &{} \text {if } Sol_0 < Sol^* \\ s_j + \delta _2, &{} \text {if } Sol_0 \ge Sol^* \\ \end{array}\right. } \;\; \forall j \in R \cup I \end{aligned}$$
(1)

After \(\eta _{ALNS}\) iterations, each of the operators’ weight \(w_j\) is updated by following Eq. (2), where \(\gamma \) refers to the reaction factor \((0<\gamma <1)\) to control the influence of the recent success of an operator on its weight and \(\chi _j\) is the frequency of using operator j. Consequently, each of the operators’ probability \(p_j\) is updated by following Eq. (3). The ALNS is terminated when there is no solution improvement after \(\eta \times \theta \) iterations. Upon this termination, the \(Sol^*\) constructed by ALNS becomes an upper bound of the VRPCD solution. It means that solving the following set partitioning formulation will only yield a lower (or at least the same) objective function value as the \(Sol^*\) constructed by ALNS.

$$\begin{aligned} w_j = {\left\{ \begin{array}{ll} (1-\gamma )w_j + \gamma \frac{s_j}{\chi _j}, &{} \text {if } \chi _j > 0 \\ (1-\gamma )w_j, &{} \text {if } \chi _j = 0 \\ \end{array}\right. } \;\; \forall j \in R \cup I \end{aligned}$$
(2)
$$\begin{aligned} p_j = {\left\{ \begin{array}{ll} \frac{w_j}{\sum _{k \in R} w_k} \;\; \forall j \in R\\ \frac{w_j}{\sum _{k \in I} w_k} \;\; \forall j \in I\\ \end{array}\right. } \end{aligned}$$
(3)

Each candidate route r in \(\varOmega _s\) is associated to a transportation cost of \(c_{r}^{'}\) and a transportation time of \(t_{r}^{'}\), while each candidate route r in \(\varOmega _c\) is associated to a transportation cost of \(c_{r}^{''}\) and a transportation time of \(t_{r}^{''}\). Let \(a_{ir}^{'}\) be a binary parameter equal to 1 if route r visits node i; 0 otherwise \((r \in \varOmega _s, i \in S)\) and \(a_{ir}^{''}\) be a binary parameter equal to 1 if route r visits node i; 0 otherwise \((r \in \varOmega _c, i \in C)\). Several decision variables in the set partitioning formulation:

  • \(x_{r}^{'}\) = 1 if route r is selected; 0 otherwise \((r \in \varOmega _s)\)

  • \(x_{r}^{''}\) = 1 if route r is selected; 0 otherwise \((r \in \varOmega _c)\)

  • \(Tp_{max}\) = the maximum transportation time for pickup process

  • \(Td_{max}\) = the maximum transportation time for delivery process

The objective is to minimize the total of transportation and operational costs, as formulated in (4). All supplier and customer nodes must be visited, as required in (5) and (6) respectively. (7) limits the number of selected routes (i.e. does not exceed the number of available vehicles). (8) and (9) records the maximum transportation time in pickup and delivery process respectively. Finally, the two processes must be done within the time horizon, as expressed in (10).

$$\begin{aligned} Min \;\; \sum _{r \in \varOmega _s} c_{r}^{'} x_{r}^{'} + \sum _{r \in \varOmega _c} c_{r}^{''} x_{r}^{''} + H \left( \sum _{r \in \varOmega _s} x_{r}^{'} + \sum _{r \in \varOmega _c} x_{r}^{''}\right) \end{aligned}$$
(4)
$$\begin{aligned} \sum _{r \in \varOmega _s} a_{ir}^{'} x_{r}^{'} = 1 \;\; \forall i \in S \end{aligned}$$
(5)
$$\begin{aligned} \sum _{r \in \varOmega _c} a_{ir}^{''} x_{r}^{''} = 1 \;\; \forall i \in C \end{aligned}$$
(6)
$$\begin{aligned} \sum _{r \in \varOmega _s} x_{r}^{'} + \sum _{r \in \varOmega _c} x_{r}^{''} \le |V| \end{aligned}$$
(7)
$$\begin{aligned} t_{r}^{'} x_{r}^{'} \le Tp_{max} \;\; \forall r \in \varOmega _s \end{aligned}$$
(8)
$$\begin{aligned} t_{r}^{''} x_{r}^{''} \le Td_{max} \;\; \forall r \in \varOmega _c \end{aligned}$$
(9)
$$\begin{aligned} Tp_{max} + Td_{max} \le T_{max} \end{aligned}$$
(10)

4 Computational Results

The matheuristic is tested on benchmark VRPCD instances with 10-nodes [5]. We report the average values found for all instances out of ten runs. Since the instances are small, we could use CPLEX and the mathematical model presented in [5] to obtain the optimal solution for all these instances. It should be noted, however, that these optimal solutions were not reported in the state of the art yet. In Table 1, we evaluate the performance of our approach and those of the state-of-the-art algorithms based on these optimal solutions. The matheuristic is implemented in C++ with CPLEX 12.9.0.0 to solve the set partitioning formulation. All experiments were performed on a computer with Intel Core i7-8700 CPU @ 3.20 GHz processor, 32.0 GB RAM. The parameter values are: \(\gamma \): 0.7, \(\theta \): 20, \(\eta _{ALNS}\): 200, \(\eta \): \((|S|+|C|)\times 2\).

Our proposed matheuristic is able to obtain either the same or further improve the best known solutions (BKS) which are consolidated from the state-of-the-art algorithms. On average, we outperform the BKS with 1.5%. Moreover, we obtain the optimal solution for each instance. In terms of the average of CPU time, our proposed matheuristic spends 0.16 s while [5,6,7] use 2.02, 0.12 and 2.06 s respectively. The average calculation time for generating the optimal solutions with CPLEX takes 1.05 s.

Table 1. Total cost comparison of the matheuristic and state-of-the-art algorithms

5 Conclusion

We study the integration of vehicle routing problem with cross-docking (VRPCD). A matheuristic approach based on ALNS and set partitioning is proposed. Preliminary results show that the matheuristic outperforms the state-of-the-art algorithms in terms of both solution quality and computational time. Solving larger benchmark instances will be included in future work.