Tabu search variants for the mix fleet vehicle routing problem



Similar documents
Solving the Vehicle Routing Problem with Multiple Trips by Adaptive Memory Programming

Cost Models for Vehicle Routing Problems Stanford Boulevard, Suite 260 R. H. Smith School of Business

A Scatter Search Algorithm for the Split Delivery Vehicle Routing Problem

Transportation Research Part E

A tabu search procedure based on a random Roulette diversification for the weighted maximal planar graph problem

Branch-and-Price Approach to the Vehicle Routing Problem with Time Windows

An Iterated Local Search heuristic for the Heterogeneous Fleet Vehicle Routing Problem

Adaptive Memory Programming for the Vehicle Routing Problem with Multiple Trips

Un algorithme génétique hybride à gestion adaptative de diversité pour le problème de tournées de véhicules et ses variantes

Research Paper Business Analytics. Applications for the Vehicle Routing Problem. Jelmer Blok

Solving the Vehicle Routing Problem with Genetic Algorithms

Two objective functions for a real life Split Delivery Vehicle Routing Problem

Clustering and scheduling maintenance tasks over time

PLAANN as a Classification Tool for Customer Intelligence in Banking

The Problem of Scheduling Technicians and Interventions in a Telecommunications Company

Waste Collection Vehicle Routing Problem Considering Similarity Pattern of Trashcan

Fifty Years of Vehicle Routing

New Exact Solution Approaches for the Split Delivery Vehicle Routing Problem

Local Search Algorithms for Vehicle Routing Problems of a Chain of Convenience Stores

A hybrid ACO algorithm for the Capacitated Minimum Spanning Tree Problem

The Trip Scheduling Problem

The Second International Timetabling Competition (ITC-2007): Curriculum-based Course Timetabling (Track 3)

An ant colony optimization for single-machine weighted tardiness scheduling with sequence-dependent setups

VEHICLE ROUTING AND SCHEDULING PROBLEMS: A CASE STUDY OF FOOD DISTRIBUTION IN GREATER BANGKOK. Kuladej Panapinun and Peerayuth Charnsethikul.

High-performance local search for planning maintenance of EDF nuclear park

A Constraint Programming based Column Generation Approach to Nurse Rostering Problems

Adaptive Memory Search for Boolean Optimization Problems

Variable neighbourhood search in commercial VRP packages: evolving towards self-adaptive methods

The Student-Project Allocation Problem

Approximation Algorithms

A Reactive Tabu Search for Service Restoration in Electric Power Distribution Systems

HYBRID GENETIC ALGORITHMS FOR SCHEDULING ADVERTISEMENTS ON A WEB PAGE

Performance Tuning for the Teradata Database

Solution of Linear Systems

VEHICLE ROUTING PROBLEM

Online vehicle routing and scheduling with continuous vehicle tracking

Scheduling Shop Scheduling. Tim Nieberg

A hierarchical multicriteria routing model with traffic splitting for MPLS networks

Generating Personnel Schedules in an Industrial Setting Using a Tabu Search Algorithm

A Comparison of General Approaches to Multiprocessor Scheduling

A Simultaneous Solution for General Linear Equations on a Ring or Hierarchical Cluster

A Library of Local Search Heuristics for the Vehicle Routing Problem

Integer Factorization using the Quadratic Sieve

Lancaster University Management School Working Paper 2009/021. Vehicle Routing and Scheduling with Time Varying Data: A Case Study

Optimising Patient Transportation in Hospitals

Evolutionary Detection of Rules for Text Categorization. Application to Spam Filtering

The Gravity Model: Derivation and Calibration

Scheduling Breaks in Shift Plans for Call Centers

How To Encrypt Data With A Power Of N On A K Disk

Tabu Search Heuristics for the Vehicle Routing Problem

Analysis of an Artificial Hormone System (Extended abstract)

An Efficient Algorithm for Solving a Stochastic Location-Routing Problem

Parallel CLM starting solutions comparison *

Vehicle routing in a Spanish distribution company: Saving using a savings-based heuristic

IE 680 Special Topics in Production Systems: Networks, Routing and Logistics*

Index Selection Techniques in Data Warehouse Systems

TABU SEARCH FOR OPTIMIZATION OF MILITARY SUPPLY DISTRIBUTION. A Thesis. presented to. the Faculty of. California Polytechnic State University

An Evaluation of Self-adjusting Binary Search Tree Techniques

A tabu search heuristic for the vehicle routing problem with time windows and split deliveries

CS 2112 Spring Instructions. Assignment 3 Data Structures and Web Filtering. 0.1 Grading. 0.2 Partners. 0.3 Restrictions

STUDY OF PROJECT SCHEDULING AND RESOURCE ALLOCATION USING ANT COLONY OPTIMIZATION 1

Contributions to Gang Scheduling

A COOL AND PRACTICAL ALTERNATIVE TO TRADITIONAL HASH TABLES

Glossary of Object Oriented Terms

Group Testing a tool of protecting Network Security

Hybrid Heterogeneous Electric Fleet Routing Problem with City Center Restrictions

Iterated Local Search for the Generator Maintenance Scheduling Problem

APPENDIX 1 USER LEVEL IMPLEMENTATION OF PPATPAN IN LINUX SYSTEM

Home Page. Data Structures. Title Page. Page 1 of 24. Go Back. Full Screen. Close. Quit

Search Heuristics for Load Balancing in IP-networks

CSE 4351/5351 Notes 7: Task Scheduling & Load Balancing

Memory Allocation Technique for Segregated Free List Based on Genetic Algorithm

Evaluation of Complexity of Some Programming Languages on the Travelling Salesman Problem

A framework for simulation-based optimization of business process models

Fast Sequential Summation Algorithms Using Augmented Data Structures

D-optimal plans in observational studies

A CENTROID-BASED HEURISTIC ALGORITHM FOR THE CAPACITATED VEHICLE ROUTING PROBLEM

I. GROUPS: BASIC DEFINITIONS AND EXAMPLES

TABU SEARCH. Fred Glover Manuel Laguna

GRASP and Path Relinking for the Matrix Bandwidth Minimization *

Residential waste management in South Africa: Optimisation of vehicle fleet size and composition

Chapter 10: Network Flow Programming

Efficiency of algorithms. Algorithms. Efficiency of algorithms. Binary search and linear search. Best, worst and average case.

Vehicle routing problem with time windows and a limited number of vehicles

FUZZY CLUSTERING ANALYSIS OF DATA MINING: APPLICATION TO AN ACCIDENT MINING SYSTEM

Chapter 5 Linux Load Balancing Mechanisms

MINIMIZING STORAGE COST IN CLOUD COMPUTING ENVIRONMENT

A Hybrid Algorithm for the Fleet Size and Mix Vehicle Routing Problem

Network (Tree) Topology Inference Based on Prüfer Sequence

IMPROVING PERFORMANCE OF RANDOMIZED SIGNATURE SORT USING HASHING AND BITWISE OPERATORS

Solving a New Mathematical Model for a Periodic Vehicle Routing Problem by Particle Swarm Optimization

Kent Business School. Working Paper Series. A Multi-Objective Heuristic Approach for the Casualty Collection Points Location Problam

PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions. Outline. Performance oriented design

Analysis of a Production/Inventory System with Multiple Retailers

A Genetic Algorithm Approach for Solving a Flexible Job Shop Scheduling Problem

A Study of Crossover Operators for Genetic Algorithm and Proposal of a New Crossover Operator to Solve Open Shop Scheduling Problem

Good FORTRAN Programs

A Study of Local Optima in the Biobjective Travelling Salesman Problem

Resource Allocation Schemes for Gang Scheduling

The QOOL Algorithm for fast Online Optimization of Multiple Degree of Freedom Robot Locomotion

Transcription:

Journal of the Operational Research Society (2002) 53, 768 782 #2002 Operational Research Society Ltd. All rights reserved. 0160-5682/02 $15.00 www.palgrave-journals.com/jors Tabu search variants for the mix fleet routing problem NA Wassan 1 * and IH Osman 2 1 University of Kent at Canterbury, Canterbury, UK; and 2 American University of Beirut, Beirut, Lebanon The Mix Fleet Vehicle Routing Problem (MFVRP) involves the design of a set of minimum routes, originating and terminating at a central depot, for a fleet of heterogeneous s with various capacities, fixed s and variable s to service a set of customers with known demands. This paper develops new variants of a tabu search meta-heuristic for the MFVRP. These variants use a mix of different components, including reactive tabu search concepts; variable neighbourhoods, special data memory structures and hashing functions. The reactive concept is used in a new way to trigger the switch between simple moves for intensification and more complex ones for diversification of the search strategies. The special data structures are newly introduced to efficiently search the various neighbourhood spaces. The combination of data structures and strategic balance between intensification and diversification generates an efficient and robust implementation, which is very competitive with other algorithms in the literature on a set of benchmark instances for which some new best-known solutions are provided. Journal of the Operational Research Society (2002) 53, 768 782. doi:10.1057=palgrave.jors.2601344 Keywords: mix fleet routing problem; heterogeneous fleet; routing; local search; heuristics; meta-heuristics; tabu search; variable neighbourhood search Introduction The Mix Fleet Vehicle Routing Problem (MFVRP) is a variant of the well known Vehicle Routing Problem (VRP) and can be defined as follows. Let G ¼ðN; AÞ be an undirected network where N ¼f0;...; ng is the set of nodes and A ¼fði; jþ; i; j 2 Ng is the set of arcs. Node 0 represents the depot at which the fleet of s is located, while the remaining nodes correspond to customers. Each customer i has a non-negative demand q i. There are a number of types. Each of type t is characterised by its capacity Q t, its fixed F t and its variable per distance unit a t. Each pair of customers i and j is associated with a distance d ij and their travel by a of type t is c ij ¼ d ij a t. Each route must start and terminate at the depot; the total demand of a route must not exceed the capacity of the assigned to it and each customer must be visited exactly once. The objective of the MFVRP is to determine the optimal mix of heterogeneous s and their associated set of feasible routes that minimises the total variable and fixed subject to and customer restrictions. The MFVRP is a theoretically challenging and practically important problem. It generalises the classical routing problem as it includes the strategic decision on the *Correspondence: NA Wassan, Canterbury Business School, University of Kent at Canterbury, Kent CT2 7PE, UK. E-mail: N.A.Wassan@ukc.ac.uk fleet composition. Therefore, it is NP-hard. Furthermore, the MFVRP has been used to model many realistic applications including the grocery stores delivery problem, 1 the pet food and flour delivery problem, 2 and the mail collection problem. 3 In the literature, there are three MFVRP variants. First, the standard version is introduced by Golden et al. 4 It uses the same value for the variable s, regardless of the type, and also has an unlimited number of s of each type. Second, Salhi et al 5 study the effect of neglecting the variable s in the standard version and consider the variable s to be dependent on the type. Finally, Taillard 6 extends the second version by adding restrictions on the number of available s of each type t and set it equal to some constant m t instead of being unlimited. Due to the complexity of the MFVRP, some attempts have been made to formulate it using mixed integer linear programming. 4,5,7,8 But no exact algorithm for the MFVRP has ever been developed. On the other hand, several approximation algorithms have been proposed. These can be classified into classical heuristics and recent meta-heuristics. 9 The classical heuristics include the saving-based algorithms 4,5,10,11 which are modifications of the well known Clarke and Wright 12 savings procedure; the two-step composite algorithms such as the giant tour (GT) algorithm, 4 the lowerbound based algorithm 7 and the two-step heuristic; 8 the local search descent procedures. 13,14 Recently, the MFVRP has attracted the attention of the meta-heuristic researchers. Osman and Salhi 13 propose a

