A tabu search heuristic for the vehicle routing problem with private fleet and common carrier

A tabu search heuristic for the vehicle routing problem with private fleet and common carrier

European Journal of Operational Research 198 (2009) 464–469 Contents lists available at ScienceDirect European Journal of Operational Research journ...

193KB Sizes 2 Downloads 202 Views

European Journal of Operational Research 198 (2009) 464–469

Contents lists available at ScienceDirect

European Journal of Operational Research journal homepage: www.elsevier.com/locate/ejor

Production, Manufacturing and Logistics

A tabu search heuristic for the vehicle routing problem with private fleet and common carrier Jean-François Côté, Jean-Yves Potvin * Département d’informatique et de recherche opérationnelle, Université de Montréal, C.P. 6128, Succursale Centre-ville, Montréal, Québec, Canada H3C 3J7

a r t i c l e

i n f o

Article history: Received 15 March 2007 Accepted 9 September 2008 Available online 19 September 2008 Keywords: Vehicle routing Private fleet Common carrier Tabu search

a b s t r a c t This paper describes a tabu search heuristic for a vehicle routing problem where the owner of a private fleet can either visit a customer with one of his vehicles or assign the customer to a common carrier. The owner’s objective is to minimize the variable and fixed costs for operating his fleet plus the total costs charged by the common carrier. The proposed tabu search is shown to outperform the best approach reported in the literature on 34 benchmark instances with a homogeneous fleet. Ó 2008 Elsevier B.V. All rights reserved.

1. Introduction In this work, we consider the vehicle routing problem with private fleet and common carrier (VRPPC), where each customer is served by one of the vehicles of an internal fleet or by an external common carrier. When a customer is assigned to the common carrier, a penalty cost is incurred which represents all costs associated with this assignment (since the specific route followed by the common carrier is not known). The objective of the private fleet’s owner is to minimize the sum of fixed vehicle costs, travel costs and common carrier costs. Clearly, customers must be referred to the common carrier if the total demand from the customers exceeds the internal fleet capacity. However, it can also be more economical to do so. A single-vehicle version of this problem is first mentioned in [17] and later solved to optimality with a branch-and-bound algorithm in [9] for problems with up to 200 customers. In [2], the problem is introduced as a special case of the prize collecting TSP (PCTSP), which is defined in [1] as follows: ‘‘A salesman who travels between pairs of cities at a cost depending only on the pair, gets a prize in every city that he visits and pays a penalty to every city that he fails to visit, wishes to minimize his travel costs and penalties, while visiting enough to collect a prescribed amount of prize money”. When there is no prize associated with the vertices or, alternatively, when the prescribed amount is null, the single-vehicle version of the problem is obtained. The multi-vehicle version is first reported and solved in [6] with a savings-based construction heuristic, followed by intra- and in* Corresponding author. E-mail address: [email protected] (J.-Y. Potvin). 0377-2217/$ - see front matter Ó 2008 Elsevier B.V. All rights reserved. doi:10.1016/j.ejor.2008.09.009

ter-route customer exchanges. The authors in [3] do better by using two different initial solutions that are then improved with more sophisticated customer exchanges. Finally, even better results are reported in [4] on a set of benchmark instances with vehicle fleets that are either homogeneous or heterogeneous. A perturbation metaheuristic combines a local descent based on different neighborhood structures with two diversification strategies, namely a randomized construction procedure and a perturbation mechanism where a number of pairs of customers are swapped. A variant of the problem is finally addressed in [13] in a context where the customers are partitioned into sectors and the private and common carrier fleet size must be determined for each sector. In this paper, we present a new metaheuristic approach, based on tabu search, for solving the VRPPC with a homogeneous fleet of vehicles. It is empirically demonstrated on a set of benchmark instances that this metaheuristic outperforms the best known approach reported in the literature with regard to solution quality and computation time. The remainder of this paper is organized as follows. In Section 2, the problem is formally introduced. Then, our problem-solving methodology is described in Section 3. Computational results are reported in Section 4. Finally, a conclusion follows. 2. Problem formulation The problem can be stated as follows. Let G ¼ ðV; AÞ be a directed graph, with V ¼ f1; 2; . . . ; ng the vertex set and A the arc set. Vertex 1 is the depot and the other vertices are customers to be visited. A travel cost cij is defined between each pair of vertices i; j 2 V, i–j. Each customer i 2 V n f1g is characterized by a demand qi and a penalty cost ei when it is assigned to the common carrier. A fixed

