The traveling purchaser problem, with multiple stacks and deliveries: A branch-and-cut approach

The traveling purchaser problem, with multiple stacks and deliveries: A branch-and-cut approach

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

574KB Sizes 1 Downloads 46 Views

Computers & Operations Research 40 (2013) 2103–2115

Contents lists available at SciVerse ScienceDirect

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

The traveling purchaser problem, with multiple stacks and deliveries: A branch-and-cut approach Marı´a Batista-Galva´n a, Jorge Riera-Ledesma b,n, Juan Jose´ Salazar-Gonza´lez b a b

Transportes Interurbanos de Tenerife, S.A.U., C/Punta de Anaga 1, 38111 Santa Cruz de Tenerife, Spain ´ticas, Universidad de La Laguna, 38271 La Laguna, Spain DEIOC, Facultad de Matema

a r t i c l e i n f o

abstract

Available online 26 February 2013

The Double Traveling Salesman Problem with Multiple Stacks is a pickup-and-delivery single-vehicle routing problem which performs all pickup operations before the deliveries. The vehicle has a loading space divided into stacks of a fixed height that follows a Last-In-First-Out policy. It has to collect products following a Hamiltonian tour in a pickup region, and then deliver them following a Hamiltonian tour in a delivery region. The aim is to minimize the total routing cost while satisfying the vehicle loading constraints. A generalization of this problem considers that each product is offered in several pickup locations at different prices, that is, the pickup locations are markets. That means that the pickup tour may not be Hamiltonian, and therefore the set of locations to be visited during the pickup tour is unknown in advance. The delivery locations represent customers, each requiring a product, and all of them must be visited by the vehicle. Thus, this problem has to select a subset of pickup locations to purchase the products, to determine a tour visiting the selected pickup locations, and to design a Hamiltonian tour which visits the delivery locations. The aim is to minimize the purchasing cost plus the total routing cost, subject to the vehicle loading constraints. This paper introduces and formulates this generalization, called the Traveling Purchaser Problem with Multiple Stacks and Deliveries. It proposes valid inequalities, and adapts some constraints defined for the Double Traveling Salesman Problem with Multiple Stacks by other authors. This formulation motivates a Branch-and-Cut algorithm whose performance has been tested on 240 instances from the literature properly adapted. Our computational experience confirms the effectiveness of the valid inequalities here proposed, and shows that instances of up to 24 products and 32 markets can be solved to optimality. & 2013 Elsevier Ltd. All rights reserved.

Keywords: Traveling purchaser problem Pickup and delivery Last-in-first-out Branch-and-cut

1. Introduction The Double Traveling Salesman Problem with Multiple Stacks (DTSPMS) is a pickup-and-delivery single-vehicle routing problem which performs the pickup operations before the deliveries, and loads the collected products into a capacitated vehicle as they are picked up. This problem arises when the pickup and delivery regions are widely separated, and the transportation cost between both regions is fixed and therefore not considered as a part of the optimization problem. The pickup and the delivery points, in addition to a depot in each region, are known in advance. There is a routing cost related to each pair of points for each region. Each product is associated exactly with a pickup point in the pickup region and with a delivery point in the delivery region. All products have identical shape and size, and the vehicle has a loading space divided into stacks of a fixed height. This loading space is big enough to store

n

Corresponding author. Tel.: þ34 922845040; fax: þ 34 922318170. E-mail addresses: [email protected] (M. Batista-Galva´n), [email protected] (J. Riera-Ledesma), [email protected] (J.J. Salazar-Gonza´lez). 0305-0548/$ - see front matter & 2013 Elsevier Ltd. All rights reserved. http://dx.doi.org/10.1016/j.cor.2013.02.007

all products, and the loading operations follow a Last-In-First-Out (LIFO) policy. That means that each loaded product is placed at the top of one of those stacks, and only the products located at the top of a stack can be unloaded from the vehicle. The DTSPMS collects each product following a Hamiltonian tour in the pickup region starting at the pickup depot, and delivers the products also following a Hamiltonian tour in the delivery region starting at the delivery depot. Note that, the LIFO policy determines the order of collection and delivery, therefore any description of both Hamiltonian tours should specify unambiguously the pickup and the delivery sequence. The aim is to minimize the total routing cost satisfying the stacks height and the LIFO policy. Therefore, the DTSPMS combines two instances of the directed Traveling Salesman Problem (TSP), one for the pickup region and another for the delivery region, with a combinatorial loading problem. This loading problem establishes whether both tours are compatible with respect to the features of the vehicle container. Pertersen and Madsen [1] introduced the DTSPMS in the context of a real world application on multimodal transport between two separated regions. There has been a growing interest in exact algorithms for the DTSPMS [2,3] and special cases of this problem

2104

´n et al. / Computers & Operations Research 40 (2013) 2103–2115 M. Batista-Galva

[4] during the last years. Alba Martı´nez et al. [5] have recently proposed the most successful exact approach presented so far, which is based on a Branch-and-Cut (BC) algorithm. Because of the hardness of the problem we can find some heuristic algorithms in the literature [1,6–8]. The complexity of the loading problem underlying the DTSPMS has been discussed in [9–11], and an approximation scheme has been proposed in [12]. This paper addresses a generalization of the DTSPMS which considers that each product is offered in different locations at different prices. That is, each product may be available at more than one location in the pickup region, and each pickup location may offer more than one product. Furthermore, each product has a purchasing cost that depends on the purchasing point where it is available. To emphasize this aspect each pickup location is henceforth called market. The vehicle does not have to visit all markets in this generalization, and therefore the subset of markets forming part of the pickup tour is unknown in advance. This variation of the DTSPMS has to (i) select a subset of markets to purchase the products, (ii) determine on the basis of this selection a simple directed cycle which starts at the pickup depot and visits the selected markets, (iii) design a directed Hamiltonian tour visiting the delivery locations starting from the delivery depot. The aim is to minimize the purchasing cost plus the total routing cost, subject to the vehicle container constraints. Note that the vehicle container constraints do not refer to the container’s capacity, because it is assumed that the container is able to store the full demand. The vehicle container constraints refer to the container organizing policy, which determines the pickup and delivery sequence. The problem of computing (i) and (ii) is known in the literature as the Traveling Purchaser Problem (TPP) [13]. Since this generalization connects an instance of the directed TPP with an instance of the directed TSP by mean of a loading problem, this generalization of the DTSPMS is called the Traveling Purchaser Problem with Multiple Stacks and Deliveries (TPPMSD). To our knowledge no previous work has studied this problem. The TPP considers a set of products to be purchased and a single vehicle originally at a depot. This problem also considers a set of markets, each offering a subset of the product set. There is request of collecting one unit of each product. The purchasing cost of a product depends on the market where it is available. It is also known as the travel cost between each pair of market locations. The TPP aims at selecting a subset of markets and routing them with the vehicle such that all the products are collected and the sum of the purchasing plus the travel cost is minimized. The TPP has been widely studied from the exact [14,15,13,16–18] and the heuristic [21,19,20,22–26] points of view. Some other problems concern a simple cycle visiting a subset of locations selected with the purpose of collecting a set of items: The Ring Star Problem [27] is a variation of the TPP where each product location behaves as a potential market as well. Any product can be purchased in some other markets with an extra assignment cost. This problem has to collect all products minimizing the assignment cost plus the routing cost. The Covering Tour Problem [28] is another variation which offers each product at different markets, without any purchasing nor assignment cost. The Covering Tour Problem determines a simple cycle visiting a subset of markets such that all products are collected, minimizing the total routing cost. The Orienteering Problem [29] offers exactly one product in each market. Each product has a non-negative prize if it is collected. This problem calls for a simple cycle whose total routing cost does not exceed a given threshold, while visiting a subset of markets with maximum total prize. Note that it does not

need to collect all products. Similarly the Orienteering Problem, the Prize Collecting TSP [30] offer exactly one product in each location and each product also has a non-negative prize if it is collected. This problem looks for a simple cycle that minimizes the travel cost, subject to a lower bound on the amount of the prize collected. This paper introduces and formulates the TPPMSD in Section 2. Section 3 describes valid inequalities, and adapts some constraints proposed for the DTSPMS by other authors to the specific features of this problem. Section 4 gives some details on the separation procedures for the valid inequalities introduced in the previous section. The formulation and the new valid inequalities motivate a BC algorithm whose performance has been tested on instances from the literature properly adapted to the TPPMSD. In this context, Section 5 describes a computational experience which studies the effect of the new inequalities proposed here as well as the performance of the BC algorithm. According to this computational experience, the computer implementation is state-of-the-art literature, as it solves a new DTSPMS instance not previously solved by other authors. In addition, it has shown that TPPMSD instances up to 24 products and 32 markets can be solved to optimality. Finally, Section 6 summarizes and comments on the contribution of this paper.