NA Wassan and IH Osman Mix fleet routing problem 769 short-term memory tabu search using 1-interchange neighbourhood. Ochi et al 15 present a hybrid meta-heuristic which uses parallel genetic algorithms and scatter search. Han and Cho 16 present a meta-heuristic based on threshold accepting and great deluge approaches. Taillard 6 develop a heuristics-column generation method based on an adaptive memory tabu search procedure. Finally, Gendreau et al 17 develop a tabu search approach by incorporating several strategies, diversifying the search by including a fleet change mechanism, and then embedding procedures. We refer to the comprehensive bibliographies 9,18 on routing and meta-heuristics. Laporte et al 19 stress that the time has probably come to concentrate on the development of faster and more robust algorithms. The determination of fleet sizes is also shown to be of practical importance in the recent paper by Sherali and Maguire. 20 In this paper, we aim to develop an efficient and robust tabu search meta-heuristic to determine the best composition of the fleet of s. The remaining parts of the paper are organised as follows. First, the TS components including the neighbourhood mechanisms and data structures are described. Second, our computational experience is reported. Last we conclude with remarks and discussion on further research. Tabu search meta-heuristic Tabu search belongs to the recent class of approximate methods called meta-heuristics. 21 It has had widespread success in attacking a variety of practical combinatorial optimisation problems. The basic TS meta-heuristic uses an aggressive guiding strategy to direct any local search procedure to carry out the exploration of the solution space in order to avoid getting trapped in local optima. When a local optimum is encountered the aggressive strategy moves to the best solution in the whole neighbourhood even if it may cause a deterioration in the objective value. To prevent the search from returning to previously visited solutions, TS uses memory structures to store attributes of the recently accepted solutions in a tabu list. Selected attributes that are stored in the tabu list are designated tabu-active and solutions that contain tabu-active elements are designated tabu. An attribute remains tabu-active for a duration of tt value, known as a tabu tenure before it is made not tabu-active. The TS algorithm continues its search for a total number of iterations before it is terminated. We refer to the books 22 24 for more details on TS theory and applications. Our TS meta-heuristic requires the definition of (i) an initial solution S; (ii) a neighbourhood mechanism to generate the set of neighbouring solutions N ðsþ; (iii) data management structures for efficient storage and retrieval of generated information and (iv) the set of components for the TS algorithm. Initial solution Salhi and Rand 25 generate a good initial solution for the VRP using a modification of the saving values, S ij, of Clarke and Wright 12 as follows: S ij ¼ c 0i þ c 0j gc ij where g is a saving multiplier. The VRP procedure is adopted to get an initial solution for the MFVRP quickly and further improve it by our TS algorithms. For each of type t, several initial solutions are produced using different values for the savings multiplier g taken from the range of ½0; 2Š, by tenths. The best of initial solution is then selected from all the generated ones after considering all the types. A heterogeneous fleet is reassigned, if possible, to the best generated set of routes in the initial solution in order to reduce the total fixed and variable s. Neighbourhood generation mechanism Let S ¼fR 1 ;...; R p ;...; R v g be a given MFVRP solution where v is the associated total number of s of all types. A neighbourhood generation mechanism specifies the set of operators that can be applied to S to generate moves to another solution S 0 in the neighbourhood of S; NðSÞ. For our implementation, we adapt the l-interchange mechanism introduced in Osman 26 for routing and grouping problems as follows. Given a pair of route sets ðr p ; R q Þ in S, a l- interchange move interchanges a subset S p of size js p jl from R p with another subset S q of size js q jl from R q to generate two new route sets R 0 p and R 0 q. The new routes could take the forms of R 0 p ¼fR p S p g[s q and R 0 q ¼fR q S q g[s p. It should be noted that the way of selecting the subsets S p and S q and reconnecting the broken segments of the associated routes would generate a different number of moves. Depending on the sizes of S p and S q we would have one of the following processes. First, if any of the sizes is zero, then we would have a shift process which shifts one non-empty subset from one route to another. Second, if both subsets are not empty, we would have an exchange process which exchanges the two subsets between the routes. The exchange process combines two shift processes simultaneously to generate compound moves that cannot be generated by consecutively applying any of the shift processes alone due to capacity=time restrictions. The size of the l-interchange neighbourhood is a function of the integer value of l. It is determined by the set of all possible solutions which are generated sequentially by considering all possible vðv 1Þ=2 combinations of pair of routes, ie ðr 1 ; R 2 Þ;...; ðr v 1 ; R v Þ. The sequential search of the neighbourhood has an advantage over the random sampling approach which may miss good improving solutions due to capacity=time restrictions. In addition, with a proper design of data structures, the whole neighbourhood

770 Journal of the Operational Research Society Vol. 53, No. 7 rather than a subset of it can be searched efficiently without sacrificing the quality of the solution. Finally, the l-interchange mechanism was successfully implemented for many routing, location and assignment problems. 27 32 Moreover, it has generalised many successful neighbourhood mechanisms such as the Or-opt, 33 2-opt*, 34 the CROSS exchange 35 and the chain-exchange. 36 In this study, we are going to examine four neighbourhood mechanisms generated by the l-interchange operators to study the effectiveness of simple moves and more complicated compound moves. These mechanisms are explained as follows: (i) 1-interchange mechanism uses two processes. The shift process is based on the ð1; 0Þ and ð0; 1Þ operators whereas the interchange process is based on the ð1; 1Þ operator. The ð1; 0Þ operator shifts a single customer from route R p to R q whereas the ð0; 1Þ operator shifts one single customer from R q to R p. The ð1; 1Þ operator attempts to exchange one customer from each route simultaneously to generate a compound move. For instance in Figure 1, customer (b) is taken out from the route and its predecessor and successor customers (a) and (c) are reconnected, and then it is re-inserted in the best position along each arc in the different routes. (ii) 2-interchange mechanism uses all the operators in (i) in addition to the following extra operators: the ð2; 0Þ and ð0; 2Þ shift operators and the ð1; 2Þ; ð2; 1Þ and ð2; 2Þ exchange operators. The extra shift and exchange operators basically work in the same way as in the 1-interchange mechanism. However, the extra operators attempt to shift or exchange any two consecutive or non-consecutive customers between routes. For instance in Figure 1, the ð2; 1Þ operator could exchange two non-consecutive customers (b and e) or consecutive (c and d) with a single customer from another route. (iii) 2-consecutive-node interchange mechanism is the restricted neighbourhood of the 2-interchange mechanism where only two-consecutive customers are considered by the ð2; 0Þ; ð0; 2Þ shift and the ð1; 2Þ; ð2; 1Þ; ð2; 2Þ exchange operators. The 2-consecutive-node neighbourhood is worthwhile as it still includes the 1-interchange neighbourhood in (i). (iv) Variable-node interchange mechanism considers variable sizes of consecutive nodes in the shift or exchange processes. In Figure 1, let R p be the route consisting of six customers, numbered from a to f with the depot duplicated Figure 1 Illustrations of some l-interchange moves. at its start and at the end, and let b and e be the two customers selected from this route in a 2-interchange move. Then the chain defined by b as its starting customer and e as its ending customer can be shifted to or exchanged with another chain from a different route, and the sequence of all customers including b and e can be removed, and a and f be reconnected by the dashed line as indicated in the lower side of the figure. In this case, the generated move can be viewed as a shift or exchange move of four customers generated by a l-interchange operator or a chain identified by its two ending points (b and e) and hence a special case of 2- interchange but with a different reconnection of customers than that considered in (ii). It should be noted that we always add an extra empty dummy route to be considered with the other non-empty routes in all the above generation mechanisms. The reason is that the shift operators may reduce the total number of the routes but would not allow for increases. A strategic oscillation is implemented to find the best number of s v through the extra dummy route and the shift operators if deemed beneficial. Data management structures TS meta-heuristic is an iterative search process that selects the best move from the whole neighbourhood space. The identification of such a move can be very expensive for large instances. Hence creating data management structures (DMS) to achieve a good speed-up is proved to be highly successful in the literature, including DMS 13,26 which were developed to manage information using two levels of memories for the 1-interchange neighbourhood. The first level stores the information about the routes and their s, capacities and customers, whereas the second level is used to identify the best move from a candidate list. The DMS advantage is that they are only initialised at the first iteration where all the moves in the whole neighbourhood are scanned and the best moves are stored in appropriate matrices. They are then updated carefully to reflect the changes made from one iteration to another while making proper use of any unchanged information. In particular, after performing a TS move, there are normally two routes involved and the others remain unchanged. Hence 2 ðv 1Þ pairs of routes may contain improved moves and need to be re-evaluated. In the case of adding a dummy route or removing an existing one, the DMS has to be reinitialised to reflect the new changes. In this paper, we extend the 1-interchange DMS and develop new ones for the different neighbourhood mechanisms (ii) (iv) using three levels of memory structures. Level-1 DMS record the information regarding the routes including s, distances, capacities and their customers. Three types of matrices are used: CAP-W, DIS-W and GAIN-W of dimensions v n to store for each route, the

NA Wassan and IH Osman Mix fleet routing problem 771 capacity, the distance, and the gain in distance without a customer or a subset of customers that are involved in the shift or exchange operators. The recorded values do not need to be recalculated, but only updated for the two routes involved in the performed move. Level-2 DMS store the information regarding the best insertion places for customers during the shift ð0; 1Þ; ð1; 0Þ; ð2; 0Þ and ð0; 2Þ operators. This level of DMS uses a matrix BEST-I of dimensions n 3v. For each customer, its best insertion in each route of the v routes is attempted. Each insertion can be identified by the additional insertion distance, the predecessor and successor customers in the given route. The stored information in Level-1 and 2 matrices are then used in the evaluation of moves generated by the exchange ð1; 1Þ; ð1; 2Þ; ð2; 1Þ and ð2; 2Þ operators. It should be noted that the evaluation of moves generated by any operators considers the utilisation of appropriate types, which may be different than the current ones if deemed beneficial. We shall illustrate special cases for evaluating moves by the 1-interchange operators. Similar ways can be applied to evaluate generated moves by the other neighbourhood mechanisms. Let R p and R q be two given routes involved in the exchange of process of customers i 2 R p with j 2 R q. Let c and e be the predecessor and successor of the best insertion of customer j in route R p, and f and g be the predecessor and successor of the best insertion of customer i in route R q. During the exchange process, the customers to be exchanged between the given pair of routes can be checked to see whether any of them is already recorded as a predecessor or a successor in any shift move as follows. Case 1. If neither of the out-going customers i nor j from ðr p ; R q Þ, is identical to the predecessors or successors of the best insertion positions of each other, then the exchange move is evaluated from the recorded information as if they were moved simultaneously using two independent shifts. Case 2. If only the out-going customer i from R p is identical to the predecessor or successor of the best insertion of customer j from R q, then the best insertion of customer j has to be re-defined in R p. In addition, since the recorded information on customer i do not involve j, they are used in the exchange move evaluation to R q. Case 3. If both of the out-going customers i and j of a given pair of routes ðr p ; R q Þ are identical to the recorded predecessors or successors of each other during the best insertion of shift moves, then both routes need to be redefined to find the new insertion values. In the case of re-calculation, only three positions are considered, ie, the position of out-going customer and its predecessor and successor positions. The reason is that the best insertion is more likely to be in the same area of previous best insertion positions, and would save a lot of computation time. Level-3 DMS store the candidate list of best moves for each of the vðv 1Þ=2 pair of routes. It consists of two matrices. The first matrix is of a dimension v v where the upper triangle records the best move values for each ðr p ; R q Þ pair of routes. Such a move has the highest evaluation among all moves that are sequentially and systematically generated by all the shift and exchange operators operated on the given pair of routes. The lower triangle stores the positional indices Y of the associated moves. The second matrix is of a dimension ½vðv 1Þ=2ŠA. The parameter A represents the number of columns for recorded attributes of an interchange move. The value of A can be increased or decreased depending on the necessary attributes to be stored. In this study, a maximum value of A ¼ 12 is used. The positional index Y provides the links between the two matrices and it is very essential when updating and retrieving parts of the candidate list. In the case of the variablenode interchange move, the move is sufficiently identified by its two-end customers, ie its first and last customers in the various DMS. Tabu search components In addition to defining the neighbourhood mechanisms and their appropriate DMS, the success of our TS algorithm depends on the setting of the following special components. Tabu list uses a short term memory to record some attributes of performed moves in order to determine their future tabu status. The tabu list takes the form of a matrix TABS of dimension n v. Selected attributes of recently performed moves are stored in TABS for a duration of tt iterations. The attributes to store depend on the type of operators which generates the performed move and the level of accuracy needed to identify it. For instance, a 2-interchange (2- consecutive) move can be determined for its two customers i and j ð i þ 1Þ taken from route R p to be shifted or exchanged with the other two customers l and s ðl þ 1Þ from R q. For such a move, TABS is set as follows: TABSð p; iþ ¼TABSð p; jþ ¼tt and TABSðq; lþ ¼ TABSðq; sþ ¼tt. Avariable-node move is determined by its beginning and ending customers i and j from R p to be shifted or exchanged with another variable chain with respective starting and ending customers l and s from R q, the middle nodes are not stored in TABS list and the storage of such moves is done in a similar way to the 2-interchange move. Tabu restrictions are criteria to define the status of a tabu move. There are a few guidelines for choosing good tabu restrictions in the literature. The following tabu restrictions are used in our implementation: a 2-interchange (or 2- consecutive) move is considered tabu if customers i and j and customers l and s are returning back to R p and R q, respectively. Similarly, a variable-node move is considered tabu if the two-end customers of each chain are returned back to their previous routes, ie the middle customers of each chain are allowed to return individually. Aspiration criterion and stopping rule: the aspiration criterion overrides the tabu status of a tabu-active move and make it

772 Journal of the Operational Research Society Vol. 53, No. 7 admissible if the move leads to a new best solution. Our TS algorithm is terminated after performing a total number, T itr ¼ 200 n, of iterations on each instance. Tabu tenure schemes Tabu tenure schemes are ways to determine and control the change in the tabu tenure, tt value. We have implemented a number of schemes from the literature in addition to designing a few of our own. These are explained as follows: (i) TS scheme 23 (F-tabu) is one of the earliest approach which uses a fixed tt value during the entire search. (ii) Robust TS scheme 37 (Rb-tabu) uses randomly selected tt values from a given range. During the search, the tt value is periodically changed after performing m iterations, where m is also a randomly chosen number from a given range. (iii) Periodic TS scheme 26,38 (P-TS) changes periodically the tt values in a systematic and cyclic way from small, medium to large values. The TS algorithm performs m iterations at each tt value before it is re-assigned another value. (iv) Reversed deterministic TS scheme (Rd-tabu) is a new proposed scheme which changes and reverses the tt values during the search. This was motivated by the work 13 which uses a series of predefined fixed tt values, where ½tt ¼ n=pš and p is taking a different value from 2 7 for each single run. The Rd-tabu scheme dynamically changes the tt values during the search process. tt takes a series of values computed by dividing the problem size n systematically by p, after every m iterations, ie tt ¼ n=p and m ¼ T itr=n p, where T itr is total number of iterations to be performed. Initially, p takes the value of 9 and then decreases by one after performing m iterations. Upon reaching a value of 1, it is then restarted from 9 and the search is continued until the algorithm is terminated. In this way, we are able to control the diversification by using small values of p and the intensification by using larger values of p. (v) Reactive TS scheme (RTS-O) is considered to be the most promising among the different tabu search schemes in the literature. It was proposed by Battiti and Tecchiolli 39 to provide a balance between diversification and intensification search strategies using two different mechanisms. These mechanisms rely on detection of repeated solutions. The first mechanism provides a diversification of the search by executing a large number of random moves in order to escape the domain of the chaotic attractor whenever REP solutions have been repeated CHAOS times. The second mechanism provides a dynamic control of the tabu tenure values using the number of iterations between repeated solutions. The tabu tenure value is increased if a repeated solution is detected and it is decreased slowly over time if there was no repetition. 27,32 The components of RTS are next explained. (I) Hashing functions. RTS requires a method to determine if a solution has been previously visited, and if so, how long ago. Two methods are used to store representative information on visited solutions. These are the Unordered Linear Arrays (ULS) and the Hash Function Search (HFS) methods. 40 Both methods require a code, Sr, to be calculated for each solution. For our MFVRP, Sr is set to the sum of (overall routes) the product of the customer index x j and the total number of customers in its corresponding route jr p j: Sr ¼ Pv P x j jr p j p¼1 x j 2R p (a) The unordered linear search (ULS). Our ULS procedure uses a single array ULS of dimension equals to the maximum number of iterations to be performed. Once a given solution is accepted, its Sr value is computed and then stored in the next empty entry in the ULS array. To check the existence of a given value, the ULS starts the search from the beginning of the array until the end of it. (b) The hashing function search (HFS). The HFS procedure has a different mechanism to store and check repeated solutions than ULS. For each solution, its Sr value is computed and then divided by the largest prime number smaller than the total number of iterations T itr to be performed. HFS uses a matrix of dimensions T itr 10, where the first column is to store a KEY for each solution and the other columns are to store Sr values. It can happen that more than one solution have the same key, hence collisions might happen. To avoid such collision, the extra columns are needed. The HFS procedure provides a quick way to identify the existence of repeated solutions and sketched as follows: Step 1: Initialise HFS matrix to zero. Set PRIME ¼ T itr 3, REMD ¼ MODðSr; PRIMEÞ; and KEY ¼ REMD PRIME þ 1: Step 2: (a) Set r ¼ 1, {Column index}. (b) If fhfs ðkey; rþ 6¼0g Then r ¼ r þ 1. (c) Repeat (b) until HFSðKEY; rþ ¼0 and set HFSðKEY; rþ ¼Sr. (II) The RTS-O procedural steps. Step 0: Initialisation of RTS parameters Note that this step can also be done with other tabu search parameters initialisation. tt ¼ 1 an initial tabu tenure value; Repetition ¼ 0 Chaotic ¼ 0 a repetition counter; a constant limit to the often-repeated sets;

NA Wassan and IH Osman Mix fleet routing problem 773 REP ¼ 3 a counter for often-repeated solutions; CHAOS ¼ 3 the maximum allowed number of often-repeated sets; INCREASE ¼ 1:1 a percentage increase for the tabu tenure value; DECREASE ¼ 0:9 a percentage decrease for the tabu tenure value; MOVAVG ¼ 0 a moving average for the detected repetitions; LastChange ¼ 0 the number of iterations since the last change in tabu tenure value; GapRept ¼ 0 the gap between two consecutive repetitions; GapMax ¼ 50 a constant used to compare with GapRept to get the moving average MOVAVG; LasTimeRept ¼ 0 the iteration number when last time an identical solution was noticed; CurTimeRept ¼ 0 the iteration number of the most recent repetition; TABSð:;:Þ¼0 the tabu list matrix. Step 1: {Compute the Sr value for the accepted solution} If {Sr is found in the ULS=HFS hashed array} Then, GapRept ¼ CurTimeRept LasTimeRept; and Repetition ¼ Repetition þ 1 Else, add Sr to the ULS=HFS hashed array, and go to Step 4. Step 2: {Check for repetition} If frepetition > REPg Then, Repetition ¼ 0, and Chaotic ¼ Chaotic þ 1. Else, go to Step 3. If fchaotic > CHAOSg Then, Chaotic ¼ 0, and go to step 5 for diversification Else, go to Step 3. Step 3: {Increase the tabu tenure value} If fgaprept < GapMaxg Then MOVAVG ¼ 0:1 GapRept þ 0:9 MOVAVG; tt ¼ tt INCREASE; LastChange ¼ 0; and go to Step 6: Else, go to Step 4. Step 4: {Decrease the tabu tenure value} If flastchange > MOVAVGg Then tt ¼ tt DECREASE; and LastChange ¼ 0: Else, LastChange ¼ LastChange þ 1, and go to Step 6. Step 5: {the escape procedure} (i) Select a neighbourhood mechanism for the diversification moves. (ii) Set the current and best escape solutions to S, ie S c ¼ S and S b ¼ S. (iii) Set Escp itr ¼ w n, an iteration number to be performed, w is a parameter set to 2. (iv) Choose the best admissible solution, S 0 from the candidate list of NðS c Þ. (v) If fcðs 0 Þ < CðS b Þg Then, update S b ¼ S 0 and S c ¼ S 0 Else, S c ¼ S 0. (vi) Repeat step (iv) and (v) until Escp itr iterations are performed. (vii) Return to the main program by setting S ¼ S b (if found) or S ¼ S c. Step 6: Stop RTS procedure. For the escape procedure in Step 5, two strategies are used. Strategy I: the main TS algorithm uses the 1-interchange neighbourhood, whereas the ð0; 2Þ; ð2; 0Þ and ð2; 2Þ operators of the 2-consecutive-node mechanism are used for generating moves for the escape procedure. Strategy II: the main TS algorithm uses the 1-interchange mechanism and the ð0; 2Þ; ð2; 0Þ and ð2; 2Þ operators of the 2-consecutive-node mechanism, whereas the other ð1; 2Þ; ð2; 1Þ operators are used for the escape diversification procedure. It should be noted that our RTS scheme is different than that in the literature. First, a number of random moves 39 were generated for diversification from that of intensification s neighbourhood. However, in our implementation, more complex moves are strategically generated for diversification, that are different from those simple moves used for intensification in the main algorithm. It is like generating some global complex moves for diversification while using local simple moves for intensification. It is a kind of variable neighbourhood search strategy. 41 Second, we have used different values for computing the RTS parameters. The general TS-MFVRP procedure The generic steps of the TS procedure are as follows: Step 1: Generate an initial solution The initial solution S is obtained as indicated at the start of the paper. Set the current best solution S best ¼ S and set C itr ¼ 0 (current iteration counter). Step 2: Tabu search initialisation Set the appropriate values for the parameters of the chosen tabu tenure scheme. Set the total number of iterations T itr, and B iter ¼ 0 (best iteration counter). Set the tabu list matrix and other data structure matrices to zero. Step 3: Initialisation of data structures Perform one complete cycle of search using the predefined neighbourhood mechanism to initialise the three levels of data structures for move evaluations and selections.

774 Journal of the Operational Research Society Vol. 53, No. 7 Step 4: Scan of data structures Scan Level-3 data structure to find the best admissible solution S 0 from its candidate list. Set the current solution S to S 0 and C itr ¼ C itr þ 1. Apply 2-opt and 3-opt arc exchange heuristics as a post-optimiser to S. Step 5: Update of tabu search scheme Update the components of tabu list and its associated components of the selected TS scheme. When reactive TS scheme is used, all TABS and hashed entries are initialised to zero before the call of escape mechanism. Step 6: Special update of data structures Update Level-1 data structures based on the two changed routes of the accepted solution. Update strategically the candidate list of solutions in Level-3 data structure. If a new dummy route is added or an existing route is deleted then update the whole matrices of all levels of the data structures by performing a new cycle of search. Step 7: Update of the best solution If fcðsþ < CðS best Þg Then, set S best ¼ S and B itr ¼ C itr. Step 8: Termination If fc itr ¼ T itrg Then, Stop, and report S best and Bst itr, Else go to Step 4. It should be noted that in the above general procedure one can generate many TS variants. Each TS variant depends on the selection of the neighbourhood mechanism, the tabu restrictions to determine the tabu status of moves, the tabu tenure schemes. Hence a class of TS variants can be emerged, the best TS variant will be determined empirically as shown in the section on computational experience. Computational experience Computational experiments are reported using two sets of instances from the literature. The first set contains 20 instances 4 with sizes varying from 12 100 customers. The second set consists of 8 instances, 6 with sizes varying from 50 100 customers. The characteristic of the second set is that the fixed s in the first set is replaced by variable s. The developed algorithms are coded in Fortran 77, and run on a Sun Sparc server 1000 with 50 MHz processor (10 Mflop=s) under the Solaris 2.3 operating system. We report the performance of machines in terms of Mflop=s (millions of floating-point operations completed per second) using the benchmark results in Dongarra 42 The following abbreviations are used in our tables of results: No: Serial number of the instance. NB: instances better or equal to published solutions. RPD: Relative Percentage Deviation above the best known solution. ARPD: Average of RPDs for a set of instances. RPI: Relative Percentage Improvement over initial solution. ARPI: Average of RPIs over the set of instances. SD: Standard deviation. Size: Size of the instance. TimeT: Total CPU time in seconds to stop. TimeB: CPU time to best in seconds. Avg-TimeB: Average TimeB over the set of instances where RPI ¼fðinitial solution heuristic solutionþ=initial solutiong 100; and RPD ¼fðheuristic solution best-known solutionþ=best-known solutiong100: In the following, the effects of various TS components on the performance of the TS meta-heuristic are initially investigated in Tables 1 and 2 using a total of 100 n iterations per run on each instance of the first data set. The best implementation and parameter settings are then identified and used for reporting our computational results in Tables 3 5 using a total of 200 n iterations per run on each instance. Table 1 Statistical figures for TS variants with and without data structures Without any DMS With all DMS but no Level-2 With all DMS Avg-TimeB 1120 450 136 ARPD 0.78 0.68 0.92 SD 1.30 1.17 1.59 Table 2 Computational results of four neighbourhood mechanisms l ¼ 1 l ¼ 2 2-consecutive Variable-node Avg-TimeB 93.7 4368.6 473.8 4682.3 ARPI 4.38 4.68 4.90 4.54 ARPD 0.88 0.49 0.33 0.72 SD 1.46 0.74 0.58 1.98

NA Wassan and IH Osman Mix fleet routing problem 775 Table 3 Comparison of different tabu search schemes using the 2-consecutive node No Size I.Sol F-tabu TimeB Rd-tabu TimeB Rb-tabu TimeB RTS-O TimeB RTS-M TimeB RTS-F TimeB 1 12 640.00 602.00 2 602.00 6 602.00 1 602.00 19 602.00 2 602.00 3 2 12 788.00 722.00 1 722.00 1 722.00 1 722.00 1 788.00 1 722.00 1 3 20 983.18 963.18 5 961.03 5 962.18 31 964.65 2 964.64 31 961.02 69 4 20 7412.06 6437.33 86 6437.33 32 6437.33 7 6437.33 31 6437.34 45 6437.29 120 5 20 1015.65 1015.34 1 1007.05 46 1007.05 72 1015.34 1 1007.04 49 1007.03 92 6 20 6516.56 6516.47 43 6516.47 13 6516.47 29 6516.47 1 6516.47 12 6516.47 55 7 30 8769.00 7284.00 64 7284.00 17 7273.00 177 7288.00 48 7284.00 71 7273.00 250 8 30 2428.00 2346.00 74 2346.00 41 2346.00 22 2346.00 136 2346.00 10 2346.00 223 9 30 2369.00 2209.00 3 2209.00 10 2209.00 3 2209.00 3 2209.00 3 2209.00 3 10 30 2430.00 2355.00 71 2358.00 15 2355.00 76 2355.00 73 2355.00 5 2355.00 60 11 30 5270.00 4755.00 8 4755.00 129 4755.00 24 4759.00 19 4755.00 39 4755.00 100 12 30 4092.00 4092.00 4 4092.00 4 4092.00 4 4092.00 4 4092.00 3 4092.00 687 13 50 2588.57 2451.75 35 2456.24 310 2437.99 107 2479.28 48 2424.15 293 2432.90 671 14 50 9660.86 9126.15 430 9121.72 759 9122.92 288 9120.11 295 9128.25 149 9120.12 750 15 50 2658.82 2612.75 17 2587.37 465 2601.22 273 2613.21 71 2587.34 257 2586.38 1122 16 50 2882.06 2741.50 561 2741.50 749 2739.17 915 2745.88 53 2741.49 1111 2733.79 1988 17 75 1788.61 1755.10 1399 1765.96 153 1755.10 630 1763.34 112 1760.30 3296 1755.11 2864 18 75 2486.14 2454.81 376 2386.96 481 2438.45 467 2442.49 1599 2395.95 1724 2404.72 2149 19 100 8746.18 8667.60 395 8669.67 4139 8659.85 4405 8670.37 4331 8674.11 1565 8665.59 2035 20 100 4270.29 4129.03 1860 4126.76 1975 4119.43 2283 4089.20 850 4072.75 6343 4065.44 5811 Avg-TimeB 204.3 473.8 480.3 384.8 749.9 952.65 ARPD 0.52 0.32 0.36 0.54 0.20 0.17 SD 0.88 0.60 0.71 0.86 0.29 0.35 F-tabu: Fix tabu search. Rd-tabu: Reverse deterministic tabu search. Rb-tabu: Robust tabu search method. RTS-O: Reactive Tabu Search (Battiti and Tecchiolli s version). RTS-M: Reactive Tabu Search (Our modified version). RTS-F: Reactive Tabu Search (with best parameter settings). Table 4 Comparison of the different results with our overall best solutions No Size Osman and Salhi 13 TimeT Taillard 6 TimeT Gendreau et al 17 TimeB Liu and Shen 11 Our Best TimeB TimeT 1 12 602.00 3 602 602.00 1 17 2 12 722.00 2 722 722.00 1 16 3 20 971.95 5 961.03 961.03 164 972 961.03 69 88 4 20 6445.10 6 6437.33 6437.33 253 6475 6437.33 50 80 5 20 1009.15 5 1008.59 1007.05 164 1014 1007.05 63 52 6 20 6516.56 4 6516.47 6516.47 309 6516 6516.47 1 88 7 30 7310 15 7313 7273 63 113 8 30 2348 17 2347 2346 11 288 9 30 2209 14 2209 2209 3 358 10 30 2363 14 2368 2355 60 229 11 30 4755 19 4778 4755 64 342 12 30 4092 10 4092 4087 333 458 13 50 2471.07 62 2413.78 470 2408.41 724 2465 2422.10 293 2084 14 50 9125.65 71 9119.03 570 9119.03 1033 9132 9119.86 485 1660 15 50 2600.31 46 2586.37 334 2586.37 901 2608 2586.37 1122 2349 16 50 2745.01 35 2741.50 349 2741.50 815 2809 2730.08 537 689 17 75 1762.05 85 1747.24 2072 1749.50 1022 1806 1755.10 1402 1874 18 75 2412.56 116 2373.63 2744 2381.43 691 2416 2385.52 1516 2261 19 100 8685.71 289 8661.81 12528 8675.16 1687 8684 8659.74 2001 8570 20 100 4166.03 306 4047.55 2117 4086.76 1421 4148 4061.64 1918 2692 NB 5 8 7 4 15

776 Journal of the Operational Research Society Vol. 53, No. 7 Table 5 Comparative results for the 8 instances with variable s No Size Taillard 6 TimeT Gendreau et al 17 TimeB Our Best TimeB TimeT 13 50 1494.58 473 1491.86 626 1499.69 140 276 14 50 603.21 575 603.21 669 608.57 575 695 15 50 1007.35 335 999.82 736 999.82 289 893 16 50 1144.39 350 1136.63 852 1131.00 246 668 17 75 1044.93 2245 1031.00 1453 1047.74 2156 2222 18 75 1831.24 2876 1801.40 1487 1814.11 2469 2847 19 100 1110.96 5833 1105.44 1681 1100.56 2553 6009 20 100 1550.36 3402 1541.18 1706 1530.16 2910 3174 NB 1 5 4 The effect of data management structure The general TS algorithm is implemented with simple settings of TS components with the 1-interchange mechanism in Step 3, and different DMS levels in Step 6 resulting in three TS implementations, namely Without any DMS levels, With all levels but without Level-2 and With all DMS levels. All three implementations use a fixed TS scheme with tt ¼ 11 which is chosen after making several trials in the range of ½2; 20Š. The computational results of these implementations are reported in Table 1. The With all DMS levels implementation has achieved a huge reduction factor of 8.2 in terms of CPU seconds over the Without any levels one. The price for such a reduction is a slight deterioration in the ARPD value. However, the deterioration does not always occur as it may also be an improvement as can be seen in the Without Level-2 implementation. The reason is that the approximate re-evaluation of insertions in Level-2 DMS may lead to different search paths than that would have been generated by the implementation without any DMS. Hence, the With all DMS will be used in our different implementations and more savings in terms of CPU time would be expected with more complex neighbourhood mechanisms and a longer number of iterations. The effect of neighbourhood mechanism The main TS algorithm is implemented with the Rd-tabu scheme to study the effect of the different neighbourhood mechanisms, namely (i) (iv), on the performance of the TS algorithm. The Rd-tabu scheme is selected as it is one of the best performing TS schemes, as will be shown later. The computational results of the four implementations are reported in Table 2. It can be seen that the 1-interchange mechanism is able to provide a good relative percentage improvement of 4.38 within a short CPU time. Moreover both of the 2-interchange and the 2-consecutive-node interchange mechanisms improve the ARPD value of the 1- interchange mechanism, and are more robust with better standard deviations. This kind of result is expected as the two neighbourhoods include the 1-interchange mechanism as a subset. However, the unstable results are mostly produced by the variable-node interchange mechanism with its highest SD value and CPU time. The highest standard deviation is due to the poor performance on problems 2 and 3 and early convergence on some other problems. However, it should be mentioned that with this neighbourhood four best solutions are found for instances of large sizes, namely problems 7, 13, 18 and 20. One possible remedy could be to run the 1-interchange mechanism for a number of iterations followed by the variable-node mechanism. Note that all the four tested implementations use all levels of data management structures. Taking into account both the quality of solution and CPU time, it can be deduced that the 2-consecutive-node mechanism is the one to be considered for the rest of our experiments. The effect of TS schemes First, the F-tabu, Rb-tabu, Rd-tabu and the original reactive implementation (RTS-O) schemes are compared. Next, a discussion on implementation issues is presented. For the comparison, the settings of the F-tabu and Rd-tabu schemes are explained in the text whereas the settings of Rb-tabu are obtained after several trials. Rb-tabu scheme found better results when the tt values are randomly varied for the Rbtabu scheme in the range [1 24] after every M iterations, where M was randomly chosen from the range [12 48]. The RTS-O procedure uses the original 39 settings with an escape mechanism based on random repositioning of two customers by swapping their positions within their respective routes in Step 5 (i). The number of repositioning is random proportional to the moving average, MOVAVG, of the gaps between recently encountered repetitions. The computational results from these schemes are reported in Table 3, from which the followings would be observed. First, the introduction of the 2-consecutive mechanism produces improved solutions over the 1-interchange mechanism while using a higher CPU time regardless the embedded TS schemes. Second, our reverse

NA Wassan and IH Osman Mix fleet routing problem 777 deterministic Rd-tabu, which uses a dynamic control procedure for setting the tt values, outperformed the random and fixed schemes. Last, the RTS-O scheme are the worst among the classical scheme in terms of ARPD and SD values. This performance may be due to the random moves used for the escape diversification mechanism, despite the good embedded procedure which invokes the diversification mechanism. The unexpected results invited us to investigate the effect of different settings for the RTS-O scheme. Different trials are conducted to find the best values for the CHAOS, INCREASE, DECREASE, MOVAVG and Escp itr parameters that control the tt values and the number of iterations to be performed at each call for diversification. A modification is introduced in which every repetition is counted instead of often-repeated solutions. Better results are found when all kinds of repetitions are counted with the following settings: CHAOS ¼ 3; INCREASE ¼ 1:1; DECREASE ¼ 0:8; MOVAVG ¼ 0:1 GapRept þ 0:7 MOVAVG and Escp itr ¼ 2 n. Another modification is introduced in which the random repositioning of customers is replaced by a deterministic approach which generates more complex moves for the diversification procedure with an escape from the current solution instead from the best found solution. To investigate this new diversification strategy, the set of 2-consecutive-node operators is split into three sub-groups of operators: the 1-interchange, i.e. G1 ¼ð1; 0Þ; ð0; 1Þ and ð1; 1Þ; G2 ¼ð0; 2Þ; ð2; 0Þ and ð2; 2Þ and G3 ¼ð1; 2Þ and ð2; 1Þ. Two reactive TS implementations (RTS-M and RTS-F) are then derived. Both use the above settings for the TS parameters but differ in the implemented neighbourhood mechanism for the main algorithm and for the diversification procedure. RTS-M uses G1 in the main algorithm with G2 for diversification (strategy I) while RTS-F uses G1 and G2 in the main with G3 for diversification (strategy II). The results from these two modifications are reported in the last four columns of Table 3. It can be seen that the new diversification mechanism produces an improvement over the classical RTS-O scheme. Moreover, new best known solutions are found during the search process. In a single experiment on the set of 20 instances, out of a total of 261 improved solutions, 50 used the escape mechanism process, which is about 19% of total improvement. Hence it is not sufficient to have a good dynamic control of the tabu tenure without a proper diversification to obtain good results. This can also be demonstrated by comparing the results of Rd-tabu and Rb-tabu that use the 2-consecutive-node mechanism in their main algorithms without diversification versus RTS-M and RTS-F that use some subsets of the 2-consecutive-node operators in the main and some operators for diversification. The last point in our investigation is the effect of hashing techniques on the CPU time for the RTS schemes. There is a less significant advantage in using HFS over ULS techniques. The reason the CPU time for ULS is so close to HFS time is due to the early detection of the repetition of moves before searching the whole array since we are only counting all repetition rather the often-repeated moves. Generally, the usage of HFS is advisable although collisions have been noticed during the search. The introduction of extra columns to store=retrieve overflows would not take extra CPU times because of a small number of collisions. Comparison of the computational results We report in Table 4 results corresponding to the first set of 20 instances with fixed s and no variable s. The results are from left to right as follows. The results 13 in column 2 are the best reported from a single tabu search with 1-interchange mechanism with a corresponding total CPU time in seconds to stop in column 3 on a Vax 4500 machine (5.5 Mflop=s). The results 6 in column 4 are the best solutions from five different runs. Each run generates a large number of routes using a tabu search approach, and then it selects the final set of routes by solving a set-partitioning problem. The corresponding average total CPU times in seconds per run are reported in column 6 on a Sun Sparc 10 workstation with 50 MHz (10 Mflops). The results in column 7 are the best solutions from ten different runs. The corresponding average CPU times in seconds to best per instance are reported in column 8 on a Sun Spark 10 (50 Mhz). The results 11 in column 9 are the best of different runs without reporting CPU time on Pentuim 233 Mhz personal computer. The last three column are our best solutions from 5 different runs. These runs are obtained from the RTS-F algorithm by setting the total number of diversification iterations Escp itr to take one value from the set 1 n;...; 5 n for each run. The corresponding average of distances are 3682.47, 3561.99, 3654.68, 3655.10, and 3655.21, respectively. It can be seen that the best setting value for Escp itr is 2 n, with which most of the best solution values are obtained and a few best solutions are found with higher diversification iterations. For an unknown reason, there were no results reported for the set of instances of size 12 and 30 by Taillard 6 and Gendreau et al. 17 The bold values are either the best known or new best values obtained by the compared algorithms. The full sequences of new solutions are provided in the Appendix. The results presented in Table 4, indicate that our algorithm always generates better results than the others that are tested on the whole 20 instances. It is also very competitive with those algorithms 6,17 with incomplete results. In general, our reactive algorithm obtains 15 better or equal solution values, including 6 new best-known solution values. In cases, where the best-known solutions are not obtained, good solutions are generated with smaller numbers of routes, eg the solutions for problems 17 and 18 use 7 and 16 routes as compared to the published numbers of 8 and 17, respectively. In addition to the solutions, the

778 Journal of the Operational Research Society Vol. 53, No. 7 CPU time to best (TimeB) and the total CPU time (TimeT) are also reported in the tables. It is becoming very difficult to compare algorithms as it is not only the speed of the CPU that indicates the performance cache, main memory, size of instances and compiler also play a role. The reported Mflop=s are provided to help in giving a rough idea of the computational requirement of each algorithm. It seems that the Osman and Salhi algorithm is the fastest while the others use more CPU time on comparable machines. The extra CPU time may be justifiable by the high quality of the obtained solutions. Under the same settings of RTS parameters used for the first data set, we tested our RTS algorithm on a second data set of 8 instances with variable s. Since our RTS algorithm is quite robust, only two runs are executed on this set. The solution values are provided in Table 5. We compare our best solution values with Taillard 6 and Gendreau et al 17 that use several runs similar to the first data set. The computational results in Table 5 shows that our RTS algorithm produces better results than Taillard, 6 but it is comparable to that of Gendreau et al. 17 It should be mentioned that, for problem 20, we have obtained two best-known solutions. The first solution is with a value of 1530.16 using 13 s whereas the second one is of value 1533.12 using 12 s. The above observation demonstrates the flexibility of our RTS algorithm and the choice it can give to a fleet manager to decide between using a fixed fleet size or optimising it. Finally it is surprising to notice a complimentary scenario in which each algorithm succeeds in finding best-known solutions for instances where the other fails. There is no obvious explanation for the above scenario other than the combinatorial nature of the problems and a further investigation is needed. Conclusion We have described several variants of TS meta-heuristic for the mix fleet routing problem. The effects of the data memory structures, the neighbourhood mechanisms, the tabu search schemes on the quality of solution and computational requirements are investigated. In fact, the investigation in this paper has provided a grounding in the essential ideas of tabu search that facilitates the creation of other successful applications. First, the new way of using reactive tabu is shown to be better than its classical approach. The classical approach uses a number of random moves for diversification from the same neighbourhood of intensification. We have used different and deterministic moves for diversification like variable neighbourhood search. In fact, the repetition of solutions concept of reactive tabu search is used to provide a strategic switch between the 1-interchange operators for intensification and the more complex 2-consecutive-interchange operators for diversification. Second, it was a common belief that, if one uses a large neighbourhood, one would obtain good solutions at a high CPU time. We show that it is not the large neighbourhood that gives good results, but it is how you are strategically splitting the neighbourhood and how efficiently you are searching it. Third, the combination of data structures, hashing functions and the strategic balance between diversification and intensification generate an efficient and robust implementation with a speed-up factor of more than 8. Such a speed-up is very essential if we need our algorithm to be used in commercial packages. Finally, the flexibility of our implementation suggests that they can be easily adopted for several other location, routing and scheduling problems. The competency can clearly be seen from the computational experience where the developed algorithm proved to be efficient not only in terms of CPU time saving but also it performed equally well and provided new best-known solutions for instances proposed in the literature. These contributions are a step in the right direction and stimulate further research. 32 Appendix Solutions with fixed (Golden et al 4 instances) Here solutions for problems 17 and 18 with smaller number of routes are also provided with best-known solutions. Problem 1 4 4 12 11 9 60 100 112 2 3 2 32 50 42 2 6 5 31 50 56 4 7 10 8 1 59 100 92 Problem 2 Solution : 602 7 6 8 9 11 12 10 7 107 300 116 1 5 17 60 44 2 2 1 29 60 28 2 4 3 29 60 54 Solution : 722

NA Wassan and IH Osman Mix fleet routing problem 779 Problem 7 2 20 30 140 800 144 2 24 28 100 500 184 5 26 27 7 13 22 140 800 217 3 23 29 4 140 800 177 3 8 25 21 98 500 166 1 2 34 150 76 2 19 10 198 1200 173 9 3 6 5 11 16 15 9 14 17 99 500 218 3 1 18 12 94 500 168 Problem 8 Solution : 7273 Load customers Route 5 24 28 4 3 22 142 200 190 15 112262714915713 368 600 240 11 16 5 6 29 23 3 17 21 30 150 200 140 7 20 25 8 10 19 18 2 383 600 176 Problem 9 Solution : 2346 7 23 14 27 26 8 25 20 288 400 208 14 22 6 5 11 16 15 9 7 13 279 400 235 29 28 4 3 24 5 1 18 19 10 12 292 400 183 4 2 30 21 17 184 240 143 Problem 10 Solution : 2209 2 10 19 198 240 173 3 2 1 17 76 100 86 3 21 30 25 192 240 160 9 2313756284322 189 240 228 4 8 26 27 18 193 240 207 9 20 12 14 9 15 16 11 29 24 195 240 201 Solution : 2355 Problem 11 7 23 5 6 28 4 3 22 184 700 220 3 25 30 21 192 700 160 11 24297131116159 200 700 209 14 12 20 2 10 19 198 700 173 3 2 1 17 76 200 86 4 8 26 27 18 193 700 207 Problem 12 Solution : 4755 1 2 34 80 76 4 1 20 25 17 119 300 147 6 24 13 27 26 10 8 180 500 223 3 18 30 21 177 500 169 1 19 173 500 164 7 4 28 7 15 9 14 12 180 500 221 8 22 3 29 11 16 5 6 23 180 500 207 Problem 16 11 17 37 44 15 45 33 39 10 Solution : 4087.00 140 400 121.13 30 34 46 6 48 8 26 31 28 22 80 200 79.47 5 42 19 40 41 13 79 200 101.16 6 1 3 36 35 20 29 80 200 97.50 5 27 7 43 24 47 80 200 87.94 5 32 2 21 16 38 80 200 71.24 5 5 49 9 50 11 79 200 61.05 4 6 23 14 25 80 200 67.59 3 18 4 12 79 200 42.97 Problem 17 Solution : 2730.08 9 75 2 62 28 61 21 74 30 4 198 150 81.33 13 6833731226442434156 200 150 121.25 23 63 51 10 17 40 3 44 32 9 39 72 12 26 189 150 72.39 8 38 65 66 11 59 14 53 7 199 150 101.89 10 34 52 27 13 54 19 35 8 46 67 191 150 70.74 11 58 10 31 55 25 50 18 24 49 198 150 135.58 16 6 14 45295155737207060 71 69 36 47 48 199 150 121.89 Solution : 1755.10

780 Journal of the Operational Research Society Vol. 53, No. 7 Problem 18 5 19 59 14 35 7 95 100 80.97 5 72 10 31 39 9 97 100 85.63 10 537207060713669 148 180 116.71 61 28 7 8 54 13 57 15 29 45 100 100 77.87 2 75 4 50 35 15.45 2 26 67 48 35 17.12 6 68 2 73 1 63 33 98 100 61.29 6 53 11 66 65 38 58 150 180 79.45 2 52 27 46 35 34.42 10 62 22 64 42 43 41 56 23 150 180 119.52 49 3 2 12 40 49 35 31.32 6 44 24 18 55 25 50 100 100 109.81 2 32 17 48 35 44.47 3 51 16 6 50 35 40.97 5 74 21 47 48 30 99 100 62.10 2 46 34 46 35 23.41 Problem 19 Solution : 2385.58 8 70 20 66 65 71 35 34 78 99 500 118.94 9 60834636496411 99 500 118.84 62 88 6 98 91 44 86 38 14 100 500 90.46 6 55 25 39 67 23 56 99 500 101.88 5 7 19 47 48 18 97 500 76.56 7 50 33 81 9 51 1 69 92 500 68.61 7 54 24 29 79 3 77 76 93 500 75.30 10 73 74 75 22 41 15 43 92 500 96.90 42 57 2 8 52 82 8 45 17 84 5 89 100 500 76.12 6 94 59 93 99 96 6 100 500 41.36 5 27 68 80 12 28 93 500 49.89 6 85 61 16 100 37 92 100 500 64.25 6 30 32 90 63 10 31 100 500 79.74 5 58 87 97 95 13 99 500 43.89 6 26 4 72 21 40 53 95 500 56.99 Solution : 8659.85 Solutions with variable (Taillard 6 instances) Here solutions for problems 14 and 18 with smaller number of routes are also provided with best-known solutions. Problem 14 Variable 7 22 42 41 43 1 33 6 120 1.0 82.76 6 26 7 35 46 34 4 119 1.0 46.25 7 2 28 21 36 47 48 30 156 1.1 78.65 12 12 40 32 9 39 31 10 38 296 1.4 124.66 11 14 19 8 10 16 23 49 24 18 25 50 154 1.1 115.16 44 3 17 8 27 13 15 20 37 5 29 45 138 1.0 83.47 Problem 16 Solution : 608.54 Variable 6 10 39 33 45 15 44 78 1.6 97.03 2 27 6 30 1.0 28.45 1 12 29 1.0 16.12 3 7 26 31 37 1.0 77.48 5 14 25 13 41 18 140 2.1 79.33 8 46 5 49 30 34 50 16 11 133 2.1 73.38 9 1 22 28 3 36 35 20 2 32 138 2.1 99.18 3 23 43 24 37 1.0 72.49 3 37 17 47 37 1.0 41.86 4 38 9 21 29 40 1.0 72.87 4 4 19 40 42 38 1.0 90.41 2 48 8 40 1.0 47.05 Problem 18 Solution : 1131.00 Variable 2 4 75 50 1.3 15.45 3 25 55 31 46 1.3 101.40 7 34 8 19 54 13 57 15 100 1.9 81.08 18 26735531459116665 397 3.2 140.21 38 10 58 72 39 9 32 40 12 14 63363235641434264 241 2.9 124.40 22173622 22 67 46 52 27 45 29 48 5 37 394 3.2 152.25 20 70 60 71 69 36 47 21 61 28 74 30 68 9 17 3 44 50 18 24 49 16 51 146 2.4 88.13 Solution : 1814.11

NA Wassan and IH Osman Mix fleet routing problem 781 Acknowledgements The authors would like to thank the editor and the three referees for their valuable comments that improved the quality of the paper. References Problem 19 Variable 8 18 83 45 17 84 5 60 89 92 1.0 71.37 10 53 21 72 75 56 23 67 39 4 195 1.4 95.99 26 8 12 80 68 29 24 25 55 54 99 1.0 88.83 14 70 30 20 66 65 71 35 34 78 199 1.4 119.88 793777628 7 69 1 51 9 81 33 50 92 1.0 68.61 10 58257431541227473 96 1.0 88.11 40 11 27 31 10 62 11 19 47 48 82 200 1.4 94.06 752 11 94 59 93 85 91 100 98 37 188 1.4 58.45 92 97 95 9 88 32 90 63 64 49 36 46 8 99 1.0 131.19 12 69699611644863814 42 87 13 198 1.4 97.66 Problem 20 Solution : 1100.56 Variable 12 26439235675227472 200 2.0 89.78 73 21 40 7 18 83 8 45 17 84 60 60 1.0 75.01 6 2 57 15 43 42 87 60 1.0 73.04 5 69 32 90 63 10 58 1.0 78.18 11 13 94 95 92 98 85 93 59 99 196 2.0 54.47 96 6 7 1 51 35 34 78 29 24 57 1.0 105.63 3 27 53 58 48 1.0 28.37 11 31 70 30 20 66 65 71 9 81 188 2.0 111.44 33 50 8 88 62 19 47 48 82 7 52 138 1.7 81.67 8 28 76 77 3 79 68 80 12 140 1.7 58.69 12 89561168638144491 200 2.0 101.07 100 37 97 5 41 67 25 55 54 56 1.0 103.96 5 46 36 49 64 11 57 1.0 115.68 Solution : 1530.16 1 Semet F and Taillard ED (1993). Solving real-life routing problems efficiently using tabu search. Annal Opns Res 41: 469 488. 2 Rochat Y and Semet F (1994). A tabu search approach for delivering pet food and flour in Switzerland. J Opl Res Soc 45: 1233 1246. 3 Mechti R, Poujade S, Roucairol C and Lemarie B (1999). Global and local moves in tabu search: a real-life mail collecting application. In: Voss S, Martello S, Osman IH and Roucairol C (eds). Meta-heuristics: Advances and Trends in Local Search Paradigms for Optimisation. Kluwer: Boston, pp 155 173. 4 Golden B, Assad A and Levy L (1984). The fleet size and mix routing problem. Comput Opns Res 1: 49 66. 5 Salhi S, Sari M, Sadi D and Touati N (1992). Adaptation of some fleet mix heuristics. OMEGA 20: 653 660. 6 Taillard ED (1999). A heuristics column generation method for the heterogeneous fleet routing problem. RAIRO 33: 1 14. 7 Gheysens F, Golden B and Assad A (1986). A new heuristic for determining fleet size and composition. Math Program Study 26: 233 236. 8 Ronen D (1992). Allocation of trips to trucks operating from single terminal. Comput Opns Res 19: 445 451. 9 Osman IH and Laporte G (1996). Metaheuristics: a bibliography. Annal Opl Res 63: 513 623. 10 Desrochers M and Verhoog TW (1991). A new heuristic for the fleet size and mix routing problem. Comput Opns Res 18: 263 274. 11 Liu FH and Shen SY (1999). The fleet size and mix routing problem with time windows. J Opl Res Soc 50: 721 732. 12 Clarke G and Wright GW (1964). Scheduling of s from a central depot to a number of delivery points. Opns Res 12: 568 581. 13 Osman IH and Salhi S (1996). Local search strategies for the mix fleet routing problem. In: Rayward-Smith VJ, Osman IH, Reeves CR and Smith GD (eds). Modern Heuristic Search Methods. Wiley: Chichester, pp 131 153. 14 Salhi S and Rand GK (1993). Incorporating routing into the fleet composition problem. Eur J Opl Res 66: 313 330. 15 Ochi LS, Vianna DS, Drummond LMA and Victor AO (1998). A parallel evolutionary algorithm for the routing problem with heterogeneous fleet. Future Generation Comput Syst 14: 285 292. 16 Han AF and Cho Y-J (1999). Generic intensification and diversification search on the fleet size and mix routing problem. In: Rebeiro CC and Hansen P (eds). MIC 99-Third Metaheuristics International Conference. Kluwer: Boston, pp 269 273. 17 Gendreau M, Laporte G, Musaraganyi C and Taillard ED (1999). A tabu search heuristic for the heterogeneous fleet routing problem. Comput Opns Res 26: 1153 1173. 18 Laporte G and Osman IH (1995). Routing problems: a bibliography. Annal Opns Res 61: 227 262. 19 Laporte G, Gendreau M, Potvin J-Y and Semet F (2000). Classical and modern heuristics for the routing problem. Int Trans Opl Res 7: 285 300. 20 Sherali HD and Maguire LW (2000). Determining rail fleet sizes for shipping automobiles. Interfaces 30: 80 90 21 Osman IH (1995). An introduction to meta-heuristics. In: Lawrence M and Wilsdon C (eds). Operational Research Society Tutorial. Operational Research Society: Birmingham, pp 92 122. 22 Osman IH and Kelly JP (1996). Metaheuristics: Theory and Applications. Kluwer: Boston. 23 Glover G and Laguna M (1997). Tabu Search. Kluwer: Boston. 24 Voss S, Martello S, Osman IH and Roucairol C (1999). Metaheuristics: Advances and Trends in Local Search Paradigms for Optimisation. Kluwer: Boston.

782 Journal of the Operational Research Society Vol. 53, No. 7 25 Salhi S and Rand GK (1987). Improvements to routing heuristics. J Opl Res Soc 38: 293 295. 26 Osman IH (1993). Metastrategy simulated annealing and tabu search algorithms for the routing problem. Annal Opns Res 41: 421 451. 27 Chiang WC and Russell RA (1997). A reactive tabu search meta-heuristic for the routing problem with time windows. INFORMS J Comput 9: 417 430. 28 Thangiah SR, Potvin JYand Sun T (1996). Heuristic approaches to routing with back-hauls and time windows. Comput Opns Res 23: 1043 1057. 29 Thangiah SR, Osman IH, Vinayagamoorth R and Sun T (1993). Genetic algorithms for the routing problems with time deadlines. Am J Math Mngt Sci 13: 323 355. 30 Osman IH and Christofides N (1994). Capacitated clustering problems by hybrid simulated annealing and tabu search. Int Trans Opl Res 1: 317 336. 31 Osman IH (1995). Heuristics for the generalised assignment problem: simulated annealing and tabu search approaches. OR Spektrum 17: 211 225. 32 Osman IH and Wassan NA. A reactive tabu search metaheuristic for the routing problem with back-hauls. J Scheduling, to appear. 33 Or I (1976). Travelling salesman-type combinatorial problems and their relation to the logistics of regional blood banking. Doctoral dissertation, Northwestern University. 34 Potvin JY and Rousseau JM (1995). An exchange heuristic for routing problems with time windows. J Opl Res Soc 46: 1433 1446. 35 Taillard ED, Badeau F, Gendreau M, Guertin F and Potvin J (1997). A tabu search heuristic for the routing problem with soft time windows. Transport Sci 31: 170 186. 36 Fahrion R and Wrede M (1990). On a principle of chainexchange for -routing problems (1-VRP). J Opl Res Soc 41: 821 827. 37 Taillard ED (1993). Parallel iterative search methods for routing problems. Networks, 23: 661 676. 38 Laguna M and Glover F (1993). Bandwidth packing: a tabu search approach. Mngt Sci 39: 492 500. 39 Battiti R and Tecchiolli G (1994). The reactive tabu search. ORSA J Comput 6: 126 140. 40 Juliff P (1990). Program Design, 3rd edn. Prentice-Hall: Sydney. 41 Mladenovic N and Hansen P (1997). Variable neighbourhood search. Comput Opns Res 24: 1097 1100. 42 Dongarra JJ (2001). Performance of various computers using standard linear equations software. Computer Science Department, University of Tennessee, CS-89-85. http==www.netlib. org=benchmark=performance.ps Received February 2000; accepted December 2001 after one revision