465

J.-F. Côté, J.-Y. Potvin / European Journal of Operational Research 198 (2009) 464–469

homogeneous private fleet of m vehicles, initially located at the depot, is available to serve the customers, where each vehicle has capacity Q. Also, a fixed cost f is incurred each time a vehicle from the private fleet is used. The goal of the VRPPC is to find a set of at most m routes for the private fleet such that:

that the reader is already familiar with the tabu search metaheuristic, otherwise a detailed presentation is provided in [11]. To simplify the notation, the ‘‘vehicle” m þ 1 stands for the common carrier in the following. 3.1. Search space

 a vehicle from the private fleet serves a single route that starts and ends at the depot;  every customer is visited exactly once either by a vehicle of the private fleet or by the common carrier;  the total demand on each vehicle route of the private fleet should not exceed the capacity Q;  the sum of travel costs, fixed vehicle costs and common carrier costs is minimized. The problem can be mathematically formulated as follows [4]. Let  xkij be 1 if vehicle k visits vertex j immediately after vertex i, 0 otherwise, i; j ¼ 1; . . . ; n, i–j; k ¼ 1; . . . ; m;  yki be 1 if vehicle k visits vertex i, 0 otherwise, i ¼ 1; . . . ; n; k ¼ 1; . . . ; m;  zi be 1 if customer i is assigned to the common carrier, 0 otherwise, i ¼ 2; . . . ; n; k ¼ 1; . . . ; m;  uki P 0 be an upper bound on the load of vehicle k upon leaving customer i, i ¼ 2; . . . ; n; k ¼ 1; . . . ; m. We then have:

min

m X

fk yk1 þ

m X n n X X k¼1 i¼1

k¼1

cij xkij þ

j¼1

n X

ei zi

i¼2

ð1Þ

j–i subject to m X

n X

xk1j ¼

j¼1

xkhj

n X

xki1 6 m;

n X

xkih ;

h ¼ 1; . . . ; n; k ¼ 1; . . . ; m;

ð3Þ

i¼1

j–h i–h m X yki þ zi ¼ 1; i ¼ 2; . . . ; n; k¼1 n X

ð2Þ

k¼1 i¼2

¼

qðsÞ ¼

" m n X X k¼1

#þ qi yki  Q

i¼2

with ½xþ ¼ maxf0; xg. Clearly, when s is feasible, both f ðsÞ and gðsÞ coincide, otherwise a positive penalty is incurred. At each iteration, the value of a is modified by a factor 1 þ d > 1. When the current solution is feasible, the value of a is divided by 1 þ d, otherwise it is multiplied by 1 þ d. 3.2. Initial solution First, a number of customers are assigned to the common carrier, if the total demand exceeds the capacity of the private fleet. Then, routes are created for the private fleet with the remaining customers. More precisely: P (1) If ni¼2 qi > mQ , then (1.1) Reindex the customers in increasing order of ratio ei ; i ¼ 2; . . . ; n. qi (1.2) Assign the first h customers to the common carrier where h X

m X

k¼1 j¼2 n X

During the search, infeasible solutions are allowed. Accordingly, let us define gðsÞ ¼ f ðsÞ þ aqðsÞ, where f ðsÞ is the original objective value of solution s, as defined in Eq. (1), a is a positive parameter and qðsÞ is a penalty term for exceeding vehicle capacity, that is,

qi yki 6 Q ;

k ¼ 1; . . . ; m;

ð4Þ ð5Þ

i¼2

uki  ukj þ Qxkij 6 Q  qj ;

i; j ¼ 2; . . . ; n; i–j; k ¼ 1; . . . ; m:

ð6Þ

In this formulation, the objective function (1) minimizes the sum of vehicle fixed costs, travel costs and common carrier costs (note that yk1 is 1 when vehicle k is used, 0 otherwise). Constraints (2) state that at most m vehicles from the private fleet can be used. Constraints (3) specify that the same vehicle must enter and leave a given vertex. Constraints (4) assign each customer either to a vehicle from the private fleet or to the common carrier. Constraints (5) ensure that the vehicle capacity is not exceeded. Finally, constraints (6) eliminate subtours that do not include the depot. In the following section, a tabu search heuristic for solving this problem is introduced.

i¼2

qi P

n X

qi  mQ P

i¼2

h1 X

qi :

i¼2