2. Mathematical formulation This section gives a formal description for the TPPMSD which considers the product collection sequence at each market. This description results in a Linear Integer Programming formulation. 2.1. Definitions We denote by I ¼ f1, . . . ,ng the set of n required products. Let M ¼ f1, . . . ,mg be the set of markets offering some products of I. We represent the availability of products at markets by a set of pairs G ¼ fði,uÞ D I  M9 the product i is available at market ug. We will also use I to represent the delivery locations since each location requires a unique product. Let us denote by 0P and by 0D the depots of the pickup and delivery regions, respectively. We define the TPPMSD on two complete directed graphs, GP ¼ ðV P ,AP Þ and GD ¼ ðV D ,AD Þ, where V P ¼ M [ f0P g, V D ¼ I [ f0D g, and AP and AD are their respective arc sets without loops. For each pair ði,uÞ A G we define the purchasing cost diu as the cost of purchasing the product i at the market u. We also define the routing cost in the pickup region cPuv for each arc ðu,vÞ A AP , D and in the delivery region cD ij for each arc ði,jÞ A A . The vehicle has a loading space, called container, organized in r stacks with a capacity for l items each. We denote by R the set of indices identifying each stack, i.e. R ¼ f1, . . . ,rg. Each stack is only accessible from one of its sides and follows a LIFO policy. A feasible solution for the TPPMSD may be represented by a tuple ðG0 ,Q ,F, LÞ which consists of 1. an assignment G0 D G where each product is assigned to exactly one market, 2. a simple cycle Q which starts at the depot 0P and visits those markets with assigned products, 3. a Hamiltonian tour F which starts at the depot 0D visiting all delivery locations I, 4. a loading plan L D I  R which assigns each product to a stack of the container so that both the pickup and the delivery tours are simultaneously compatible with the container configuration. The TPPMSD aims at selecting a feasible solution ðG0 ,Q ,F, LÞ that P minimizes the purchasing cost, computed as ði,uÞ A G0 diu , plus the routing costs of Q and F. Note that, in contrast to the DTSPMS, the set of vertices forming part of the pickup tour is unknown

´n et al. / Computers & Operations Research 40 (2013) 2103–2115 M. Batista-Galva

2105

Fig. 1. Feasible solution for the TPPMSD described on graphs GP and GD.

in advance, and depends on each particular assignment G0 of products to markets. Fig. 1 sketches a feasible solution for the TPPMSD described on two complete graphs GP and GD, where the input is given by the set of products I ¼ fh,i,j,kg, the market set is given by M ¼ fu,v,wg, the assignment set is given by G ¼ fðh,uÞ,ði,uÞ,ði,vÞ,ðk,vÞ,ðj,wÞ, ðk,wÞg, and r ¼ l ¼ 2. This solution consists of an assignment G0 ¼ fðh,uÞ,ði,uÞ,ðj,wÞ,ðk,wÞg, a pickup tour Q ¼ /0P ,u,w,0P S, a delivery tour F ¼ /0D ,i,k,h,j,0D S, and a loading plan L ¼ fði,1Þ, ðh,1Þ,ðk,2Þ,ðj,2Þg. Formulations for TPP variants typically represent markets as vertices in a graph [17,18]. However, that representation is not adequate for devising a formulation for the TPPMSD, because it does not take into account the sequence of collection for those products purchased in a market. The product collection sequence for the pickup tour and the sequence of delivery for the delivery tours are the keys in determining the feasibility of the underlying loading problem. For that reason we model the TPP related to the pickup tour as a variant of the Generalized Traveling Salesman Problem (GTSP) [31] which allows us to consider the pickup sequence for each visited market. We define this specific variant of the GTSP on the extended b b with a vertex set V b ¼ G [ f0P g and its arc set A. pickup graph G Two additional components define our variant of the GTSP: 1. A cluster set. Let us denote by VðiÞ ¼ fði,uÞ A G : u A Mg the subset of vertices offering the product i, for all iA I. Note that VðiÞ, for each iA I, induces a partition on G which defines the first cluster set for this variant of the GTSP. We overload this notation by defining VðuÞ ¼ fði,uÞ A G : i A Ig as the subset of vertices related to the market u, for all u A M. b The routing cost 2. The routing costs for the extended graph G. associated with each arc (s, t) of the extended pickup graph is given by 8 1 if s ¼ ði,vÞ and t ¼ ði,wÞ, > > > > > if s ¼ ði,uÞ and t ¼ ðk,uÞ, d > ku > < P if s ¼ ði,uÞ and t ¼ 0P , b c st ¼ cu0 > > > cP0v þ div if s ¼ 0P and t ¼ ði,vÞ, > > > > : cP þdjw otherwise, where s ¼ ði,vÞ and t ¼ ðj,wÞ: vw Fig. 2 illustrates how to define the routing cost associated with b for the particular case of the arcs going out the pickup graph G from the vertex (i, v). Using the above notation, a feasible solution for the TPPMSD b ,F, LÞ, where Q b is a sequence can be represented by the triplet ðQ

Fig. 2. Redefinition of the routing cost associated with the pickup graph.

b that describes a simple cycle that starts of vertices in the graph G at the pickup depot and visits exactly one vertex of each cluster V(i), for each product i A I. Moreover, according to the TPP specifications, each market has to be visited at most once. Thus, b must any formulation for the TPPMSD based on the graph G impose that the in-degree of V(u), for u A M is at most one. Otherwise a feasible solution could give place to a non simple cycle when mapped onto GP. Fig. 3 shows the input instance described above for Fig. 1 in terms of the cluster set V(i), for all i A I (Fig. 3(a)), and in terms of the sets related to market vertices VðuÞ for all u A M (Fig. 3(b)). Fig. 4 shows the solution in Fig. 1 based on the new representab ¼ /0P ,ðh,uÞ,ði,uÞ,ðj,wÞ,ðk,wÞ,0P S, a delivery tion as a pickup tour Q tour F ¼ /0D ,i,k,h,j,0D S, and a loading plan L ¼ fði,1Þ,ðh,1Þ, ðk,2Þ,ðj,2Þg. Thus, the product collection sequence followed in the pickup tour is unambiguously described. þ  b [ AD : i A S,j= We define d ðSÞ ¼ fði,jÞ A A 2Sg and d ðSÞ ¼ fði,jÞ A D D b b A [ A : i= 2S,j A Sg for a given set of vertices S D V [ V . If S ¼ fig, we þ þ   simply write d ðiÞ instead of d ðfigÞ and d ðiÞ instead of d ðfigÞ. D b We denote by AðS : TÞ, for two vertex sets S and T in V [ V such as S \ T ¼ |, the set of arcs going from each vertex of S to each vertex of T. Finally, we define by IðsÞ A I the product i offered by the market u if s ¼ ði,uÞ A G. The next section presents a formulation for the TPPMSD built on the base of this transformed graph. 2.2. Problem formulation To formulate the TPPMSD we associate a binary variable xPst b This variable with each arc (s, t) of the extended pickup graph G. takes the value 1 if the arc is part of the pickup tour and 0 otherwise. We also define, for each vertex s A G, a variable yPs that takes the value 1 if the pickup tour visits such a vertex, and

´n et al. / Computers & Operations Research 40 (2013) 2103–2115 M. Batista-Galva

2106

Fig. 3. Input instance described in terms of the cluster set V(i) for all i A I (a), and in terms of the sets related to market vertices V ðuÞ for all u A M (b).

b and GD. Fig. 4. Feasible solution for the TPPMSD described in graphs G

0 otherwise. We define a third family of variables associated with the arcs of the delivery graph GD: for each arc ði,jÞ A AD the variable xD ij takes the value 1 if that arc forms a part of the delivery tour, and 0 otherwise. For brevity of notation, for a given subset of arcs T, we write P P P D xP ðTÞ and xD ðTÞ instead of a A T xa and a A T xa , respectively. Similarly, for a given subset of vertices S, we will write yP ðSÞ P instead of v A S yPs . We now present an Integer Linear Programming formulation for the TPPMSD. The objective function X X D b c st xPst þ min cD ð1Þ ij xij D ði,jÞ A A ðs,tÞ A b A minimizes the total cost. Note that the cost related to the pickup tour b c includes not only the original routing cost cP but also the purchasing cost d. The set of constraints is presented in three blocks.

1. A first block of constraints describes the pickup component of the TPPMSD: þ

s A G,

ð2Þ



s A G,

ð3Þ

xP ðd ðsÞÞ ¼ yPs xP ðd ðsÞÞ ¼ yPs xP ðd ð0P ÞÞ ¼ 1,

ð4Þ

xP ðd ð0P ÞÞ ¼ 1,

ð5Þ

þ



þ

xP ðd ðSÞÞ ZyPs yP ðVðiÞÞ ¼ 1

S  G,s A S,

i A I,

þ

xP ðd ðVðvÞÞÞ r 1

ð6Þ ð7Þ

v A M,

xPst A f0,1g

b ðs,tÞ A A,

yPs A f0,1g

s A G:

ð8Þ ð9Þ ð10Þ

Constraints (2)–(10) describe a variant of the GTSP. In particular, constraints (2) and bounds (10) force that exactly one arc enters each visited vertex s A G, and constraints (3) with bounds (10) introduce the same condition for the arcs going out. Constraints (4) and (5) establish that the pickup depot has to be visited exactly once. Family (6) are the connectivity constraints adapted to the GTSP, which ensures that each visited vertex in a subset S D G must be connected to the pickup depot by a path. Inequalities (7) establish that the pickup tour has to visit, for each product iA I, exactly one vertex offering this product; inequalities (8) guarantee that each market is visited at most once forcing the out-degree of each set V(v) for v A M to be at most one. In this way, any b mapped on GP will not feasible solution based on the graph G contain subcycles. Fig. 5 shows a solution satisfying conþ straints (2)–(7) but having xP ðd ðVðvÞÞÞ ¼ 2. When mapping this solution onto graph GP (Fig. 5(b)) we observe two subcycles. Constraints (8) would have avoided this type of solutions. Fig. 6(a) shows the solution depicted in Fig. 4 drawn in terms of the market sets. We observe that, although the

´n et al. / Computers & Operations Research 40 (2013) 2103–2115 M. Batista-Galva

2107

b satisfying constraints (2)–(7) with xP ðd þ ðV ðvÞÞÞ ¼ 2 (a) mapped onto graph GP (b). Fig. 5. Solution on the graph G

b satisfying constraints (2)–(8) (a) mapped onto graph GP (b). Fig. 6. Solution on the graph G

cycle visits markets u and w twice, both markets satisfy þ þ xP ðd ðVðuÞÞÞr 1 and xP ðd ðVðwÞÞÞ r1, and therefore no subcycles appear when mapped onto GP (Fig. 6(b)). 2. A second block of constraints describes the delivery component of the TPPMSD þ

i A V D,

ð11Þ



iA V D ,

ð12Þ

xD ðd ðiÞÞ ¼ 1 xD ðd ðiÞÞ ¼ 1 þ

xD ðd ðSÞÞ Z 1 xD ij A f0,1g

S  V D,

ði,jÞ A AD :

b ,F, LÞ, we In order to avoid any load-infeasible pair ðQ introduce the infeasible path constraints q1 X l¼1

xPpl pl þ 1 þ

f 1 X

xD dl dl þ 1 r q þf 3:

ð15Þ

l¼1

This family can be enlarged by also including the conb and F are paths instead of feasible tours. straints when Q

ð13Þ

3. Strengthening the linear programming relaxation

ð14Þ

This section presents valid inequalities to strengthen the Linear Programming relaxation of the model (1)–(14). We propose inequalities separately for each of the three blocks described above.

Constraints (11)–(14) describe the asymmetric TSP associated with the delivery tour. Eqs. (11) and (12) are the well known assignment constraints. They guarantee that the delivery tour delivers each product exactly once. Finally, constraints (13) are the subtour elimination constraints which ensure the connectivity of the delivery tour with 0D . 3. The last block of constraints describes the loading subproblem, which ensures the compatibility between the pickup and delivery tours and the container features. As proposed in [5] we impose this requirement through the so-called infeasible path elimination constraints, also used in other articles (e.g., [32]) to avoid infeasible solutions in routing problems. b ¼ /0P ,p ,p , . . . ,p ,0D S represent In this regard, let Q 1 2 q a feasible solution for (2)–(10), and let F ¼ /0D ,d1 ,d2 , D . . . ,df ,0 S represent a feasible solution for (11)–(14). A b ,FÞ is load-infeasible if there is not a loading plan L pair ðQ b ,F, LÞ a feasible solution for the TPPMSD. making ðQ

1. We first focus on strengthening the GTSP component of the model, i.e., (2)–(10). In accordance with the fact that each product is purchased exactly once, we can strengthen the model considering this constraint. Thus, the following inequalities strengthen constraints (6): þ

xP ðd ðSÞÞ ZyP ðVðiÞ \ SÞ,

i A I,S D G:

ð16Þ

In contrast to (6) where its right-hand-side consists only of a single variable yPs related to a vertex s belonging to subset S, the right-hand-side of (16) includes the variables related to all vertices in S offering a product i, since the summation of these variables yP ðVðiÞÞ is at most one, according to (7). While constraints (16) relate to the features that products must satisfy, the following constraints relate to the features

´n et al. / Computers & Operations Research 40 (2013) 2103–2115 M. Batista-Galva

2108

of the markets. Considering the fact that each visited market must be connected with the depot via a path if such a market has been visited, the following family of inequalities is also valid: þ

þ

xP ðd ðSÞÞ Z xP ðd ðVðvÞÞÞ

v A M,S D G9VðvÞ D S:

ð17Þ

These constraints generalize (6) when 9VðvÞ9 41, and strengthen constraints (8). 2. We describe now some valid inequalities to strengthen the block (11)–(14). The well known Dlþ and D l inequalities (see, e.g., [33]) are an example of constraints strengthening the asymmetric TSP subproblem. They take the form x il i1 þ

l1 X

xih ih þ 1 þ 2

h¼1

x il i1 þ

l1 X

l X

h¼1

l1 X

xij ih r l1,

ð18Þ

xij ih r l1,

ð19Þ

j¼4h¼3

h¼3

xih ih þ 1 þ 2

j1 l X X

x i1 ih þ

j1 l1 X X

x ih i1 þ

Fig. 7. Sketch of the arc set between vertex sets VðIðpj ÞÞ and V ðIðph ÞÞ.

j¼3h¼2

h¼2 D

for any l A f3, . . . ,9V 92g. Since all valid inequalities for the symmetric TSP are also valid for the asymmetric TSP we have enriched this block with families such as the 2-matching inequalities [34], and the combs inequalities [35]. 3. Finally we focus on strengthening the loading subproblem, related to (15). Alba Martı´nez et al. [5] proposed some families of inequalities for the DTSPMS to strengthen constraints (15). These families are separated on the base of an undirected precedence graph G0 ¼ ðI0 ,E0 Þ, where I0 consists of the products in I plus two additional vertices: a source s and a sink t. Each product i preceding j in both the pickup and the delivery path, for all i,j A I such as i a j, defines an edge ½i,j in G0 . We enumerate here three of the valid inequalities proposed in [5] for the DTSPMS. Let us consider a DTSPMS (fractional) solution, and let Q be a path in the pickup area and F a path in the delivery area such as the pair (Q, F) is load-infeasible, then inequality q1 X q X

xPpj ph þ

j ¼ 1 h ¼ jþ1

f 1 X f X

xD dj dh r qþ f 3

ð20Þ

xPpj ph þ

X

X

xPpj ph

c A C pj ,ph A SP 9j 4 h

j ¼ 1 h ¼ jþ1

þ

c

f 1 X f X

xD dj dh þ

j ¼ 1 h ¼ jþ1

X

X

xD dj dh r qþ f 3:

ð21Þ

c A C dj ,dh A SD 9j 4 h c

Let us denote by sP ðkÞ the position of the vertex k in the pickup path, and, similarly, by sD ðkÞ the position of the vertex k in the delivery path. Let us consider two paths Q and F starting at their depots and ending at k. If sP ðkÞ þ sD ðkÞ þ ðrlnÞ rl then the pair (Q, F) is load-infeasible and a valid inequality can be formulated as follows: q1 X q X

xPpj ph þ

j ¼ 1 h ¼ jþ1

þ

ði,vÞ A VðIðpj ÞÞðk,uÞ A VðIðph ÞÞ

b , this replaceGiven two vertices pj ¼ ði,vÞ and ph ¼ ðk,uÞ in Q ment considers all arc variables connecting the vertex sets fði,vÞ A G9v A Mg to fðk,uÞ A G9u A Mg. We call this extended version of (20), (21), and (22) extended load constraints. Fig. 7 contrasts the arc ðpj ,ph Þ with the arc set involved in this replacement. The solid line relates to an arc ðpj ,ph Þ from any constraint (20), (21), or (22). The dotted lines represent the arc set related to AðVðIðpj ÞÞ : VðIðph ÞÞÞ that replaces ðpj ,ph Þ to adapt (20), (21), and (22) to the TPPMSD.

j ¼ 1 h ¼ jþ1

is valid for the loading subproblem and strengthen (15). Let us now consider a maximal clique C in G0 . For a given vertex c in a maximal clique C, SPc denotes (respectively, SD c ) the subset of vertices in the pickup path (respectively delivery path) which appears between vertex c and the following vertex belonging to the clique. Should the cardinality of the clique hold 9C9 4r, then (20) is strengthened by q1 X q X

Since the feasibility of the loading problem depends on the product sequence regardless of the markets, we can adapt (20), (21), and (22) to the TPPMSD by strengthening b¼ their left-hand-side as follows. Given a pickup tour Q P D D /0 ,p1 ,p2 , . . . ,pq ,0 S and a delivery tour F ¼ /0 ,d1 ,d2 , . . . , b ,FÞ is a load-infeasible pair, we can replace df ,0D S, so that ðQ in constraints (20), (21), and (22) each variable xpj ph by X X xPði,vÞðk,uÞ :

f 1 X j1 X j¼3h¼2

q1 X j1 X

xPpj ph þ

j¼3h¼2

xD dj dh r qþ f 3:

f 1 X f X

xD dj dh

j ¼ 1 h ¼ jþ1

ð22Þ

4. Separation of the valid inequalities Here we describe procedures to find violated constraints from a fractional solution ðx~ P , y~ P , x~ D Þ. This section gives details on the exact and polynomial algorithms for the separation of constraints (6), (16), (17), and on the separation for the extended load constraints. We have excluded the separation of (15) because these inequalities are dominated by the extended load constraints, and our preliminary computational experience had revealed its ineffectiveness in practice. We refer the reader to [33] for details on the separation of inequalities (13), (18), (19), and other asymmetric TSP inequalities. 4.1. Separation of (6) Although constraints (16) and (17) dominate (6) we have performed experiments in order to study the potential benefit of using inequalities (16) and (17) instead of (6) in practice. We separate this family as is standard in the literature (see, e.g., [36]): b where we construct a capacitated network based on the graph G, b is x~ P . Then, for each vertex the capacity c st for a given arc ðs,tÞ A A st v A G, so that y~ Pv 4 0 we compute the minimum capacity 0P -v cut b \SÞ. If the capacity of this cut is less than y~ P then S describes a ðS, V v violated inequality (6).

´n et al. / Computers & Operations Research 40 (2013) 2103–2115 M. Batista-Galva

2109

4.2. Separation of (16)

5. Computational experience

For each i A I, we construct a capacitated network based on the b with an additional vertex u. The extended pickup graph G b is x~ P . For each vertex s offering capacity c st for a given arc ðs,tÞ A A st the product i the value of the capacity c su is y~ Ps . Then, we compute b \SÞ. If the capacity of this cut the minimum capacity 0P -u cut ðS, V is less than one then S\fug describes a violated inequality (16).

The purpose of the computational experience presented in this section is twofold. Firstly, it seeks to show the behavior of the BC algorithm proposed in this paper for the TPPMSD on a wide set of instances. Secondly, it studies the impact of each family of valid inequalities described in Section 3 on the performance of this algorithm. Our implementation was coded in Cþþ on a Linux platform running on an Intel(R) Core(TM)2 CPU 6700 @ 2.66 GHz desktop computer with 2GB RAM. We have performed our BC algorithm using the library SCIP 2.1.1 [37] with Cplex 12.1 as the solver for the Linear Programming relaxations. We refer the reader to the SCIP project web site http://scip.zib.de/ which compares this non-commercial library with other commercial solvers such as Cplex, Xpress or Gurobi. SCIP implements a branching tree containing templates for the components of a BC algorithm. During the bounding phase this library applies a general list of known heuristic algorithms such as rounding heuristics, local branching, and crossover, with the purpose of obtaining an upper bound along the algorithm execution. We have configured SCIP to perform strong branching with a hundred potential candidates. In order to measure the impact of the valid inequalities better we have disabled the introduction of general cuts for Integer Programs, although experiments with the general cuts option enabled have shown similar performances.

4.3. Separation of (17) Similarly, for each v A M, we also construct a capacitated b with an additional vertex w, where network based on the graph G b is x~ P as well. In this case, the capacity c st for a given arc ðs,tÞ A A st for each vertex s related to the market v, the value of the capacity c sw is 1. Then, we compute the minimum capacity 0P -w cut b \SÞ. If the capacity of this cut is less than x~ P ðd þ ðVðvÞÞÞ then ðS, V S\fwg describes a violated inequality (17). With the purpose of speeding up the computation time of the separation algorithms we first enumerate xP ðAðVðiÞ : VðjÞÞÞ þ xP ðAðVðjÞ : VðiÞÞÞ r1,

i,j A I,

as a particular case of (16) when S ¼ VðiÞ [ VðjÞ, and þ

xP ðAðVðuÞ : VðvÞÞÞ þxP ðAðVðvÞ : VðuÞÞÞ r xP ðd ðVðvÞÞÞ,

u,v A M,

as a particular case of (17) when S ¼ VðuÞ [ VðvÞ. 5.1. Test instances 4.4. Separation of the extended loading constraints We separate our extended loading constraints, based on the infeasible path constraints (20), (21), and (22), using the separation algorithms described in [5] adapted to the special features of b As a previous step to the separation the extended pickup graph G. we have to construct the precedence graph G0 described in Section b into a graph 3. With that purpose we shrink the extended graph G GI ¼ ðV I ,AI Þ, where V I ¼ I [ f0P g and AI is the arc set. The capacity of P the arc (i, j) in GI is given by ðu,vÞ A AðVðiÞ:VðjÞÞ x~ Puv . We build the precedence graph G0 , and then we apply the DTSPMS separation algorithms described in [5] for the loading subproblem. For each separated inequality, each pickup arc (s,t) of the resulting constraint has to be replaced by its counterpart arcs AðVðIðsÞÞ : VðIðtÞÞÞ in the extended graph. Our implementation of the separation algorithms presents some differences with respect to the proposal in [5]. More specifically, one of the components of these algorithms checks whether there is not a feasible loading plan for a precedence graph and a specific container configuration. Solving this problem may require a comprehensive enumerative algorithm that consumes a significant part of the total computation time when tested on the largest instances. This algorithm is originally a search on an enumeration tree that introduces one product after another while no conflict with respect to either the precedence or the container configuration appears. If a conflict occurs then it performs a backtracking. However, we have observed that it is unnecessary to take into account the products not involved in the precedence graph since they can be located anywhere in the container. Thus, our enumeration algorithm considers only the products involved in the precedence graph reducing in this way the cardinality of the input for this problem. Despite this improvement the enumerative algorithm is still computationally costly. So, each enumeration tree node performs a heuristic attempt of insertion for the remaining elements in that compatible stack supporting the greater load. Note that once a feasible loading plan is detected, then no loading constraint is introduced.

We have based our experiments on a collection of 240 instances built from the sixty DTSPMS instances proposed by Petersen and Madsen [1], and also used in [2–8]. A triplet (R0x, r, l) describes each instance in [1]. R0x takes the values R05, R06, R07, R08 and R09, and represents five families, each consisting of two files, one for the pickup region and one for the delivery region. Each region contains thirty four random points in a 100  100 square. All distances are Euclidean distances rounded to the nearest integer, in accordance with the conventions from TSPLIB. The depot, that corresponds to the first point in each file, is placed in the centre of the square at the position (50, 50). The pair (r, l) represents the configuration of the container and takes the values (2, 4), (2, 5), (2, 6), (2, 7), (3, 4), (3, 5), (3, 6), (3, 7), (4, 4), (4, 5), (4, 6) and (4, 7). These twelve possibilities combined with each value of R0x gives place to the sixty instances of the benchmark collection described in [1] for the DTSPMS. The container configuration also determines the number of pickup and delivery points forming part of the instance. Each DTSPMS instance consists of the rl þ1 first points from the files defining the R0x instance. We have extended this family of instances in order to include the specific features of the TPPMSD. Now, each instance is defined by a tuple (R0x, r, l, 9G9Þ, where 9G9 is the number of potential assignments involved. With the purpose of determining the purchasing and routing costs for each TPPMSD instance we identify both products and markets as locations associated with points in each pickup file. The purchasing cost of a product offered by a specific market is defined by the distance between their respective locations. Similarly, the routing cost between two markets is given by the distance between their locations as well. As the DTSPMS instances, the first point in the pickup files corresponds to the depot location. The remaining thirty-three points correspond to market locations. But the first n points correspond to the product locations as well. Then, for a given value of 9G9, the set of potential assignments G is given by the 9G9 pairs having the least values of the distances associated with their respective locations.

´n et al. / Computers & Operations Research 40 (2013) 2103–2115 M. Batista-Galva

2110

Table 1 Bounds and CPU times. Inst.

r

l

(a) LB0

(b) UB

LB

Sec

(c)

9G9

9M9

LB0

UB

LB

Sec

(d)

9G9

9M9

LB0

UB

LB

Sec

9G9

9M9

LB0

UB

LB

Sec

R05 R06 R07 R08 R09

2 2 2 2 2

4 4 4 4 4

501 671 474 618 552

501 694 487 642 558

501 694 487 642 558

0 0 0 1 0

28 28 28 28 28

20 24 19 20 21

424 597 394 531 450

426 599 402 534 458

426 599 402 534 458

1 1 2 2 3

48 48 48 48 48

27 29 24 27 26

424 525 385 530 450

426 529 392 534 458

426 529 392 534 458

9 7 9 7 8

68 68 68 68 68

30 29 28 29 30

424 525 385 526 450

426 529 392 534 458

426 529 392 534 458

13 14 22 24 41

R05 R06 R07 R08 R09

2 2 2 2 2

5 5 5 5 5

523 737 525 636 601

546 774 547 670 610

546 774 547 670 610

1 2 1 2 1

30 30 30 30 30

20 24 19 24 19

448 665 438 598 530

457 667 465 615 541

457 667 465 615 541

3 2 36 19 12

50 50 50 50 50

25 26 22 25 24

448 596 432 538 498

457 601 439 561 499

457 601 439 561 499

11 15 19 64 4

70 70 70 70 70

28 29 24 28 27

448 596 431 538 498

457 601 439 561 499

457 601 439 561 499

28 20 55 430 19

R05 R06 R07 R08 R09

2 2 2 2 2

6 6 6 6 6

562 743 541 687 669

631 793 593 749 692

631 793 593 749 692

149 10 12 62 6

32 32 32 32 32

20 23 22 26 21

490 672 495 637 552

503 697 529 689 585

503 697 529 689 585

19 163 183 704 740

52 52 52 52 52

26 26 25 27 25

490 601 489 569 521

500 631 510 610 546

500 631 510 610 546

36 649 188 422 1817

72 72 72 72 72

29 29 28 31 28

481 601 473 569 521

494 631 509 610 546

494 631 509 596 531

175 2480 3179 1h 1h

R05 R06 R07 R08 R09

2 2 2 2 2

7 7 7 7 7

713 767 628 739 715

775 824 697 824 739

775 824 697 824 739

619 42 109 1609 18

34 34 34 34 34

21 22 21 25 23

574 697 542 705 608

606 725 605 760 650

606 725 593 746 650

1013 722 1h 1h 2452

54 54 54 54 54

28 26 24 27 25

574 697 530 638 592

603 725 564 707 616

603 711 564 659 616

3147 1h 1819 1h 1361

74 74 74 74 74

30 27 28 28 29

572 633 522 626 586

592 665 564 670 614

592 647 534 650 597

1503 1h 1h 1h 1h

R05 R06 R07 R08 R09

3 3 3 3 3

4 4 4 4 4

562 739 537 684 668

567 747 553 690 669

567 747 553 690 669

1 1 1 0 0

32 32 32 32 32

20 23 22 26 21

490 671 495 637 552

490 677 506 645 558

490 677 506 645 558

1 8 10 3 3

52 52 52 52 52

26 26 25 27 25

490 601 489 569 521

490 606 493 577 521

490 606 493 577 521

2 21 20 13 3

72 72 72 72 72

29 29 28 31 28

481 601 473 569 521

481 606 480 577 521

481 606 480 577 521

15 44 54 75 17

R05 R06 R07 R08 R09

3 3 3 3 3

5 5 5 5 5

717 816 655 800 752

737 836 690 810 768

737 836 690 810 768

8 4 11 2 5

35 35 35 35 35

24 23 23 25 25

593 715 562 752 624

601 731 574 770 638

601 731 574 770 638

31 73 66 37 15

55 55 55 55 55

28 27 27 27 27

593 715 551 684 610

601 731 563 701 620

601 731 563 701 620

101 168 44 472 51

75 75 75 75 75

30 28 30 28 29

586 704 541 669 601

591 724 559 686 609

591 724 559 686 609

94 1419 1416 401 115

R05 R06 R07 R08 R09

3 3 3 3 3

6 6 6 6 6

773 837 694 820 762

804 866 752 858 774

804 866 752 858 774

72 415 214 114 3

38 38 38 38 38

27 22 26 25 26

669 735 608 776 646

694 745 664 799 659

694 745 630 799 659

527 106 1h 841 79

58 58 58 58 58

28 27 30 28 28

630 735 598 760 639

659 745 632 786 644

636 745 613 776 644

1h 354 1h 1h 1192

78 78 78 78 78

30 29 32 30 30

630 735 594 719 626

666 745 629 766 646

637 745 604 725 638

1h 1191 1h 1h 1h

R05 R06 R07 R08 R09

3 3 3 3 3

7 7 7 7 7

820 852 760 829 801

953 901 861 889 827

839 888 795 857 827

1h 1h 1h 1h 158

41 41 41 41 41

31 24 29 26 28

719 770 751 808 680

762 803 825 889 699

734 781 766 820 699

1h 1h 1h 1h 630

61 61 61 61 61

31 27 32 28 30

672 757 672 783 677

766 775 776 889 789

675 768 678 789 683

1h 1h 1h 1h 1h

81 81 81 81 81

32 30 32 31 30

672 757 659 727 666

766 838 838 889 827

675 760 665 733 669

1h 1h 1h 1h 1h

R05 R06 R07 R08 R09

4 4 4 4 4

4 4 4 4 4

729 815 672 805 755

744 821 673 815 755

744 821 673 815 755

3 1 0 1 0

36 36 36 36 36

25 24 24 26 26

603 716 593 759 628

605 721 599 763 631

605 721 599 763 631

3 5 3 2 4

56 56 56 56 56

28 29 28 28 28

603 716 583 697 614

605 721 585 699 617

605 721 585 699 617

5 9 40 9 11

76 76 76 76 76

30 30 31 29 30

596 705 565 685 607

598 712 570 685 609

598 712 570 685 609

14 222 51 28 22

R05 R06 R07 R08 R09

4 4 4 4 4

5 5 5 5 5

808 852 750 828 796

824 859 756 841 796

824 859 756 841 796

29 6 1 13 0

40 40 40 40 40

30 23 28 26 27

706 745 685 791 674

707 748 690 801 683

707 748 690 801 683

2 5 4 52 41

60 60 60 60 60

31 28 30 29 29

658 745 646 781 670

665 748 655 791 678

665 748 655 791 678

124 6 220 179 321

80 80 80 80 80

32 30 31 31 30

653 745 632 726 660

665 748 644 732 666

665 748 644 732 666

1401 24 2307 201 712

R05 R06 R07 R08 R09

4 4 4 4 4

6 6 6 6 6

843 870 807 876 828

867 897 831 903 862

867 897 831 903 862

627 90 61 539 2505

44 44 44 44 44

28 28 30 28 30

754 806 796 856 698

764 837 814 896 716

764 820 814 867 710

367 1h 367 1h 1h

64 64 64 64 64

32 29 32 29 31

742 789 717 834 698

748 824 810 874 714

748 798 724 839 707

223 1h 1h 1h 1h

84 84 84 84 84

32 31 33 32 31

704 784 703 808 689

741 794 766 835 719

704 794 713 815 693

1h 3537 1h 1h 1h

R05 R06 R07 R08 R09

4 4 4 4 4

7 7 7 7 7

867 921 881 922 881

895 969 1066 949 931

885 939 899 949 896

1h 1h 1h 1148 1h

48 48 48 48 48

31 29 31 31 30

790 888 861 893 775

839 1027 877 912 879

796 892 870 899 779

1h 1h 1h 1h 1h

68 68 68 68 68

33 30 32 31 32

769 859 792 873 721

904 882 877 912 893

772 863 794 877 721

1h 1h 1h 1h 1h

88 88 88 88 88

33 31 33 33 32

735 835 774 843 714

904 937 877 912 893

735 837 782 847 716

1h 1h 1h 1h 1h

We have built four families of instances by taking 9G9 equal to n for family (a), n þ 20 for family (b), n þ40 for family (c), and n þ 60 for family (d). These four families give place to 240 instances. Note that family (a) is exactly the set of instances proposed in [1] for the DTSPMS.

5.2. Performance of the branch-and-cut algorithm Tables 1–4 show the performance of the BC algorithm in terms of the quality of the integer gap, the computational time, and provide some additional details such as the number of branching

´n et al. / Computers & Operations Research 40 (2013) 2103–2115 M. Batista-Galva

2111

Table 2 Number of nodes, number of markets in the best solution, gap at the root node, and gap for unfinished instances. Inst.

r

l

(a)

(b)

Nod

%g 0

%g

(c) 9Mn 9=9M9

Nod

%g 0

%g

(d) 9Mn 9=9M9

Nod

%g 0

%g

Nod

9M n 9=9M9

%g 0

%g

R05 R06 R07 R08 R09

2 2 2 2 2

4 4 4 4 4

1 132 289 588 73

0.0 3.3 2.7 3.7 1.0

0.0 0.0 0.0 0.0 0.0

19 48 480 217 898

5/20 7/24 6/19 6/20 7/21

0.5 0.3 2.0 0.6 1.7

0.0 0.0 0.0 0.0 0.0

574 414 352 296 727

5/27 7/29 5/24 6/27 7/26

0.5 0.8 1.8 0.8 1.7

0.0 0.0 0.0 0.0 0.0

78 25 482 130 1610

5/30 6/29 5/28 6/29 6/30

0.5 0.8 1.8 1.5 1.7

0.0 0.0 0.0 0.0 0.0

R05 R06 R07 R08 R09

2 2 2 2 2

5 5 5 5 5

1001 1814 208 2458 648

4.2 4.8 4.0 5.1 1.5

0.0 0.0 0.0 0.0 0.0

652 144 15359 5994 3733

7/20 9/24 7/19 8/24 9/19

2.0 0.3 5.8 2.8 2.0

0.0 0.0 0.0 0.0 0.0

1082 1655 1919 10421 55

7/25 8/26 5/22 7/25 6/24

2.0 0.8 1.6 4.1 0.2

0.0 0.0 0.0 0.0 0.0

1371 378 2680 35352 282

7/28 8/29 5/24 6/28 6/27

2.0 0.8 1.8 4.1 0.2

0.0 0.0 0.0 0.0 0.0

R05 R06 R07 R08 R09

2 2 2 2 2

6 6 6 6 6

151 370 8361 12 266 55 449 4804

10.9 6.3 8.8 8.3 3.3

0.0 0.0 0.0 0.0 0.0

7096 63 068 62 892 249 680 279 445

9/20 11/23 10/22 10/26 11/21

2.6 3.6 6.4 7.5 5.6

0.0 0.0 0.0 0.0 0.0

3858 113 379 26 340 70 147 325 546

9/26 9/26 8/25 9/27 6/25

2.1 4.8 4.2 6.7 4.6

0.0 0.0 0.0 0.0 0.0

9033 237090 240977 317 671 282 940

7/29 8/29 7/28 9/31 6/28

2.6 4.8 7.0 6.7 4.6

0.0 0.0 0.0 2.2 2.7

R05 R06 R07 R08 R09

2 2 2 2 2

7 7 7 7 7

476 072 34 434 82 990 1 211 042 12 500

8.0 6.9 9.8 10.3 3.2

0.0 0.0 0.0 0.0 0.0

270 848 253 983 1 038 743 1 077 943 818 465

9/21 11/22 10/21 13/25 12/23

5.3 3.9 10.4 7.2 6.5

0.0 0.0 2.1 1.9 0.0

392 364 490 807 193 993 299 640 114 347

9/28 11/26 10/24 10/27 11/25

4.9 3.9 6.0 9.8 3.9

0.0 1.9 0.0 6.8 0.0

94 644 262 427 132 476 238 315 148 033

10/30 9/27 8/28 9/28 11/29

3.4 4.8 7.5 6.6 4.6

0.0 2.8 5.2 3.0 2.7

R05 R06 R07 R08 R09

3 3 3 3 3

4 4 4 4 4

355 118 159 41 10

0.9 1.1 2.8 0.9 0.2

0.0 0.0 0.0 0.0 0.0

1 1794 4552 171 379

9/20 11/23 10/22 10/26 11/21

0.0 0.9 2.2 1.2 1.1

0.0 0.0 0.0 0.0 0.0

1 2789 1749 920 1

9/26 9/26 7/25 9/27 6/25

0.0 0.8 0.9 1.4 0.0

0.0 0.0 0.0 0.0 0.0

36 2655 3447 4987 101

7/29 9/29 9/28 10/31 6/28

0.0 0.8 1.4 1.4 0.0

0.0 0.0 0.0 0.0 0.0

R05 R06 R07 R08 R09

3 3 3 3 3

5 5 5 5 5

4949 2197 7742 791 3971

2.7 2.4 5.1 1.3 2.1

0.0 0.0 0.0 0.0 0.0

8562 25 698 16 763 10 309 4337

11/24 12/23 11/23 13/25 14/25

1.3 2.2 2.1 2.3 2.2

0.0 0.0 0.0 0.0 0.0

12 743 21 317 4801 77 584 5968

10/28 12/27 9/27 11/27 12/27

1.4 2.2 2.1 2.4 1.6

0.0 0.0 0.0 0.0 0.0

2954 119 702 93 532 32 362 6556

11/30 10/28 10/30 11/28 10/29

0.9 2.8 3.3 2.5 1.3

0.0 0.0 0.0 0.0 0.0

R05 R06 R07 R08 R09

3 3 3 3 3

6 6 6 6 6

32 198 216 512 128 076 60826 1175

3.9 3.3 7.7 4.4 1.5

0.0 0.0 0.0 0.0 0.0

143 673 21 196 800 259 187 392 17 655

14/27 13/22 14/26 16/25 17/26

3.6 1.3 8.4 2.9 2.0

0.0 0.0 5.1 0.0 0.0

353 764 33 221 317 762 442 063 110 750

12/28 13/27 14/30 14/28 13/28

4.4 1.3 5.4 3.3 0.8

3.5 0.0 3.0 1.2 0.0

129 286 63 640 116 901 149 077 210 369

13/30 13/29 13/32 15/30 13/30

5.4 1.3 5.6 6.1 3.1

4.4 0.0 3.9 5.4 1.3

R05 R06 R07 R08 R09

3 3 3 3 3

7 7 7 7 7

1 324 276 1 181 922 1 283 123 1 188 841 55 482

14.0 5.4 11.7 6.7 3.1

12.0 1.5 7.7 3.6 0.0

592 422 581 568 500 770 386 945 117 637

17/31 15/24 18/29 18/26 20/28

5.6 4.1 9.0 9.1 2.7

3.7 2.7 7.1 7.8 0.0

176 769 298 506 161 388 210 960 123 188

17/31 14/27 15/32 17/28 16/30

12.2 2.3 13.4 11.9 14.2

11.8 1.0 12.6 11.2 13.4

81 120 92 351 92 097 80 628 97 618

14/32 15/30 14/32 14/31 17/30

12.3 9.7 21.3 18.3 19.4

11.9 9.3 20.7 17.6 19.1

R05 R06 R07 R08 R09

4 4 4 4 4

4 4 4 4 4

1160 241 17 274 1

2.0 0.7 0.2 1.2 0.0

0.0 0.0 0.0 0.0 0.0

330 1164 236 119 434

12/25 13/24 12/24 14/26 14/26

0.4 0.7 1.0 0.5 0.5

0.0 0.0 0.0 0.0 0.0

160 668 2369 331 565

11/28 13/29 10/28 11/28 13/28

0.4 0.7 0.3 0.3 0.5

0.0 0.0 0.0 0.0 0.0

17 19 635 1593 328 221

10/30 11/30 9/31 11/29 11/30

0.3 1.0 0.8 0.0 0.3

0.0 0.0 0.0 0.0 0.0

R05 R06 R07 R08 R09

4 4 4 4 4

5 5 5 5 5

14 573 1586 129 5581 1

1.9 0.8 0.8 1.6 0.0

0.0 0.0 0.0 0.0 0.0

69 539 146 9496 8022

16/30 14/23 18/28 17/26 18/27

0.1 0.4 0.7 1.3 1.3

0.0 0.0 0.0 0.0 0.0

13 189 154 22 662 16 771 34 469

13/31 14/28 15/30 13/29 16/29

1.1 0.4 1.4 1.3 1.2

0.0 0.0 0.0 0.0 0.0

150 082 401 159 787 9849 43 194

12/32 14/30 14/31 13/31 14/30

1.7 0.4 1.9 0.8 0.9

0.0 0.0 0.0 0.0 0.0

R05 R06 R07 R08 R09

4 4 4 4 4

6 6 6 6 6

172 223 29 613 13 839 154 275 583 437

2.8 3.0 2.9 3.0 3.9

0.0 0.0 0.0 0.0 0.0

27 812 431 498 33 016 263 931 563 269

21/28 19/28 20/30 19/28 21/30

1.3 3.7 2.2 4.5 2.5

0.0 2.1 0.0 3.2 0.8

12 258 178 300 329 221 137 395 288 938

16/32 19/29 16/32 16/29 19/31

0.8 4.2 11.5 4.6 2.2

0.0 3.2 10.6 4.0 1.1

73 123 317 010 104 035 104 162 136 928

15/32 17/31 16/33 18/32 15/31

5.0 1.3 8.2 3.2 4.2

5.0 0.0 6.9 2.3 3.7

R05 R06 R07 R08 R09

4 4 4 4 4

7 7 7 7 7

446 870 281 495 432 173 121 893 210 668

3.1 5.0 17.4 2.8 5.4

1.1 3.1 15.7 0.0 3.7

82 873 81 127 120 349 114 364 92 839

23/31 23/29 23/31 23/31 21/30

5.8 13.5 1.9 2.1 11.8

5.1 13.2 0.8 1.5 11.4

78 736 69 912 70 510 66 590 102 230

17/33 21/30 23/32 21/31 22/32

14.9 2.6 9.7 4.3 19.3

14.6 2.1 9.4 3.8 19.2

74 489 50 424 67 204 56 325 70 548

21/33 17/31 24/33 21/33 21/32

18.7 10.9 11.8 7.6 20.0

18.7 10.7 10.8 7.1 19.9

nodes, the number of markets forming part of the best solution, and the number of separated inequalities. The quality of the integer gap and the number of solved branching nodes give us an orientation of the behavior of the algorithm in the time horizon if it finishes after the time limit.

Table 1 shows the value of the upper and lower bounds at the end of the computation, the lower bound at the root node, and the computational time in seconds consumed by the proposed algorithm for each instance. Column Inst. shows the name of the instance. Columns r and l show the number of stacks and the

´n et al. / Computers & Operations Research 40 (2013) 2103–2115 M. Batista-Galva

2112

Table 3 Number of valid inequalities. Inst.

r

l

(a)

(b)

(13)

ELC

(c)

(13)

ELC

(16)

(17)

(d)

(13)

ELC

(16)

(17)

(13)

ELC

(16)

(17)

R05 R06 R07 R08 R09

2 2 2 2 2

4 4 4 4 4

31 400 575 1493 136

20 322 626 1003 187

42 21 393 235 928

124 387 2890 1616 4970

492 190 594 660 2226

0 0 23 15 120

541 53 423 272 330

2195 2561 2238 1578 3327

581 342 605 393 630

47 1 22 6 26

92 13 522 193 576

390 207 2661 844 6454

501 275 550 554 1331

0 0 9 2 32

R05 R06 R07 R08 R09

2 2 2 2 2

5 5 5 5 5

2271 4426 816 5768 1486

1737 2951 656 3341 1553

550 356 20 683 9201 3753

4917 1279 71 850 35 337 25 154

928 746 12 512 9154 8332

19 29 558 534 563

841 2047 1645 10 273 23

6716 9878 10 361 45 122 405

1072 2392 1907 8605 381

79 99 78 538 4

170 503 1710 21 640 657

5603 2515 11 170 130 170 2015

803 854 1145 10 912 551

6 118 28 2299 35

R05 R06 R07 R08 R09

2 2 2 2 2

6 6 6 6 6

248 996 23 512 17 653 148 769 10 313

217 383 13 949 17 490 82 914 8615

6297 71 974 65 549 221 604 88 321

37 731 304 808 297 673 1 111 205 1 485 263

5150 62 736 91 514 673 942 527 168

342 5018 4395 26 095 30 639

4218 114 786 19 037 39 672 75 183

19 657 456 324 145 456 317 192 1 389 034

2314 111 752 10 439 70 539 258 393

362 3158 664 8436 5232

11 466 146 937 76 259 128 040 88 036

49 293 902 384 872 355 1 201 837 1 196 798

5873 74 727 44 339 109 810 153 570

817 7609 3702 10 835 4885

R05 R06 R07 R08 R09

2 2 2 2 2

7 7 7 7 7

849 465 85 784 168 913 3 144 027 38 924

757 192 55 320 125 792 1 699 735 23 299

247 844 348 011 1 120 554 844 848 505 260

1 635 914 1 241 275 5 394 588 5 259 620 4 160 883

492 198 200 736 2 341 734 2 341 258 1 219 804

18 046 11 952 68 476 92 568 80 138

230 008 962 248 206 387 557 703 109 158

1 749 267 2 082 111 1 165 439 1 909 370 666 697

147 361 423 006 116 183 514 253 92 080

17 079 22 849 18 053 75 129 11 332

78 390 269 724 461 345 121 025 275 298

457 814 1 260 716 869 934 1 079 494 993 168

34 348 105 701 55 875 81 344 131 029

3352 13 131 15 735 9492 25 729

R05 R06 R07 R08 R09

3 3 3 3 3

4 4 4 4 4

1101 707 531 263 88

669 248 308 75 42

31 3101 1397 158 176

0 9864 14678 1355 2202

282 3216 4880 734 716

0 91 64 0 34

31 2416 2130 606 21

4 11 415 8833 4426 0

434 4590 1029 641 409

0 65 25 64 0

43 1254 801 1223 97

174 10 341 8970 15 297 626

758 961 1124 2289 599

3 17 30 110 8

R05 R06 R07 R08 R09

3 3 3 3 3

5 5 5 5 5

8418 5723 16 018 4396 6382

6904 2795 9234 1233 4175

9752 42 640 17 868 3625 2223

47 132 119 342 88 673 48 161 21904

8648 27 212 44 400 13 910 6400

160 443 341 275 53

6686 35 311 1276 13 260 3228

61 237 100 631 19179 268 489 24 470

2273 16 051 1595 20 121 4609

141 703 57 959 371

2965 42 534 78 066 4072 3351

16 565 449 271 362 803 111 360 30 005

1964 37 795 25 904 6360 3632

160 327 1809 72 369

R05 R06 R07 R08 R09

3 3 3 3 3

6 6 6 6 6

101 450 553 781 191 259 178 057 2846

47 375 281 006 144 565 63 299 1490

55 769 31 750 831 996 138 444 12464

617 820 137 252 4 608 535 1 014 323 101 972

181 478 38 650 733 346 356 568 31 142

90 739 19 325 366 673 178 284 15 571

229 384 29 106 203 206 128 670 66 785

1 423 273 177 355 1 412 081 2 198 625 441 778

125 075 31 117 182 545 56 926 38 271

7392 1647 14 676 2530 1670

158 287 74 963 194 094 138 674 85 801

713 332 227 922 840 179 685 725 1 181 095

25 000 22 271 45 980 37 629 70 506

4811 4237 11 525 7599 9138

R05 R06 R07 R08 R09

3 3 3 3 3

7 7 7 7 7

3 860 056 3 062 478 4 114 942 4 164 112 158 298

6 651 354 6 317 147 6 845 225 6 336 269 299 057

640 551 793 842 546 790 563 922 57 505

2 853 894 3 443 824 2 929 574 2 561 510 652 664

721 876 788 088 687 438 859 570 139 366

360 938 394 044 343 719 429 785 69 683

416 386 220 028 612 893 656 242 191 730

1 203 564 1 666 352 1 292 862 1 389 827 1 140 488

173 041 230 255 116 708 73 092 162 272

53 949 19 973 26 992 22 785 33 208

258 511 469 526 608 381 560 355 244 307

636 089 663 315 583 264 513 734 722 124

38 480 39 017 20 691 17 976 65 717

12 741 14 452 9505 6719 25 474

R05 R06 R07 R08 R09

4 4 4 4 4

4 4 4 4 4

1758 1051 203 1370 120

1743 343 42 377 4

358 2514 156 41 375

2214 3887 2215 831 2030

924 1166 620 424 872

462 583 310 212 436

170 542 3559 219 395

1010 1727 12 169 2061 2214

540 1011 1680 777 783

0 25 70 26 24

69 10 157 1967 736 243

33 49 948 4353 1521 1465

814 4984 1068 1400 846

9 0 41 8 18

R05 R06 R07 R08 R09

4 4 4 4 4

5 5 5 5 5

37 752 8830 976 17 468 135

12 776 2763 226 5348 8

214 847 93 7054 5019

517 3058 882 48 298 40 593

590 734 1368 21 634 12 180

295 367 684 10 817 6090

17 293 275 9776 9060 17 425

75 254 992 82 094 81 126 203 294

2319 557 4263 2671 11 578

3 5 495 230 116

72 742 438 60 937 4013 22 402

220 818 2817 405 029 37 523 164 990

12 106 928 17 581 2109 10 183

36 12 2639 75 114

R05 R06 R07 R08 R09

4 4 4 4 4

6 6 6 6 6

344 574 60 524 61 687 433 026 892 717

795 493 122 822 73 213 690 506 3 257 119

38 531 324 914 44 083 276 643 153 174

187 061 2 272 018 203 805 1 685 328 3 145 633

57 118 448 400 26 648 372 674 361 552

28 559 224 200 13 324 186 337 180 776

19 824 168 013 316 584 203 729 98 506

79 140 948 068 607 286 889 194 1 605 077

4795 137 942 68 483 47 558 86578

153 12 281 26 981 5246 4232

224 591 64 604 232 085 133 904 79 031

452 989 536 916 488 628 681 788 666 742

20 104 53 387 38 124 37 082 76 556

3436 1912 13 321 4309 8163

R05 R06 R07 R08 R09

4 4 4 4 4

7 7 7 7 7

813 117 1 491 491 2 223 816 405 131 859 829

2 071 225 2 129 297 2 449 522 580 025 1 669 949

173 784 307 841 530 997 554 755 257 585

809 052 800 420 1 174 279 1 058 261 919 871

197 614 171 370 186 178 232 860 209 590

98 807 85 685 93 089 116 430 104 795

369 137 251 187 281 318 276 591 395 483

725 890 637 679 664 662 597 683 771 299

59 271 46 689 41 901 39 117 83 700

15 881 10 199 10 538 13 232 27 742

128 840 170 574 330 825 270 472 243 226

437 747 441 721 477 578 374 397 1145

16 493 24 303 23 048 11 253 34 294

10 834 6608 8473 5983 11 787

length of the container, respectively. Thus, the number of required products n is given by rl. For each family of instances (b)–(d), columns 9G9 show the number of potential assignments for each instance, and columns 9M9 show the number of markets

selling at least one product. Note that these columns do not appear in the family of instances (a) because 9G9 ¼ 9M9 ¼ rl. For all families of instances, columns LB0 show the lower bound at the end of the computation of the root node, and columns UB and LB

´n et al. / Computers & Operations Research 40 (2013) 2103–2115 M. Batista-Galva

2113

Table 4 Impact of the inequalities (16) and (17): gap at the root node. Inst.

r

l

(b)

(c)

(i)

(ii)

(iii)

(d)

(i)

(ii)

(iii)

(i)

(ii)

(iii)

R05 R06 R07 R08 R09

2 2 2 2 2

4 4 4 4 4

0.469 0.334 7.624 0.562 1.747

0.469 0.334 1.990 0.562 1.747

0.469 0.334 1.990 0.562 1.747

6.085 0.756 8.551 0.562 1.747

0.469 0.756 1.786 0.610 1.747

0.469 0.756 1.786 0.785 1.747

6.070 0.756 9.179 3.933 1.747

0.469 0.756 1.786 1.288 1.747

0.469 0.756 1.786 1.526 1.747

R05 R06 R07 R08 R09

2 2 2 2 2

5 5 5 5 5

1.969 0.300 6.022 3.114 2.033

1.969 0.300 5.806 2.764 2.033

1.969 0.300 5.806 2.764 2.033

5.908 0.832 9.688 4.100 0.200

1.969 0.832 1.595 4.100 0.200

1.969 0.832 1.595 4.100 0.200

7.460 0.832 9.597 6.763 0.200

1.969 0.832 1.825 4.258 0.200

1.969 0.832 1.847 4.100 0.200

R05 R06 R07 R08 R09

2 2 2 2 2

6 6 6 6 6

2.584 3.730 6.427 8.508 5.598

2.584 3.730 6.427 7.547 5.641

2.584 3.587 6.427 7.547 5.641

6.600 4.754 10.494 6.721 4.579

2.000 4.754 5.192 6.721 4.579

2.078 4.754 4.200 6.721 4.579

6.093 4.754 12.925 6.790 4.579

2.864 5.040 6.955 6.810 4.579

2.632 4.754 7.002 6.721 4.579

R05 R06 R07 R08 R09

3 3 3 3 3

4 4 4 4 4

0.000 0.886 2.174 2.267 1.075

0.000 0.886 2.174 1.240 1.075

0.000 0.882 2.174 1.240 1.075

4.694 0.825 7.408 1.386 0.000

0.000 0.825 1.923 1.386 0.000

0.000 0.825 0.897 1.386 0.000

3.555 0.825 7.665 1.459 0.000

0.239 1.122 1.333 1.480 0.000

0.000 0.825 1.383 1.386 0.000

R05 R06 R07 R08 R09

3 3 3 3 3

5 5 5 5 5

1.414 2.163 2.091 2.921 2.194

1.414 2.189 2.091 2.300 2.194

1.331 2.189 2.091 2.338 2.194

2.155 2.295 7.085 2.425 1.613

1.414 2.189 2.131 2.425 1.613

1.414 2.189 2.131 2.425 1.613

2.795 2.993 8.655 2.041 1.039

0.948 2.820 2.828 2.041 1.122

0.924 2.762 3.268 2.517 1.319

R05 R06 R07 R08 R09

4 4 4 4 4

4 4 4 4 4

0.413 0.693 1.002 1.886 0.475

0.413 0.693 1.002 0.524 0.475

0.413 0.693 1.002 0.524 0.475

0.836 0.693 3.868 0.442 0.486

0.436 0.693 0.496 0.286 0.486

0.413 0.693 0.342 0.286 0.486

1.620 1.317 5.996 0.127 0.328

0.841 0.983 0.960 0.000 0.741

0.339 1.003 0.816 0.000 0.328

R05 R06 R07 R08 R09

4 4 4 4 4

5 5 5 5 5

0.141 0.401 0.725 1.983 1.318

0.141 0.401 0.725 1.248 1.318

0.141 0.401 0.725 1.280 1.318

1.256 0.401 1.450 2.465 1.180

1.075 0.401 1.693 1.522 1.180

1.069 0.401 1.366 1.306 1.180

1.842 0.401 2.134 0.807 0.901

1.332 0.416 1.553 1.191 1.039

1.734 0.401 1.910 0.801 0.901

2.207

1.897

1.893

3.273

1.700

1.628

3.662

1.839

1.815

Avg.

show the value of the upper and lower bound at the end of the computation, respectively. Table 2 studies the quality of the integer gap and the gap at the end of the computation. It also shows the number of nodes involved in the branching tree, and the number of markets involved in the best solution, for each instance. Columns Nod show the number of processed nodes in the branching tree. Columns 9Mn 9=9M9 show the number of markets forming part of the best solution. These columns give an insight into the the complexity of the instances in our benchmark set. The ratio between the number of markets in the best solution over the number of markets forming part of the instance reveals that our problem combines routing and location in a balanced way. This marks a clear distance between the DTSPMS instances (family (a)) and the TPPMSD instances (family (d)). Columns %g 0 show the integer gap computed as 100ðOPTLB0 Þ= OPT, and columns %g show the gap after the execution of the BC algorithm computed as 100ðOPTLBÞ=OPT. Finally, columns Sec. show the computational time in seconds. Similarly, Table 3 shows the number of separated inequalities for these 240 instances. The number of extended loading constraints separated in the BC algorithms is shown in columns ELC. The headers related to the family of instances (a) include only two columns because the remaining constraints have been specially designed for pure TPPMSD instances.

As pointed out above, the family (a) corresponds to the family of instances originally proposed in [1]. Thus, the computational results contained in the set of columns (a) show the behavior of our TPPMSD algorithm on DTSPMS instances. In this context, our algorithm is able to solve 52 instances within the time limit of one hour, while the best specific exact algorithm known (see [5]) is able to solve 53 instances. Our algorithm solves one instance not solved in [5] while the algorithm in [5] solves two instances that our algorithm does not. Regardless of the differences in the implementation details, in the computer features, and in the libraries used for their respective implementations (i.e., SCIP vs. Cplex), the DTSPMS algorithm proposed in [5] shows a similar performance to our TPPMSD algorithm applied to DTSPMS instances. Note, however, that our algorithm solves a more general and complex problem. Observe in Table 1 that for a given instance of families (b)–(d) the objective values decrease as 9G9 increases. This happens because increasing the number of potential assignments implies having more options to purchase each product, and therefore it lets the algorithm build shorter pickup tours. Table 1 also shows that the difficulty of solving a TPPMSD instance depends on 9G9 rather than on 9I9 and 9M9. For example, instances ðR05,4,6,64Þ and ðR06,4,6,84Þ relate to similar values of 9I9 and 9M9 respectively, but the larger value of 9G9 in the latter

2114

´n et al. / Computers & Operations Research 40 (2013) 2103–2115 M. Batista-Galva

makes this instance harder for our algorithm. The fact that 9G9 b makes this behavior likely. determines the size of the graph G At the same time, we note that as the number of potential assignments increases those inequalities related to the loading subproblem lose importance in favor of (13), (16) and (17). More precisely, the percentage of ELC with respect to the total number of constraints become 37%, 34%, and 29% for families (b), (c), and (d), respectively. Our BC approach also gives both upper and lower bounds for those instances requiring more than one hour of computing time. The integer gap, computed as 100ðUBLBÞ=UB for those instances, is on average 4.6 (fifteen instances), 7.1 (nineteen instance) and 8.2 (twenty four instances) for families (b), (c) and (d), respectively, in Table 2. 5.3. Evaluating the impact of the proposed valid inequalities on the root node Here we evaluate the usefulness of the proposed families of inequalities. Table 4 shows the gap of the BC algorithm under three scenarios at the root node for the families of instances (b), (c) and (d). The family (a) does not require constraints (16) and (17). We consider the following three scenarios: Scenario (i) corresponds to the model consisting of inequalities (2)–(14), the extended loading constraints, and some families to strengthen the asymmetric TSP components as (18) and (19). Scenario (ii) corresponds to scenario (i) including inequalities (16) and excluding (6). Scenario (iii) corresponds to scenario (ii) including inequalities (17). For each scenario, each column in Table 4 represents the percentage of the difference between the optimal value OPT and the lower bound related to each scenario LB, with respect to OPT, and computed as 100ðOPTLBÞ=OPT. This table takes into account the group of instances finished within the time limit of one hour. That is, we have removed blocks with r ¼2 and l¼ 7, r ¼3 and l¼6, r ¼3 and l ¼7, r ¼4 and l ¼6, and r ¼4 and l ¼7. We observe that, although the effect of the new valid inequalities on family (b) is hardly perceptible, families (c) and (d) show a clear tendency towards reducing the gap at the root node as additional inequalities are introduced. As we have shown in Section 3, inequalities (16) dominate (6), and for that reason scenario (ii) shows smaller gaps than scenario (i). In this sense, we observe that the larger the number of potential assignments the clearer this dominance is. For example, the difference of the gap between scenarios (i) and (ii) is not more than 0.3% on average in family (b), while it is 1.8% for family (d). The inclusion of inequalities (17) (scenario (ii) vs. (iii)) also contributes to a reduction in the gap in most of the cases. The exceptions are caused by the heuristic nature of some separation procedures for the extended loading constraints. The gap reduction due to (17) is slightly smaller than the one obtained in scenario (ii) and the higher the number of potential assignments with respect to number of required products the more pronounced it is. Regarding the computational time, there is a negligible difference among the three scenarios. The utility of extended loading constraints has not been analyzed in this computational experience because a preliminary experiment yielded conclusive results: none of the experiences in which we used the inequalities (20), (21), and (22) without our variable extension finished within the time limit of one hour, except for the instances (a), and some isolated instances which were solved very close to this limit. For that reason, the extended loading constraints have been used instead of (20), (21), and (22) in all our experiments. 6. Conclusions We have introduced the TPPMSD as a generalization of the DTSPMS which allows the products to be available in more than

one location. In order to describe this new problem we have proposed a formulation which considers the product collection sequence during the pickup tour, and thus, it can properly combine the underlying loading problem with the routing problems. We have enriched this model with new additional valid inequalities and other constraints from [5] properly adapted to the specific features of the TPPMSD. The formulation and the valid inequalities have motivated a BC algorithm whose performance has been tested on instances from the literature adapted to this specific problem. A computational experience, based on 240 instances, has validated the effectiveness of the algorithm here proposed. It has been shown to be more effective on TPPMSD instances with a significantly large number of potential assignments with respect to the number of required products. This experience has concluded that instances up to 24 products and 32 markets can be solved to optimality within the time limit of 1 h.

Acknowledgment This research has been partially supported by the research projects MTM2009-14039-C06-01 and MTM2012-36163-C06-01. References [1] Petersen HL, Madsen OB. The double travelling salesman problem with multiple stacks – formulation and heuristic solution approaches. European Journal of Operational Research 2009;198:139–47. [2] Petersen HL, Archetti C, Speranza MG. Exact solutions to the double travelling salesman problem with multiple stacks. Networks 2010;56:229–43. [3] Lusby RM, Larsen J, Ehrgott M, Ryan D. An exact method for the double TSP with multiple stacks. International Transactions in Operational Research 2010;17:637–52. [4] Carrabs F, Cerulli R, Speranza MG. A branch-and-bound algorithm for the double TSP with two stacks. Technical Report 4, Dipartimento di Matematica e Informatica, Universita di Salerno, Fisciano, Italy; 2010. [5] Alba Martı´nez MA, Cordeau J-F, Dell’Amico M, Iori M. A branch-and-cut algorithm for the double traveling salesman problem with multiple stacks. INFORMS Journal on Computing, in press, http://dx.doi.org/10.1287/ijoc. 1110.0489. ˜ o MT, Tirado G. The double traveling salesman problem with [6] Felipe A, Ortun multiple stacks: a variable neighborhood search approach. Computers & Operations Research 2009;36:2983–93. ˜ o MT, Tirado G. New neighborhood structures for the double [7] Felipe A, Ortun traveling salesman problem with multiple stacks. TOP 2009;17:190–213. [8] Coˆ te´ J-F, Gendreau M, Potvin J-Y. Large neighborhood search for the single vehicle pickup and delivery problem with multiple loading stacks. Technical Report CIRRELT-2009-47, CIRRELT, Montre´al, Canada; 2009. [9] Toulouse S, Wolfler Calvo R. On the complexity of the multiple stack TSP kSTSP. In: Chen J, Cooper S, editors. Theory and applications of models of computation, Lecture notes in computer science, vol. 5532. Berlin, Heidelberg: Springer; 2009. p. 360–9. [10] Casazza M, Ceselli A, Nunkesser M. Efficient algorithms for the double traveling salesman problem with multiple stacks. Computers & Operations Research 2012;39:1044–53. [11] Bonomo F, Mattia S, Oriolo G. Bounded coloring of co-comparability graphs and the pickup and delivery tour combination problem. Theoretical Computer Science 2011;412:6261–8. [12] Toulouse S. Approximability of the multiple stack TSP. Electronic Notes in Discrete Mathematics 2010:813–20. [13] Ramesh T. Traveling purchaser problem. Opsearch 1981;18:78–91. [14] Burstall RM. A heuristic method for a job-sequencing problem. Operational Research Quarterly 1966;17:291–304. [15] Buzacott JA, Dutta SK. Sequencing many jobs on a multi-purpose facility. Naval Research Logistics Quarterly 1971;18:75–82. [16] Singh KN, van Oudheusden DL. A branch and bound algorithm for the traveling purchaser problem. European Journal of Operational Research 1997;97:571–9. [17] Laporte G, Riera-Ledesma J, Salazar-Gonza´lez JJ. A branch-and-cut algorithm for the undirected traveling purchaser problem. Operational Research 2003;51:940–51. [18] Riera-Ledesma J, Salazar-Gonza´lez JJ. Solving the asymmetric traveling purchaser problem. Annals of Operations Research 2006;144:83–97. [19] Golden BL, Levy L, Dahl R. Two generalizations of the traveling salesman problem. Omega 1981;9:439–45. [20] Ong HL. Approximate algorithms for the traveling purchaser problem. Operations Research Letters 1982;1:201–5.

´n et al. / Computers & Operations Research 40 (2013) 2103–2115 M. Batista-Galva

[21] Voß S. Dynamic tabu search strategies for the traveling purchaser problem. Annals of Operations Research 1996;63:253–75. [22] Pearn WL, Chien RC. Improved solutions for the traveling purchaser problem. Computers & Operations Research 1998;25:879–85. [23] Boctor FF, Laporte G, Renaud J. Heuristics for the traveling purchaser problem. Computers & Operations Research 2003;30:491–504. [24] Riera-Ledesma J, Salazar-Gonza´lez J. A heuristic approach for the traveling purchaser problem. European Journal of Operational Research 2005;162: 142–52. [25] Bontoux B, Feillet D. Ant colony optimization for the traveling purchaser problem. Computers & Operations Research 2008;35:628–37. [26] Goldbarg M, Bagi L, Goldbarg E. Transgenetic algorithm for the traveling purchaser problem. European Journal of Operational Research 2009;199: 36–45. [27] Labbe´ M, Laporte G, Rodrı´guez-Martı´n I, Salazar-Gonza´lez JJ. The ring star problem: polyhedral analysis and exact algorithm. Networks 2004;43:177–89. [28] Current JR, Schilling DA. The covering salesman problem. Transportation Science 1989;23:208–13. [29] Golden BL, Levy L, Vohra R. The orienteering problem. Naval Research Logistics 1987;34:307–18.

2115

[30] Balas E. The prize collecting traveling salesman problem. Networks 1989;19: 621–36. [31] Laporte G, Norbert Y. Generalize travelling salesman through n sets of nodes: an integer programming approach. INFORMS Journal on Computing 1983;21: 61–75. ¨ [32] Ascheuer N, Fischetti M, Grotschel M. A polyhedral study of the asymmetric travelling salesman problem with time windows. Networks 2000;36:69–79. [33] Fischetti M, Toth P. A polyhedral approach to the asymmetric traveling salesman problem. Management Science 1997;43:1520–36. [34] Padberg MW, Rao MR. Odd minimum cut-sets and b-matchings. Mathematics of Operations Research 1982:67–80. ¨ [35] Grotschel M, Padberg MW. On the symmetric travelling salesman problem I: inequalities. Mathematical Programming 1979;16:265–80. [36] Fischetti M, Salazar-Gonza´lez JJ, Toth P. Solving the orienteering problem through branch-and-cut. INFORMS Journal on Computing 1998;10:133–48. [37] Achterberg T. SCIP: solving constraint integer programs. Mathematical Programming Computation 2009;1:1–41.