Improved bounds for large scale capacitated arc routing problem

Improved bounds for large scale capacitated arc routing problem

Computers & Operations Research 40 (2013) 2145–2160 Contents lists available at SciVerse ScienceDirect Computers & Operations Research journal homep...

360KB Sizes 0 Downloads 82 Views

Computers & Operations Research 40 (2013) 2145–2160

Contents lists available at SciVerse ScienceDirect

Computers & Operations Research journal homepage: www.elsevier.com/locate/caor

Improved bounds for large scale capacitated arc routing problem Rafael Martinelli a,n, Marcus Poggi a, Anand Subramanian b a

~ Vicente, ´tica – Rua Marquˆes de Sao ´lica do Rio de Janeiro (PUC-Rio) – Departamento de Informa Pontifı´cia Universidade Cato ´vea – Rio de Janeiro, RJ 22451-900, Brazil 225 – RDC, 4o andar – Ga ~ – Centro de Tecnologia, Campus I – Bloco G, Universidade Federal da Paraı´ba (UFPB) – Departamento de Engenharia de Produc- ao ~ Pessoa, PB 58051-970, Brazil ´ria – Joao Cidade Universita b

a r t i c l e i n f o

abstract

Available online 28 February 2013

The Capacitated Arc Routing Problem (CARP) stands among the hardest combinatorial problems to solve or to find high quality solutions. This becomes even more true when dealing with large instances. This paper investigates methods to improve on lower and upper bounds of instances on graphs with over 200 vertices and 300 edges, dimensions that, today, can be considered of large scale. On the lower bound side, we propose to explore the speed of a dual ascent heuristic to generate capacity cuts. These cuts are next improved with a new exact separation enchained to the linear program resolution that follows the dual heuristic. On the upper bound, we implement a modified Iterated Local Search procedure to Capacitated Vehicle Routing Problem (CVRP) instances obtained by applying a transformation from the CARP original instances. Computational experiments were carried out on the set of large instances generated by Branda~ o and Eglese and also on the regular size sets. The experiments on the latter allow for evaluating the quality of the proposed solution approaches, while those on the former present improved lower and upper bounds for all instances of the corresponding set. & 2013 Elsevier Ltd. All rights reserved.

Keywords: Arc routing Integer programming Dual ascent Capacity cuts Iterated local search

1. Introduction The Capacitated Arc Routing Problem (CARP) can be defined as follows. Let G ¼ ðV,EÞ be an undirected graph, where V and E are the vertex and edge set respectively. There is a special vertex called depot (usually vertex 0) where a set I of identical vehicles with capacity Q is located. Each edge in E has a cost c : E-Z þ and a demand d : E-Z0þ . Let ER ¼ fe A E : de 4 0g be the set of required edges. The objective is to find a set of routes, one for each available vehicle, which minimizes the total traversal cost satisfying the following constraints: (i) every route starts and ends at the depot; (ii) each required edge must be visited exactly once; (iii) the total load of each vehicle must not exceed Q. This problem can arise in many real life situations. According to Wølhk [1], some of the applications studied in the literature are garbage collection, street sweeping, winter gritting, electric meter reading and airline scheduling. The CARP is NP-hard and it was first proposed by Golden and Wong in 1981 [2]. Since then, several solution approaches were proposed in the literature involving algorithms based on heuristics, metaheuristics, cutting plane, column generation, branchand-bound, among others.

n

Corresponding author. E-mail addresses: [email protected] (R. Martinelli), [email protected] (M. Poggi), [email protected] (A. Subramanian). 0305-0548/$ - see front matter & 2013 Elsevier Ltd. All rights reserved. http://dx.doi.org/10.1016/j.cor.2013.02.013

In 2003, Belenguer and Benavent [3] proposed a mathematical formulation for the CARP which makes use of two families of cuts as constraints, the odd-edge cutset cuts and the capacity cuts. With this formulation and other families of cuts, they devised a cutting plane algorithm in order to obtain good lower bounds for wellknown CARP instance datasets. Before this work, the best known CARP lower bounds were found mainly by heuristic algorithms. Since the work of Belenguer and Benavent, the best known lower bounds were found using exact algorithms. In 2004, Ahr [4] devised a mixed-integer formulation using an exact separation of capacity cuts. However, due to memory limitations, the author did not manage to apply his algorithm in all known instances, which illustrates the difficulty in separating such cuts. The main drawback of the exact approaches is the fact of being prohibitive on larger instances. Up to this date, the larger instance solved to optimality is the egl-s3-c from the eglese instance dataset, proposed almost 20 years ago by Li [5] and Li and Eglese [6]. This instance has 140 vertices and 190 edges, 159 of these required ones, and it was solved for the first time by Bartolini et al. in 2011 [7] using a cut-and-column based technique combined with a set partitioning approach. Other recent works using exact approaches which solved to optimality instances from eglese instance dataset are those of Bode and Irnich [8], which used a cut-first branch-and-price-second exploiting the sparsity of the instances, and Martinelli et al. [9], which used a branch-cut-and-price with non-elementary routes. In their work of 2008, Branda~ o and Eglese [10] proposed a new set of CARP instances, called egl-large, containing 255 vertices,

2146

R. Martinelli et al. / Computers & Operations Research 40 (2013) 2145–2160

375 edges and 347 or 375 required edges. They ran the pathscanning heuristic from Golden [11] and compared the results with their deterministic tabu search, giving the first upper bounds for this instance dataset. In 2009, Mei et al. [12] improved these upper bounds using a repair-based tabu search algorithm. To the best of our knowledge, there are no lower bounds reported in the literature for this instance dataset. The contributions of this paper are twofold: (i) provide a methodology capable of obtaining good lower bounds and (ii) improve the existing upper bounds by means of a heuristic algorithm; both approaches with emphasis on large scale instances. In order to find the first lower bounds for the egl-large instance dataset, we devise a dual ascent heuristic to speed up a cutting plane algorithm which uses a new exact separation of the capacity cuts and a known exact separation of the odd edge cutset cuts. The upper bounds are found using a known transformation to the Capacitated Vehicle Routing Problem (CVRP) and then applying an Iterated Local Search (ILS) based heuristic. We report new improved upper bounds for all 10 instances of the egl-large set. The remainder of the paper is organized as follows. Section 2 presents the mathematical formulation needed for the dual ascent heuristic and the known exact separation algorithms. Section 3 introduces a new exact separation for the capacity cuts. Section 4 describes our dual ascent heuristic and how it generates cuts to hot-start the cutting plane algorithm. Section 5 explains the known transformation to the CVRP and the ILS heuristic. Section 6 presents extensive computational experiments. Finally, conclusions are given in Section 7.

2. Mathematical formulation 2.1. The one-index formulation In their work, Belenguer and Benavent [3] developed a CARP formulation, usually referred as the One-Index Formulation [13]. In contrast to other approaches, this formulation only makes use of variables representing the deadheading of an edge. An edge is deadheaded when a vehicle traverses this edge without servicing it. In addition, all vehicles are aggregated. Due to these simplifications, this formulation is not complete, i.e., it may result in an infeasible solution for the problem. Moreover, even when a given solution is feasible, it is a very hard task to find a complete solution. Nevertheless, these issues do not prevent such formulation of giving very good lower bounds in practice. For each deadheaded edge e, there is an integer variable ze representing the number of times the edge e was deadheaded by any vehicle. Let S D V\f0g be a subset of vertices not including the depot. We can define dðSÞ ¼ fði,jÞ A E : i A S4j 2 = Sg as being the set of edges which have one endpoint inside S and the other outside S. Similarly, dR ðSÞ ¼ fði,jÞ A ER : i A S4j 2 = Sg is the set of required edges which have one endpoint inside S and the other outside S. Analogously, EðSÞ ¼ fði,jÞ A E : iA S4j A Sg and ER ðSÞ ¼ fði,jÞ A ER : i A S4j A Sg are the sets of edges with both endpoints inside S. Given a vertex set S, with 9dR ðSÞ9 odd, it is easy to conclude that at least one edge in dðSÞ must be deadheaded because each vehicle entering the set S must leave and return to the depot. This is the principle of the odd-edge cutset cuts: X ze Z 1 8S DV\f0g, 9dR ðSÞ9odd ð1Þ e A dðSÞ