(2) Create vehicle routes for the remaining customers through a least-cost insertion heuristic based on the cij s (travel costs). This is the starting solution for the improvement step that follows. (3) While there is an improvement do: (3.1) Apply a first-improvement local descent based on the unified tabu search neighborhood structure, as described in Section 3.4. (3.2) Apply a first-improvement local descent based on 4opt* exchanges to each vehicle route. The 4-opt* exchanges [15] in Step 3.2 are a subset of 4-opt exchanges [14], where four arcs are removed from a route and four arcs are introduced to reconnect the subpaths and produce a new route. The subset is obtained by limiting the number of vertices in a subpath and by ensuring that at least one added arc is shorter than a removed arc. More precisely, consider a subpath ði0 ; i1 ; . . . ; iu ; iuþ1 Þ, where u 6 w and w is the parameter which limits the number of vertices in a subpath. Consider also a second subpath ðik ; ikþ1 ; ikþ2 Þ with no vertex in common with the first one. If minfci1 ikþ1 ; ciu ikþ1 g < maxfci0 i1 ; ciu iuþ1 ; cik ikþ1 ; cikþ1 ikþ2 g, then arcs ði0 ; i1 Þ, ðiu ; iuþ1 Þ, ðik ; ikþ1 Þ, ðikþ1 ; ikþ2 Þ are removed and replaced by the cheapest of arcs ði1 ; ikþ1 Þ and ðiu ; ikþ1 Þ plus three other arcs to generate a new tour.

3. Tabu search 3.3. Attribute set of a solution The problem is solved with a tabu search heuristic based on the unified tabu search framework of Cordeau et al. [7,8]. The main components of this framework will now be described. We assume

With each solution s is associated an attribute set B(s) = {(i,k)ji = 2,. . .,n; k = 1,. . .,m + 1 and customer i is served by vehicle k}. The

466

J.-F. Côté, J.-Y. Potvin / European Journal of Operational Research 198 (2009) 464–469

transition from the current solution s to a solution in the neighborhood then corresponds to the removal and addition of attributes in set BðsÞ. 3.4. Neighborhood

duced into a solution during the search process. The penalty is then pffiffiffiffiffiffiffi proportional to the product of f ðsÞ, nm and qmin , the minimum of k the qi ’s over all attributes that are associated with s but not with s (i.e., those associated with the movement from s to s). More precisely, if k is the iteration number, the biased evaluation is:

pffiffiffiffiffiffiffi min gðsÞ þ c nmf ðsÞ q k ; gðsÞ; otherwise:

The union of two different neighborhoods is considered. These neighborhoods are: (1) Remove customer i ¼ 2; . . . ; n from vehicle route k ¼ 1; . . . ; m þ 1 and insert it at least cost into another route. The size of this neighborhood is OðnÞ. 0 (2) Exchange customers i in vehicle route k and i in vehicle 0 0 0 0 route k , with i; i ¼ 2; . . . ; n; k, k ¼ 1; . . . ; m þ 1, k–k . That 0 0 is, customers i and i are first removed from routes k and k 0 and inserted at least cost in routes k and k, respectively. The size of this neighborbood is Oðn2 Þ. The second neighborhood is essential to the success of our algorithm. In fact, it is almost impossible to add a customer to another vehicle route through the first neighborhood (apart from the common carrier) when the capacity constraints are tight. 3.5. Tabu duration A tabu duration is associated with each attribute. Basically, if customer i is removed from route k, attribute ði; kÞ is tabu and it is forbidden to reinsert customer i in route k for the next h iterations. The last iteration for which attribute ði; kÞ is tabu is noted ski . 3.6. Aspiration criterion The tabu status of an attribute can be revoked if a transformation leads to a feasible solution which is better than the best feasible solution found with this attribute. The aspiration level of attribute ði; kÞ is noted rki . 3.7. Diversification If the value of a neighbor solution s is worse than or equal to the value of the current solution s, this neighbor is penalized by a factor related to the addition frequency of its attributes, as suggested in [16]. Let qki be the number of times attribute ði; kÞ has been introTable 1 Notation Notation

Interpretation

BðsÞ f ðsÞ qðsÞ gðsÞ hðsÞ NðsÞ MðsÞ s s s0 s00 s

