The split-delivery mixed capacitated arc-routing problem: Applications and a forest-based tabu search approach

The split-delivery mixed capacitated arc-routing problem: Applications and a forest-based tabu search approach

Transportation Research Part E 132 (2019) 141–162 Contents lists available at ScienceDirect Transportation Research Part E journal homepage: www.els...

3MB Sizes 0 Downloads 62 Views

Transportation Research Part E 132 (2019) 141–162

Contents lists available at ScienceDirect

Transportation Research Part E journal homepage: www.elsevier.com/locate/tre

The split-delivery mixed capacitated arc-routing problem: Applications and a forest-based tabu search approach

T

Mingzhu Yua, Xin Jinb, Zizhen Zhangc, , Hu Qinb, Qidong Laid ⁎

a

Institute of Big Data Intelligent Management and Decision, College of Management; College of Civil and Transportation Engineering, Shenzhen University, Shenzhen, China School of Management, Huazhong University of Science and Technology, Wuhan, China c School of Data and Computer Science, Sun Yat-sen University, Guangzhou, China d Department of Management Sciences, City University of Hong Kong, Tat Chee Ave, Kowloon Tong, Kowloon, Hong Kong Special Administrative Region b

ARTICLE INFO

ABSTRACT

Keywords: Split-delivery Arc-routing problem Mixed graph Forest-based tabu search Water sprinkling

Motivated by practical applications such as the water sprinkling services of urban administration bureaus in big cities, we study a split-delivery mixed capacitated arc-routing problem. In this problem, a fleet of capacitated vehicles need to serve a set of arcs/edges in a split delivery manner by traversing a mixed graph. We provide a mathematical formulation and analyze some properties of the problem that could be utilized to accelerate the search process of a metaheuristic algorithm. A forest-based tabu search algorithm is proposed to efficiently solve the problem. Numerical experiments show that our algorithm can quickly produce high quality solutions compared with the state-of-the-art approaches. In addition, we analyze how different patterns of a mixed graph affect the quality of solutions.

1. Introduction Driven by the need of practical applications in transportation, the capacitated arc-routing problem (CARP) has attracted wide attention in the past few decades. It can be applied to urban refuse collection, postal delivery, road watering service and salt sprinkling service (Haouari, 2000). For example, in England, the government could save several billion pounds if the cost of sprinkling salt on roads in winter to clear snow is reduced by 5% (Zhu et al., 2007). In a classic CARP, there is an undirected graph with a set of vertices and edges. Each edge is associated with a predefined traveling cost. A subset of edges is required to be served by vehicles and each edge has a demand. A fleet of identical vehicles with limited capacities are based at the depot vertex. The objective of the CARP is to find a set of vehicle routes that produce the minimum traveling cost subject as follows: (1) each service-required edge is served by exactly one route; (2) each route should start from and end at the depot; and (3) the total demand served within a route should not exceed the capacity of the vehicle. The split-delivery capacitated arc-routing problem (SDCARP) is a natural extension of the CARP by allowing the service of a single edge using multiple vehicles. Namely, the demand is splittable. The split option would be useful when the demand is greater than the vehicle’s capacity. Furthermore, it can potentially lower the overall traveling cost. Our research is a more generalized version of the SDCARP. It is motivated by the water sprinkling services of urban administration

Corresponding author. E-mail addresses: [email protected] (M. Yu), [email protected] (X. Jin), [email protected] (Z. Zhang), [email protected] (Q. Lai). ⁎

https://doi.org/10.1016/j.tre.2019.09.017 Received 6 November 2018; Received in revised form 25 September 2019; Accepted 27 September 2019 Available online 18 November 2019 1366-5545/ © 2019 Elsevier Ltd. All rights reserved.

Transportation Research Part E 132 (2019) 141–162

M. Yu, et al.

Fig. 1. A wide road such that both directions need to be served.

bureaus in a big city in China. In this application, a number of roads need to be watered every day. Due to the limited capacity of sprinklers, roads that need to be served (or sprinkled) could be partially served by more than one vehicle. Note that some of the roads to be sprinkled are two-way with three to four lanes in each direction. For these wide two-way roads, the sprinkler needs to travel in two directions separately to fully serve them (as shown in Fig. 1). We denote such kind of road by two directed links in the SDCARP. Moreover, for some roads that are not as wide (e.g., a two-way road with only one lane in each direction), a sprinkler could fully serve the road in either direction (as shown in Fig. 2). Such roads are represented by one undirected link in the SDCARP. We consider the route planning of a fleet of capacitated sprinklers to provide services on a road network that involves both directed and undirected links. All the roads that require services can be served by more than one sprinkler. The objective of the problem is to minimize the total traveling cost while satisfying the demand requirement constraints and sprinkler capacity constraints. This problem generalizes the classic SDCARP by introducing both directed and undirected links in a mixed graph. To differentiate this problem from the classic SDCARP, we call it the split-delivery mixed capacitated arc-routing problem (or the SDMCARP). In this paper, we first provide a mathematical formulation for the SDMCARP. The SDCARP and the SDMCARP are NP-hard problems. They are much more difficult to solve than the CARP, since additional decisions must be made to determine the delivery quantity at each edge for each vehicle (Cotta and Hemert, 2008). In addition, the SDMCARP is slightly more difficult to solve than the SDCARP, because the travel directions at different links must be further determined. We then present some properties of the SDCARP/SDMCARP. A forest-based tabu search algorithm is proposed to solve the SDCARP/SDMCARP. Through numerical experiments, we find that our algorithm can improve several existing best-known solutions for SDCARP benchmark instances. In addition, our algorithm can obtain high quality solution in a much shorter time than CPLEX for the constructed SDMCARP instances, especially for those large-scale ones. The remainder of this paper is organized as follows. Section 2 reviews the relevant literature, including the CARP and the SDCARP. We then describe the model basics and provide a mathematical formulation for the SDMCARP in Section 3. In Section 4, we introduce the solution representation which exploits the characteristics of the SDMCARP. In Section 5, we present our meta-heuristic algorithm, which combines a tabu search algorithm with split operations to solve the problem. In Section 6, we conduct computational experiments to validate our solution method. Section 7 concludes the paper. 2. Literature review Our study is mainly related to two streams of research: literature about the CARP and the SDCARP. The CARP has been extensively studied using exact or heuristic methods. For exact methods, Bode and Irnich (2012) proposed a cut-first branch-and-price-second exact algorithm to improve the existing exact methods. By splitting edge flows into unique CARP

Fig. 2. A narrow road such that service can be provided in either direction. 142

Transportation Research Part E 132 (2019) 141–162

M. Yu, et al.