Furthermore, we can define a lower bound on the number of vehicles needed to meet the demands in dR ðSÞ [ ER ðSÞ as P kðSÞ ¼ d e A dR ðSÞ[ER ðSÞ de =Q e. These k(S) vehicles must enter and leave the set S, in such a way that at least 2kðSÞ9dR ðSÞ9 times an edge in dðSÞ will be deadheaded. If this value is positive, we can

define the following capacity cut: X ze Z2kðSÞ9dR ðSÞ9 8S D V\f0g

ð2Þ

e A dðSÞ

Since the left-hand side of both (1) and (2) are the same, they can be represented in the formulation by only using a single constraint. This can be done by introducing aðSÞ, which is defined as follows: ( maxf2kðSÞ9dR ðSÞ9,1g if 9dR ðSÞ9is odd, aðSÞ ¼ ð3Þ maxf2kðSÞ9dR ðSÞ9,0g if 9dR ðSÞ9is even These two families of cuts define the one-index formulation: X ce ze ð4Þ Min eAE

s:t:

X

ze Z aðSÞ

8S DV\f0g

ð5Þ

e A dðSÞ

ze A Z0þ

8eA E

ð6Þ

The objective function (4) minimizes the cost of the deadheaded edges. Constraints (5) combine cuts (1) and (2). In order to obtain the total cost for the problem, one needs to add the costs of P the required edges ( e A ER ce ) to the solution cost. 2.2. Exact odd-degree cutset cuts separation The exact separation of the odd-degree cutset cuts (1) can be done in polynomial time using the Odd Minimum Cutset Algorithm of Padberg and Rao [14]. We believe that the application of the algorithm is not immediate and therefore we decided to provide a brief description of the separation routine, which is as follows. The odd minimum cutset algorithm creates a Gomory-Hu Tree [15] using just the vertices with odd 9dR ðfvgÞ9, called terminals. This tree represents a maximum flow tree, i.e., the maximum flow of any pair of vertices is represented on this tree. In order to obtain the maximum flow between a pair of vertices, one only needs to find the least cost edge on the unique path between these two vertices. This edge also represents the minimum cut between them. Hence, to determine a violated odd-degree cutset cut, one needs to find any edge with a value less than one. This can be done during the execution of the algorithm, but we prefer to run it until the end to find as many violated cuts as possible. This whole operation can be done running at most 9V91 times any maximum flow algorithm. In this work we use the Edmonds– 2 Karp Algorithm [16], which takes Oð9V9  9E9 Þ, resulting in a total 2 2 complexity of Oð9V9  9E9 Þ. 2.3. Ahr’s exact capacity cut separation The only exact separation routine for the capacity cuts available in the CARP literature was proposed by Ahr [4] in 2004. This algorithm runs a mixed-integer formulation several times, one for each possible number of vehicles. This approach was inspired on the exact separation of the capacity cuts for the CVRP proposed by Fukasawa et al. [17]. In Ahr’s work, this separation was used to identify violated cuts on a complete formulation for the CARP. As we only wish to separate the cuts, we changed the objective function of the mixed-integer formulation to use it with the oneindex formulation. The formulation is composed by three types of variables. The first one is the binary variable he, 8e A E, which is 1 when exactly one endpoint of e is inside the cut (what we call cut edge) and 0 otherwise. The second variable is the binary variable fe, 8eA E, which is 1 when both endpoints of e are inside the cut (called inner edge) and 0 otherwise. The last variable is the binary variable si, 8i A V, which is 1 if vertex i is inside the cut and

R. Martinelli et al. / Computers & Operations Research 40 (2013) 2145–2160

0 otherwise. These variables are sufficient to describe a capacity cut. Thus, the following formulation is created for each possible P number of vehicles k ¼ 0 . . . d e A ER de =Q e1: X X z~ e he þ he ð7Þ Min eAE

s:t:

e A ER

he si þsj Z 0

8e ¼ fi,jg A E

8e ¼ fi,jg A E

he þsi sj Z0 he þsi þ sj Z 0

8e ¼ fi,jg A E

ð8Þ ð9Þ

sj f e Z0

8e ¼ fi,jg A E

ð12Þ

8e ¼ fi,jg A E

ðhe þ f e Þsi Z 0

8i A V

ð13Þ ð14Þ

e A dðfigÞ

he þf e r 1 X

8eA E

e A ER

s:t:

eAE

he si þ sj Z0

he þ si þsj Z0

ð11Þ

X

Furthermore, we use constraints (8)–(15) and (17) from Ahr’s formulation. These constraints are required to depict a capacity cut. We write our complete formulation as follows: X X z~ e he Max 2k he  ð20Þ

he þ si sj Z0

8e ¼ fi,jg A E

si þsj f e r 1

the fractional difference of applying the ceiling function to obtain

k. This difference must be within the range [0, 1).

ð10Þ

si f e Z0

ð15Þ

2147

8e ¼ fi,jg A E

8e ¼ fi,jg A E 8e ¼ fi,jg A E

ð21Þ ð22Þ ð23Þ

si f e Z0

8e ¼ fi,jg A E

ð24Þ

sj f e Z0

8e ¼ fi,jg A E

ð25Þ

si þ sj f e r1 X

8e ¼ fi,jg A E

ðhe þ f e Þsi Z 0

8i A V

ð26Þ ð27Þ

e A dðfigÞ

de ðhe þf e Þ ZkQ þ 1

ð16Þ

e A ER

s0 ¼ 0

ð17Þ

he ,f e A f0,1g si A ½0,1

8e A E

ð18Þ

8i A V\f0g

ð19Þ

The objective function (7) uses a solution of the one-index formulation z~ e and minimizes the total value of the cut edges plus the number of cut edges that are required. Constraints (8)–(10) bind the variables si and he. Analogously, constraints (11)–(13) bind the variables si and fe. The constraints (14) assure that if a vertex i is inside the cut, at least one edge adjacent to i is a cut edge or an inner edge. Constraints (15) assure that an edge e cannot be a cut edge and an inner edge at the same time. Constraints (16) ensure that the total demand of the cut found is at least kQ þ 1. Constraint (17) forbids the inclusion of the depot in a cut. Notice that due to the association of si with he and fe, the variables si need not to be integral. Given the value of the objective function Zn associated to a solution in a given iteration k, the cut which can be generated using the si variables is a violated capacity cut if Z n o 2ðk1Þ. Therefore, the problem needs to be solved to optimality only when we aim at finding the most violated capacity cut. This separation routine has the disadvantage of running several MIPs, one for every possible number of vehicles. Depending on the instance, this number may be up to 42. Nevertheless, in his work, Ahr could not manage to run this separation for all CARP instances due to memory limitations.

3. A new exact capacity cut separation The exact separation suggested by Ahr requires solving several MIPs because it is not possible to build a mixed-integer formulation that directly represents the ceiling function (de) of the capacity cut. In order to deal with this issue, we developed a new formulation which is capable of separating a capacity cut in an exact fashion considering any possible number of vehicles. Our ´talapproach was inspired by the exact separation of the Chva Gomory cuts proposed by Fischetti and Lodi in 2007 [18]. Our mixed-integer formulation uses the same three variables presented in Ahr’s formulation, that is, he, fe and si. In addition, we also consider an integer variable k indicating the value of k(S) in the formulation and a continuous slack variable g representing

he þ f e r1



8e A E

X de ðhe þ f Þ e þg Q eAE

s0 ¼ 0

ð29Þ

ð30Þ

he ,f e A f0,1g si A ½0,1

ð28Þ

8e A E

ð31Þ

8i A V\f0g

ð32Þ

k A Z0þ

ð33Þ

g A ½0,1Þ

ð34Þ

The objective function (20) maximizes the violation of the capacity cut, while constraint (29) limits the difference between k and the fractional value using the slack variable g. As mentioned, constraints (21)–(28) and (30) are from Ahr’s formulation. We will further show in the computational experiments that this formulation can perform better in practice than Ahr’s formulation.

4. Dual ascent heuristic Even with the improvement on the exact separation of the capacity cuts, the separation routine still takes a long time when applied to large instances. However, if we use a heuristic approach to generate valid cuts to be used as a hot-start for the separation algorithm, the number of iterations of the separation routine could reduce drastically. In view of this, we propose a dual ascent heuristic. A dual ascent heuristic is usually devised to obtain good lower bounds for a problem. A good example of this type of approach can be found in the work of Wong [19] on the Steiner Tree Problem. When this heuristic is applied over the CARP one-index formulation, it can generate several cuts on each iteration. If good cuts are found during these iterations, they can be very helpful for the exact separation. 4.1. Main algorithm The main algorithm of the dual ascent heuristic works on the dual of the linear relaxation of the one-index formulation: X Max aðSÞpS ð35Þ S D V\f0g

2148

s:t:

R. Martinelli et al. / Computers & Operations Research 40 (2013) 2145–2160

X

pS rce 8e A E

ð36Þ

S D V\f0g:e A dðSÞ

pS A R0þ

8S D V\f0g

ð37Þ

In this formulation, the variables pS are associated with constraints (5) and constraints (36) are associated with ze variables. These latter constraints impose a limit on the dual variables. The sum of the dual variables associated with the cuts which have an edge e A dðSÞ must not exceed the cost of this edge e. This is the base of our dual ascent heuristic. As already mentioned, the objective of our dual ascent heuristic is to find a lower bound for the CARP. Therefore, it starts with P the trivial lower bound LB ¼ e A ER ce . At each iteration, several cuts are generated using a strategy that will be further discussed. Among these cuts, only one is chosen using an arbitrary criterion. A good cut is one with a large aðSÞ or, in case of a tie, one with a large contribution to the objective function. The contribution of a cut can be calculated as presented in (38).

sðSÞ ¼ aðSÞ  minfce : eA dðSÞg

ð38Þ

n

Given the selected cut S , the heuristic updates its lower bound (LB ¼ LB þ sðSn Þ) and it also changes the dual formulation to reflect the use of this cut. Knowing the value of the variable pSn ¼ minfce : e A dðSn Þg associated with the cut, each constraint of the dual formulation where eA dðSn Þ must have its right-hand side modified to ce pSn . As a result, the variable pSn is removed from the formulation. This latter operation has a direct effect on the graph G. The update of the right-hand side of the constraints (36) is the same of reducing the costs of the edges e A dðSÞ. When an edge e ¼ ði,jÞ is saturated, i.e., the edge has its cost reduced to 0, the heuristic contracts the vertices i and j as shown in Fig. 1. This contraction guarantees that no saturated edges appear as cut edges on future iterations of the heuristic. The next iteration of the heuristic is then applied over the new graph. When the graph has only one vertex (the depot), the heuristic stops. Notice that at each iteration, at least one edge is saturated. Due to this fact, the heuristic performs at most 9V91 iterations.

during the iterations of the heuristic, a vertex at some iteration might not be a single vertex on the original graph. An example of this strategy is shown in Fig. 2a. This strategy takes time Oð9V9Þ and generates at most 9V91 cuts. 4.2.2. Complete cuts In the complete cuts strategy, we create a set of cuts S ¼ V\f0,vg, 8v A V, which, for each vertex v A V (including the depot), contains all the vertices of the graph except v and the depot. Analogously to the previous strategy, the vertex left out of the cut might not be a single vertex at a given iteration of the heuristic. An example of 2 this strategy is shown in Fig. 2b. This strategy takes time Oð9V9 Þ and generates at most 9V9 cuts. 4.2.3. Connected cuts The connected cuts strategy inserts vertices in the cut using a breadth-first search approach. Firstly, it chooses a random size for the cut between 2 and 9V92, as all the cuts of size 1, 9V91 and 9V9 are generated in the first two strategies. Secondly, it chooses a random vertex (excluding the depot) to start the search. Each time the breadth-first search finds a new vertex, this vertex is added to the cut. The search stops when the size of the cut is equal to the desired size. This operation is repeated 9E9 times. The whole operation takes time Oð9E9ð9V9 þ 9E9ÞÞ and generates at most 9E9 cuts. 4.2.4. MST cuts The MST cuts strategy starts by generating the Minimum Spanning Tree (MST) of the graph. Each edge of the MST defines two vertex set on the graph. Those which do not contain the depot are then generated as cuts (see Fig. 3). Using the Kruskal’s Algorithm [20] for MST, along with any search algorithm, this strategy takes time Oð9E9log9V9Þ and generates at most 9V91 cuts.

1

4.2. Cut generation As pointed before, the dual ascent heuristic can only give good lower bounds if good cuts are chosen. Therefore, the cut generation strategies are the most important part of the heuristic. Any strategy can be used within our heuristic. After some preliminary experiments, we decided to turn attention to four different strategies. When one of the strategies generates a previously generated cut or a cut S with aðSÞ ¼ 0, this new cut is discarded.

S

1

24

5

0

3

24

S 5

0

3

Fig. 2. (a) Example of the simple cuts strategy and (b) example of the complete cut strategy.

4.2.1. Simple cuts In the simple cuts strategy, we create a set of cuts S ¼ fvg, 8v A V\f0g, containing only one vertex. Such vertex cannot be the depot. It is noteworthy to mention that as the graph is modified

1

1

2

5

0

3

4

S

24

5

0

3

Fig. 1. Example of vertex contraction: vertices 2 and 4 are contracted, becoming one vertex.

Fig. 3. Example of a MST cut defined by edge (0,1). The minimum spanning tree is shown by dashed edges.

R. Martinelli et al. / Computers & Operations Research 40 (2013) 2145–2160

2149

Table 1 Exact separation results for kshs and gdb datasets. Ins

9V9

9E9

9ER 9

9I9

Opt

Cost1

Cost2

Ahr’s exact sep Cap1

Our exact sep

Odd1

Time1

Cap2

Odd2

Time2

Cap1

Odd1

Time1

Cap2

Odd2

Time2

kshs1 kshs2 kshs3 kshs4 kshs5 kshs6

8 10 6 8 8 9

15 15 15 15 15 15

15 15 15 15 15 15

4 4 4 4 3 3

14,661 9863 9320 11,498 10,957 10,197

14,661 9863 9320 11,098 10,957 10,197

14,661 9863 9320 11,098 10,957 10,197

2 4 1 3 1 0

5 6 6 6 8 17

0.091 0.124 0.196 0.163 0.182 0.031

2 4 1 3 1 0

5 6 6 6 8 17

0.136 0.162 0.292 0.230 0.261 0.061

2 4 1 3 1 0

5 6 6 6 8 17

0.046 0.075 0.038 0.048 0.043 0.016

2 4 1 3 1 0

5 6 6 6 8 17

0.072 0.099 0.070 0.066 0.060 0.031

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

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 458 536 100 58 127 91 164 55 121 156 200 233

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

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

2 1 2 4 3 2 2 14 14 0 1 5 1 1 1 1 0 1 0 0 1 1 2

17 7 14 8 15 13 23 33 28 7 21 11 11 0 0 7 8 0 10 14 7 33 0

0.228 0.233 0.311 0.244 0.289 0.308 0.218 1.400 1.690 0.451 0.453 0.328 1.717 0.687 0.444 1.459 0.790 1.542 0.023 0.198 1.972 4.657 4.569

2 1 2 4 3 2 2 14 14 0 1 5 1 1 1 1 0 1 0 0 1 1 2

17 7 14 8 15 13 23 33 28 7 21 11 11 0 0 7 8 0 10 14 7 33 0

0.353 0.372 0.420 0.346 0.428 0.415 0.317 1.804 2.192 0.898 0.692 0.472 2.349 1.103 0.689 2.077 1.581 2.462 0.046 0.391 2.529 6.538 6.824

2 1 2 4 3 2 2 21 11 0 1 3 1 1 1 1 0 1 0 0 1 1 2

17 7 14 8 15 13 23 33 28 7 21 11 11 0 0 7 8 0 10 14 7 33 0

0.058 0.031 0.077 0.065 0.076 0.062 0.049 0.760 0.316 0.049 0.066 0.054 0.089 0.020 0.024 0.045 0.016 0.056 0.016 0.019 0.079 0.115 0.086

2 1 2 4 3 2 2 21 11 0 1 3 1 1 1 1 0 1 0 0 1 1 2

17 7 14 8 15 13 23 33 28 7 21 11 11 0 0 7 8 0 10 14 7 33 0

0.085 0.052 0.103 0.083 0.100 0.093 0.078 0.825 0.438 0.096 0.116 0.082 0.132 0.032 0.039 0.081 0.032 0.101 0.032 0.057 0.114 0.176 0.138

Table 2 Exact separation results for bccm dataset. Ins

1A 1B 1C 2A 2B 2C 3A 3B 3C 4A 4B 4C 4D 5A 5B 5C 5D 6A 6B 6C 7A 7B 7C 8A 8B 8C 9A 9B 9C 9D 10A 10B 10C 10D

9V 9

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

9E9

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

9ER 9

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

9I9

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

Opt

173 173 245 227 259 457 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 526

Cost1

173 173 235 227 257 455 81 87 135 400 412 428 519.5 423 443 467 571 223 229 307 279 283 327 386 395 509 323 326 332 378 428 436 446 521.5

Cost2

173 173 235 227 257 455 81 87 135 400 412 428 521 423 443 467 571 223 229 307 279 283 327 386 395 509 323 326 332 378 428 436 446 522

Ahr’s exact sep

Our exact sep

Cap1

Odd1

Time1

Cap2

Odd2

Time2

Cap1

Odd1

Time1

Cap2

Odd2

Time2

0 0 23 3 6 24 2 9 22 5 5 9 39 2 4 6 17 2 3 30 0 1 16 1 4 25 0 1 2 23 1 2 6 47

48 48 48 36 44 31 26 26 23 32 32 34 63 57 63 77 56 36 38 36 30 30 112 31 31 64 112 122 126 112 66 68 69 73

0.115 0.117 1.458 0.280 0.436 1.446 0.198 0.580 1.481 0.918 1.097 2.173 7.764 0.905 1.114 1.825 3.208 0.281 0.659 2.690 0.132 0.377 2.300 0.603 0.917 3.844 0.367 1.671 2.026 5.241 0.830 2.400 3.508 15.851

0 0 23 3 6 24 2 9 22 5 5 9 39 2 4 6 17 2 3 30 0 1 16 1 4 25 0 1 2 23 1 2 6 48

48 48 48 36 44 31 26 26 23 32 32 34 63 57 63 77 56 36 38 36 30 30 112 31 31 64 112 122 126 112 66 68 69 73

0.216 0.226 1.772 0.399 0.552 1.701 0.264 0.724 1.731 1.327 1.517 2.666 8.489 1.182 1.466 2.463 3.971 0.423 0.846 3.207 0.261 0.551 2.881 0.813 1.228 4.570 0.690 2.158 2.619 6.175 1.245 3.249 4.453 17.376

0 0 13 3 6 20 2 8 18 4 4 9 31 2 4 7 15 2 3 22 0 1 11 1 4 19 0 1 2 15 1 2 7 28

48 48 48 36 44 31 26 25 23 34 34 34 62 57 63 77 56 36 38 36 30 30 106 31 31 65 112 122 126 112 66 68 70 74

0.057 0.051 0.277 0.132 0.209 0.477 0.106 0.221 0.365 0.307 0.272 0.463 2.022 0.225 0.303 0.348 0.693 0.115 0.217 0.950 0.077 0.098 0.666 0.165 0.228 0.659 0.154 0.320 0.339 1.213 0.203 0.346 0.652 2.592

0 0 13 3 6 20 2 8 18 4 4 9 31 2 4 7 15 2 3 22 0 1 11 1 4 19 0 1 2 15 1 2 7 28

48 48 48 36 44 31 26 25 23 34 34 34 63 57 63 77 56 36 38 36 30 30 106 31 31 65 112 122 126 112 66 68 70 74

0.106 0.093 0.325 0.169 0.250 0.519 0.146 0.262 0.405 0.403 0.362 0.554 2.140 0.305 0.384 0.430 0.775 0.166 0.269 1.044 0.151 0.176 0.775 0.231 0.303 0.728 0.266 0.427 0.459 1.344 0.335 0.464 0.778 2.719

2150

R. Martinelli et al. / Computers & Operations Research 40 (2013) 2145–2160

5. Iterated local search heuristic With a view of improving the existing upper bounds for the CARP large-scale instances, we implemented an ILS [21] based heuristic which was originally proposed by Penna et al. [22] for solving the Heterogeneous Fleet Vehicle Routing Problem (HFVRP). However, instead of completely redesigning the algorithm to solve CARP instances, we applied a procedure that transforms a CARP instance into a CVRP instance. Some transformation routines are available in the literature (see for example Pearn et al. [23], Longo et al. [24], Baldacci and Maniezzo [25]). In this work we decided to make use of the one developed in [25]. Since the HFVRP includes the CVRP as a special case when all vehicles are identical, we only had to perform minor adaptations in the original heuristic.

5.1. The ILS-RVND heuristic The multi-start heuristic, called ILS-RVND, combines the ILS approach with a local search procedure based on the Variable Neighborhood Descent [26] with Random neighborhood ordering (RVND) [27]. The two main parameters of this heuristic are the number of iterations (MaxIter) and the number of consecutive perturbations without improvements (MaxIterILS). The initial solutions are generated using two insertion strategies, namely: (i) Sequential Insertion Strategy, in which a single route is considered at a time; and (ii) Parallel Insertion Strategy, in which all routes are considered at once. Two insertion criteria were adopted, specifically: (i) Modified Cheapest Insertion Criterion, in which the insertion cost g of customer k between customers i and j in route u is given by gðkÞ ¼ ðcuik þ cukj cuij Þgðcu0k þ cuk0 Þ, where g A f0:00,0:05, . . . ,1:70g is a parameter whose interval was empirically calibrated in [27]; and (ii) Cheapest Insertion Criterion, where the insertion cost g is given by gðkÞ ¼ cuik . The transformed instances contain a subset of edges with artificial negative costs that must be in any feasible solution. The constructive procedure does not necessarily impose the inclusion of such edges when generating an initial solution. Hence, initial

infeasible solutions are often generated. Nevertheless, these solutions eventually become feasible during the local search. The RVND procedure is composed by the following four interroute neighborhood structures. Shift(1,0), a customer k is transferred from a route r1 to a route r2. Shift(2,0), two adjacent customers, k and l, are transferred from a route r1 to a route r2. This move can also be seen as an arc transferring. In this case, the move examines the transferring of both arcs (k,l) and (l,k). Swap(2,2), permutation between two adjacent customers, k and 0 0 l, from a route r1 by another two adjacent customers k and l , belonging to a route r2. We consider the four possible combina0 0 0 0 tions of exchanging arcs ðk,lÞ,ðl,kÞ,ðk ,l Þ and ðl ,k Þ. Cross, the arc between adjacent customers k and l, belonging to a route r1, and 0 0 the one between k and l , from a route r2, are both removed. Next, 0 an arc is inserted connecting k and l and another is inserted 0 linking k and l. In case of improvement we perform a intensification in the modified routes using the following three classical Traveling Salesman Problem neighborhood structures. 2-opt, two non-adjacent arcs are deleted and another two are added in such a way that a new route is generated. Reinsertion, one customer is removed and inserted in another position of the route. Or-opt2, two adjacent customers are removed and inserted in another position of the route. The solution spaces of all neighborhoods are exhaustively explored and their computational complexity is Oðn2 Þ, where n is the number of customers. We only consider those moves that do not violate the vehicle capacity. It is noteworthy to mention that in the work of Penna et al. [22] four other CVRP neighborhood structures were considered in the local search, namely Swap(1,1), Swap(2,1), Exchange and Or-opt3. We disregarded such neighborhoods because they revealed to be ineffective when applied to the transformed instances. Two simple perturbation mechanisms were adopted. The first one is Multiple-Swap(1,1), where multiple Swap(1,1) moves are performed randomly, and the second one is Multiple-Shift(1,1), where multiple Shift(1,1) moves are performed randomly. In Swap(1,1), a customer k from a route r1 is exchanged with a customer l, from a route r2. The Shift(1,1) consists in transferring a customer k from a route r1 to a route r2, whereas a customer

Table 3 Exact separation results for C dataset. Ins

C01 C02 C03 C04 C05 C06 C07 C08 C09 C10 C11 C12 C13 C14 C15 C16 C17 C18 C19 C20 C21 C22 C23 C24 C25

9V 9

69 48 46 60 56 38 54 66 76 60 83 62 40 58 97 32 43 93 62 45 60 56 78 77 37

9E9

98 66 64 84 79 55 70 88 117 82 118 88 60 79 140 42 56 133 84 64 84 76 109 115 50

9ER 9

79 53 51 72 65 51 52 63 97 55 94 72 52 57 107 32 42 121 61 53 76 43 92 84 38

9I9

9 7 6 8 10 6 8 8 12 9 10 9 7 8 11 3 7 11 6 5 8 4 8 7 5

LB

4105 3135 2575 3478 5365 2535 4075 4090 5233 4700 4583 4209 2955 4030 4912 1475 3555 5577 3096 2120 3960 2245 4032 3384 2310

Cost1

4070 3135 2525 3455 5305 2495 4015 4000 5215 4597.5 4550 4140 2895 3970 4845 1470 3535 5550 3065 2120 3950 2245 4012.5 3370 2310

Cost2

4075 3135 2525 3455 5305 2495 4015 4000 5215 4620 4550 4140 2895 3970 4845 1470 3535 5550 3065 2120 3950 2245 4040 3370 2310

Ahr’s exact sep

Our exact sep

Cap1

Odd1

Time1

Cap2

Odd2

Time2

Cap1

Odd1

Time1

Cap2

Odd2

Time2

99 65 51 67 154 16 119 123 131 131 200 209 23 73 144 26 71 148 99 24 65 35 149 118 48

80 69 66 54 46 40 54 27 215 78 234 66 28 80 110 21 40 79 78 55 38 51 169 97 106

23.401 7.108 5.306 9.970 27.472 1.385 14.855 24.239 42.724 19.331 60.606 43.984 2.216 10.182 55.379 1.476 6.818 59.036 12.728 2.702 9.727 3.518 41.487 29.205 3.420

99 65 51 67 154 16 119 123 131 134 200 209 23 73 144 26 71 148 99 24 65 35 155 118 48

80 69 66 54 46 40 54 27 215 80 234 66 28 80 110 21 40 79 78 55 38 51 169 97 106

24.693 7.717 5.734 10.650 28.515 1.727 15.531 25.164 44.829 21.279 62.023 45.038 2.650 11.040 58.131 1.643 7.317 61.354 13.376 3.010 10.418 3.845 45.886 30.421 3.648

95 47 66 44 80 12 86 86 56 141 79 111 26 54 123 31 91 104 60 11 50 35 99 73 33

92 48 66 54 49 40 54 27 189 73 248 84 28 80 110 21 40 81 75 55 38 51 193 97 110

12.037 3.125 4.506 3.224 6.516 0.450 6.004 8.249 7.966 17.857 12.758 15.603 1.363 3.719 41.717 1.076 5.941 21.444 5.052 0.480 3.714 1.848 16.280 10.006 1.620

96 47 66 44 80 12 86 86 56 148 79 111 26 54 123 31 91 104 60 11 50 35 102 73 33

92 48 66 54 49 40 54 27 189 73 248 84 28 80 110 21 40 81 75 55 38 51 193 97 110

12.482 3.215 4.607 3.407 6.683 0.522 6.178 8.518 8.238 19.215 13.079 15.801 1.472 3.911 42.664 1.130 6.044 22.346 5.218 0.562 3.884 1.921 17.604 10.241 1.700

R. Martinelli et al. / Computers & Operations Research 40 (2013) 2145–2160

l from r2 is transferred to r1. As in the local search, only those moves that do not violate the vehicle capacity are admitted. The main steps of the ILS-RVND heuristic are described as follows:

Step 1:

Step 2: Let iter be the current iteration. If iter r MaxIter then generate an initial solution by choosing an insertion strategy and an insertion criterion at random. Otherwise, stop.

Step 0:

2151

If the current solution is infeasible then perform a local search using the RVND procedure considering all neighborhood structures. Otherwise, apply RVND without Shift(1,0). Let iterILS be the current number of perturbations without improvements. If iterILS rMaxIterILS then apply one of the perturbation mechanisms at random and go to Step 1. Otherwise, update the incumbent solution (if necessary) and go to Step 0.

Table 4 Exact separation results for D dataset. Ins

D01 D02 D03 D04 D05 D06 D07 D08 D09 D10 D11 D12 D13 D14 D15 D16 D17 D18 D19 D20 D21 D22 D23 D24 D25

9V9

69 48 46 60 56 38 54 66 76 60 83 62 40 58 97 32 43 93 62 45 60 56 78 77 37

9E9

98 66 64 84 79 55 70 88 117 82 118 88 60 79 140 42 56 133 84 64 84 76 109 115 50

9ER 9

79 53 51 72 65 51 52 63 97 55 94 72 52 57 107 32 42 121 61 53 76 43 92 84 38

9I9

5 4 3 4 5 3 4 4 6 5 5 5 4 4 6 2 4 6 3 3 4 2 4 4 3

LB

3215 2520 2065 2785 3935 2125 3115 2995 4120 3340 3745 3310 2535 3272 3990 1060 2620 4165 2393 1870 2985 1865 3114 2676 1815

Cost1

Cost2

3215 2520 2065 2785 3935 2125 3015 2975 4120 3330 3745 3310 2535 3270 3990 1060 2620 4165 2370 1870 2940 1865 3110 2660 1815

3215 2520 2065 2785 3935 2125 3015 2975 4120 3330 3745 3310 2535 3270 3990 1060 2620 4165 2370 1870 2940 1865 3110 2660 1815

Cost1

Cost2

Ahr’s exact sep

Our exact sep

Cap1

Odd1

Time1

Cap2

Odd2

Time2

Cap1

Odd1

Time1

Cap2

Odd2

Time2

13 22 7 28 30 1 9 22 21 8 18 50 5 38 11 3 23 40 18 1 18 15 10 25 13

57 30 73 71 47 40 50 27 59 53 281 64 54 81 110 20 48 87 66 55 38 51 94 95 75

2.367 1.414 0.943 3.961 2.980 0.311 1.159 3.113 6.020 1.346 6.068 7.498 0.877 4.502 3.647 0.287 1.426 10.832 3.018 0.475 1.951 0.660 3.221 4.754 0.859

13 22 7 28 30 1 9 22 21 8 18 50 5 38 11 3 23 40 18 1 18 15 10 25 13

57 30 73 71 47 40 50 27 59 53 281 64 54 81 110 20 48 87 66 55 38 51 94 95 75

2.972 1.632 1.196 4.458 3.295 0.478 1.575 3.629 6.960 1.777 6.880 8.004 1.107 4.837 4.777 0.405 1.603 11.905 3.394 0.636 2.397 0.802 3.931 5.223 0.992

11 17 6 19 25 1 9 36 13 11 18 39 3 42 18 5 14 39 29 1 20 19 12 19 17

57 30 73 65 42 40 50 27 59 53 277 64 54 81 110 20 44 86 63 55 38 51 94 95 75

0.877 0.823 0.380 1.470 1.026 0.094 0.512 3.994 1.411 0.974 2.026 2.111 0.202 3.998 1.611 0.234 0.668 2.972 2.609 0.191 1.435 0.820 1.186 1.814 1.045

11 17 6 19 25 1 9 36 13 11 18 39 3 42 18 5 14 39 29 1 20 19 12 19 17

57 30 73 65 42 40 50 27 59 53 277 64 54 81 110 20 44 86 63 55 38 51 94 95 75

1.023 0.896 0.462 1.596 1.111 0.162 0.611 4.139 1.569 1.072 2.187 2.230 0.273 4.093 1.833 0.278 0.737 3.173 2.743 0.272 1.650 0.929 1.364 1.973 1.098

Table 5 Exact separation results for E dataset. Ins

E01 E02 E03 E04 E05 E06 E07 E08 E09 E10 E11 E12 E13 E14 E15 E16 E17 E18 E19 E20 E21 E22 E23 E24 E25

9V 9

73 58 46 70 68 49 73 74 93 56 80 74 49 53 85 60 38 78 77 56 57 54 93 97 26

9E9

105 81 61 99 94 66 94 98 141 76 113 103 73 72 126 80 50 110 103 80 82 73 130 142 35

9ER 9

85 58 47 77 61 43 50 59 103 49 94 67 52 55 107 54 36 88 66 63 72 44 89 86 28

9I9

10 8 5 9 9 5 8 9 12 7 10 9 7 8 9 7 5 8 6 7 7 5 8 8 4

LB

4885 3990 2015 4155 4585 2055 4155 4710 5780 3605 4637 4180 3345 4115 4189 3755 2740 3825 3222 2802 3728 2470 3686 4001 1615

4830 3960 2015 4125 4555 2055 4035 4640 5745 3605 4620 4065 3305 4085 4170 3735 2740 3825 3192.5 2785 3725 2440 3675 3930 1615

4830 3960 2015 4125 4555 2055 4035 4640 5745 3605 4630 4065 3320 4085 4170 3735 2740 3825 3200 2785 3725 2440 3675 3930 1615

Ahr’s exact sep

Our exact sep

Cap1

Odd1

Time1

Cap2

Odd2

Time2

Cap1

Odd1

Time1

Cap2

Odd2

Time2

104 94 26 98 80 28 121 260 236 87 216 177 126 57 64 104 82 111 148 44 38 62 190 154 13

81 161 56 81 79 39 126 169 237 90 247 348 59 92 496 44 40 343 97 232 56 160 246 261 60

28.878 12.502 2.063 18.284 16.531 2.853 20.459 56.820 105.287 10.077 65.394 42.218 17.960 6.859 17.723 13.644 6.688 26.712 28.123 6.091 5.614 6.352 58.855 66.954 0.652

104 94 26 98 80 28 121 260 236 87 216 177 126 57 64 104 82 111 150 44 38 62 190 154 13

81 161 56 81 79 39 126 169 237 90 249 348 59 92 496 44 40 343 99 232 56 160 246 261 60

30.342 13.160 2.382 19.375 17.533 3.188 21.300 57.811 108.340 10.702 67.176 43.436 18.578 7.551 19.276 14.278 6.994 27.614 31.857 6.668 6.216 6.648 60.477 68.266 0.789

57 32 25 55 38 22 58 129 116 48 103 50 70 27 84 100 55 58 84 35 39 50 151 80 9

81 161 56 81 79 39 126 169 237 90 273 348 52 92 496 42 43 343 87 232 61 160 209 261 60

5.990 2.578 0.927 6.819 3.136 1.233 5.066 20.040 29.640 3.195 20.861 5.548 6.109 1.379 14.160 8.183 2.490 5.014 7.646 2.189 2.077 3.873 32.832 12.624 0.229

57 32 25 55 38 22 58 129 116 48 103 50 70 27 84 100 55 58 86 35 39 50 151 80 9

81 161 56 81 79 39 126 169 237 90 273 348 54 92 496 42 43 343 87 232 61 160 209 261 60

6.245 2.679 1.009 7.111 3.291 1.312 5.254 20.270 30.296 3.315 21.130 5.790 6.280 1.504 14.391 8.325 2.557 5.165 8.363 2.300 2.191 3.954 33.221 12.972 0.268

2152

R. Martinelli et al. / Computers & Operations Research 40 (2013) 2145–2160

6. Computational experiments For the sake of comparison, we applied our algorithms to all well-known CARP instance datasets, namely: kshs [28], gdb [29,11], bccm [30], eglese [5,6], beullens (C, D, E and F) [31] and egl-large [10]. The first four are known as the classical CARP instance datasets and have been widely used in the literature over the past 20 years. The last two were created more recently and only some recent works have attempted to solve them.

The datasets kshs, gdb and bccm were artificially generated and have no non-required edges. On the other hand, the eglese and egllarge datasets were constructed using as underlying graph regions of the road network of the county of Lancashire (UK). Analogously, the beullens dataset was constructed based on the intercity road network in Flanders (Belgium). The instances belonging to these last three datasets have costs and demands proportional to the length of the edges and most of them have non-required edges. As mentioned before, the objective of this work is focused on solving the large scale CARP instances. The instances we consider as

Table 6 Exact separation results for F dataset. Ins

F01 F02 F03 F04 F05 F06 F07 F08 F09 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25

9V9

73 58 46 70 68 49 73 74 93 56 80 74 49 53 85 60 38 78 77 56 57 54 93 97 26

9E9

105 81 61 99 94 66 94 98 141 76 113 103 73 72 126 80 50 110 103 80 82 73 130 142 35

9ER 9

85 58 47 77 61 43 50 59 103 49 94 67 52 55 107 54 36 88 66 63 72 44 89 86 28

9I9

5 4 3 5 5 3 4 5 6 4 5 5 4 4 5 4 3 4 3 4 4 3 4 4 2

LB

4040 3300 1665 3476 3605 1875 3335 3690 4730 2925 3835 3390 2855 3330 3560 2725 2055 3063 2500 2445 2930 2075 2994 3210 1390

Cost1

4040 3300 1665 3475 3605 1875 3335 3690 4730 2925 3835 3385 2855 3330 3560 2725 2055 3060 2485 2445 2930 2075 2985 3210 1390

Cost2

4040 3300 1665 3475 3605 1875 3335 3695 4730 2925 3835 3385 2855 3330 3560 2725 2055 3060 2485 2445 2930 2075 2985 3210 1390

Ahr’s exact sep

Our exact sep

Cap1

Odd1

Time1

Cap2

Odd2

Time2

Cap1

Odd1

Time1

Cap2

Odd2

Time2

20 14 10 34 22 15 38 66 22 22 12 8 6 20 6 17 15 12 35 5 33 27 28 18 5

81 163 56 88 79 40 126 183 235 109 327 348 49 92 494 42 29 343 64 232 54 160 108 267 60

5.465 2.577 0.468 6.511 4.196 1.081 6.297 11.802 7.745 2.080 5.069 2.040 0.894 1.982 2.265 0.941 0.897 2.044 5.859 0.763 2.926 1.807 9.256 5.954 0.179

20 14 10 34 22 15 38 66 22 22 12 8 6 20 6 17 15 12 35 5 33 27 28 18 5

81 163 56 88 79 40 126 183 235 109 327 348 49 92 494 42 29 343 64 232 54 160 108 267 60

6.343 2.994 0.570 7.048 4.683 1.232 6.795 12.232 9.033 2.364 5.905 2.689 1.132 2.316 2.908 1.192 1.040 2.533 6.274 1.037 3.132 1.964 10.096 6.592 0.227

15 12 12 23 13 7 29 50 17 30 13 4 6 9 6 17 12 14 52 5 48 20 19 23 5

81 165 56 88 79 40 126 202 235 116 300 348 49 92 494 42 29 343 64 232 54 160 102 267 60

1.995 1.780 0.355 2.042 0.636 0.502 3.780 3.534 3.154 2.097 1.606 0.437 0.240 0.566 0.778 0.582 0.495 1.373 7.246 0.391 3.510 0.927 3.168 3.350 0.192

15 12 12 23 13 7 29 50 17 30 13 4 6 9 6 17 12 14 52 5 48 20 19 23 5

81 165 56 88 79 40 126 202 235 116 300 348 49 92 494 42 29 343 64 232 54 160 102 267 60

2.145 1.866 0.419 2.151 0.738 0.571 3.901 3.701 3.427 2.175 1.756 0.586 0.332 0.653 0.932 0.674 0.582 1.518 7.406 0.475 3.606 1.000 3.330 3.560 0.235

Table 7 Exact separation results for eglese dataset. Ins

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

9V 9

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

9E9

98 98 98 98 98 98 98 98 98 98 98 98 190 190 190 190 190 190 190 190 190 190 190 190

9ER 9

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

9I9

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

LB

3548 4498 5595 5018 6305 8335 5898 7729 10,244 6408 8935 11,493 5018 6388 8518 9825 13,017 16,425 10146 13,648 17,188 12,144 16,103 20,430

Cost1

3527 4463.7 5513 4995 6271 8160.5 5893.8 7648.7 10124.5 6378 8838 11,376 5010 6368 8404 9737 12901 16247.3 10082.5 13,568 17,006.4 12,026 15,984 20,235.3

Cost2

3527 4468 5513 4995 6273 8165 5898 7649 10138 6378 8838 11383 5010 6368 8404 9737 12901 16,274 10083 13,568 17,019 12,026 16,001 20,256

Ahr’s exact sep

Our exact sep

Cap1

Odd1

Time1

Cap2

Odd2

Time2

Cap1

Odd1

Time1

Cap2

Odd2

Time2

167 274 280 106 168 248 111 149 170 75 126 176 571 865 801 240 357 525 263 399 467 181 396 462

81 82 81 101 101 101 209 161 138 304 280 270 215 215 215 234 171 171 545 240 240 139 139 139

25.487 44.833 50.179 16.478 26.946 44.159 20.363 33.012 37.693 15.082 24.165 35.119 265.508 461.099 394.296 182.092 240.034 617.949 186.441 276.988 716.157 114.597 322.022 368.004

167 274 280 106 169 250 111 149 171 75 126 176 571 865 801 240 357 526 263 399 469 181 399 466

81 82 81 101 101 101 209 161 139 304 280 270 215 215 215 234 171 171 545 240 240 139 139 139

26.017 45.568 51.190 17.192 28.087 46.252 21.169 34.498 41.034 16.157 25.891 37.468 267.202 463.965 398.753 187.452 247.175 632.157 191.255 284.552 738.009 120.558 337.803 387.719

123 229 208 105 140 194 87 110 144 48 104 127 410 507 533 164 215 330 210 269 322 136 232 278

81 82 81 101 101 101 213 175 139 298 310 279 215 215 215 315 171 171 370 240 240 139 139 139

9.698 25.598 23.685 7.826 14.638 25.035 9.230 13.252 15.081 3.501 9.656 13.885 123.690 140.192 152.893 72.018 68.024 426.016 144.411 165.409 612.498 31.896 178.946 235.180

123 229 208 105 140 194 87 110 148 48 104 127 410 507 533 164 215 347 210 269 328 136 239 294

81 82 81 101 101 101 213 175 141 298 310 279 215 215 215 315 171 171 370 240 240 139 139 139

9.850 25.781 23.927 7.966 14.804 25.353 9.377 13.561 16.074 3.685 10.201 14.300 124.410 141.378 154.139 76.212 71.968 452.645 145.777 168.352 637.911 33.040 186.743 246.744

Table 8 Dual ascent results for kshs and gdb datasets. Ins

Opt

Dual ascent Cost

Time

Single cuts Cuts

SGL

CMP

CON

MST

Complete cuts

Int

Time

Cost

Time

Cuts

Cost

Time

Connected cuts Cuts

Cost

Time

MST cuts Cuts

Cost

Time

Cuts

14,661 9863 9320 11,498 10,957 10,197

14,661 9863 9320 11,098 10,957 10,197

o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01

42 70 21 46 43 59

11 25 11 9 12 9

19 34 9 23 16 22

19 34 5 15 22 28

5 3 0 6 4 6

14,661 9863 9320 11,098 10,957 10,197

o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01

11277 8099 9045 8680 10,353 10,197 2

o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01

10 12 8 5 8 11

14,661 9325 8813 11,098 10,921 10,197 4

o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01

20 33 7 22 17 28

10,542 8160 8114 8998 9934 9932 0

o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01

17 40 5 16 18 33

14,661 9275 9045 10,774 10,957 10,192 3

o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01

8 7 5 6 9 12

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

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

311 339 275 287 371 298 325 329 303 275 395 450 536 100 58 127 87 164 55 121 156 199 233

o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 0.01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01

109 102 84 82 150 66 105 485 538 87 305 146 66 1 1 27 16 2 35 63 51 42 11

32 18 21 24 21 7 27 119 111 18 84 32 12 0 0 15 7 0 11 16 6 7 0

43 40 35 30 48 32 38 196 182 30 86 52 21 1 1 5 1 1 18 25 17 11 11

57 59 51 41 81 36 62 240 333 43 188 79 60 0 0 12 8 0 13 30 34 26 0

20 11 9 4 20 5 13 94 81 11 26 8 5 0 0 2 0 1 0 4 2 3 0

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

0.01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 0.02 0.02 o 0:01 0.01 0.01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01

316 315 259 266 346 279 304 275 240 275 387 384 520 96 56 125 91 158 55 121 154 196 223

o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01

18 9 13 11 17 6 17 36 22 7 21 11 6 0 0 8 7 0 6 10 5 8 0

299 332 272 283 369 298 317 323 289 266 381 446 531 100 58 125 87 164 55 117 156 198 233

o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01

36 36 35 29 42 44 32 179 159 28 65 58 25 1 1 3 1 1 15 18 20 10 11

280 310 258 265 339 279 291 335 289 273 380 406 520 96 56 121 85 158 55 116 153 193 223

o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01

46 45 55 50 49 29 52 183 273 43 147 72 31 0 0 13 9 0 11 21 21 26 0

308 339 267 282 346 298 309 324 286 275 387 423 532 96 56 125 91 164 55 121 154 196 223

o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01

22 11 10 13 20 11 22 57 64 12 27 24 5 0 0 12 7 1 6 13 5 8 0

best

7

5

3

R. Martinelli et al. / Computers & Operations Research 40 (2013) 2145–2160

kshs1 kshs2 kshs3 kshs4 kshs5 kshs6 best

10

2153

2154

R. Martinelli et al. / Computers & Operations Research 40 (2013) 2145–2160

large scale are those of the egl-large dataset. These instances have 255 vertices and up to 375 required edges. As far as we know, only metaheuristics were used to solve these instances, which explains our lack of knowledge of lower bounds for them. 6.1. Exact separation The exact separation algorithms were implemented in Cþþ, using Windows Vista 32-bits, Visual Cþþ 2010 Express Edition and IBM Cplex 12.4. Tests were conducted on an Intel Core 2 Duo 2.8 GHz, with 4 GB of RAM and using only one core (IBM Cplex 12.4 uses both cores when running the branch-and-cut for the mixedinteger program). We compare the execution of both exact separation algorithms, the one from Section 2.3 proposed by Ahr [4] and our new algorithm from Section 3, executed together with the exact separation of the odd-degree cutset cuts from Section 2.2. For both algorithms, we first apply the separation on the linear relaxation of the one-index formulation. Once the linear optimum is found, the ze variables are then shifted to integer and the separation continues until the integer optimum is obtained. For our new exact separation, in order to model the g limits on Eq. (34), we use a constant d ¼ 0:001 and set g A ½0,1d. Results are shown in Tables 1–7. Columns Ins, 9V9, 9ER 9, 9E9 and 9I9 show the name, number of vertices, required edges, total edges and number of vehicles of each instance, respectively. When the optimal value of all instances of a dataset is known, the column Opt displays this

value. Otherwise, the known lower bounds are shown in column LB. For each following column X, X1 shows the results obtained at the end of the first part of the experiment, when just the linear relaxation of the one-index formulation is used. Furthermore, X2 shows the results of the complete experiment, i.e., after the solution of the integer one-index formulation. Column Cost shows the cost of the separation of (1) and (2) cuts, which is the same for all algorithms. For each algorithm, columns Cap, Odd and Time show the total number of capacity cuts, the total number of odd-degree cutset cuts and the total time in seconds. Optimal or best known values are highlighted in boldface. From Tables 1–7, it can be observed that our algorithm performs better in nearly every instance tested. On average, it was faster for all datasets: 60.82% for kshs, 83.32% for gdb, 69.96% for bccm, 52.01% for eglese, 54.01% for C, 44.00% for D, 65.14% for E and 44.92% for F, in a total of 59.41% improvement overall. Notice that the algorithms were not tested on the large scale instance dataset because the complete separation of the capacity cuts does not run in reasonable time without some hot-start technique, as shown next. 6.2. Dual ascent heuristic The dual ascent heuristic was implemented using the same configuration of the exact separation algorithms. In order to show the benefit of each strategy, we tested each one separately. In addition, a complete test was also performed as follows.

Table 9 Dual ascent results for bccm dataset. Ins

Opt Dual ascent Cost Time

1A 1B 1C 2A 2B 2C 3A 3B 3C 4A 4B 4C 4D 5A 5B 5C 5D 6A 6B 6C 7A 7B 7C 8A 8B 8C 9A 9B 9C 9D 10A 10B 10C 10D best

173 173 245 227 259 457 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 526

170 171 231 227 257 449 77 85 135 395 405 419 511 420 440 459 569 222 228 296 278 282 323 385 395 503 319 320 325 374 418 429 437 509

Single cuts Cuts SGL CMP CON MST Int Time Cost Time

o 0:01 270 o 0:01 278 o 0:01 341 o 0:01 211 o 0:01 291 o 0:01 541 o 0:01 192 o 0:01 265 o 0:01 361 0.01 874 0.01 973 0.01 877 0.01 1200 0.01 670 0.01 678 0.01 774 0.01 887 0.01 474 0.01 483 0.01 548 0.01 485 0.01 527 0.01 528 0.01 536 0.01 600 0.01 660 0.02 1172 0.02 1091 0.02 1068 0.02 993 0.02 1096 0.02 1240 0.02 1294 0.02 1487

64 75 88 74 86 114 54 64 75 205 188 212 229 117 123 144 163 97 107 129 129 145 172 126 136 130 299 285 242 267 249 286 288 314

71 82 131 78 122 227 59 82 144 223 350 317 458 191 200 247 340 166 151 230 171 180 245 122 148 222 320 296 313 335 250 321 354 475

130 150 184 117 156 305 94 150 207 573 553 518 704 394 416 460 506 249 310 335 268 304 252 331 379 423 732 671 638 567 727 786 817 931

46 40 56 36 52 93 42 49 78 141 142 148 189 79 92 109 105 72 74 106 64 76 121 72 64 57 187 171 158 148 150 172 188 201

173 173 232 227 257 455 81 87 135 396 412 424 515 423 441 467 569 223 229 300 279 283 323 386 395 508 323 326 332 377 428 436 444 517

0.02 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.03 0.03 0.03 0.03 0.02 0.02 0.02 0.02 0.01 0.01 0.01 0.02 0.02 0.02 0.02 0.02 0.02 0.04 0.04 0.04 0.04 0.04 0.05 0.05 0.05

173 173 177 217 217 282 77 77 79 385 385 385 385 410 412 416 430 220 220 220 279 279 279 383 383 383 321 321 321 325 420 420 420 420 8

o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01

Complete cuts Cuts Cost Time 44 44 44 27 27 39 13 13 14 39 39 39 39 62 62 62 62 51 51 51 36 36 36 45 45 45 81 81 81 83 73 73 73 73

162 162 216 221 249 445 78 84 134 382 396 413 489 408 426 450 558 208 214 279 264 264 301 375 386 499 299 305 311 359 400 406 415 490 9

o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01

Connected cuts

Cuts Cost Time 62 62 113 83 106 208 71 78 141 216 265 346 418 202 193 224 304 122 134 216 130 130 236 144 156 242 178 182 200 261 218 247 264 388

166 167 216 207 219 360 74 78 106 379 388 407 494 410 404 420 503 217 221 278 276 273 314 367 382 468 303 303 302 351 399 406 416 470 1

o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 0.01 0.01 0.01 0.01 o 0:01 o 0:01 0.01 0.01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 0.01 o 0:01 o 0:01 o 0:01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01

MST cuts

Cuts Cost Time 92 116 215 116 177 273 89 120 141 494 422 460 583 402 317 407 479 290 279 265 287 214 357 276 297 375 526 580 543 555 542 686 675 788

171 171 226 225 235 427 80 84 123 395 407 419 472 423 441 451 528 223 223 248 278 282 317 383 385 458 320 321 321 337 424 431 439 491 20

o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01

Cuts 52 52 66 23 22 45 57 57 48 66 82 82 94 85 85 76 90 53 53 54 38 39 44 45 41 61 147 159 159 163 149 149 149 149

R. Martinelli et al. / Computers & Operations Research 40 (2013) 2145–2160

At each iteration of the dual ascent heuristic, we generate a cut pool using the strategies in the following order: complete cuts, single cuts, connected cuts and MST cuts. Next, the best cut

2155

is chosen from this pool, the graph is updated as described in Section 4.1 and all cuts found in this iteration are added to another pool of cuts, the resulting pool. At the end of the

Table 10 Dual ascent results for C dataset. Ins

Opt

Dual ascent

Single cuts

Cost Time Cuts SGL C01 C02 C03 C04 C05 C06 C07 C08 C09 C10 C11 C12 C13 C14 C15 C16 C17 C18 C19 C20 C21 C22 C23 C24 C25

4105 3135 2575 3478 5365 2535 4075 4090 5233 4700 4583 4209 2955 4030 4912 1475 3555 5577 3096 2120 3960 2245 4032 3384 2310

3760 3090 2490 3335 5015 2445 3815 3885 5105 4285 4345 4000 2795 3890 4675 1410 3340 5415 2875 2020 3670 2225 3645 3240 2160

0.04 0.02 0.01 0.03 0.02 0.01 0.02 0.04 0.06 0.03 0.07 0.03 0.01 0.04 0.12 0.01 0.02 0.09 0.04 0.02 0.03 0.03 0.06 0.05 0.01

CMP

CON

MST Int

Time Cost Time

2447 695 1003 1370 381 3865 0.09 1019 283 487 506 76 3095 0.03 1033 329 394 581 150 2525 0.02 1600 494 660 852 247 3410 0.04 1671 331 691 872 292 5225 0.04 828 283 311 457 148 2485 0.02 1885 425 721 937 277 3915 0.04 2320 360 882 1219 252 3955 0.08 3182 565 1228 1820 385 5165 0.11 2446 343 921 1252 321 4515 0.08 3661 869 1280 2175 420 4420 0.24 2142 418 869 1180 412 4070 0.08 1051 254 406 555 202 2875 0.02 2483 538 1008 1345 377 3950 0.07 4736 1138 1866 2613 698 4810 0.19 654 176 235 341 93 1470 0.02 1436 321 520 825 239 3535 0.07 4557 1266 1693 2447 745 5485 0.14 2494 704 1026 1336 493 2960 0.18 1350 370 476 709 201 2035 0.03 2015 423 801 1104 191 3710 0.05 1651 342 565 898 316 2235 0.04 3501 797 1190 1909 577 3895 0.11 2547 528 750 1448 374 3350 0.09 912 170 382 477 174 2290 0.02

2965 2340 1985 2645 3885 2155 2945 2675 3845 3060 3465 3060 2320 2990 3920 1020 2380 3730 2275 1860 2640 1885 3115 2435 1740

o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01

Complete cuts

MST cuts

Cuts Cost Time

Cuts Cost Time

Cuts Cost Time

157 43 59 155 66 46 118 72 145 138 161 125 43 140 153 22 55 213 76 62 59 111 174 136 77

910 377 352 595 655 322 687 890 1019 763 1285 777 395 831 1624 201 422 1407 854 397 726 541 1008 851 361

1644 534 557 1239 973 480 980 1264 1771 1215 1832 1436 528 1288 2275 336 861 2410 1296 534 1210 895 1874 1674 422

0

best

Connected cuts

3625 2830 2265 3025 4825 2275 3485 3635 4740 3860 4015 3830 2590 3515 4020 1220 2975 5045 2600 1810 3435 1825 3220 2910 2075

0.01 o 0:01 o 0:01 0.01 0.01 o 0:01 0.01 0.01 0.02 0.01 0.02 0.01 o 0:01 0.01 0.03 o 0:01 o 0:01 0.02 0.01 o 0:01 0.01 0.01 0.02 0.01 o 0:01

1

3700 2935 2340 3210 4945 2240 3630 3715 4925 3975 4220 3830 2645 3735 4480 1320 3210 5160 2795 1980 3520 2105 3515 3185 2095

0.03 0.01 0.01 0.02 0.01 0.01 0.01 0.02 0.03 0.02 0.04 0.02 0.01 0.02 0.06 o 0:01 0.01 0.05 0.02 0.01 0.02 0.01 0.04 0.04 o 0:01

14

3750 2850 2455 3305 4850 2440 3575 3795 4775 4050 4005 3655 2615 3750 4425 1270 3175 5005 2835 1960 3785 2100 3595 3265 2095

0.01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 0.01 o 0:01 0.01 o 0:01 o 0:01 o 0:01 0.01 o 0:01 o 0:01 0.01 0.01 o 0:01 o 0:01 o 0:01 0.01 0.01 o 0:01

Cuts 266 85 96 205 252 86 194 142 222 262 361 232 126 171 430 56 145 460 322 165 160 187 397 337 122

12

Table 11 Dual ascent results for D dataset. Ins

D01 D02 D03 D04 D05 D06 D07 D08 D09 D10 D11 D12 D13 D14 D15 D16 D17 D18 D19 D20 D21 D22 D23 D24 D25 best

Opt

3215 2520 2065 2785 3935 2125 3115 2995 4120 3340 3745 3310 2535 3272 3990 1060 2620 4165 2393 1870 2985 1865 3114 2676 1815

Dual ascent

Single cuts

Cost Time

Cuts SGL

3115 2520 2045 2695 3815 2115 3015 2895 4095 3280 3620 3210 2470 3170 3935 1050 2600 4115 2370 1860 2930 1835 3005 2605 1815

1757 540 604 1006 196 3145 0.08 873 233 375 457 60 2520 0.03 793 268 283 446 94 2065 0.02 1875 507 650 970 276 2740 0.06 1801 374 584 1054 271 3855 0.05 820 194 257 456 119 2125 0.02 1397 402 490 755 169 3015 0.04 1269 223 587 603 114 2975 0.04 2484 502 881 1497 254 4100 0.11 1752 226 718 902 238 3330 0.05 3323 700 1077 1843 447 3710 0.15 1681 363 691 806 341 3260 0.06 982 260 313 529 158 2535 0.03 1973 561 698 933 290 3220 0.05 4120 1019 1374 2407 562 3970 0.17 390 101 142 200 51 1050 0.04 845 247 302 431 111 2620 0.02 4008 1229 1470 2172 649 4165 0.15 2079 585 671 1106 365 2370 0.06 993 282 298 574 129 1870 0.02 1443 379 442 856 185 2940 0.04 1422 304 476 766 258 1845 0.04 2559 633 913 1393 326 3080 0.09 2291 461 669 1327 282 2660 0.09 640 166 239 329 112 1815 0.02

0.04 0.01 0.01 0.03 0.03 0.01 0.02 0.02 0.05 0.03 0.07 0.03 0.01 0.03 0.11 o 0:01 0.01 0.09 0.03 0.01 0.03 0.02 0.06 0.05 0.01

CMP

CON

MST Int

Time Cost Time 2965 2340 1985 2645 3455 2075 2945 2675 3845 2950 3465 3060 2320 2980 3865 1020 2370 3730 2215 1860 2640 1725 2955 2435 1740 1

o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01

Complete cuts Cuts Cost Time 157 43 59 155 58 46 118 72 145 138 161 125 43 137 151 22 55 213 82 62 59 107 173 136 77

2925 2365 1875 2470 3495 1905 2685 2795 3880 3060 3275 3020 2240 2795 3475 1050 2395 3940 2010 1660 2665 1545 2640 2460 1680 1

Connected cuts

Cuts Cost Time

0.01 635 3095 0.03 o 0:01 323 2395 0.01 o 0:01 244 1965 0.01 0.01 466 2555 0.02 0.01 533 3660 0.01 o 0:01 178 1915 0.01 0.01 498 2855 0.01 0.01 648 2825 0.02 0.01 744 3980 0.03 0.01 618 3110 0.02 0.02 901 3525 0.04 0.01 610 3110 0.02 o 0:01 280 2290 0.01 0.01 647 3030 0.02 0.02 1076 3790 0.06 o 0:01 132 1060 o 0:01 o 0:01 342 2540 0.01 0.02 1125 3855 0.04 0.01 538 2175 0.02 o 0:01 301 1725 0.01 0.01 449 2655 0.01 0.01 383 1760 0.01 0.01 642 2830 0.03 0.01 610 2510 0.03 o 0:01 232 1655 o 0:01 4

MST cuts

Cuts Cost Time 1284 389 493 883 840 369 756 808 1342 961 1611 1178 448 1023 2140 175 451 1684 1025 521 697 765 1423 1238 268

3120 2400 2045 2720 3735 2120 2975 2895 3970 3050 3585 3135 2405 3130 3930 1050 2470 3930 2360 1860 2935 1865 3015 2610 1815 20

0.01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 0.01 o 0:01 0.01 o 0:01 o 0:01 o 0:01 0.01 o 0:01 o 0:01 0.01 0.01 o 0:01 o 0:01 o 0:01 0.01 0.01 o 0:01

Cuts 221 27 66 241 168 101 155 102 162 174 438 176 147 217 336 39 94 498 282 115 129 220 282 213 106

2156

R. Martinelli et al. / Computers & Operations Research 40 (2013) 2145–2160

Table 12 Dual ascent results for E dataset. Ins

E01 E02 E03 E04 E05 E06 E07 E08 E09 E10 E11 E12 E13 E14 E15 E16 E17 E18 E19 E20 E21 E22 E23 E24 E25

Opt

4885 3990 2015 4155 4585 2055 4155 4710 5780 3605 4637 4180 3345 4115 4189 3755 2740 3825 3222 2802 3728 2470 3686 4001 1615

Dual ascent

Single cuts

Cost Time

Cuts SGL

CMP

CON

MST Int

Time Cost Time

4660 3885 2005 4015 4395 2045 3925 4335 5495 3450 4375 4005 3230 3940 4095 3445 2450 3720 2895 2640 3430 2345 3455 3810 1610

3464 1790 902 2746 2229 1055 3602 3587 5175 2005 3561 3321 2011 2247 3645 2661 928 3256 3734 1857 1954 1509 4463 5034 520

1222 661 386 1025 843 433 1244 1192 1692 788 1330 1079 633 809 1398 1029 324 1147 1359 675 720 499 1571 1866 188

1994 890 441 1529 1174 528 1854 1892 3127 985 1893 1856 1170 1222 1910 1460 460 1678 1985 1030 1116 859 2623 2666 253

480 299 146 445 372 140 621 589 845 379 607 497 292 431 791 539 192 577 610 285 207 299 560 822 96

0.14 0.05 0.02 0.08 0.07 0.03 0.11 0.13 0.23 0.05 0.13 0.10 0.09 0.05 0.12 0.10 0.08 0.09 0.11 0.05 0.06 0.04 0.18 0.22 0.01

0.06 0.03 0.01 0.05 0.04 0.02 0.06 0.06 0.11 0.03 0.07 0.06 0.02 0.03 0.08 0.04 0.02 0.06 0.06 0.03 0.03 0.02 0.10 0.12 o 0:01

987 419 301 874 466 228 668 651 1108 559 1018 546 397 682 1197 672 239 905 761 463 553 325 832 1127 168

4785 3935 2015 4105 4535 2055 4005 4555 5695 3515 4525 4065 3260 3990 4155 3635 2595 3785 3030 2735 3500 2390 3560 3930 1615

3800 o 0:01 3120 o 0:01 1585 o 0:01 3270 o 0:01 3410 o 0:01 1720 o 0:01 3095 o 0:01 3290 o 0:01 4530 0.01 2630 o 0:01 3575 o 0:01 3220 o 0:01 2695 o 0:01 3135 o 0:01 3470 o 0:01 2485 o 0:01 1890 o 0:01 3165 o 0:01 2340 o 0:01 2395 o 0:01 2585 o 0:01 2090 o 0:01 2860 o 0:01 2955 o 0:01 1380 o 0:01

Complete cuts

MST cuts

Cuts Cost Time

Cuts Cost Time

Cuts Cost Time

239 152 79 203 190 46 177 156 399 163 270 203 79 150 225 106 57 162 118 146 124 149 255 293 59

1089 556 322 855 807 413 1022 1053 1489 629 1182 1033 626 716 1162 955 352 995 1122 641 651 509 1383 1427 147

1865 1297 461 1727 1363 597 1826 1913 3021 941 1547 1911 831 1065 2191 1350 593 1624 2116 1089 1077 979 2074 2741 198

0

best

Connected cuts

4320 3500 1735 3680 4175 1840 3450 3940 4935 3015 4010 3630 2875 3465 3275 3115 2180 3315 2725 2395 3070 1995 3095 3295 1420

0.02 0.01 o 0:01 0.01 0.01 o 0:01 0.01 0.01 0.03 0.01 0.02 0.01 0.01 0.01 0.02 0.01 o 0:01 0.01 0.02 0.01 0.01 0.01 0.03 0.03 o 0:01

0

4435 3805 1860 3805 4410 1965 3815 4265 5240 3245 4100 3900 2930 3690 3975 3365 2375 3525 2915 2620 3375 2285 3295 3510 1495

0.03 0.02 0.01 0.03 0.02 0.01 0.03 0.03 0.07 0.01 0.03 0.03 0.01 0.01 0.05 0.02 0.01 0.03 0.04 0.02 0.02 0.01 0.05 0.07 o 0:01

13

4440 3495 1945 3840 4180 1980 3645 4145 5000 3325 4105 3755 2830 3655 3985 3205 2635 3505 3000 2480 3440 2260 3275 3730 1600

0.01 o 0:01 o 0:01 0.01 o 0:01 o 0:01 0.01 0.01 0.01 o 0:01 0.01 0.01 o 0:01 o 0:01 0.01 o 0:01 o 0:01 0.01 0.01 o 0:01 o 0:01 o 0:01 0.01 0.01 o 0:01

Cuts 424 177 90 334 253 103 325 325 417 238 425 367 193 210 519 212 186 391 439 172 227 204 308 496 84

12

Table 13 Dual ascent results for F dataset. Ins

F01 F02 F03 F04 F05 F06 F07 F08 F09 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25

Opt

4040 3300 1665 3476 3605 1875 3335 3690 4730 2925 3835 3390 2855 3330 3560 2725 2055 3063 2500 2445 2930 2075 2994 3210 1390

Dual ascent

Single cuts

Cost Time

Cuts SGL

3875 3235 1665 3415 3525 1830 3205 3635 4555 2860 3780 3375 2720 3160 3495 2655 2030 3035 2455 2395 2865 1990 2860 3115 1380

3198 1007 1021 1771 534 4015 0.12 2220 519 723 1109 477 3290 0.06 803 273 309 406 118 1665 0.02 2810 874 850 1648 482 3475 0.09 2426 557 803 1285 410 3605 0.10 735 198 242 384 133 1875 0.03 3048 630 1093 1556 547 3315 0.11 3203 691 949 1665 599 3685 0.11 4848 1100 1526 2713 780 4730 0.25 1743 456 596 966 296 2925 0.05 3360 941 1076 1824 503 3835 0.13 3051 565 863 1754 512 3385 0.11 1363 314 379 770 197 2845 0.04 1959 615 644 1005 355 3320 0.04 3668 974 1106 2062 641 3560 0.15 1918 520 736 992 279 2725 0.07 669 223 243 329 90 2055 0.02 2849 851 878 1546 523 3060 0.11 2627 676 830 1362 423 2485 0.09 1593 485 535 829 261 2445 0.05 1951 574 618 1092 259 2930 0.05 1486 310 497 817 290 2060 0.04 3437 693 1147 1905 552 2945 0.15 3876 818 1109 2342 642 3205 0.20 339 127 103 177 69 1390 0.01

0.06 0.03 0.01 0.05 0.04 0.01 0.05 0.06 0.12 0.03 0.07 0.06 0.02 0.03 0.08 0.03 0.01 0.06 0.05 0.03 0.03 0.02 0.08 0.10 o 0:01

CMP

CON

MST Int

Time Cost Time 3800 3120 1585 3270 3280 1720 3095 3270 4480 2600 3575 3220 2695 3125 3445 2485 1890 2925 2310 2385 2585 1940 2860 2955 1340

best

dual ascent, we take all the cuts from the resulting pool, add them into an one-index formulation and use CPLEX 12.4 to solve it to optimality. The results of these tests are shown in Tables 8–14.

3

o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 0.01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01

Complete cuts Cuts Cost Time 239 152 79 203 190 46 177 156 399 163 270 203 79 150 223 106 57 159 118 146 124 153 255 297 56

3450 2820 1555 3045 3065 1650 2665 3190 4070 2465 3290 2880 2425 2740 2895 2425 1825 2660 2120 2070 2440 1705 2565 2680 1200 0

Connected cuts

Cuts Cost Time

0.01 719 3700 0.04 0.01 417 3160 0.02 o 0:01 262 1575 0.01 0.01 657 3150 0.03 0.01 606 3385 0.03 o 0:01 322 1725 0.01 0.01 868 3000 0.03 0.01 868 3430 0.03 0.02 1080 4385 0.07 0.01 532 2610 0.02 0.01 857 3535 0.04 0.01 743 3150 0.03 o 0:01 410 2600 0.01 0.01 592 3045 0.01 0.02 780 3240 0.04 0.01 565 2545 0.02 o 0:01 263 1975 0.01 0.01 712 2815 0.03 0.01 743 2325 0.03 0.01 443 2270 0.02 0.01 450 2540 0.02 o 0:01 366 1900 0.01 0.02 906 2795 0.05 0.02 925 2930 0.08 o 0:01 117 1275 o 0:01 2

MST cuts

Cuts Cost Time 1816 1083 512 1516 1479 558 1577 1577 2784 1174 1954 1547 677 924 1834 934 465 1367 1280 965 870 871 1884 2708 143

3825 3290 1655 3345 3230 1830 3135 3405 4480 2690 3755 3345 2770 3160 3530 2725 2005 3025 2470 2380 2885 1985 2890 3110 1390

0.01 o 0:01 o 0:01 0.01 o 0:01 o 0:01 0.01 0.01 0.01 o 0:01 0.01 0.01 o 0:01 o 0:01 0.01 o 0:01 o 0:01 0.01 0.01 o 0:01 o 0:01 o 0:01 0.01 0.01 o 0:01

Cuts 396 301 88 320 197 99 362 348 665 233 397 507 265 241 496 151 145 520 370 262 267 215 342 439 84

21

As in the previous experiments, columns Ins, Opt and LB show the name and the optimal value or the best known lower bound for each instance, respectively. The next 9 columns show the results regarding the full execution of the dual ascent.

Table 14 Dual ascent results for eglese dataset. Ins

best

3548 4498 5595 5018 6305 8335 5898 7729 10,244 6408 8935 11,493 5018 6388 8518 9825 13,017 16,425 10,146 13,648 17,188 12,144 16,103 20,430

Dual ascent

Single cuts

Complete cuts

Connected cuts

MST cuts

Cost

Time

Cuts

SGL

CMP

CON

MST

Int

Time

Cost

Time

Cuts

Cost

Time

Cuts

Cost

Time

Cuts

Cost

Time

Cuts

3468 4294 5345 4834 6165 7752 5715 7412 9769 6237 8681 10,940 4693 5850 7983 9411 12,431 15,715 9608 13,190 16,491 11,721 15,557 19,767

0.08 0.09 0.08 0.09 0.08 0.09 0.09 0.08 0.08 0.08 0.09 0.08 0.48 0.63 0.64 0.56 0.60 0.61 0.51 0.58 0.73 0.56 0.63 0.60

4368 5093 4643 4996 4716 5370 5163 4599 4719 4419 5079 5139 14,843 15994 20,068 16,026 17,613 18,153 14,609 16,767 18,648 14,912 16,854 17,697

836 857 921 1471 1475 1534 1879 2085 2019 1659 1643 1666 1784 1748 1876 5956 6113 5975 5117 5490 5531 5251 5292 5450

1637 1957 1917 2087 2060 2269 2019 2181 2233 1726 2154 2293 5979 6634 7269 7240 7997 7897 6753 7609 7683 7109 7628 7964

2381 2919 2678 2533 2468 3027 2856 2590 2803 2593 2886 3052 8413 9831 11,834 8914 11,002 11,637 8274 10,479 10,903 8580 10,643 11,296

593 792 807 888 953 1061 908 1019 962 862 1024 1041 2659 3007 3660 3045 3367 3821 2557 3051 3508 3000 3331 4153

3527 4372 5459 4898 6192 7936 5783 7478 9955 6242 8763 11,243 4841 6109 8230 9605 12,745 16,059 9801 13391 16,766 11,881 15,800 20,064

0.12 0.13 0.11 0.12 0.12 0.14 0.12 0.12 0.13 0.11 0.13 0.13 0.90 1.10 1.38 0.97 2.05 1.74 0.81 1.62 1.75 0.99 1.37 1.53

2089 2097 4363 2702 2931 3252 3150 3260 7131 3322 3612 8091 2476 2759 4864 4971 4844 5543 4730 5067 5285 5209 5246 5660

o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 o 0:01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01

175 166 192 280 266 258 292 319 239 245 248 262 752 766 708 807 864 630 755 704 633 781 751 755

3005 3831 4912 4201 5457 7309 5012 6739 9071 5611 7878 10476 4189 5565 7699 8404 11,699 15,110 8628 12270 15,843 10,759 14,729 19,127

0.02 0.02 0.03 0.02 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.28 0.29 0.29 0.29 0.29 0.28 0.25 0.26 0.28 0.26 0.29 0.29

1416 1707 2048 1702 1926 2220 1976 2085 2318 1953 2041 2428 7996 8102 8266 8114 8242 8055 7089 7300 7865 7539 8117 7843

3386 4225 5277 4561 5686 7580 5403 6974 9487 5861 7852 10,177 4740 5918 8113 9077 12,306 15,517 9363 12922 16332 11,357 15,106 19,598

0.05 0.05 0.05 0.05 0.06 0.04 0.05 0.05 0.04 0.04 0.04 0.05 0.23 0.25 0.25 0.27 0.26 0.28 0.27 0.26 0.28 0.26 0.27 0.28

2758 3079 3039 2915 2765 2430 2462 3149 2738 2456 2692 3282 7882 9222 9428 9277 9886 10,828 9639 9673 10923 9092 10,388 10,895

3442 4272 5089 4748 5797 7394 5499 6914 9042 5820 8009 10,220 4305 5342 7282 8606 10,631 13,190 8370 10,994 14613 10,549 13,570 17,023

0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03

412 559 444 523 462 461 671 585 464 469 522 463 1257 905 1025 1528 1224 970 1256 1287 1279 1141 1195 1444

0

1

17

R. Martinelli et al. / Computers & Operations Research 40 (2013) 2145–2160

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

Opt

6

2157

2158

R. Martinelli et al. / Computers & Operations Research 40 (2013) 2145–2160

Columns Cost and Time show the solution cost and time before calling the one-index formulation. Columns Cuts, SGL, CMP, CON and MST show the total number of distinct cuts found overall and the total number of cuts found by each strategy, respectively. Columns Int and Time show the solution cost and time after calling the one-index formulation. Next, we show the results for each of the four strategies. Columns Cost, Time, Cuts show the cost, the time and the total number of cuts found. With the view of comparing the different strategies used, we underline the best cost found among them. Moreover, the total of best costs for each strategy is shown in the last row of each table, called best. In addition, when a value from any Cost column is optimal or equal to the best known, it is highlighted in boldface. Notice that the dual ascent heuristic is capable of finding good bounds quite fast, thus generating a large number of cuts. In Table 15, we show the results of the improvement obtained using the cuts of the dual ascent heuristic in our exact separation. In addition to the lower running time, one can notice a decrease

Table 15 Improvement of the exact separation using the dual ascent heuristic as hot-start.

in the separation of the cuts, more prominent in the almost total absence of separation of odd-degree cutset cuts. As pointed before, with the use of the dual ascent heuristic, we were capable of running our exact separation for the egl-large instance dataset, proposed by Branda~ o and Eglese in 2008 [10]. The results are shown in Table 16. As shown in previous tables, columns Ins, 9V9, 9ER 9, 9E9 and 9I9 show the name, number of vertices, required edges, total edges and number of vehicles of each instance, respectively. The next three columns, Cost, Cuts and Time, show the cost, the number of cuts and the total time in seconds of the dual ascent heuristic, without calling the one-index formulation. The last four columns, Cost, Cap, Odd and Time, show the cost, the number of capacity cuts, the number of oddedge cutset cuts and the total time of our exact separation using the dual ascent heuristic as hot-start. Furthermore, in contrast to what was done for the other datasets, we only performed the separation on the linear relaxation of the one-index formulation, interrupting the execution when the linear optimum was achieved. The continuous values were rounded up to the next integer. 6.3. Iterated local search heuristic

Dataset

Cap (%)

Odd (%)

Time (%)

kshs gdb bccm C D E F eglese

100.00 100.00 91.03 76.30 83.07 77.16 91.86 69.62

100.00 100.00 99.50 95.00 99.68 97.11 99.22 97.73

34.03 36.20 48.79 66.76 64.94 68.71 69.76 32.94

The ILS-RVND algorithm was coded in Cþþ (gþþ 4.4.3) and executed in an Intel Core i5 3.2 GHz with 4 GB of RAM running Ubuntu Linux 10.04 64-bits. Only a single thread was used in our experiments. The following parameters values were selected after some preliminary experiments: (i) MaxIter¼10, if 9E9 Z 200, MaxIter¼50, otherwise; (ii) MaxIterILS¼3000, if 9E9 Z200, MaxIterILS¼1500, otherwise; (iii) number of successive perturbation moves was randomly selected from the set {1,2,3}.

Table 16 Dual ascent and exact separation results for egl-large dataset. Ins

g1-a g1-b g1-c g1-d g1-e g2-a g2-b g2-c g2-d g2-e

9V 9

255 255 255 255 255 255 255 255 255 255

9E9

347 347 347 347 347 375 375 375 375 375

9ER 9

375 375 375 375 375 375 375 375 375 375

9I9

20 25 30 35 40 22 27 32 37 42

DA þ Our

Dual ascent Cost

Cuts

Time

Cost

Cap

Odd

Time

927,232 1,044,780 1,153,372 1,263,641 1,384,581 1,020,539 1,129,794 1,252,044 1,360,453 1,479,110

54,246 58,934 59,753 69,159 73,761 54,511 57,237 62,286 67,949 73,621

4.201 4.542 4.605 5.336 5.699 4.298 4.440 4.701 5.267 5.725

970,495 1,085,096 1,201,028 1,325,317 1,461,469 1,061,103 1,173,286 1,295,036 1,430,267 1,557,159

351 323 475 557 610 278 379 416 571 574

196 106 147 256 266 240 254 89 46 101

2091.639 2149.614 5394.857 6509.326 7456.939 1965.443 3181.108 3868.572 5748.443 7919.063

Table 17 ILS-RVND results for the egl-large dataset. Ins

g1-a g1-b g1-c g1-d g1-e g2-a g2-b g2-c g2-d g2-e Mean

RTSn

TSA2

ILS-RVND

Best Sol.

Scaled time(s)

Best Sol.

Scaled time(s)

1,049,708 1,140,692 1,282,270 1,420,126 1,583,133 1,129,229 1,255,907 1,418,145 1,516,103 1,701,681

377.23 414.41 439.16 406.53 321.19 695.51 536.25 405.67 862.6 420.43

1,025,765 1,135,873 1,271,894 1,402,433 1,558,548 1,125,602 1,242,542 1,401,583 1,516,072 1,668,348

1213.92 1300.48 1299.32 1522.59 1556.25 1519.11 1530.78 1727.24 1594.61 1701.09

487.90

1496.54

Best Sol.

Avg. Sol.

Avg. Gap(%)

#NI

Time(s)

1,002,264 1,126,509 1,260,193 1,397,656 1,541,853 1,111,127 1,223,737 1,366,629 1,506,024 1,650,657

1,010,937.4 1137141.5 1,266,576.8 1,406,929.0 1554220.2 1,118,363.0 1,233,720.5 1,374,479.7 1,515,119.3 1,658,378.1

 1.45 0.11  0.42 0.32  0.28  0.64  0.71  1.93  0.06  0.60

10 4 10 3 8 9 9 10 5 9

1242.08 1111.99 1044.69 1012.75 1011.17 1830.11 1671.24 1237.03 1141.95 1093.28

 0.57

7.7

1239.63

R. Martinelli et al. / Computers & Operations Research 40 (2013) 2145–2160

Table 18 Mean of the average gaps (%) obtained for small/medium datasets. Dataset

TSA2

VNS

MAENS

Ant-CARP_12

GRASP

ILS-RVND

gdb bccm C D E F eglese

0.07 0.13 0.13 0.60 0.36 0.90 0.72

– 0.07 – – – – 0.54

0.01 0.17 0.97 0.79 1.41 1.01 0.56

0.10a 0.11a 0.51a 0.34a 0.80a 0.77a 0.56a

0.11 0.16 – – – – 0.47

0.02 0.16 0.44 0.47 1.24 0.48 0.88

a

(0.01a) (0.17a) (0.37a) (0.50a) (1.19a) (0.48a) (0.83a)

Mean of the average gaps between the median solutions and the BKSs.

Table 19 Mean of the average scaled times (s) obtained for small/medium datasets. Dataset

TSA2

VNS

MAENS

Ant-CARP_12

GRASP

ILS-RVND

gdb bccm C D E F eglese

1.1 8.8 37.6 16.8 40.2 18.5 127.5

– 49.4 – – – 0.0 566.1

3.9 42.6 116.6 154.6 113.3 117.5 351.1

1.0 7.9 56.6 72.1 56.3 72.5 251.5

4.8 57.7 – – – 0.0 748.7

13.2 75.6 72.2 85.0 69.7 86.0 209.5

We ran the ILS-RVND heuristic 10 times for each instance and a comparison is performed with the algorithms of Branda~ o and Eglese (TSA2) [10], Mei et al. (RTSn) [12], Polacek et al. (VNS) [32], Tang et al. (MAENS) [33], Santos et al. [34] (Ant-CARP_12) and Usberti et al. (GRASP) [35]. These algorithms were tested in a Pentium M 1.4 GHz, Xeon 2.0 GHz, Pentium IV 3.6 GHz, Xeon 2.0 GHz, Pentium III 1.0 GHz and Core 2 Quad 3.0 GHz, respectively. In order to perform a rough comparison among the running times of the different machines, we multiplied the original computing times by a factor that denotes the ratio between the CPU clock of the machine used in the corresponding work and the CPU clock of our i5 3.2 GHz. This type of approximate comparison was also performed by other authors [12,34,35]. Hence, the approximate runtime factors for the Pentium 1.4 GHz, Xeon 2.0 GHz, Pentium IV 3.6 GHz, Pentium III 1.0 GHz, Core 2 Quad 3.0 GHz are 1.4/3.2, 2.0/3.2, 3.6/3.2, 1.0/3.2 and 3.0/3.2, respectively. Table 17 contains the results found by ILS-RVND and the deterministic algorithms of Branda~ o and Eglese [10] and Mei et al. [12]. In this table, Ins is the name of the test-problem, Best Sol and Scaled Time(s) indicate, respectively, the best solution and the associated scaled time in seconds of the corresponding work, Avg. Sol represents the average solution of the 10 runs, Avg. Gap corresponds to the gap between the average solution found by the ILS-RVND and the best known solution, #NI denotes the number of improved solutions found in the 10 runs, Time(s) indicates the average computational time in seconds. The best known solutions are highlighted in boldface and improved solutions are underlined. By observing the results presented in Table 17 it can be noticed that the ILS-RVND algorithm improved the Best Known Solution (BKS) of all instances. The average gap between the average solutions obtained by ILS-RVND and the BKSs was  0.57%. The average computing time of the full execution of ILS-RVND seems to be equivalent to the algorithm of Mei et al. [12] but slower than the one of Branda~ o [10]. However, if we stop the execution of ILS-RVND when the algorithm obtains or improves the solutions reported by both the competitors, the average running times decrease considerably. This happens especially in the instances where the gap was negative.

2159

Table 18 presents the mean of the average gaps between the average solutions (or single-run in case of the deterministic algorithm of Branda~ o) and the BKSs for the small/medium scale instances. It is important to mention that Santos et al. [34] did not report the average costs, but the median ones. For the sake of comparison, we also report the mean of the average gaps between the median solutions and the BKSs. Nevertheless, in practice, both measurements produced similar values. From Table 18, it can be observed that ILS-RVND performance in terms of solution quality was competitive with the best known heuristic approaches available in the literature. In some datasets ILS-RVND even appear to be one of the most efficient strategies as in the case of gdb and F. Table 19 reports the mean of the average scaled times, in seconds, obtained by ILS-RVND as well as those found by the competitors. Keeping in mind that this is only a approximate comparison, it can be seen that ILS-RVND seems slower in some datasets but, faster in others. Finally, we also ran ILS-RVND in the kshs dataset and it was observed that the average gaps between the average solution and the BKSs were 0.00% for all instances, whereas the average computational time was 5.2 s. Although ILS-RVND was originally designed to solve vehicle routing problems, the algorithm clearly outperformed, in terms of solution quality, those that dealt with large scale CARP instances. Surprisingly, ILS-RVND was capable of producing high quality solutions, even when applied to transformed instances. We believe that the employment of multiple neighborhood structures helped the algorithm to successfully explore the search space despite dealing with instances with fixed edges. It is in this context that the neighborhood structures that move or exchange arcs, i.e., Shift(2,0), Swap(2,1), Swap(2,2), Or-opt2, play a crucial role. These operators allow for generating neighbor solutions by modifying the position of the customers associated with fixed edges, but without eliminating such edges, thus avoiding the need of special procedures to prevent undesirable edge eliminations.

7. Conclusions This work dealt the exact and heuristic approaches for the CARP with emphasis on large scale instances. We presented a new exact separation for the capacity cuts and a dual ascent heuristic that, together with a known exact separation for the odd-degree cutset cuts, were capable of producing the first lower bounds for the egl-large instance dataset. These two developed procedures can be very useful in any cutting plane based algorithm such as Branch-and-Cut and Branch-Cut-and-Price. Moreover, we transformed these instances to CVRP instances, using the procedure described in [25], and applied an ILS based heuristic that was capable of improving all known upper bounds. Finally, we have also reported the results obtained by the developed solution methods for well-known small/medium scale instances. As for future work, one can extend the proposed exact separation and the dual ascent heuristic to other routing problems such as the Capacitated Vehicle Routing Problem (CVRP) or to virtually any other solution approach that relies on capacity cuts.

Acknowledgements The contribution by Rafael Martinelli and Marcus Poggi have been partially supported by the Conselho Nacional de Desenvolvimento Cientı´fico e Tecnolo´gico (CNPq), grants 140849/2008-4 and 309337/2009-7.

2160

R. Martinelli et al. / Computers & Operations Research 40 (2013) 2145–2160

References [1] Wøhlk S. Contributions to arc routing. PhD thesis. Faculty of Social Sciences, University of Southern Denmark; 2005. [2] Golden BL, Wong RT. Capacitated arc routing problems. Networks 1981 ;11:305–15. [3] Belenguer JM, Benavent E. A cutting plane algorithm for the capacitated arc routing problem. Computers & Operations Research 2003;30:705–28. [4] Ahr D. Contributions to multiple postmen problems. PhD thesis. Department of Computer Science, Heidelberg University; 2004. [5] Li Lyo. Vehicle routeing for winter gritting. PhD thesis. Department of Management Science, Lancaster University; 1992. [6] Li LYO, Eglese RW. An interactive algorithm for vehicle routeing for wintergritting. Journal of the Operational Research Society 1996;47:217–28. [7] Bartolini E, Cordeau JF, Laporte G. Improved lower bounds and exact algorithm for the capacitated arc routing problem. Technical Report CIRRELT-2011-33, Interuniversity Research Centre on Enterprise Networks, Logistics and Transportation; 2011. [8] Bode C, Irnich S. Cut-first branch-and-price-second for the capacitated arc routing problem. Technical Report LM-2011-01, Chair of Logistics Management, Gutenberg School of Management and Economics, Johannes Gutenberg University, Mainz, Germany; 2011. [9] Martinelli R, Pecin D, Poggi M, Longo H. A branch-cut-and-price algorithm for the capacitated arc routing problem. In: Pardalos P, Rebennack S, editors. Experimental algorithms. Lecture notes in computer science, vol. 6630. Berlin/Heidelberg: Springer; 2011. p. 315–26. [10] Branda~ o J, Eglese R. A deterministic tabu search algorithm for the capacitated arc routing problem. Computers & Operations Research 2008;35:1112–26. [11] Golden BL, DeArmon JS, Baker EK. Computational experiments with algorithms for a class of routing problems. Computers & Operations Research 1983;10(1):47–59. [12] Mei Y, Tang K, Yao X. A global repair operator for capacitated arc routing problem. IEEE Transactions on Systems, Man and Cybernetics 2009;39(3):723–34. [13] Letchford A, Oukil A. Exploiting sparsity in pricing routines for the capacitated arc routing problem. Computers & Operations Research 2009;36:2320–7. [14] Padberg MW, Rao MR. Odd minimum cut-sets and b-matchings. Mathematics of Operations Research 1982;7:67–80. [15] Gomory RE, Hu TC. Multi-terminal network flows. Journal of the Society for Industrial and Applied Mathematics 1961;9(4):551–70. [16] Edmonds J, Karp RM. Theoretical improvements in algorithmic efficiency for network flow problems. Journal of the ACM 1972;19:248–64. [17] Fukasawa R, Longo H, Lysgaard J, Poggi de Arag ao M, Reis M, Uchoa E, et al. Robust branch-and-cut-and-price for the capacitated vehicle routing problem. Mathematical Programming 2006;106(3):491–511. [18] Fischetti M, Lodi A. Optimizing over the first chva´tal closure. Mathematical Programming 2007;110:3–20.

[19] Wong R. A dual ascent approach for steiner tree problems on a directed graph. Mathematical Programming 1984;28:271–87. [20] Kruskal Jr. JB. On the shortest spanning subtree of a graph and the traveling salesman problem. Proceedings of the American Mathematical Society 1956;7(1):48–50. ¨ [21] Lourenc- o HR, Martin OC, Stutzle T. Handbook of metaheuristics, iterated local search. Kluwer Academic Publishers; 2003 Chap. p. 321–53. [22] Penna PHV, Subramanian A, Ochi LS. An iterated local search heuristic for the heterogenous fleet vehicle routing problem. Journal of Heuristics; 2011; http://dx.doi.org/10.1007/s10732-011-9186-y. In press. [23] Pearn WL, Assad A, Golden BL. Transforming arc routing into node routing problems. Computers & Operations Research 1987;14(4):285–8. [24] Longo H, Poggi de Araga~ o M, Uchoa E. Solving capacitated arc routing problems using a transformation to the CVRP. Computers & Operations Research 2006;33:1823–7. [25] Baldacci R, Maniezzo V. Exact methods based on node-routing formulations for undirected arc-routing problems. Networks 2006;47(1):52–60. [26] Mladenovic´ N, Hansen P. Variable neighborhood search. Computers & Operations Research 1997;24(11):1097–100. [27] Subramanian A, Drummond L, Bentes C, Ochi L, Farias R. A parallel heuristic for the vehicle routing problem with simultaneous pickup and delivery. Computers & Operations Research 2010;37(11):1899–911. [28] Kiuchi M, Shinano Y, Hirabayashi R, Saruwatari Y. An exact algorithm for the capacitated arc routing problem using parallel branch and bound method. In: Abstracts of the 1995 spring national conference of the operational research society of Japan; 1995. p. 28–9 [In Japanese]. [29] DeArmon JS. A comparison of heuristics for the capacitated Chinese postman problem. Master’s thesis. University of Maryland, College Park, MD; 1981. [30] Benavent E, Campos V, Corberan A, Mota E. The capacitated arc routing problem: lower bounds. Networks 1992;22:669–90. [31] Beullens P, Muyldermans L, Cattrysse D, Oudheusden DV. A guided local search heuristic for the capacitated arc routing problem. European Journal of Operational Research 2003;147(3):629–43. [32] Polacek M, Doerner K, Hartl R, Maniezzo V. A variable neighborhood search for the capacitated arc routing problem with intermediate facilities. Journal of Heuristics 2008;14:405–23. [33] Tang K, Mei Y, Yao X. Memetic algorithm with extended neighborhood search for capacitated arc routing problems. Transactions on Evolutionary Computation 2009;13(5):1151–66. [34] Santos L, Coutinho-Rodrigues J, Current J. An improved ant colony optimization based algorithm for the capacitated arc routing problem. Transportation Research Part B 2010;44(2):246–66. [35] Usberti FL, Franc- a PM, Franc- a ALM. Grasp with evolutionary path-relinking for the capacitated arc routing problem. Computers and Operations Research; 2011 http://dx.doi.org/10.1016/j.cor.2011.10.014.