Attribute set of solution s Travel cost of solution s Penalty cost of solution s for overcapacity f ðsÞ þ aqðsÞ gðsÞ þ c (diversification term) Neighborhood of solution s Subset of NðsÞ Current solution Solution in MðsÞ Best solution in MðsÞ Solution obtained from s0 after applying 4-opt* Best solution found Penalty parameter for overcapacity Adjustment parameter for diversification term Update parameter for a Tabu duration Total number of iterations Iteration counter Number of times attribute ði; kÞ has been introduced into the solution Aspiration level of attribute ði; kÞ Last iteration with tabu status for attribute ði; kÞ

a c d h kmax k

qki rki ski

if gðsÞ > gðsÞ;

Note that the qki values tend to diminish with problem size and pffiffiffiffiffiffiffi the factor nm compensates for it. The parameter c is used to adjust the intensity of the diversification. The overall effect is to drive the search toward less explored regions of the search space when a local optimum is reached. 3.8. Stopping criterion The search is stopped after a fixed number of iterations. 3.9. Overall algorithm A step-by-step description of our unified tabu search is provided below. The notation used is summarized in Table 1. Pseudo-code 0. 1. 2. 3.

Create an initial solution s. s. If s is feasible then set s 1 and k 0. Set a For every attribute ði; kÞ do 0 and ski 0. 3.1 Set qki 3.2 If ði; kÞ 2 BðsÞ and s is feasible then set rki 1.

rki

f ðsÞ else set

Table 2 Benchmark instances Instance

n1

m

Q

f

CE-01 CE-02 CE-03 CE-04 CE-05 CE-06 CE-07 CE-08 CE-09 CE-10 CE-11 CE-12 CE-13 CE-14

50 75 100 150 199 50 75 100 150 199 120 100 120 100

4 9 6 9 13 4 9 6 10 13 6 8 6 7

160 140 200 200 200 160 140 200 200 200 200 200 200 200

120 100 140 120 100 140 120 160 120 120 180 120 260 140

G-01 G-02 G-03 G-04 G-05 G-06 G-07 G-08 G-09 G-10 G-11 G-12 G-13 G-14 G-15 G-16 G-17 G-18 G-19 G-20

240 320 400 480 200 280 360 440 255 323 399 483 252 320 396 480 240 300 360 420

7 8 8 8 4 5 7 8 11 13 14 15 21 23 26 29 18 22 26 31

550 700 900 1000 900 900 900 900 1000 1000 1000 1000 1000 1000 1000 1000 200 200 200 2000

820 1060 1380 1720 1620 1700 1460 1480 60 60 80 80 60 60 60 60 40 60 60 60

467

J.-F. Côté, J.-Y. Potvin / European Journal of Operational Research 198 (2009) 464–469