tours, their algorithm circumvented the drawbacks of previous exact methods. Bartolini et al. (2013) proposed a variation of the CARP, the capacitated arc-routing problem with deadheading demand (the CARPDD). They provided new methodologies to strengthen the lower bound of the CARPDD and developed an exact algorithm based on cut-and-column generation and branch and price, improving the existing algorithms for the CARP. For large-scale CARPs, many studies have focused on developing heuristic and meta-heuristic methods. In Corberán and Laporte (2014), the existing heuristics for the CARP and variants are discussed. Mourão and Pinto (2017) further reviewed studies on the CARP. Hertz et al. (2000) proposed an algorithm called the CARPET, which is a tabu search for the CARP. It generates better solutions than previous heuristics mainly due to the new framework of the tabu search and some new local search operators. In recent years, several meta-heuristics were shown to be highly efficient. Thus, an immune clonal selection algorithm was proposed by Shang et al. (2016). Chen et al. (2016) proposed a hybrid steady-state evolutionary algorithm that combines the tabu search with the local search. Chen et al. (2016) proposed a hybrid metaheuristic approach that combines an effective local refinement procedure and a randomized tabu thresholding procedure to improve the existing best known algorithms for the CARP. Luís et al. (2010) proposed a modified ant colony optimization based algorithm to solve the CVRP and showed that it outperforms the state-of-the-art metaheuristics. Dell’Amico et al. (2016) proposed a new iterated local search metaheuristic for the mixed capacitated general routing problem (the MCGRP), in which requests could be located at nodes, edges and arcs. Vidal (2017) developed structural neighborhood decomposition approaches for the CARP and improved the algorithm efficiency significantly compared with previous works. Their approaches could be extended to several variants of the CARP. Other research concerning heuristic algorithms for the CARP (e.g., Willemse and Joubert, 2016; Arakaki and Usberti, 2018; Hertz et al., 2000; Chen and Hao, 2018; Fung et al., 2013; Kasaei and Salman, 2016) applied different methods to handle different factors such as open capacity, mixed capacity, time constraints, and road connectivity restoration. As the CARP, the SDCARP is an NP-hard problem. Mullaseril et al. (1997) proposed an adaptation of the local search, which was applied to a livestock feed distribution problem. Belenguer et al. (2000) developed a lower bound for the SDCARP by which they improved the existing exact methods. Labadi et al. (2008) designed a memetic algorithm for population management, the solutions of which were compared with the hybrid genetic algorithm of Lacomme et al. (2004). In some instances with large demands, the percentage of distance savings attained 15% and the percentage of vehicle number saving reaches 18%. Split-delivery properties have also been considered in other traveling salesman problems and vehicle routing problems (e.g., Salazar-González and SantosHernández, 2015; Lee et al., 2006; Zhang et al., 2014). Our study contributes to the literature by initiating a practical application involving a mixed graph in the SDCARP (i.e., the SDMCARP), elucidating some properties of the SDCARP/SDMCARP and developing an efficient algorithm compared with existing studies. Our computational results can provide benchmark data for future studies on the SDMCARP. 3. Problem formulation The proposed SDMCARP is defined on a connected mixed graph G = (V , L) , where V = {1, …, n} is a set of vertices that includes a depot (denoted as 1), and L = E A is a set of links. Here, E = {(i, j)|i, j V } is the edge set corresponding to “undirected links” and A = { i, j |i , j V } is the arc set corresponding to “directed links”. For notational convenience, we use the form “[i , j]” to denote a link incident with two vertices i and j, which can be either directed or undirected. If it is directed, the starting vertex is i and the A} . Each link [i , j] has ending vertex is j. In this manner, we can rewrite E and A as: E = {[i, j] [j, i]|(i , j ) E } and A = {[i, j]| i, j an associated nonnegative traveling cost cij (here cij could be proportional to the traveling distance between i and j). The traveling cost matrix satisfies the triangle inequality. We classify all of the links into two categories: a set LR of (service) required links and a set LN of nonrequired links, i.e., L = LR LN . Each required link [i , j] LR has a positive demand dij , indicating that it must be fully satisfied. Because a link can be directed or undirected, we use AR and ER (where LR = AR ER ) to denote the set of required arcs and required edges, respectively. For the remaining nonrequired links, they do not need to be serviced. However, their existence can provide additional connectivity of the graph. It is worth noting that all the links can be visited more than once. There are a set K of identical vehicles (with the same capacity C) based at the depot. The objective of the SDMCARP is to minimize the total traveling cost incurred by the vehicles to serve all required edges and arcs. We require that: (1) each vehicle starts from and ends at the depot; (2) moving of vehicle follows the direction of the corresponding link; (3) the vehicle’s capacity is respected; (4) the demand of each required link is fully served by one or more vehicles; and (5) vehicles cannot be replenished after they return to the depot. For each vehicle route k = 1, …, m (here m = |K | is the number of available vehicles), let: x ijk be equal to 1 if a required link [i , j] LR is served by route k. Note that link [i , j] could be either directed or undirected. If k x ij = 1, vertex i is the starting vertex and vertex j is the ending vertex of the served link (whether directed or undirected); otherwise, it is 0. yijk be the number of times that a link [i , j] L is purely visited but not served by route k.

z ijk be the amount of demand of the required link [i , j] LR served by route k. fijk be the remaining capacity of vehicle route k before serving link [i , j] at vertex i. (SDMCARP )

143

Transportation Research Part E 132 (2019) 141–162

M. Yu, et al. m

m

cij x ijk +

min k = 1 [i, j] LR

cij yijk

(1)

k = 1 [i, j] L

m

z ijk = dij ,

s. t .

[i, j]

AR

(2)

k=1

m

(z ijk + z jik ) = dij ,

[i , j]

ER, i < j

(3)

k= 1

yijk + j :[i, j] L

x ijk = j :[i, j ] LR

i y1kj

1,

yjik + j :[j, i] L

V,

k

k

x jik , j :[j, i] LR

(4)

K

K

(5)

[1, j ] L

f jik

fijk =

j :[j, i] L

j :[i, j] L

i

[1, j ] L

V {1},

f1kj =

z jik , j :[j, i] LR

k

z ijk ,

K

k

(6)

K

(7)

[i, j] LR

fijk

C (yijk + xijk ),

[i, j]

fijk

Cyijk ,

LN ,

[i, j]

zijk

C,

k

LR ,

k

k

K

(8)

K

(9)

K

(10)

[i, j] LR

z ijk

dij xijk ,

[i , j]

LR ,

k

K

(11)

x ijk

{0, 1},

[i, j]

LR ,

k

K

(12)

k

K

yijk

,

[i, j]

L,

z ijk

,

[i , j]

LR ,

fijk

,

[i , j ]

L,

k

k

(13) (14)

K

K

(15)

The objective function (1) minimizes the total traveling cost containing the serving cost and purely visiting cost. Constraints (2) and (3) ensure that all demands of the required links (both arcs and edges) are satisfied by vehicle routes. Constraints (4) mean that the in-degree of a vertex in a route must be equal to its out-degree. Constraints (5) guarantee that a vehicle can only start from the depot at most once, namely, it is not allowed to return to the depot during the serving process. Constraints (6) are flow conservation constraints for the links served by vehicle k. The sum inflow of the links with vertex i as the end vertex minus those with vertex i as the start vertex should be equal to the total demands of the links with vertex i as the end vertex. Constraints (7)–(10) are the capacity constraints, which make sure that the remaining capacity of vehicle k does not exceed the vehicle’s full capacity. Note that in constraints (8) and (9), if RHS is equal to 0, fijk must also be 0. Otherwise, fijk can be any nonnegative number. Bounded by constraints

(6), (7) and (10), fijk cannot exceed the capacity. Constraints (11) are the linkage constraints between variables x ijk and z ijk . In constraints (13)–(15), is the set of natural numbers, and is the set of real numbers. For the above SDMCARP model, we find that it can only be solved on some small size instances (e.g., |LR | 50 with 1 h computation time) by using the commercial solver CPLEX. This motivates us to design an effective and efficient meta-heuristic to deal with large-scale instances. 4. Solution structures 4.1. Solution representation The solution of the SDCARP/SDMCARP consists of a set of delivery patterns. A delivery pattern is a route, i.e., visited link sequence, with information on delivery quantity at each link. Given a route of the SDCARP/SDMCARP, the variations in delivery quantities at links affect the feasibility of the solution but have no impact on the objective value, which relies on the total traveling cost of a route. Therefore, given the link sequence of each route in a solution S (it is possible that S is infeasible due to the absence of 144

Transportation Research Part E 132 (2019) 141–162

M. Yu, et al.

Fig. 3. An SDMCARP instance.

delivery quantity); if we can find an appropriate amount of delivery quantity at each link such that every demand is met and the capacity of each vehicle is not violated, then S is feasible and the corresponding objective value can be obtained by calculating the total traveling cost. Otherwise, S is infeasible. Based on the above discussions, we can find that a possible solution representation of the SDCARP/SDMCARP is to eliminate the delivery quantity from each delivery pattern in the solution. Another observation is that nonrequired links can be excluded from the solution representation. Instead, the connectivity of adjacent required links can be determined by the shortest path between two end vertices of the links. As an example, Fig. 3 shows an SDMCARP instance, where C represents the vehicle capacity, and the two numbers associated with a link indicate its traveling cost and demand. A solution S to this instance is depicted in Fig. 4, where D corresponds to the actual load of a vehicle. A bold link in the figure indicates a required link and the associated number is the delivery quantity. A thin link indicates the connection between two nodes. For instance, link [5, 7] in r3 means that the vehicle travels from vertex 5 to vertex 7 without serving. Note that 5, 7 is a 2 7 ” is used. Therefore, we can use three route sequences directed arc. To reach vertex 7 from vertex 5, the shortest path “5 {([1, 6], [6, 8]), ([1, 4], [4, 2], [2, 7], [7, 5], [5, 1]), ([1, 5], [7, 3], [3, 2], [2, 1])} to represent a solution. The above discussion shows that we can use only required links to represent a solution. However, the solution search space is still quite large as a required link can be used many times in different routes. Dror and Trudeau (1989) have shown some properties for the optimal solutions of the SDVRP. These properties can also be applied to the SDCARP to restrict the search space. Property 1. If the traveling cost matrix [cij] satisfies the triangle inequality, then an optimal solution to the SDCARP exists in which two vehicles have at most one split edge in common. Definition (k-split cycle): Consider a solution of the SDCARP with k delivery patterns p1 , p2 , …, pk . If there exists k service required edges e1, e2, …, ek , where pi serves ei and ei + 1, for i = 1, …, k 1, and pk serves ek and e1, then we say that these k delivery patterns contain a k-split cycle. Note that a pattern pi does not contain the edges that are purely traversed but not served. For example, a solution {([1, 2], [2, 3]), ([2, 3], [3, 4]), ([1, 2], [2, 3], [3, 4])} has a 3-split cycle. Based on the definition of the ksplit cycle, Belenguer et al. (2010) provide the following Theorem. Theorem 1. If the cost matrix [cij] satisfies the triangle inequality, then there exists an optimal solution of the SDCARP that does not include any k-split cycle (for k 2). It is also easy to verify that the above properties also hold for the SDMCARP, if we extend edges to directed or undirected links. Let F be the space of solutions that do not contain any k-split cycles. According to F be the solution space of the SDMCARP and F , there must exist a solution Property 1 and Theorem 1, must contain at least one optimal solution. Thus for any solution S S such that S is at least as good as S . Thus, we can find an optimal solution of the SDMCARP by only exploring . In this case, the solution exhibits some nice structures. Given the solution S = {r1, r2, …, rm} in space , where r1, r2, …, rm are m routes without specifying delivery quantities, we construct a bipartite graph G (S ) = (N (S ), E (S )) . In the remainder of the article, we distinguish between the terms node and vertex, which are usually considered the same and are used interchangeably in standard graph terminology. We specify that node refers to the node in

Fig. 4. A solution S = {r1, r2, r3} to the instance in Fig. 3. 145

Transportation Research Part E 132 (2019) 141–162

M. Yu, et al.

Fig. 5. Graph G (S ) corresponding to solution S.

the constructed graph G (S ), while vertex refers to the vertex in the original graph G. The set N (S ) in the bipartite graph comprises two subsets of nodes, namely, the route index set Nr (S ) and the required link index set Nl (S ) , where each route node k in Nr (S ) corresponds to a route rk S and each link node h in Nl (S ) corresponds to a required link. The edge set E (S ) contains an edge (k, h) if link h is included in route rk . Graph G (S ) corresponding to Fig. 4 is displayed in Fig. 5, where the circles, rectangles and squares represent vertices (related to V), link nodes (related to Nl (S ) ) and route nodes (related to Nr (S ) ), respectively. Note that we only explore the solutions in space , so G (S ) does not contain any (k-split) cycles. Thus the bipartite graph G (S ) must be a forest. It consists of one or more connected components, each of which is an unrooted tree. For the sake of convenience, we represent G (S ) = {T1, T2, …, Tg } , where each Ti (1 i g ) is one of the unrooted trees containing several routes. For example, G (S ) = {T1, T2} in Fig. 5. It is worth pointing out that G (S ) does not contain information about the visiting direction of each undirected link (i.e., edge) in each route. For instance, edge (1, 5) is served from vertex 5 to vertex 1 in route 2, while it is served from vertex 1 to vertex 5 in route 3, as indicated in Fig. 4. In Fig. 5, edge (1, 5) is connected to routes 2 and 3 without the showing visiting direction. In summary, for a given solution S, we can represent it by using its route sequences together with the forest G (S ). In this case, the delivery quantity at each link can be eliminated. In the following subsections, we show how to verify the feasibility and obtain the objective value of a solution using such a representation method. 4.2. Feasibility checking of a solution Consider an unrooted tree T in G (S ), T is feasible if we can find an appropriate amount of delivery quantity at each link in T such that every demand is met and the capacity of each vehicle is not violated. A solution S is feasible if all its connected components in G (S ) are feasible trees. The cycles can be easily detected by performing a depth-first traversal on each connected component of the forest. However, checking whether an unrooted tree is feasible or not with respect to the vehicle capacity restriction would be more difficult. In the following section, we describe a greedy procedure to validate the feasibility of a given unrooted tree. Tree T2 shown in Fig. 5 is used for exemplification. First, we arbitrarily select a route node as the root node, creating a rooted tree (route node 2 is selected). We illustrate the rooted tree in Fig. 6, where the even levels consist of only route nodes and odd levels of only link nodes (note that G (S ) is a bipartite graph). We denote L (x ) as the level of node x , residual (j ) as the residual capacity of route j, residual (i ) as the residual volume of link i, and z i j as the delivery quantity of link i allocated to route j. We initially set residual (j ) = C and residual (i ) = d (i ) (here d (i ) is the demand of the i-th link). Then, traversing the nodes from the largest to the smallest level of the rooted tree, we recursively compute pi j and examine all tree nodes as follows. For two adjacent levels i (route node level) and j (link node level), if L (i) < L (j ) , we obtain:

Fig. 6. A rooted tree. 146

Transportation Research Part E 132 (2019) 141–162

M. Yu, et al.

zi j = min{residual (j), d (i )}, residual (j ) = residual (j)

zi j ,

residual (i ) = residual (i)

z i j;

Otherwise, we obtain:

zi j = residual (i ), residual (j ) = residual (j ) residual (i ) = 0;

zi j ,

The tree nodes at the same level can be calculated in any order. The rooted tree is infeasible if a route node j with negative residual (j ) is encountered. Otherwise, it is feasible. The tree traverse is efficient. It only takes O (n + m) time, where n is the number of links and m is the number of vehicles. 3 3 3 z3,2 z2,1 = 27 8 4 8 = 7 by the computation between levels As illustrated in Fig. 6, we can obtain residual (3) = C z 7,3 3 = 5, 2 and 3. Then, link [1, 5] can be fully served by the remaining capacity of route 3 due to residual (3) = 7 > residual ([1, 5]) = z1,5 2 = 0 . Finally, the tree is feasible because root so residual ([1, 5]) = 0 by the computation between levels 1 and 2, indicating that z1,5 2 2 2 2 z2,4 z2,7 z 7,5 = 27 3 6 9 8 = 1 by the computation between levels 0 and 1. node 2 has positive residual (2) = C z1,4 4.3. Objective calculation of a solution In the SDMCARP, an arc can only be served in one direction and an edge can be served in any direction. By our solution representation, the route sequences together with the forest G (S ) do not include the direction of the required edges. However, different directions of the required edges in a route may result in different traveling costs. Hence, the traveling directions of undirected edges must be determined for each route. Let us consider route 3 shown in Fig. 7. Arc 6, 8 is served after edge (1, 6) . The 6 1 6 8 1. For the latter case, edge (1, 6) is served in the backward direction. In 6 8 1 or 1 vehicle can travel as 1 general, if a route contains R undirected edges, there are 2R combinations of arranging the directions. We must decide which combination can lead to the minimal cost. We describe a dynamic programming (DP) procedure to determine the optimal direction of each edge. Assume that a route sequence is ([u1, v1], [u2, v2], …, [uL , vL]) . Define dp [i][j] as the minimum traveling cost of the vehicle visiting the first i required links ([u1, v1], [u2, v2], …, [ui , vi]) , and finally stopping at vertex j (j must be either ui or vi ). If [ui , vi ] is a directed arc, i.e., ui , vi , the final stop j can only be vi . Then, the state transition formula is:

dp [i][vi] = min{dp [i

1][vi 1] + dist [vi 1][ui], dp [i

1][ui 1] + dist [ui 1][ui ]} + cui, vi

(16)

where dist [i][j] is the shortest path between vertices i and j, and u 0 = v0 = 1 is the depot. The formula indicates that the optimal cost of the vehicle sequentially visiting the first i required links stopping at vertex j depends on the last visiting vertex vi 1 or ui 1. If [ui , vi ] is an undirected edge, i.e., (ui , vi ) , vertex j can also be ui . Then, we also obtain:

dp [i][ui] = min{dp [i

1][ui 1] + dist [ui 1][vi], dp [i

1][vi 1] + dist [vi 1][vi ]} + c vi, ui

(17)

The boundary states are initialized as:

dp [0][1] = 0 dp [i][j ] = + , for other states

(18)

The optimal cost is given by:

dp [L][vL] + dist [vL][1] min dp [L][u ] + dist [u ][1], if [u , v ] is undirected L L L L

(19)

Take Fig. 7 as an example, in which the initial state dp [0][1] = 0 . Because [1, 6] is undirected, we obtain dp [1][6] = dp [0][1] + dist [1][1] + c1,6 = 0 + 0 + 2 = 2 and dp [1][1] = dp [0][1] + dist [1][6] + c6,1 = 0 + 2 + 2 = 4 . The link [6, 8] is directed, so dp [2][8] = min{dp [1][6] + dist [6][6], dp [1][1] + dist [1][6]} + c6,8 = min{2 + 0, 4 + 2} + 5 = 7 . The final optimal cost is dp [2][8] + dist [8][1] = 7 + 6 = 13. The dynamic programming approach has complexity O (L), which is much more efficient than a combination enumerating method.

Fig. 7. Route 3 in the solution. 147

Transportation Research Part E 132 (2019) 141–162

M. Yu, et al.

Fig. 8. An example solution represented by a set of three delivery patterns.

5. Forest-based neighborhood operators Neighborhood operators can significantly affect the performance of a meta-heuristic algorithm. In this section, we propose some new forest-based neighborhood operators for the SDMCARP. For a classic CARP, the neighborhood operators can be broadly divided into two types: (1) interroute operators such as the relocate operator, exchange operator and cross-exchange operator; (2) intraroute operators such as the 2-opt exchange operator and or-opt operator. Some of these (types) operators have already been introduced for the SDCARP or its variants in several previous articles, including Hertz et al. (2000), Chen et al. (2016) and Lacomme et al. (2004). These operators can also be divided into two categories. The first category includes operators that can be applied to the classic CARP, while the second one contains operators that are specifically designed for the SDCARP. Note that all of these operators are based on representing a feasible solution by a set of delivery patterns. To show the limitations of the existing operators, let us consider the operator relocate used by Hertz et al. (2000). In Fig. 8, relocating edge (5, 1) from delivery pattern 1 to delivery pattern 2 at the position after vertex 5 can reduce the total travel distance if c8,5 + c5,1 = 8 + 1 = 9 > c8,1 + c5,5 = 7 + 0 = 7 . However, this relocation is an illegal operation when the capacity restriction is violated, yet we can make this relocation possible by reallocating the delivered quantities of the split edges. For example, we can only move one unit of edge (5, 1) ’s demand from delivery pattern 1 to delivery pattern 2, and the remaining demand is shifted to delivery pattern 3. The above observations reveal that if we have a mechanism to reallocate the split demands automatically and freely in all involved delivery patterns, the relocate operator would be able to explore larger solution regions. As shown in Fig. 6 above, we can liken the customer demands to water and connect the split customers in different delivery pattern by tubes via which water can freely flow. Consequently, we do not need to explicitly fix the delivered quantities at the split customers. This finding explains our representation of the solution by a set of routes and creation of graph G (S ) . We introduce four neighborhood operators, namely, relocate, exchange, swap(1,1) and split. The first two operators are adapted from the classic CARP operators and the last two are similar to the k-split interchange operator proposed by Zhang et al. (2015). All these operators are performed using the current solution S with its forest graph G (S ). The legality of the operations are checked using the method proposed in Section 4.2. The dynamic programming procedure mentioned in Section 4.3 is then used to calculate the total cost of the solution. 5.1. Relocate operator For convenience, in the following, we use the one-index representation (e.g., link i or the i-th link) instead of the two-index representation (e.g., link [i , j]) to indicate a link. Given a solution S = {r1, …, rm} , this procedure selects a required link i from a route rx and relocates it to some position j of another route ry . As shown in Fig. 9, the original solution S and the constructed forest G (S ) are presented in Fig. 9(a) and (b). If we move link i in route r2 to the position before link 1 in route r1, the resultant solution S and G (S ) are given in Fig. 9(c) and (d). Note that link i is undirected and can be visited in either direction, but our solution representation does not require a prescribed link direction since it can be identified by the dynamic programming. To ensure the legality of the relocate operation, we first need to determine that no cycle appears in G (S ) . The depth-first traversal with a greedy procedure is then invoked to check the feasibility of G (S ) . If S is feasible, its objective value is then calculated. 5.2. Exchange operator Given a solution S = {r1, …, rm} , the exchange operator selects a required link i from route rx and a required link j from route ry ry ), and it swaps their positions. As shown in Fig. 10, we extract link i from route r1 and insert it into position j of route r3 , and (rx we shift link j from route r3 to position i of route r1. Similar to the relocate operator procedure, feasibility checking and objective calculation are applied to the resultant solution S . 148

Transportation Research Part E 132 (2019) 141–162

M. Yu, et al.

Fig. 9. An example of the Relocate operator for solution S = {r1, r2, r3} .

Fig. 10. An example of the Exchange operator for solution S = {r1, r2, r3} .

5.3. Swap(1,1) operator The swap(1,1) operator is an extension of the exchange operator, which is inspired by Silva et al. (2015). It further deals with the case in which the exchange operator generates an infeasible solution. Consider that the exchange operator selects link i from route rx and swaps it with link j from route ry . When link i is also served by ry , the exchange operator fails. For the swap(1,1) operator, it continues to aggregate the amount of service of link i in rx with that in ry , and link j from ry is relocated to the position of link i in route rx . Fig. 11 provides an example of such case, where link i in route r3 is swapped with link j in route r2 . Because link i is served by both r2 and r3 , when it is moved to r2 , its partial demand originally served by r3 is also transferred to r2 . This situation essentially merges the two links. Moreover, the exchange of link i in rx and link j in ry does not generate a cycle. However, such an exchange may lead to some route exceeding the capacity (without loss of generality, suppose that ry is overcapacitated when link i is inserted), and thus the resultant solution is infeasible. In this case, link i is reinserted into route rx to ensure the feasibility. For example, in Fig. 12, link i in r2 is swapped with link j in r3 . Because z 3j > z i2 , when link j is relocated to r2 , the capacity of r2 is exceeded. Therefore, link j is reinserted into r3 and the remaining demand is served. This situation essentially splits one link into two. 5.4. One-split operator Given a solution S = {r1, …, rm} and a particular required link i, the one-split operator replaces set Ri of routes that serve link i with 149

Transportation Research Part E 132 (2019) 141–162

M. Yu, et al.

Fig. 11. An example of Swap(1,1) operator.

Fig. 12. Another example of the Swap(1,1) operator.

a new set Ri of routes. Thus, link i is split (|Ri | = 1 and |Ri | > 1), resplit (|Ri | > 1 and |Ri | > 1) or merged (|Ri | > 1 and |Ri | = 1). Specifically, for the selected link i LR , it is first extracted from all the routes serving it. We can compute the distance saving, denoted as k , of removing the link from every route rk Ri by k = cpre (i ), i + ci, suc (i) cpre (i), suc (i ) , where pre (i) and suc (i ) are the predecessor and successor of link i in route rk . Next, we compute the distance increment, also denoted as li of inserting link i into Ri by l = cj, i + ci, next (j) cj, next (j) , where j and next (j ) are the adjacent positions in rl with minimal insertion cost. We also route rl compute the remaining capacity of every route rh (h = 1, …, m) after link i is extracted, denoted as h . The above calculations indicate that if we try to reinsert link i into some route h, the maximum service demand is h , and the insertion cost is h . We apply a greedy algorithm, which treats the reinsertion process as a continuous knapsack problem. The size of the knapsack is the demand of link i. There are m items corresponding to m routes. For each item h = 1, …, m, the ratio of the insertion cost h to the remaining capacity h is computed. We then sort the items in ascending order according to their ratios. Following the order, link i is inserted into the corresponding route. If the insertion results in a cycle, such insertion is forbidden and the greedy algorithm proceeds to the next item until the demand of link i is fully satisfied. Fig. 13 provides a brief example of the one-split operator. Here, link i is to be split. It is first removed from routes r2 and r3 serving it. Then, it is inserted to route r1 by the greedy knapsack algorithm. 6. Solution approach Generally, metaheuristic approaches can be classified into two categories: single solution-based and population-based. Due to the use of forest-based operators, population-based approaches are not quite suitable for solving the SDMCARP, because they have to maintain a group of individuals and each individual may take a great deal of time to perform neighborhood operators. In contrast, the tabu search as a well-known single solution-based metaheuristic, can concentrate on seeking promising neighborhood solutions in a 150

Transportation Research Part E 132 (2019) 141–162

M. Yu, et al.

Fig. 13. An example of the One-split operator.

relatively short time. The tabu search has also demonstrated success in dealing with various routing problems, such as the CARP (Hertz et al., 2000). In this section, we describe a Forest-based Tabu Search (FTS) for the SDMCARP, which begins with an initial solution, generated by a cheapest insertion heuristic. A tabu search phase is executed to explore the neighborhood of the current solution. At the end of the tabu search phase, a shake procedure is used to guide the search to a completely different portion of the solution space. The general scheme of FTS is given in Algorithm 1. Algorithm 1. FTS: A Forest-based Tabu Search for the SDMCARP. 1: INITIALIZE: Let S be a generated initial solution; 2: whilethe stopping criterion is not met 3: TABU SEARCH: perform a tabu search on S to find a local-optimal solution, let S be the generated solution; 4: SHAKE: Generate a new solution S by performing shaking steps on solution S ; 5: end while

6.1. Initial solution An initial solution of the SDMCARP is constructed using a cheapest insertion heuristic, which is widely used in the literature (Chen et al., 2016; Hertz et al., 2000). The procedure begins with an empty route as the current route. The cheapest insertion builds the route by finding an unserved required link with the cheapest insertion cost for the current route. Note that the insertion should determine the traversal direction of a link. If a link is undirected, then both directions should be tried. Suppose that a required link [i , j] is to be inserted into the intermediate of two adjacent links [i1, j1 ] and [i2, j2 ] in the current route. The insertion cost is calculated by c j1 , i + cj, i2 c j1 , i2 . When the demand of the inserting link exceeds the remaining capacity of the current route, the vehicle capacity constraint is violated. The demand of this link is then split to meet the capacity constraint and a new route is created to serve the remaining part. 6.2. Tabu search heuristic The framework of the main tabu search procedure is provided in Algorithm 2. To highlight the effectiveness of our proposed neighborhood search operators, this procedure is the most basic TS version without using any intensification or diversification techniques. We use f (S ) to denote the total traveling cost of solution S. The tabu list TL is a two-dimensional array, where TLik records the index of the iteration in which link i can be remove from route k. The index of the current iteration is denoted by . If < TLik , the operation for link i in route k is forbidden. However, the operation is still permitted if it can improve on the best solution Sbest ; this permission is generally called the aspiration criterion. The tabu search phase is terminated after a preset number of iterations without any improvements. The setting of this value should ensure that an appropriate number of shake procedures is performed to diversify the search. Algorithm 2. Main Tabu Search Procedure Require Scurrent : current solution Slocal _ best : local best solution Sbest : best solution max : maximum number of nonimprovement iterations TL: tabu list 0 1: 2: while < max do relocate(Scurrent , Slocal _ best, TL ) ; 3: S1 exchange(Scurrent , Slocal _ best , TL) ; 4: S2

151

Transportation Research Part E 132 (2019) 141–162

M. Yu, et al.

swap(Scurrent, Slocal _ best , TL) ; 5: S3 one split(Scurrent , Slocal _ best , TL) ; 6: S4 min{S1, S2, S3, S4} , if the operation is not tabu; 7: S min{S1, S2, S3, S4} , if the operation is tabu; 8: S 9: if f (S ) < f (Sbest ) then Sbest S ; 10: S S ; 11: 0; 12: 13: else S S; 14: 15: end if 16: Update TL; 17: end while

6.3. Shake procedure The shake procedure is performed when the tabu search is probably trapped into a local optimum. It consists of µ shaking steps, where µ is a user-defined parameter. Each step begins with randomly selecting a required link. It is then removed from all the routes serving it, and inserted into a random position of a random route. If the demand of the inserting link exceeds the remaining capacity of the route, a route and position are randomly selected to reinsert the link. We can see that the more the shaking step is executed, the more distant is the new solution from the previous one. 7. Computational experiments In this section, we report our computational experiments. The purposes of this computational study are twofold. First, we compare and evaluate the efficiency and effectiveness of our FTS algorithm with existing heuristic methods for the SDCARP. Second, we compare our solutions with those obtained by CPLEX for different instances of the SDMCARP. As there is no benchmark instance set for the SDMCARP in the literature, our algorithm is tested on the datasets generated by our group based on the SDCARP instances. We also investigate the impact of split options on the solution quality. The proposed FTS is coded in C++ and run on a machine with Intel(R) Core(TM) i7-6700 CPU @ 3.40 GHz and 32.0 GB RAM. The version of Ilog Cplex is 12.63. Each instance is executed 10 times. Preliminary experiments are required to identify the best parameter settings. The following parameters are selected for FTS. The stopping criterion is set to 10 times (of) the main loop in Algorithm 1. The number of nonimprovement generations in tabu search max is 500. Parameter µ used in the shake procedure is randomly chosen within the range [5, 7]. The tabu tenure is set to |LR | . 7.1. Test instances For the SDCARP, we mainly investigate four sets of instances. The first instance set contains 23 instances proposed by Golden et al. (1983) (called class “gdb”). The numbers of nodes and edges in this set instances range from 7 to 27 and 11 to 55, respectively. The second instance set contains 34 instances proposed by Benavent et al. (1992) (called class “val”). There are 24–50 nodes and 34 to 97 edges for these instances. The third instance set has 24 instances proposed by Li et al. (1992) and Li et al. (1996) (called class “egl”). The numbers of nodes and edges are in the range from 77 to 140 and 98 to 190, respectively. All three data sets are used because they are the standard data sets for testing CARP approaches.1 The fourth instance set is egl-l, which is used in Vidal (2017) for solving the Capacitated General Routing Problem (the CGRP). Note that the CGRP considers the combination of both node routing and arc routing, but this instance set only includes the routing of arcs (more precisely, edges) and thus it is applicable for the SDCARP. In this set, the number of nodes is 255 and the number of edges ranges from 347 to 375, so it can be viewed as largescale data. For the SDMCARP, there are no standard bechmark instances in the literature. We use a set of instances designed for the mixed CARP named mval, which can be downloaded at https://www.uv.es/belengue/mcarp/index.html. This instance set is modified from val, in which each edge (remains unchanged with probability 0.4, is replaced by two opposite arcs with probability 0.4, and replaced by one single arc with probability 0.2. We further construct SDMCARP instances based on the first three classes of SDCARP instances (gdb, val, egl) as follows. For each edge (i, j) in the SDCARP, if it is a non-required edge, then it is set to an undirected link in the SDMCARP. If (i, j) is a required edge, we transform it into three types of links in the SDMCARP according to particular patterns. Here, we use type 0 to represent a required undirected edge (i, j) . Types 1 and 2 represent required directed arcs i, j and j, i , respectively. To ensure the strong connectivity of the road network, for types 1 and 2, nonrequired arcs j, i and i, j are also respectively included. In this study, three patterns are adopted. The first pattern is “(0-1-2)”, which means that the first, second and third required edges are transformed into links with types 0, 1 and 2, respectively; the remaining ones then continuously repeat the cycle. The second and third patterns are “(0-1-2-0)” 1

Data can be downloaded at http://www.uv.es/belengue/carp.html. 152

Transportation Research Part E 132 (2019) 141–162

M. Yu, et al.

Table 1 Summarized results for the comparison with CARP solvers. Class

gdb val egl

n

m

|E|

7–27 24–50 77–140

11–55 34–97 98–190

C

3–10 2–10 5–35

CARP_BKS

5–50 20–250 103–305

CARP_HMA2

253.8 344.2 9728.1

FTS

CPLEX

Best

Time/s

Best

Average

Time/s

253.8 344.2 9729.1

1.2 26.7 646.0

253.7 344.1 9717.3

253.7 344.8 9749.4

3.3 4.6 32.3

255.3 401.6 –

Table 2 Summarized results for the comparison with MS_ELS. Class

gdb val egl

n

m

|E|

7–27 24–50 77–140

11–55 34–97 98–190

3–10 2–10 5–35

C

MS_ELS

5–50 20–250 103–305

FTS

CPLEX

Best

Time/s

Best

Average

Time/s

214.7 305.5 5501.8

20.9 134.0 135.3

214.7 304.5 5497.5

214.7 305.7 5505.3

4.8 4.4 7.5

218.0 363.2 –

Table 3 Summarized results for the comparison with CGRP solvers. Class

egl-l

n

m

|E|

255

347–375

C

20–42

UHGS

14100–28600

FTS

Gap

Best

Time/s

Best

Average

Time/s

1290783.7

2767.4

1344631.6

1359129.6

3082.0

4.17%

Table 4 The split rate in egl instances. Instance

egl-e1-A egl-e1-B egl-e1-C egl-e2-A egl-e2-B egl-e2-C egl-e3-A egl-e3-B egl-e3-C egl-e4-A egl-e4-B egl-e4-C egl-s1-A egl-s1-B egl-s1-C egl-s2-A egl-s2-B egl-s2-C egl-s3-A egl-s3-B egl-s3-C egl-s4-A egl-s4-B egl-s4-C

n

77 77 77 77 77 77 77 77 77 77 77 77 140 140 140 140 140 140 140 140 140 140 140 140

|E| |ER |

|EN |

51 51 51 72 72 72 87 87 87 98 98 98 75 75 75 147 147 147 159 159 159 190 190 190

47 47 47 26 26 26 11 11 11 0 0 0 115 115 115 43 43 43 31 31 31 0 0 0

m

C

CARP_BEST

SDCARP_BEST

#split_link

split_rate

5 7 10 7 10 14 8 12 17 9 14 19 7 10 14 14 20 27 15 22 29 19 27 35

305 220 160 280 200 140 280 190 135 280 180 130 210 150 103 235 160 120 240 160 120 230 160 120

3548 4498 5595 5018 6317 8335 5898 7775 10292 6444 8961 11529 5018 6388 8518 9874 13078 16425 10201 13682 17188 12216 16201 20476

3548 4486 5517 5018 6292 8165 5898 7743 10175 6456 8880 11401 5010 6376 8435 9963 13109 16369 10261 13792 17167 12324 16340 20490

3 6 7 2 6 10 4 8 10 4 10 13 2 4 9 5 9 15 3 9 13 9 13 15

0.06 0.12 0.14 0.03 0.08 0.14 0.05 0.09 0.11 0.04 0.10 0.13 0.03 0.05 0.12 0.03 0.06 0.10 0.02 0.06 0.08 0.05 0.07 0.08 2

and “(0-0-1-0-0-2)”, respectively. We can see that pattern 1 (resp., 2 and 3) produces approximately 3 |LR | (resp., 2 |LR | and 3 |LR |) required undirected links. 1

1

7.2. Experiments for SDCARP instances Our FTS algorithm is first compared with CARP-HMA2, which is designed for the CARP (Chen et al., 2016), and MS-ELS, which is 153

Transportation Research Part E 132 (2019) 141–162

M. Yu, et al.

Fig. 14. The impact of the split-delivery option on the solution quality. Table 5 Summarized results for the comparisons with MCARP solvers. Class

mval

n

|LR |

24–50

43–138

|ER |

12–44

MA

|AR |

25–106

FTS

Gap/%

Best

Time/s

Best

Average

Time/s

Gap=(FTS-MA)/MA

474.8

79.9

474.4

475.9

24.0

−0.08

Table 6 Summarized results for the SDMCARP. Class

gdb val egl

|LR |

7–27 34–97 98–190

m

3–10 2–10 5–35

SDCARP

SDMCARP(0-0–1-0–0-2)

SDMCARP(0–1-2–0)

SDMCARP(0–1-2)

FTS

Time/s

CPLEX

FTS

Time/s

CPLEX

FTS

Time/s

CPLEX

FTS

Time/s

CPLEX

253.7 344.1 9717.3

3.3 4.6 32.3

255.3 401.6 –

255.0 348.9 9786.6

6.2 24.7 141.8

256.4 397.3 –

256.9 354.5 9855.8

6.3 26.9 129.4

258.5 399.5 –

263.9 362.8 9951.9

7.2 24.6 134.0

265.5 406.2 –

Fig. 15. Convergence charts in four val instances.

154

Transportation Research Part E 132 (2019) 141–162

M. Yu, et al.

designed for the SDCARP (Belenguer et al., 2010). Note that CARP-HMA2 does not use the split option and thus provides an upper bound to the corresponding SDCARP instance. Tables A1,A2,A3 in the Appendix report the results of all these algorithms on the instance class gdb, val, and egl, respectively. In each table, we use “n” to denote the number of vertices of the instance, “|ER |” to denote the number of required edges, “|EN |” to denote the number of nonrequired edges, “m” to denote the number of vehicles in the fleet, and “C” to denote the capacity of the vehicle. The FTS’s results that are better than those of CPLEX are in bold. For each class of instances, we report the best-known solution of the CARP in the literature (CARP_BKS, which is summarized in Chen et al., 2016), the best solution and the average computation time found by CARP-HMA2, MS-ELS, FTS and the CPLEX result. Note that the MS-ELS is only tested on a part of the instances in class gdb, val and egl, as reported in Belenguer et al. (2010). The computation time of CPLEX is set to 1 h. If CPLEX can prove the optimality of the found solution, the corresponding value in the table is marked with an asterisk (‘∗’). For clarity, we summarize the comparisons of different approaches in the following Tables 1 and 2. The results marked in bold in these two tables and the following several tables indicate that they are better than the results produced by other methods. Table A1 shows the SDCARP results on gdb instances, which are small-scale and all edges are required edges. We can see that our approach (FTS) achieves the same results as CARP-BKS, CARP-HMA2 and MS-ELS algorithms for all the instances except gdb12, where the value of our solution is 2 units less than the other solutions. For all instances, the best and average solutions of FTS are equivalent, supporting the robustness of FTS in solving small size instances. In terms of the computation time, our approach is not necessarily better than the other three algorithms because forest-based neighborhood operators have a large constant time factor. For the results obtained by CPLEX, 11 out of 23 instances are shown to be optimally solved within 1 h. Table A2 presents the results for val instances. CPLEX cannot optimally solve any of these instances within 1 h, although for some cases it can provide very promising solutions compared with other approaches. Overall, the performance of FTS is comparable to CARP_HMA2 and MS_ELS. There are no significant differences among the results of these algorithms. From Table A1 and A2, we can further find that the split option has very little effect on these two classes of instances. In Table A3, the results of the large-size class of instances egl are reported. This class of instances is relatively difficult to solve. Our FTS approaches produce better results than the others in 13 out of 24 instances. The average of the best found solution of FTS is 9717.3, which is slightly better than that of CARP_BKS. Note that the CARP, facing the same situation as the VRP, is an extensively studied problem. It is generally very difficult to improve the best known results. Even if the split option is introduced, the total traveling cost does not show a dramatic decrease in these instances. CPLEX encounters memory overflow in some cases, so we have placed a dash (‘−’) in the corresponding column. To further compare our algorithm with other excellent algorithms, we compare the results of our FTS algorithm with a unified hybrid genetic search (UHGS), which was originally designed for the CGRP (Vidal, 2017). UHGS can also deal with the large-scale instance set egl-l without using split options. Table 3 summarizes the comparison results with UHGS, while the detailed results are reported in Table A4. As we can see, the performance of FTS is not quite comparable to UHGS. The average of the best found solutions of FTS is 5% worse than that of UHGS, demonstrating that simply using a basic tabu search is not sufficient. Our approach would be more practical to handle those instances with a moderate size. It is worth noting that the above instance sets are specifically designed for the CARP/CGRP, but not for the SDCARP. For all the instances, the number of vehicles is relatively small, and the capacity of a vehicle is much larger than the demand of a required edge. In this case, it is unlikely that a required edge is serviced by multiple vehicles. Thus, the split-delivery option may have very little effect on improving the solutions without that option, which explains why our approach cannot significantly improve the benchmark results. Next, we further investigate the impact of split options on solution qualities. We choose the egl instance set for the experiments. For each instance, we count the number of split links in the best solution, and then calculate the split rate by the number of split links over the number of required edges. The results are presented in Table 4. The results of SDCARP are in bold if they are better than those of CARP. As can be seen, the split rate is small for these instances, indicating that the split-delivery option actually plays an unimportant role in tackling CARP instances. We further plot the relations between the split rate and the solution gap in Fig. 14. Here, the gap is calculated by (SDCARP _BEST CARP _BEST )/CARP _BEST . From this figure, we can observe that the gap generally decreases when the split rate is increased. We also notice that the split rate is positively correlated to the number of vehicles and negatively to the vehicle capacity. Thus, our algorithm is expected to more suitable to solve those instances with a relatively small vehicle capacity and large fleet size. 7.3. Experiments for SDMCARP instances We compare our approach with a memetic algorithm (MA) proposed by Belenguer et al. (2006) using the first SDMCARP instance set (mval). Table 5 and Table A5 present the summarized and detailed results, respectively. The results obtained by FTS are in bold if they are better than those of MA. In these tables, columns |LR |, |ER | and |AR | denote the number of required links, edges and arcs, respectively (|LR | = |ER | + |AR |). Our FTS approach outperforms MA in 4 instances, is outperformed by MA in 3 instances, and has the same results as MA in the remaining 27 instances. The average solution gap for MA is −0.08%. The running time of FTS is approximately 3 times faster than MA. The results indicate that FTS generates comparable results to MA for the small-to-medium instance set mval. We next conduct experiments on the constructed SDMCARP instances and attempt to discover some interesting findings for different mixed-graph patterns. Since there are no existing approaches for the SDMCARP, we executed our FTS and CPLEX on three patterns of constructed instances (as explained in Section 7.1). The detailed results are reported in Tables A6–A8 in the Appendix, while the summarized results are provided in Table 6. The results obtained by FTS are in bold if they are better than those obtained by 155

Transportation Research Part E 132 (2019) 141–162

M. Yu, et al.

Fig. 16. The impact of directed arc percentages on the solution structure. 2

1

CPLEX. In these tables, |LR | is the number of required links. The number of required edges is 3 |LR |, 2 |LR | and 3 |LR | for pattern “0-0-1-00-2”, “0-1-2-0” and “0-1-2”, respectively. As shown in Table 6, for the small-size class gdb, FTS achieves almost the same results as CPLEX. The running time of FTS is approximately several seconds, on average. From Table A6 in the Appendix, we can see that CPLEX can solve more than half of the instances to optimality. Specifically, when the number of directed arcs increases to 2/3 (pattern “0-1-2”), CPLEX can almost solve all the instances. For instances gdb8 and gdb9 on every pattern, FTS can improve the results of CPLEX. For the medium-sized class val, the average solution gaps between FTS and CPLEX on every pattern are within 10–20%. As indicated in Table A7, CPLEX can only solve a few instances to optimality. For the large-sized class egl, FTS outperforms CPLEX in all instances with a running time of less than 150 s (see Table A8). For those instances with a number of required links exceeding 100, CPLEX frequently encounters out of memory problems. To analyze the convergence of the proposed FTS approach for different patterns, we select four medium-sized instances, i.e., val10A–val10D, for the experiments. Fig. 15 shows the convergence performance of FTS on them. For each subfigure, the label of a line is the percentage of directed arcs in an instance. The traveling cost obtained in the first 10000 iterations is plotted. As can be seen, for all four instances, FTS shows a fast convergence before the first 2000 iterations, and is generally stable after 6000 iterations. Such observations verify our parameter settings. There is also an observation that when the number of required directed arcs increases, the total traveling cost of the obtained solution generally also increases. This result makes sense, because directed arcs impose additional visiting direction constraints on undirected edges, which would reduce the solution space of the corresponding SDCARP instance. On average, when the number of 2 required arcs increases from 0 to 3 |LR |, the resultant solution cost grows up 4.0%, 5.4% and 2.4% for class gdb, val and egl, respectively. To further test the impact of the percentage of directed/undirected links, another group of experiments is performed. For a given SDCARP instance, we change the status of the top k% edges. Each edge is modified into two directed arcs with different directions and a half demand as the origin, making the number of required links become |LR |·(1 + k %) , while the total customer demands, the capacity of a vehicle and the number of vehicles remain unchanged. This status differs from the previous SDMCARP setting, in which the number of required links remains |LR |. However, this setting would be more realistic: there are always many wide two-way roads that must be serviced in both directions. We also take the instances val10A–val10D for the experiments, where the percentage k is changed from 0% to 100% with a step size of 10%. Fig. 16 shows the impact of directed arc percentages on the final solution structure. As can be seen, when the percentage k increases, the solution cost also increases; this outcome is consistent with the theoretical expectation: fulfilling an undirected link with demand d must be easier than two directed links with demand d/2 each. When k = 50%, an average 30% increment can be observed. When k = 100% , the average increment reaches 70% . These observations in turn imply that if a vehicle is sufficiently powerful to service a directed arc in any direction, the total traveling cost could be significantly reduced. 156

1

Transportation Research Part E 132 (2019) 141–162

M. Yu, et al.

8. Conclusions and remarks In this paper, motivated by a practical water sprinkling service in the urban administration, we study a split-delivery mixed capacitated arc-routing problem (SDMCARP), where the roads could be served in one or two directions. We provide a mathematical formulation of the problem. Then, we analyze some properties of the SDMCARP that could be utilized to accelerate the search process of the algorithm. We propose a forest-based tabu search algorithm to solve the SDMCARP. The computational experiments are conducted using several classes of SDCARP benchmark instances from the literature. The numerical experiments show that our algorithm is comparable to the state-of-the-art approaches. We also construct three classes of instances for the SDMCARP based on the existing instances. By comparing our algorithm results with those obtained by CPLEX, we find that our algorithm generates high quality solution in a much shorter time than CPLEX, especially when the problem scale is quite large. Our research contributes to both the literature and practice. First, we define a new and practical arc-routing problem and provide a mathematical model for it. Second, we devise an effective and efficient algorithm to tackle the SDMCARP based on some properties that were not well analyzed in the literature. For future research, other meta-heuristic algorithms may be developed to solve this kind of practical application of the arc-routing problem. Moreover, one could consider capacity renewal of the vehicle during service, e.g., water sprinkling trucks may fill water during routing. Additionally, the drivers’ work spans could also be integrated into the problem constraints. Furthermore, some tailored algorithm to solve large-sized and small-fleet SDMCARP may be developed. Acknowledgements This research was supported by the National Natural Science Foundation of China (NSFC) under Project Number 71571077, 71531009, 71771154 and 71601191. Appendix A The following tables are supplementary materials to the article “The Split-Delivery Capacitated Arc-Routing Problem on MixedGraph: Applications and a Forest-based Tabu Search Approach” submitted to Transportation Research Part E: Logistics and Transportation Review. Tables A1–A8. Table A1 The SDCARP results on gdb benchmark instances. Instance

n

E

m

|ER |

|EN |

C

CARP_BKS

CARP_HMA2

MS_ELS

FTS

Best

Time/s

Best

Time/s

Best

Average

CPLEX Time/s

gdb1 gdb2 gdb3 gdb4 gdb5 gdb6 gdb7 gdb8 gdb9 gdb10 gdb11 gdb12 gdb13 gdb14 gdb15 gdb16 gdb17 gdb18 gdb19 gdb20 gdb21 gdb22 gdb23

12 12 12 11 13 12 12 27 27 12 22 13 10 7 7 8 8 9 8 11 11 11 11

22 26 22 19 26 22 22 46 51 25 45 23 28 21 21 28 28 36 11 22 33 44 55

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

5 6 5 4 6 5 5 10 10 4 5 7 6 5 4 5 5 5 3 4 6 8 10

5 5 5 5 5 5 5 27 27 10 50 35 41 21 37 24 41 37 27 27 27 27 27

316 339 275 287 377 298 325 348 303 275 395 458 536 100 58 127 91 164 55 121 156 200 233

316 339 275 287 377 298 325 348 303 275 395 458 536 100 58 127 91 164 55 121 156 200 233

0.1 0.2 0.1 0.1 0.1 0.1 0.1 14 3.2 0.1 0.3 0.2 6.6 0.1 0.1 0.1 0.1 0.2 0.1 0.1 0.2 0.3 0.7

– – – – – – – 348 – – 395 – – 100 – – 91 – – 121 – – 233

– – – – – – – 64.3 – – 1 – – 0.6 – – 0.4 – – 0.5 – – 58.4

316 339 275 287 377 298 325 348 303 275 395 456 536 100 58 127 91 164 55 121 156 200 233

316 339 275 287 377 298 325 348 303 275 395 456 536 100 58 127 91 164 55 121 156 200 233

1.8 2.9 1.6 1.0 2.4 1.5 1.3 54 7.0 2.1 9.5 3.0 4.6 1.5 1.4 3.0 3.4 3.9 0.5 2.2 4.5 4.3 7.1

316 339∗ 275∗ 287∗ 377∗ 298∗ 325∗ 368 321 275 395 456 536 100∗ 58∗ 127 91 164∗ 55∗ 121 156 200 233∗

Average











253.8

253.8

1.2





253.7

253.7

3.3

255.3

157

Transportation Research Part E 132 (2019) 141–162

M. Yu, et al.

Table A2 The SDCARP results on val benchmark instances. Instance

n

E

m

|ER |

|EN |

C

CARP_BKS

CARP_HMA2

MS_ELS

FTS

CPLEX

Best

Time/s

Best

Time/s

Best

Average

Time/s

val1A val1B val1C val2A val2B val2C val3A val3B val3C val4A val4B val4C val4D val5A val5B val5C val5D val6A val6B val6C val7A val7B val7C val8A val8B val8C val9A val9B val9C val9D val10A val10B val10C val10D

24 24 24 24 24 24 24 24 24 41 41 41 41 34 34 34 34 31 31 31 40 40 40 30 30 30 50 50 50 50 50 50 50 50

39 39 39 34 34 34 35 35 35 69 69 69 69 65 65 65 65 50 50 50 66 66 66 63 63 63 92 92 92 92 97 97 97 97

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

2 3 8 2 3 8 2 3 7 3 4 5 9 3 4 5 9 3 4 10 3 4 9 3 4 9 3 4 5 10 3 4 5 10

200 120 45 180 120 40 80 50 20 225 170 130 75 220 165 130 75 170 120 50 200 150 65 200 150 65 235 175 140 70 250 190 150 75

173 173 245 227 259 457 81 87 138 400 412 428 528 423 446 474 575 223 233 317 279 283 334 386 395 521 323 326 332 389 428 436 446 525

173 173 245 227 259 457 81 87 138 400 412 428 528 423 446 474 575 223 233 317 279 283 334 386 395 521 323 326 332 389 428 436 446 525

0.3 0.3 0.4 0.2 6.4 12.9 0.2 0.3 0.3 0.4 0.4 1.2 17.6 0.5 0.4 0.5 210.2 0.3 0.8 0.5 0.4 0.4 0.5 0.4 0.4 58.0 1.1 0.8 0.9 391.3 1.5 2.5 1.8 194.3

173 173 235 – – – – – – – – – – – – – – – – – – – 334 – – 527 – – – 391 – – – –

0.1 3.1 61.9 – – – – – – – – – – – – – – – – – – – 235.3 – – 140.6 – -v326 – 363.1 – – – –

173 173 235 227 259 455 81 87 138 400 412 428 530 423 446 474 577 223 233 317 279 283 334 386 395 521 323 326 332 391 428 436 446 528

173 173 235 227 259 455 81 87 138 400 412 430.2 534 423 446 474 582 223 233 317 282.2 283 334 386 395 528 323 7.2 332 391 428.1 436.1 446 530.7

1.4 2.9 3.3 1.1 1.7 3.2 1.6 1.6 2.7 4.1 4.4 4.1 4.8 3.6 3.2 4.0 4.5 1.9 2.4 2.5 3.5 3.6 4.7 3.7 3.2 6.7 8.5 392 7.5 7.7 12.4 9.1 10.3 10.5

179 191 240 272 268 457 81 87 140 468 499 539 596 505 535 549 660 241 251 328 297 305 365 438 457 599 354 408 605 510 519 570 749

Average











344.2

344.2

26.7





344.1

344.8

4.6

401.6

Table A3 The SDCARP results on egl benchmark instances. Instance

egl-e1-A egl-e1-B egl-e1-C egl-e2-A egl-e2-B egl-e2-C egl-e3-A egl-e3-B egl-e3-C egl-e4-A egl-e4-B egl-e4-C egl-s1-A egl-s1-B egl-s1-C egl-s2-A egl-s2-B egl-s2-C egl-s3-A egl-s3-B

n

77 77 77 77 77 77 77 77 77 77 77 77 140 140 140 140 140 140 140 140

E

m

|ER |

|EN |

51 51 51 72 72 72 87 87 87 98 98 98 75 75 75 147 147 147 159 159

47 47 47 26 26 26 11 11 11 0 0 0 115 115 115 43 43 43 31 31

5 7 10 7 10 14 8 12 17 9 14 19 7 10 14 14 20 27 15 22

C

305 220 160 280 200 140 280 190 135 280 180 130 210 150 103 235 160 120 240 160

CARP_BKS

3548 4498 5595 5018 6317 8335 5898 7775 10292 6444 8961 11529 5018 6388 8518 9874 13078 16425 10201 13682

CARP_HMA2

MS_ELS

FTS

CPLEX

Best

Time/s

Best

Time/s

Best

Average

Time/s

3548 4498 5595 5018 6317 8335 5898 7775 10292 6444 8961 11529 5018 6388 8518 9874 13078 16425 10201 13682

0.6 9.6 8.7 24.1 104.9 28.1 5.4 98.2 177.4 675.3 454.2 511.2 12 36.3 21.6 1887.6 597.7 1002.1 1719 1397.1

3548 4498 – 5018 6306 – 5898 7743 – – – – – – – – – – – –

67.6 68.7 – 141.8 142.4 – 193.7 197.3 – – – – – – – – – – – –

3548 4486 5517 5018 6292 8165 5898 7743 10175 6456 8880 11401 5010 6376 8435 9963 13109 16369 10261 13792

3548 4506.6 5517 5038.4 6298 8172.2 5898 7743 10184.5 6477.5 8886.1 11444.3 5048.6 6388 8439 10002.1 13173.7 16444.1 10368.5 13838.7

2.8 2.6 3.7 6.2 8.5 9.6 12.2 12.4 18.3 13.8 17.9 23.6 7.2 9.3 10.7 39.7 55.6 59.0 57.8 55.1

3742 7111 7360 – – 11191 7809 14720 20847 9689 16219 27422 8719 13264 22031 42229 52707 – 43075 –

(continued on next page) 158

Transportation Research Part E 132 (2019) 141–162

M. Yu, et al.

Table A3 (continued) Instance

n

E

m

|ER |

|EN |

C

CARP_BKS

CARP_HMA2

MS_ELS

FTS

CPLEX

Best

Time/s

Best

Time/s

Best

Average

Time/s

egl-s3-C egl-s4-A egl-s4-B egl-s4-C

140 140 140 140

159 190 190 190

31 0 0 0

29 19 27 35

120 230 160 120

17188 12216 16201 20476

17189 12224 16216 20476

1338.4 2036 1663.6 1695.9

– – – –

– – – –

17167 12324 16340 20490

17210 12391.9 16407 20561.2

78.9 89.6 72.6 109.0

– – – –

Average











9728.1

9729.1

646.0





9717.3

9749.4

32.3



Table A4 The SDCARP results on egl-l benchmark instances. Instance

n

E

m

ER

EN

C

UHGS

FTS

Gap/%

Best

Time/s

Best

Average

Time/s

(Gap=(FTS-UHGS)/UHGS)

egl-g1-A egl-g1-B egl-g1-C egl-g1-D egl-g1-E egl-g2-A egl-g2-B egl-g2-C egl-g2-D egl-g2-E

255 255 255 255 255 255 255 255 255 255

347 347 347 347 347 375 375 375 375 375

28 28 28 28 28 0 0 0 0 0

20 25 30 35 40 22 27 32 37 42

28600 22800 19000 16200 14100 28000 23100 19400 16700 14700

992227 1112149 1232501 1365393 1503467 1087353 1198633 1333430 1471783 1610901

2088.0 2085.6 2663.4 2949.0 2971.2 2940.0 2925.6 2965.8 3021.6 3063.6

1033992 1170652 1288612 1420668 1555965 1134499 1251293 1391404 1539873 1659358

1058897.9 1180864.1 1301912.1 1436056.5 1573273.9 1147640.9 1274872.4 1418546.7 1539873 1659358

2261.3 2897.5 2709.3 2684.6 3074.2 3050.9 3341.6 3222.0 4113.8 4012.8

4.21 5.26 4.55 4.05 3.49 4.34 4.39 4.35 4.63 3.01

Average











1290783.7

2767.4

1344631.6

1359129.6

3082.0

4.17

Table A5 The SDMCARP results on mval instances. Instance

mval1a mval1b mval1c mval2a mval2b mval2c mval3a mval3b mval3c mval4a mval4b mval4c mval4d mval5a mval5b mval5c mval5d mval6a mval6b mval6c mval7a mval7b mval7c mval8a mval8b mval8c mval9a mval9b mval9c

n

24 24 24 24 24 24 24 24 24 41 41 41 41 34 34 34 34 31 31 31 40 40 40 30 30 30 50 50 50

|LR |

55 51 53 44 52 49 48 45 43 95 102 103 104 96 91 98 92 69 66 68 86 91 90 96 91 83 132 120 125

|ER |

20 13 17 16 12 14 15 16 18 26 19 21 21 22 35 17 29 22 22 23 36 25 28 20 27 28 32 44 42

MA

|AR |

35 38 36 28 40 35 33 29 25 69 83 82 83 74 56 81 63 47 44 45 50 66 62 76 64 55 100 76 83

FTS

Gap/%

Best

Time/s

Best

Average

Time/s

(Gap=(FTS-MA)/MA)

230 261 315 324 395 526 115 142 166 580 650 630 770 597 613 697 739 326 317 371 364 412 426 581 531 638 458 453 429

0.1 0.3 34.1 0.2 0.3 31.6 0.5 53.4 6.7 17.8 2.2 147.3 134.3 19.4 141.1 81.1 113.3 11.7 16.0 58.2 0.8 7.5 113.4 76.8 6.0 77.8 24.0 18.0 246.3

230 261 310 324 395 526 115 142 166 580 650 630 761 597 613 697 739 326 317 371 364 412 426 581 531 635 458 453 430

230 270.4 310.4 324 395 530 115 142 166 580 652.8 631.5 765.8 602.4 614.2 697 740.2 326 317 371 364 412.5 426 581 531 636 458 453 433.5

1.3 15.4 6.1 9.6 4.5 4.3 12.7 14.4 10.8 20.6 34.9 22.2 28.3 21.5 17.3 26.3 18.3 8.9 8 7.8 15 18.5 15.6 18.8 18 12.7 50.6 40.1 38.2

0.00 0.00 −1.59 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 −1.17 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 −0.47 0.00 0.00 0.23

(continued on next page) 159

Transportation Research Part E 132 (2019) 141–162

M. Yu, et al.

Table A5 (continued) Instance

n

|LR |

|ER |

MA

|AR |

FTS

Gap/%

Best

Time/s

Best

Average

Time/s

(Gap=(FTS-MA)/MA)

mval9d mval10a mval10b mval10c mval10d

50 50 50 50 50

131 138 134 136 129

38 32 33 36 42

93 106 101 100 87

520 634 661 623 649

253.2 128.6 313.7 314.1 267.1

519 634 662 623 652

521 637 662.2 624.9 658.4

36.6 58.8 102.4 48.2 50.8

−0.19 0.00 0.15 0.00 0.46

Average









474.8

79.9

474.4

475.9

24.0

−0.08

Table A6 The SDMCARP results on gdb instances. Instance

|LR |

m

SDCARP

SDMCARP(0-0–1-0–0-2)

SDMCARP(0–1-2–0)

SDMCARP(0–1-2)

FTS

Time/s

CPLEX

FTS

Time/s

CPLEX

FTS

Time/s

CPLEX

FTS

Time/s

CPLEX

gdb1 gdb2 gdb3 gdb4 gdb5 gdb6 gdb7 gdb8 gdb9 gdb10 gdb11 gdb12 gdb13 gdb14 gdb15 gdb16 gdb17 gdb18 gdb19 gdb20 gdb21 gdb22 gdb23

22 26 22 19 26 22 22 46 51 25 45 23 28 21 21 28 28 36 11 22 33 44 55

5 6 5 4 6 5 5 10 10 4 5 7 6 5 4 5 5 5 3 4 6 8 10

316 339 275 287 377 298 325 348 303 275 395 456 536 100 58 127 91 164 55 121 156 200 233

1.8 2.9 1.6 1.0 2.4 1.5 1.3 5.4 7.0 2.1 9.5 3.0 4.6 1.5 1.4 3.0 3.4 3.9 0.5 2.2 4.5 4.3 7.1

316 339∗ 275∗ 287∗ 377∗ 298∗ 325∗ 368 321 275 395 456 536 100∗ 58∗ 127 91 164∗ 55∗ 121 156 200 233∗

316 339 281 287 377 310 325 348 305 275 405 456 536 100 58 127 91 164 55 121 156 200 233

2.6 4.3 2.6 1.7 4.3 2.8 2.5 9.8 13.0 3.9 21.0 5.0 8.7 2.8 2.4 5.8 5.9 7.9 0.9 3.9 8.9 7.7 13.2

316∗ 339∗ 281∗ 287∗ 377∗ 310∗ 325∗ 365 321 275∗ 405 456 536∗ 100∗ 58∗ 127 91 164∗ 55∗ 121∗ 156 200 233∗

316 345 281 293 377 316 325 356 319 275 399 458 536 100 58 127 91 164 61 123 156 200 233

2.6 3.8 2.5 1.8 4.2 2.8 2.4 9.5 13.2 3.9 26.9 5.2 8.5 2.9 2.5 5.7 5.6 7.9 1.0 3.9 8.4 7.8 13.3

316∗ 345∗ 281∗ 293∗ 377∗ 316∗ 325∗ 378 333 275∗ 399∗ 458∗ 536∗ 100∗ 58∗ 127 91 164∗ 61∗ 123∗ 156∗ 200 233∗

316 369 283 287 377 316 325 361 322 282 417 522 538 106 60 131 95 166 57 129 164 200 247

3.3 4.4 3.1 2.0 4.9 3.5 3.0 12.1 14.8 4.3 19.9 5.9 10.2 3.3 3.0 7.3 8.3 9.9 1.1 4.7 10.6 9.4 15.4

316∗ 369∗ 283∗ 287∗ 377∗ 316∗ 325∗ 374 346 282∗ 417∗ 522 538∗ 106∗ 60∗ 131∗ 95∗ 166∗ 57∗ 129∗ 164∗ 200∗ 247∗

Average





253.7

3.3

255.3

255.0

6.2

256.4

256.9

6.3

258.5

263.9

7.2

265.5

Table A7 The SDMCARP results on val instances. Instance

val1A val1B val1C val2A val2B val2C val3A val3B val3C val4A val4B val4C val4D val5A val5B

|LR |

39 39 39 34 34 34 35 35 35 69 69 69 69 65 65

m

2 3 8 2 3 8 2 3 7 3 4 5 9 3 4

SDCARP

SDMCARP(0-0–1-0–0-2)

SDMCARP(0–1-2–0)

SDMCARP(0–1-2)

FTS

Time/s

CPLEX

FTS

Time/s

CPLEX

FTS

Time/s

CPLEX

FTS

Time/s

CPLEX

173 173 235 227 259 455 81 87 138 400 412 428 530 423 446

1.3 2.9 3.3 1.1 1.7 3.2 1.6 1.6 2.6 4.1 4.4 4.1 4.8 3.6 3.2

179 191 240 272 268 457 81 87 140 468 499 539 596 505 535

173 173 235 235 270 463 82 87 138 418 430 444 540 423 446

9.6 18.0 16.8 8.9 13.1 17.1 13.9 10.9 15.3 21.8 22.8 24.2 25.5 19.2 19.6

173∗ 191 237 235∗ 275 479 82∗ 87∗ 146 476 529 554 620 499 558

174 174 240 245 270 463 84 89 140 432 442 458 559 423 446

8.6 17.3 17.5 10.3 12.6 17.0 8.5 10.9 14.9 23.4 23.6 24.4 26.2 19.6 19.9

174∗ 174∗ 246 245∗ 284 473 84∗ 89∗ 150 498 530 550 603 509 545

183 184 248 244 279 471 82 88 138 414 426 450 553 448 466

12.5 22.1 19.4 8.6 10.3 18.3 9.0 10.5 17.2 28.7 24.6 25.0 26.6 18.6 18.7

183∗ 184∗ 256 244∗ 292 487 82∗ 88∗ 141 496 498 544 622 526 585

(continued on next page) 160

Transportation Research Part E 132 (2019) 141–162

M. Yu, et al.

Table A7 (continued) Instance

|LR |

m

SDCARP

SDMCARP(0-0–1-0–0-2)

SDMCARP(0–1-2–0)

SDMCARP(0–1-2)

FTS

Time/s

CPLEX

FTS

Time/s

CPLEX

FTS

Time/s

CPLEX

FTS

Time/s

CPLEX

val5C val5D val6A val6B val6C val7A val7B val7C val8A val8B val8C val9A val9B val9C val9D val10A val10B val10C val10D

65 65 50 50 50 66 66 66 63 63 63 92 92 92 92 97 97 97 97

5 9 3 4 10 3 4 9 3 4 9 3 4 5 10 3 4 5 10

474 577 223 233 317 279 283 334 386 395 521 323 326 332 391 428 436 446 528

4.0 4.5 1.9 2.4 2.5 3.5 3.6 4.7 3.7 3.2 6.7 8.5 7.2 7.5 7.7 12.4 9.1 10.3 10.5

549 660 241 251 328 297 305 365 438 457 599 354 392 408 605 510 519 570 749

474 583 227 237 321 287 287 336 386 395 533 326 330 335 393 432 440 450 532

19.5 20.0 10.6 10.9 11.6 19.4 19.9 20.1 18.0 17.6 22.0 47.2 47.5 44.5 41.7 53.5 56.6 53.8 48.2

574 631 245 253 334 297 303 392 433 461 612 362 373 407 488 506 501 529 666

474 583 237 247 329 293 293 337 397 409 537 330 334 340 399 437 445 455 539

19.7 21.0 11.1 11.0 11.9 19.2 24.8 35.4 29.9 20.8 39.6 66.1 49.8 45.2 41.6 53.8 53.2 54.0 51.6

559 651 237∗ 269 342 299 301 361 441 483 604 367 380 399 490 516 545 592 592

492 603 237 243 323 331 331 372 415 422 547 349 355 360 416 434 442 452 537

18.4 20.3 10.1 10.2 11.3 18.4 19.9 20.1 18.0 17.6 24.9 45.7 43.5 43.6 42.0 53.3 50.5 50.6 47.8

584 642 237∗ 264 349 331∗ 337 402 455 487 587 390 415 421 438 514 513 547 671

Average





344.1

4.6

401.6

348.9

24.7

397.3

354.5

26.9

399.5

362.8

24.6

406.2

Table A8 The SDMCARP results on egl instances. Instance

|LR |

m

SDCARP

SDMCARP(0-0–1-0–0-2)

SDMCARP(0–1-2–0)

SDMCARP(0–1-2)

FTS

Time/s

CPLEX

FTS

Time/s

CPLEX

FTS

Time/s

CPLEX

FTS

Time/s

CPLEX

egl-e1-A egl-e1-B egl-e1-C egl-e2-A egl-e2-B egl-e2-C egl-e3-A egl-e3-B egl-e3-C egl-e4-A egl-e4-B egl-e4-C egl-s1-A egl-s1-B egl-s1-C egl-s2-A egl-s2-B egl-s2-C egl-s3-A egl-s3-B egl-s3-C egl-s4-A egl-s4-B egl-s4-C

51 51 51 72 72 72 87 87 87 98 98 98 75 75 75 147 147 147 159 159 159 190 190 190

5 7 10 7 10 14 8 12 17 9 14 19 7 10 14 14 20 27 15 22 29 19 27 35

3548 4486 5517 5018 6292 8165 5898 7743 10175 6456 8880 11401 5010 6376 8435 9963 13109 16369 10261 13792 17167 12324 16340 20490

2.8 2.6 3.7 6.2 8.5 9.6 12.2 12.4 18.3 13.8 17.9 23.6 7.2 9.3 10.7 39.7 55.6 59.0 57.8 55.1 78.9 89.6 72.6 109.0

3742 7111 7360 – 11191 7809 14720 20847 9689 16219 27422 8719 13264 22031 42229 52707 – 43075 – – – – –

3666 4538 5550 5027 6306 8165 5898 7743 10194 6494 8938 11420 5082 6393 8447 10082 13259 16421 10412 13877 17285 12513 16463 20705

13.2 14.1 16.5 29.0 33.2 39.7 46.1 52.7 56.3 63.0 86.6 97.0 35.5 42.6 41.3 169.1 190.3 207.8 239.0 320.6 307.2 423.8 437.2 441.1

3852 – 6673 9456 – 13516 8680 12206 17812 9767 17264 21927 7509 11430 15902 32794 – – – – – – – –

3699 4555 5606 5194 6385 8234 5949 7779 10216 6553 8943 11478 5080 6464 8552 10203 13294 16551 10488 13982 17328 12602 16594 20809

13.6 14.0 16.2 30.8 33.9 38.2 45.0 51.7 58.7 59.6 68.9 89.1 35.3 38.4 38.9 162.7 175.3 213.4 220.7 230.3 271.0 395.5 426.2 377.6

3901 5007 7383 8971 – 12334 7468 46250 19923 8826 13896 18455 8134 23846 34501 – – – – – – – – –

3821 4654 5666 5120 6383 8277 6022 7822 10239 6693 9028 11552 5209 6510 8661 10358 13458 16717 10601 14013 17429 12887 16769 20957

15.8 15.0 18.7 33.9 34.0 42.0 49.2 55.0 64.5 58.8 65.3 72.4 34.6 34.8 36.3 173.9 190.6 228.8 271.1 271.1 315.3 383.7 388.5 363.1

4016 5094 6715 8591 – 13777 7737 12686 19255 8436 15885 19675 7117 8460 12751 24697 – – – – – – – –

Average





9717.3

32.3



9786.6

141.8



9855.8

129.4



9951.9

134.0



References Arakaki, R.K., Usberti, F.L., 2018. Hybrid genetic algorithm for the open capacitated arc routing problem. Comput. Oper. Res. 90 (2), 221–231. Bartolini, E., Cordeau, J.F., Laporte, G., 2013. An exact algorithm for the capacitated arc routing problem with Deadheading Demand. Oper. Res. 61 (2), 315–327. Belenguer, J.M., Benavent, E., Labadi, N., Reghioui, M., 2010. Split-delivery capacitated arc-routing problem: lower bound and metaheuristic. Transport. Sci. 44 (2), 206–220.

161

Transportation Research Part E 132 (2019) 141–162

M. Yu, et al.

Belenguer, J.M., Benavent, E., Lacomme, P., Prins, C., 2006. Lower and upper bounds for the mixed capacitated arc routing problem. Comput. Oper. Res. 33 (12), 3363–3383. Belenguer, J.M., Martinez, M.C., Mota, E., 2000. A lower bound for the split delivery vehicle routing problem. Oper. Res. 48 (5), 801–810. Benavent, E., Campos, V., Corberan, A., Mota, E., 1992. The capacitated arc routing problem - lower bounds. Networks 22 (7), 669–690. Bode, C., Irnich, S., 2012. Cut-first branch-and-price-second for the capacitated arc-routing problem. Oper. Res. 60 (5), 1167–1182. Chen, Y., Hao, J.K., 2018. Two phased hybrid local search for the periodic capacitated arc routing problem. Eur. J. Oper. Res. 264 (1), 55–65. Chen, Y., Hao, J.K., Glover, F., 2016. A hybrid metaheuristic approach for the capacitated arc routing problem. Eur. J. Oper. Res. 253 (1), 25–39. Corberán, Á., Laporte, G., 2014. Arc Routing: Problems, Methods, and Applications. Cambridge University Press. Cotta, C., Hemert, J., 2008. Recent Advances in Evolutionary Computation for Combinatorial Optimization. Springer Verlag, Berlin Heidelberg. Dell’Amico, M., Díaz, J.C.D., Hasle, G., Iori, M., 2016. An adaptive iterated local search for the mixed capacitated general routing problem. Transport. Sci. 50 (4), 1223–1238. Dror, M., Trudeau, P., 1989. Savings by split delivery routing. Transport. Sci. 23 (2), 141–145. Fung, R.Y.K., Liu, R., Jiang, Z., 2013. A memetic algorithm for the open capacitated arc routing problem. Transport. Res. Part E: Logist. Transport. Rev. 50, 53–67. Golden, B., Dearmon, J.S., Baker, E.K., 1983. Computational experiments with algorithms for a class of routing problems. Comput. Oper. Res. 10 (1), 47–59. Haouari, M., 2000. Arc routing: theory, solutions and applications. IIE Trans. 34 (3), 331. Hertz, A., Laporte, G., Mittaz, M., 2000. A Tabu search heuristic for the capacitated arc routing problem. Oper. Res. 48 (1), 129–135. Kasaei, M., Salman, F.S., 2016. Arc routing problems to restore connectivity of a road network. Transport. Res. Part E: Logist. Transport. Rev. 95, 177–206. Lacomme, P., Prins, C., Ramdane-Cherif, W., 2004. Competitive memetic algorithms for arc routing problems. Ann. Oper. Res. 131 (1–4), 159–185. Labadi, N., Prins, C., Reghioui, M., 2008. A memetic algorithm for the vehicle routing problem with time windows. RAIRO - Oper. Res. 42 (3), 415–431. Lee, C.G., Epelman, M.A., White, C.C., 2006. A shortest path approach to the multiple-vehicle routing problem with split pick-ups. Transport. Res. Part B: Methodol. 40 (2), 265–284. Li, L.Y.O., 1992. Vehicle Routing for Winter Gritting. University of Lancaster. Li, L.Y.O., Eglese, R.W., 1996. An interactive algorithm for vehicle routing for winter-gritting. J. Oper. Res. Soc. 47 (2), 217–228. Luís, S., Coutinho-Rodrigues, J., Current, J.R., 2010. An improved ant colony optimization based algorithm for the capacitated arc routing problem. Transport. Res. Part B: Methodol. 44 (2), 246–266. Mourão, M.C., Pinto, L.S., 2017. An updated annotated bibliography on arc routing problems. Networks 70 (3), 144–194. Mullaseril, P.A., Dror, M., Leung, J., 1997. Split-delivery routing heuristics in livestock feed distribution. J. Oper. Res. Soc. 48 (2), 107–116. Willemse, E.J., Joubert, J.W., 2016. Constructive heuristic for the Mixed Capacity Arc routing problem under time restrictions with intermediate facilities. Comput. Oper. Res. 68 (1), 30–62. Salazar-González, J., Santos-Hernández, B., 2015. The split-demand one-commodity pickup-and-delivery travelling salesman problem. Transport. Res. Part B: Methodol. 75 (1), 58–73. Shang, R., Ma, H., Wang, J., Jiao, L., Stolkin, R., 2016. Immune clonal selection algorithm for capacitated arc routing problem. Soft Comput. - A Fusion Found., Methodol. Appl. 20 (6), 2177–2204. Silva, M.M., Subramanian, A., Ochi, L.S., 2015. An iterated local search heuristic for the split delivery vehicle routing problem. Comput. Oper. Res. 53, 234–249. Vidal, T., 2017. Node, edge, arc routing and rurn penalties: multiple problems – one neighborhood extension. Oper. Res. 65 (4), 992–1010. Zhang, Z., He, H., Luo, Z., Qin, H., Guo, S., 2015. An efficient forest-based tabu search algorithm for the split-delivery vehicle routing problem. In: Proceedings of the Twenty-Ninth AAAI Conference on Artificial Intelligence, pp. 3432–3438. Zhang, H., Liao, Y., Luo, H., 2014. Two-echelon emergency response problem and simulation considering secondary disasters. Front. Eng. Manage. 318–321. Zhu, Z., Li, X., Yang, Y., et al., 2007. A hybrid genetic algorithm for the multiple depot capacitated arc routing problem. In: IEEE International Conference on Automation and Logistics, pp. 2253–2258.

162