4. While k 6 kmax do 4.1 Set MðsÞ ;. 4.2 For each s 2 NðsÞ do  If ðski < kÞ or (s is feasible and f ðsÞ < rki ) for all ði; kÞ 2 BðsÞ n BðsÞ then set MðsÞ MðsÞ [ fsg. 4.3 For each s 2 MðsÞ do  If gðsÞ P gðsÞ then minði;kÞ2BðsÞnBðsÞ qki . – Set qmin pffiffiffiffiffiffiffi min – Set hðsÞ gðsÞ þ c nmf ðsÞ q k . Else set hðsÞ gðsÞ. 4.4 Identify a solution s0 2 MðsÞ which minimizes h. 4.5 For each attribute ði; kÞ 2 BðsÞ n Bðs0 Þ do  Remove customer i in route k using the GENI heuristic. k þ h.  Set ski 4.6 For each attribute ði; kÞ 2 Bðs0 Þ n BðsÞ do  Insert customer i in route k using the GENI heuristic. qki þ 1.  Set qki 4.7 Apply a first-improvement local descent based on 4-opt* exchanges to each modified route in s0 to obtain s00 . s00 is feasible then If f ðs00 Þ < f ðs Þ then set s For each ði; kÞ 2 Bðs00 Þ, set a ; Set a 1þd að1 þ dÞ. Else set a 4.9 Set s s00 . 4.10 Set k k þ 1. 4.8 If   

s00 ;

rki

minfrki ; f ðs00 Þg;

4 and the following actions are done for kmax iterations. First, a subset MðsÞ of NðsÞ is constructed in Steps 4.1 and 4.2. This subset consists of all solutions s in the neighborhood of the current solution that are unlikely to lead to cycling. That is, the attributes introduced in the solution by the movement from s to s are non-tabu or their aspiration criteria are satisfied (in the case of a feasible s). Step 4.3 implements diversification, as described in Section 3.7. In Step 4.4, all admissible movements are evaluated using standard insertions and removals of vertices and the best solution in MðsÞ is identified. Once this best movement is known (i.e. either moving a customer to another route or exchanging two customers in two different routes), it is applied to the current solution in Steps 4.5 and 4.6, but using the more powerful GENeralized Insertion heuristic (GENI) [10]. Basically, when the best movement states that vertex i should be moved from route r to route r0 , its insertion place in r 0 is the least-cost one between two of its p clos0 00 est vertices i and i in the route (p ¼ 3 in our experiments). 0 00 Although i and i are not necessarily consecutive in route r0 before 0 00 the insertion, the sequence i – i – i is part of the route after the insertion, due to a reoptimization based on arc exchanges around 0 00 i and i . The reverse of this procedure is applied to route r to account for the removal of vertex i. The new solution is then further optimized in Step 4.7 with 4-opt* exchanges. Finally, update operations are performed from Steps 4.8 to 4.10. 4. Computational results

In this pseudo-code, some initialization tasks are first performed from Steps 0 to 3. Then, the tabu search takes place in Step

The experiments have been performed on benchmark instances with a homogeneous fleet, as produced by Bolduc et al. [4] with the 14 VRP instances of Christofides et al. [5] and the 20 VRP instances

Table 3 Comparative results Instance

CE-01 CE-02 CE-03 CE-04 CE-05 CE-06 CE-07 CE-08 CE-09 CE-10 CE-11 CE-12 CE-13 CE-14 G-01 G-02 G-03 G-04 G-05 G-06 G-07 G-08 G-09 G-10 G-11 G-12 G-13 G-14 G-15 G-16 G-17 G-18 G-19 G-20 Avg.

Tabu with 10,000 iterations

Tabu with 25,000 iterations

RIP

Best sol.

Avg. sol.

Avg. CPU (s)

Best sol.

Avg. sol.

Avg. CPU (s)

Sol.

CPU (s)

1119.47 1814.52 1926.99 2520.63 3115.50 1207.47 2004.53 2052.05 2429.19 3403.94 2332.26 1955.10 2859.12 2214.14 14272.21 19782.38 25427.29 35302.68 14614.69 21860.63 24079.87 30604.67 1325.33 1599.51 2179.59 2509.12 2270.39 2699.37 3163.60 3640.69 1632.83 2691.61 3457.28 4287.89 0.71%

1119.47 1821.38 1933.55 2531.11 3124.79 1207.47 2011.37 2063.06 2440.02 3412.45 2335.75 1968.85 2864.22 2237.45 14321.55 19830.36 25502.81 35404.61 14669.09 21908.15 24239.44 30664.12 1328.33 1605.64 2188.48 2514.79 2275.63 2702.48 3170.12 3650.27 1639.66 2705.40 3469.15 4297.97 1.05%

3.4 5.0 14.1 33.4 51.2 4.0 5.6 14.6 32.6 52.9 21.3 9.8 21.3 10.1 93.0 197.6 372.0 603.9 134.0 227.9 334.1 458.0 110.5 188.2 290.0 427.1 63.1 100.7 152.7 223.6 64.4 96.3 136.2 183.4 139.3

1119.47 1814.52 1924.99 2515.50 3097.99 1207.47 2006.52 2055.64 2429.19 3393.41 2330.94 1952.86 2859.12 2214.14 14214.44 19609.62 25271.50 35068.47 14486.14 21690.25 24112.79 30466.04 1323.57 1592.93 2166.66 2490.01 2271.29 2693.35 3157.31 3637.52 1631.49 2692.49 3452.00 4272.98 0.46%

1119.47 1816.07 1930.28 2526.41 3112.25 1207.47 2010.96 2063.06 2433.86 3402.72 2336.59 1961.49 2863.96 2220.23 14264.33 19731.28 25405.71 35182.19 14604.19 21788.71 24169.11 30535.30 1324.87 1598.14 2174.45 2499.80 2274.13 2702.50 3162.85 3645.80 1636.84 2697.16 3458.47 4279.74 0.75%

8.5 12.5 34.7 83.3 128.3 9.9 14.0 36.9 83.3 129.6 54.6 24.2 53.7 24.8 237.4 488.6 942.2 1488.2 341.6 551.6 829.5 1131.0 274.7 471.2 720.2 1071.4 157.6 248.4 377.1 556.4 159.8 240.3 340.3 453.8 346.5

1132.91 1835.76 1959.65 2545.72 3172.22 1208.33 2006.52 2082.75 2443.94 3464.90 2333.03 1953.55 2864.21 2224.63 14388.58 19505.00 24978.17 34957.98 14683.03 22260.19 23963.36 30496.18 1341.17 1612.09 2198.45 2521.79 2286.91 2750.75 3216.99 3693.62 1701.58 2765.92 3576.92 4378.13 1.63%

25 73 107 250 474 25 71 110 260 478 195 128 188 110 651 1178 2061 3027 589 1021 1628 2419 832 1294 2004 2900 802 1251 1862 2778 806 1303 1903 2800 1047

468

J.-F. Côté, J.-Y. Potvin / European Journal of Operational Research 198 (2009) 464–469

Table 4 Best solutions Instance

Tabu

RIP

CE-01 CE-02 CE-03 CE-04 CE-05 CE-06 CE-07 CE-08 CE-09 CE-10 CE-11 CE-12 CE-13 CE-14 G-01 G-02 G-03 G-04 G-05 G-06 G-07 G-08 G-09 G-10 G-11 G-12 G-13 G-14 G-15 G-16 G-17 G-18 G-19 G-20

1119.47 1814.52 1920.90 2512.64 3097.67 1207.47 2004.53 2052.05 2425.26 3386.08 2330.94 1952.86 2859.12 2213.02 14168.07 19479.41 24985.36 34615.23 14409.28 21555.94 24007.92 30059.25 1321.73 1583.82 2163.34 2479.62 2268.70 2692.46 3153.55 3631.47 1632.83 2691.61 3442.16 4265.11

1119.47 1814.52 1937.23 2528.36 3107.04 1207.47 2006.52 2052.05 2436.02 3407.13 2332.21 1953.55 2858.94 2216.68 14160.77 19234.03 24646.79 34607.12 14249.82 21703.54 23549.53 30173.53 1336.91 1598.76 2179.71 2503.71 2268.32 2704.01 3171.20 3654.20 1677.22 2742.72 3528.36 4352.95

of Golden et al. [12]. In these instances, the travel cost between two vertices corresponds to the Euclidean distance. In all cases, the customer coordinates, demands and vehicle capacity are those found , where in the original instances. The number of vehicles is set to 0:8q Q q is the total customer demand and Q is the vehicle capacity. The fixed vehicle cost f is set to the average route length in the best known solution for the original instance, rounded to the nearest multiple of 20. The common carrier cost for customer i is set to f   þ li c 1i where n is the average number of customers per route in n the best known solution for the original instance and li equals 1, 1.5 or 2, depending if the demand of customer i is in the lowest, medium or highest customer demands in the instance [4]. All tests were run on a workstation with a 2.2 GHz DualCore Opteron AMD Processor 275. The specifications of this processor are similar to those of the 3.6 GHz Xeon used by Bolduc et al. in [4] for running their RIP heuristic. The latter is compared with our unified tabu search in Section 4.3. 4.1. Benchmark instances The characteristics of the various test instances are shown in Table 2. In this table, n  1 is the number of customers, m is the number of vehicles, and Q and f are the capacity and fixed cost of each vehicle, respectively. The names of the instances begin with CE or G, depending if they come from Christofides et al. [5] or Golden et al. [12].

 tabu duration h: random value in the interval [7,14];  adjustment for diversification intensity c: 0.01;  update parameter d (for self-adjusting overcapacity parameter a): 1.25.

4.3. Experiments The results of the tabu search based on 10,000 and 25,000 iterations are shown in Table 3, along with the results reported in [4] with the RIP heuristic. The latter is a randomized construction, improvement and perturbation heuristic which has produced the best known results on these benchmark instances. For the unified tabu search, we indicate the best and average solution value as well as the average computation time in seconds over 10 independent runs. For RIP, we show the solution value and computation time reported in [4]. The last row, called Avg., summarizes the results over the 34 instances. In the case of solution values, this overall average is expressed as the average gap in percent over the best known solution, as it seems to be more meaningful than average solution values. The best known solutions correspond to the bold entries in Table 4. We can see that the tabu search with 10,000 and 25,000 iterations is on average 1.05% and 0.75%, respectively, over the best known solutions. This is to be compared with 1.63% for RIP. Furthermore, the computation time of the tabu search is significantly lower, even when 25,000 iterations are performed. In [4], the authors also report the best solutions obtained over the course of their experiments. Although, we did not put much effort in this regard, Table 4 reports the best solutions ever produced with our unified tabu search, using different parameter settings. Over the 34 instances, 26 best solutions were produced with our algorithm, as compared with 12 for RIP, including 4 ties. The performance of our algorithm, with regard to both solution quality and computation time, comes from the exploitation of the unified tabu search framework. Apart from its relative simplicity and the small number of parameters that needs to be tuned, this framework is known to be both effective and efficient. The second neighborhood type where customers are exchanged between vehicle routes is also very important, when capacity constraints are tight.

5. Conclusion This paper has described a unified tabu search for solving a vehicle routing problem with a private fleet and common carrier. The results show that the tabu search performs well and can reach solutions within 1% of the best known solutions in reasonable computation times (i.e. a few minutes). Our next step will be to tackle problems with a heterogeneous fleet. However, we want to address this issue with a distinctive approach to fully exploit this new characteristic. Acknowledgement Financial support for this work was provided by the Canadian Natural Sciences and Engineering Research Council (NSERC). This support is gratefully acknowledged. References

4.2. Parameter values Preliminary experiments, as well as some guidelines in previous studies on unified tabu search, led to the following parameter values:

[1] E. Balas, The prize collecting traveling salesman problem, Networks 19 (1989) 621–636. [2] D. Bienstock, M.X. Goemans, D. Simchi-Levi, D. Williamson, A note on the price collecting traveling salesman problem, Mathematical Programming 59 (1993) 413–420.

J.-F. Côté, J.-Y. Potvin / European Journal of Operational Research 198 (2009) 464–469 [3] M.C. Bolduc, J. Renaud, F. Boctor, A heuristic for the routing and carrier selection problem. Technical Report 2006-006, Faculté des Sciences de l’Administration, Université Laval, Québec, Canada, 2006. [4] M.C. Bolduc, J. Renaud, F. Boctor, G. Laporte, A perturbation metaheuristic for the vehicle routing problem with private fleet and common carriers, Journal of the Operational Research Society 59 (2008) 776–787. [5] N. Christofides, A. Mingozzi, P. Toth, The vehicle routing problem, in: N. Christofides, A. Mingozzi, P. Toth, C. Sandi (Eds.), Combinatorial Optimization, Wiley, Chichester, UK, 1979, pp. 315–338. [6] C.W. Chu, A heuristic algorithm for the truckload and less-than-truckload problem, European Journal of Operational Research 165 (2005) 657–667. [7] J.F. Cordeau, M. Gendreau, G. Laporte, A tabu search heuristic for periodic and multi-depot vehicle routing problems, Networks 30 (1997) 105–119. [8] J.F. Cordeau, G. Laporte, A. Mercier, A unified tabu search heuristic for vehicle routing problems with time windows, Journal of the Operational Research Society 52 (2001) 928–936. [9] M. Diabi, R. Ramesh, The distribution problem with carrier service: A dual based penalty approach, ORSA Journal on Computing 7 (1995) 24–35.

469

[10] M. Gendreau, A. Hertz, G. Laporte, New insertion and postoptimization procedures for the traveling salesman problem, Operations Research 40 (1994) 1086–1094. [11] F. Glover, M. Laguna, Tabu Search, Kluwer, Boston, 1997. [12] B.L. Golden, E.A. Wasil, J.P. Kelly, I.M. Chao, The impact of metaheuristics on solving the vehicle routing problem: Algorithms, problem tests and computational results, in: T.G. Crainic, G. Laporte (Eds.), Fleet Management and Logistics, Kluwer, Boston, 1998, pp. 33–56. [13] J.G. Klincewicz, H. Luss, M.G. Pilcher, Fleet size planning when outside carrier services are available, Transportation Science 24 (1990) 169–182. [14] S. Lin, Computer solutions of the traveling salesman problem, Bell System Technical Journal 44 (1965) 2245–2269. [15] J. Renaud, F. Boctor, G. Laporte, A fast composite heuristic for the symmetric traveling salesman problem, ORSA Journal on Computing 8 (1996) 134–143. [16] É.D. Taillard, Parallel iterative search methods for vehicle routing problems, Networks 23 (1993) 661–673. [17] T. Volgenant, R. Jonker, On some generalizations of the travelling-salesman problem, Journal of the Operational Research Society 38 (1987) 1073–1079.