European Journal of Operational Research 199 (2009) 36–45
Contents lists available at ScienceDirect
European Journal of Operational Research journal homepage: www.elsevier.com/locate/ejor
Discrete Optimization
Transgenetic algorithm for the Traveling Purchaser Problem M.C. Goldbarg, L.B. Bagi, E.F.G. Goldbarg * Universidade Federal do Rio Grande do Norte, Campus Lagoa Nova, RN, Brazil
a r t i c l e
i n f o
Article history: Received 25 October 2006 Accepted 27 October 2008 Available online 6 November 2008 Keywords: Combinatorial optimization Traveling Purchaser Problem Evolutionary algorithm Transgenetic algorithm
a b s t r a c t In this paper an evolutionary algorithm is presented for the Traveling Purchaser Problem, an important variation of the Traveling Salesman Problem. The evolutionary approach proposed in this paper is called transgenetic algorithm. It is inspired on two significant evolutionary driving forces: horizontal gene transfer and endosymbiosis. The performance of the algorithm proposed for the investigated problem is compared with other recent works presented in the literature. Computational experiments show that the proposed approach is very effective for the investigated problem with 17 and 9 new best solutions reported for capacitated and uncapacitated instances, respectively. Ó 2008 Elsevier B.V. All rights reserved.
1. Introduction The Traveling Purchaser Problem, TPP, is a generalization of the Traveling Salesman Problem. In this variant there is a set of m markets, vertices of a graph G, and a set of n products that must be purchased. Each product is available, with different quantities, on a subset of markets. The unit cost of each product depends on the market where it is available. The demands for each product and the traveling costs are known. The objective of the purchaser is to buy the whole demand of products, departing and returning to a domicile, so as to minimize the sum of the travel and purchases costs. There is no need of including all markets in the tour. The problem can be stated as follows. Given a domicile, v0, a set of markets M = {v1, v2, . . . , vm} and a set of products K = {f1, f2, . . . , fn}, the TPP is represented in a graph G = (V, E) where V = {v0} [ M and E = {[i, j]:vi, vj 2 V, i – j}. A demand dk is assigned to each product fk. The number of units of product fk at market vi is denoted by qki and Mk denotes the set of markets where the product fk is available, Mk # M. The cost of product fk at market vi is denoted by bki and the cost of traveling from market vi to market vj is given by cij. The objective is to determine a tour in G with v0 being the starting and the ending point, such that the complete demand is satisfied and the sum of the weights of the edges in the tour and the purchase costs is minimized. In the uncapacitated version of the TPP (UTPP), it is assumed that if a product is available at a given market, its quantity is suf-
* Corresponding author. Address: Rua Dona Maria Câmara, 1950, Federal University of Rio Grande do Norte, Department of Informatics and Applied Mathematics, Capim Macio, 59082-430 Natal, RN, Brazil. Tel./fax: +55 84 36421218. E-mail addresses:
[email protected] (M.C. Goldbarg),
[email protected] (L.B. Bagi),
[email protected],
[email protected] (E.F.G. Goldbarg). 0377-2217/$ - see front matter Ó 2008 Elsevier B.V. All rights reserved. doi:10.1016/j.ejor.2008.10.027
ficient to satisfy the demand. If the availability of, at least, one product fk is less than the demand dk at a market vi, then the problem is said to be capacitated (CTPP). The uncapacitated version is a special case of the CTPP where dk = 1 and qki 2 {0, 1}, 1 6 k 6 n, 1 6 i 6 m. In the last decade, the TPP has received some attention of the researchers of the Operational Research area. Papers with exact and heuristic approaches proposed for this problem are summarized in Section 2. Although researchers have reported some metaheuristic approaches to tackle the TPP, as far as the authors’ knowledge concerns, no competitive evolutionary approach has been proposed for it. Evolution has been a source of inspiration for developing successful problem solving methods for complex optimization problems. The evolutionary algorithms are stochastic search methods that operate on a population of candidate solutions that evolves iteratively by means of variation and selection until a stopping criterion is satisfied (Michalewicz and Fogel, 2000). In this paper an evolutionary algorithm is proposed for the TPP. The proposed heuristic is a transgenetic algorithm (Goldbarg et al., in press). The biological inspiration of the transgenetic algorithms comes from two major evolutionary forces: the horizontal gene transfer (Jain et al., 2003) and the endosymbiosis (Margulis, 1992). Horizontal or lateral gene transfer refers to the acquisition of foreign genes by organisms. It occurs extensively among prokaryotes (living forms whose cells do not have nucleus) and provides organisms with access to genes in addition to those that can be inherited (Jain et al., 2003). The term ‘‘endosymbiosis” specifies the relationship between organisms which live one within another (symbiont within host) in a mutually beneficial relationship. The Serial Endosymbiotic Theory proposed by Margulis (1992) states that a new organism can emerge from the fusion of two or more
M.C. Goldbarg et al. / European Journal of Operational Research 199 (2009) 36–45
independent beings. Today, researchers recognize the horizontal transfer of functional genes between organisms as a determinant factor of the endosymbiotic origin of specialized cellular parts called organelles (Pierce et al., 2003). Two known vehicles of horizontal gene transfer that are of special interest for this paper, once they inspired search operators for the transgenetic algorithms are: plasmids and transposons. Plasmids, in nature, are mobile genetic particles, DNA rings that can be exchanged between certain cells and that can replicate independently of the chromosome. Transposons or ‘‘jumping genes” are genetic elements that can spontaneously move from one position to another in a DNA molecule. Endosymbiotic interactions and lateral gene transfer mechanisms have inspired, separately, the development of evolutionary algorithms (Watson, 2002; Kim et al., 2001). The union of these two biological scenarios, which occurs in nature through the endosymbiotic gene transfer (Timmis et al., 2004) inspired the development of the transgenetic algorithms. The former approaches are fundamentally different from the one proposed in this paper, once they are extensions or versions of genetic algorithms where the information is, basically, restricted to their populations. In the transgenetic algorithms, where a co-evolutionary process is thought to occur between a host cell and its endosymbionts, three contexts of information are considered. The evolutionary search performed by the proposed approach is accomplished by means of information exchanging among individuals of different natures (host and endosymbionts). Agents, called transgenetic vectors, are responsible for the exchanging of information between the host and the endosymbionts. These agents are inspired on natural mechanisms of horizontal gene transfer, such as plasmids and transposons. Therefore, the three contexts of information of the transgenetic algorithms are: the endosymbionts, the host and the transgenetic vectors. The endosymbionts, also called endosymbiont chromosomes or, simply, chromosomes, are the base of the search since they encode problem solutions. Unlike other evolutionary approaches, chromosomes do not share genetic material directly by means of crossover or recombination. Information about the problem being tackled by the algorithm (a priori information) and information about the heuristic search (a posteriori information) are stored in the host’s context. The transgenetic vectors manipulate the chromosomes, modifying their codes and promoting the random variation that is necessary for the exploration and exploitation of the search space. The paper is organized as follows. Section 2 presents the stateof-the-art of the Traveling Purchaser Problem. Section 3 presents the fundamentals of the proposed approach. The application of a transgenetic algorithm to the Traveling Purchaser Problem is described in Section 4. The results of computational experiments with capacitated and uncapacitated TPP instances are reported in Section 5. Finally, some conclusions and remarks about future works are presented in Section 6. 2. State-of-the-art for the Traveling Purchaser Problem This problem was first presented by Burstall (1966) in a job shop scheduling context, where a heuristics based on the work of Lomnicki (1996) was utilized to solve the problem. Later, Buzacott and Dutta (1971) utilized a dynamic programming approach to solve the model proposed by Burstall (1966). The first work where the TPP is introduced as it is presently known is due to Ramesh (1981). In that paper, the author presents an exact and a heuristic algorithm. The exact method is based on a lexicographical search and handles instances with m 6 12 and n 6 10. The heuristic approach is a version of the nearest insertion algorithm for the Traveling Salesman Problem (Bentley, 1992). Singh and van Oudheusden (1997) developed a branch-andbound algorithm for the TPP based on a bound for the Uncapacitat-
37
ed Facility Layout Problem. They solved forty symmetric instances with 15 6 n 6 50 and 10 6 m 6 20, and sixty-five asymmetric instances with 10 6 n 6 100 and 10 6 m 6 25. Laporte et al. (2003) present a branch-and-cut algorithm. Their algorithm was applied to solve instances of the capacitated and uncapacitated versions of the TPP. They were able to handle instances up to 250 markets and 200 products. A method named ‘‘Generalized Savings Heuristic” was proposed by Golden et al. (1981) for the TPP. It was modified by Ong (1982) who proposed the Tour Reduction Heuristic. Pearn and Chien (1998) suggested some improvements for the heuristics presented by Golden et al. (1981) and Ong (1982). They presented two versions of the Generalized Savings Heuristic: the Parameter Selection Generalized Savings Heuristic and the Tie Selection Generalized Savings Heuristic. The two versions of Pearn and Chien (1998) for the Tour Reduction Heuristic are known as the Adjusted Cheapest Tour Reduction Heuristic and the Nearest Cheapest Tour Reduction Heuristic. Pearn and Chien (1998) propose also the Commodity Adding Heuristic. Laporte et al. (2003) propose the Market Adding Heuristic which was applied to capacitated and uncapacitated TPP instances. This heuristic is utilized on their exact solution method. This heuristics consists in adding, iteratively, to the route of the traveling purchaser a market that offers some product whose demand was not yet satisfied. A list with the markets where that product is available at the lowest prices is built. The market offering the product at the highest price, among those markets in the list, is chosen to be added to the current route. The market is included in a position that will produce the smallest increase in the route cost. The first metaheuristic approaches for the TPP were presented by Voß (1996) who developed Tabu Search and Simulated Annealing algorithms. Two dynamic strategies are presented to control the tabu list: the reverse elimination and the cancellation sequence method. Tabu search algorithms are also proposed by Boctor et al. (2003). In that work the authors propose a set of benchmark instances that has been utilized by other researchers to test their algorithmic ideas for the TPP. Boctor et al. (2003) compare their algorithms with two versions of the Commodity Adding Heuristic. Teeninga and Volgenant (2004) introduce pre-processing and intensification procedures which are utilized in the Generalized Savings Heuristic (Golden et al., 1981), the Commodity Adding Heuristic (Pearn and Chien, 1998) and in the Tour Reduction Heuristic (Ong, 1982). Riera-Ledesma and Salazar-González (2005) present an iterative local search algorithm where two neighborhoods are utilized. The procedure for the first neighborhood performs an iterative scheme exchanging l consecutive vertices in a given feasible cycle with a set of vertices not belonging to that cycle. The value of l is reduced as soon as a local optimum is achieved. The second procedure inserts as many vertices as possible in a given feasible cycle, whenever each insertion implies a reduction in the objective value. The Lin and Kernighan (1973) procedure is applied to the resultant solutions in order to improve the tour cost. The solution is disturbed and the process is re-started. They test their algorithmic ideas in capacitated and uncapacitated instances proposed by Boctor et al. (2003). An Ant Colony Optimization algorithm is presented by Bontoux and Feillet (2008). They apply their algorithm to the uncapacitated instances of the benchmark proposed by Boctor et al. (2003) and compare their results with the ones obtained by Riera-Ledesma and Salazar-González (2005). 3. The transgenetic algorithm Transgenetic algorithms are evolutionary computing techniques based on living processes where cooperation is the main evolutionary strategy (Goldbarg et al., in press). Those biological
38
M.C. Goldbarg et al. / European Journal of Operational Research 199 (2009) 36–45
set of procedures, r = (p1, . . . , ps). This method determines the conditions for the transcription of the vector’s information into the chromosomes. In this paper, the action of a transgenetic vector over an endosymbiont chromosome is referred as manipulation. This action causes changes in the code of the manipulated chromosome and, as a consequence, a change in the fitness may also occur. Two types of transgenetic vectors are used in the algorithm proposed to tackle the TPP: plasmids and transposons. The procedures that compose the manipulation methods of these transgenetic vectors are summarized in Table 1. Plasmids carry sequences of genes that represent partial solutions. The information of the plasmids comes from the host’s repository and is encoded in the same way the candidate solutions are encoded in the chromosomes. The manipulation method of these vectors is constituted by procedures p1 and p2. Therefore, the manipulation method of plasmids defines whether the attacked chromosome is sensitive or not to the manipulation of the transgenetic vector (p1), and how the information is transcribed in the chromosome (p2). The length of the plasmids is given by the length of their information strings. The information of the transposons is a rule for rearranging the genes of a given part of the manipulated chromosome. The part of the chromosome manipulated by the transposon is defined in procedure p3 that, in addition to procedures p1 and p2, compose the manipulation method of this transgenetic vector. In the natural endosymbiotic evolution, endosymbionts are finally absorbed by their hosts with the formation of a new organism. In the computational metaphor this event is characterized by the stagnation of the fitness or the convergence of the population of chromosomes. Fig. 2 presents a general framework of the transgenetic algorithms. An initial population of chromosomes is created and evaluated. The host’s repository is initialized with a priori information and, if some interesting information exists in the population (such as the best individuals), then that information is also included in the host’s repository. Steps 3 to 8 are repeated while a stop condition is not met. In step 4 the transgenetic vectors are generated and in step 5 a set of chromosomes is chosen to be manipulated. If the action of the transgenetic vectors on the chromosomes produces new information, then the host’s repository is updated in step 7. To facilitate the understanding of the algorithmic concepts introduced in this section, the Traveling Salesman Problem (TSP) is used to illustrate the operations of the transgenetic algorithms. This problem was chosen as a didactic example since it is easily understandable, is a classical optimization problem often utilized
processes contain the movement of genetic material between organisms and endosymbiotic interactions. The transgenetic algorithms accomplish the search on the solution space of optimization problems with a process that resembles the information sharing between a host cell and a population of endosymbionts. Three contexts of information are considered in transgenetic algorithms: A population of candidate solutions (endosymbiont chromosomes). A repository of information about the problem being tackled by the algorithm and information about the evolutionary search (host’s information). Entities, called transgenetic vectors, that modify the candidate solutions. The individuals of the population of candidate solutions are thought as endosymbionts within a host. They are referred as chromosomes in this paper. The information stored in the repository is thought as the genetic information of a host cell. In this repository a priori and a posteriori information are stored to be used by the transgenetic vectors in their task of manipulating the chromosomes. A priori information is that which exists before the evolutionary search. A number of theoretical and algorithmic results are available in the literature for several optimization problems. Some examples of this type of information are upper (lower) bounds, heuristic solutions and results of statistical analysis of the problem structure. This type of information exists regardless the evolutionary process executed by the algorithm and can be used to guide the search. A posteriori information is that which is obtained during the algorithm execution when new information may arise from the population of chromosomes, such as solutions or partial solutions. This information, when deemed useful by some criterion established in the algorithm, is stored in the host’s respository. The population of candidate solutions evolves with variations that are operated by means of the transgenetic vectors. In this paper two types of transgenetic vectors are used. The first type transports information from the host’s context to the endosymbiont chromosomes. The second type manipulates the chromosomes independent of that information. A transgenetic vector, k, is a pair k = (I, r), where I stands for information and r denotes the method used by k to manipulate the genetic code of chromosomes. Two types of information exist for the transgenetic vectors: information obtained in the host’s repository and abstract rules for genetic rearrangement. The manipulation method, r, is composed of a
Table 1 Procedures utilized by plasmids and transposons. Procedure
Description
p1 – Attack p2 – Transcription
Defines a criterion that establishes whether the chromosome S is susceptible to be manipulated by the transgenetic vector k Defines how the k’s information is transcribed in S. The transcription is accomplished only if the criterion that establishes the chromosomes’ susceptibility is satisfied Identifies positions in S to be used to limit k’s operation
p3 – Identification
a
0 1 3 5 4 5 2 1 3 5 4 5 2
0 1 6 3 2 2
1 0 1 3 5 7
6 1 0 4 6 3
3 3 4 0 3 1
2 5 6 3 0 1
2 7 3 1 1 0
b
c
d
a
a f
b 2
g
1 1
d
5
1
f
b g
1 1
1
c
a
1
1
e
7
c
b 3
3
d 4 e
5
f g
1
1 1
c
1
d 4 e
Fig. 1. (a) Distance matrix of a TSP instance, (b) a minimum spanning tree, (c) a tour with cost 24 and (d) a tour with cost 14.
M.C. Goldbarg et al. / European Journal of Operational Research 199 (2009) 36–45
1. Generate and evaluate an initial population of chromosomes 2. Initialize the host’s repository (HR) 3. Repeat 4.
Generate transgenetic vectors
5.
Select chromosomes for manipulation
6.
Manipulate the selected chromosomes
7.
Update HR
8. Until a stopping criterion is satisfied
39
Consider now the action of a transposon with the following features: Information (I): To remove k edges with the highest weights. Procedure p1: Return ‘‘true”, if ðwðe1 Þ þ . . . þ wðek ÞÞ > 0:90ðwðe01 Þ þ . . . þ wðe0k ÞÞ, where e1, . . . , ek are the removed edges and that e01 ; . . . ; e0k are the new edges that will be inserted and w(e) is the weight of edge e. Procedure p2: To insert randomly chosen edges (checking feasibility). Procedure p3: To choose 2 vertices at random with distance, at least, k in the tour.
Fig. 2. Pseudo-code of the transgenetic algorithm.
to illustrate algorithmic ideas and is a special case of the problem investigated in this paper. Given a set of n nodes (cities) and distances for each pair of nodes, the TSP consists in finding a closed path of minimal total length visiting each node exactly once. A usual representation of chromosomes for the TSP is an ordered permutation of nodes. The permutation represents a sequence of nodes visits. The fitness of a TSP chromosome can be given by the value of the solution it represents. Although, usually, dealing with fitness the higher the better, in this case, once the TSP is a minimization problem, the smaller the fitness value the better it is. The same consideration regarding the fitness is made further for the TPP. Consider a TSP instance with the distance matrix shown in Fig. 1a and the TSP solution shown in Fig. 1c, represented by chromosome (a b c g d e f) with fitness 24. A priori information for the TSP can be obtained from structures of the graph that represents the problem instance such as minimum spanning trees, shortest paths, Hamiltonian paths, and so on. In this example, let us consider the minimum spanning tree of the TSP instance shown in Fig. 1b as the source of a priori information. This minimum spanning tree is stored in the host’s repository in order to be used by the algorithm to produce the information of plasmids. Let us consider plasmids with the following features: Information(I): A sequence of vertices defining a path with length k. Procedure p1: If the manipulated chromosome is better than the original chromosome regarding the fitness, then return ‘‘true”. Procedure p2: Starting at the position of the first allele of I in the target chromosome S, insert I and remove repeated vertices that are not in the positions modified by the manipulation. Once the source of information for the exemplified plasmid is the minimum spanning tree, any path with length k of this tree can be selected to form the plasmid’s information string. Let k = 2 and I = (e g f), the path selected in the minimum spanning tree. The first element of I is node ‘‘e”. Thus, according to p2, the sequence of genes in I is inserted into the target chromosome starting at the locus where allele ‘‘e” is placed, that is starting at the fifth element of chromosome (a b c g d e f). The cities that are repeated and are not in the part recent added to the chromosome are removed. After I is inserted into the target chromosome, the result is the sequence (a b c g d e g f e f). Then, the first reference of city ‘‘g” and the second references of cities ‘‘e” and ‘‘f” are removed, resulting in the chromosome (a b c d e g f) whose tour is shown in Fig. 1d. The value of this new solution is 14. Once procedure p1 states that the manipulation is accepted if the solution represented in the manipulated chromosome has a value lower than the solution represented in the original chromosome, then the manipulated chromosome replaces the original one in the population.
The part of the chromosome considered for the edges removal is established in procedure p3. Once k edges are removed, new k edges need to be inserted in order to obtain a TSP solution. Procedure p2 establishes that e01 , . . ., e0k are chosen randomly among the combinations of k edges that maintain the feasibility of the TSP solution. In this example, the criterion of procedure p1 establishes that a chromosome is susceptible to the transposon’s manipulation if the rate between the weight of the edges that leave the solution and the weight of the edges that are added to the solution is greater than 0.90. Therefore, the weight of the new set of edges to be added to the solution can be up to 11% worse than the weight of the edges that leave the solution. Let us consider the chromosome (a b c g d e f), that represents the solution shown in Fig. 1c, k = 3 and that vertices ‘‘b” and ‘‘e” were randomly chosen in procedure p3. The k edges with the highest weights in the path (b c g d e) are (c, g), (g, d) and (d, e) with weights 7, 4 and 3, respectively. These edges are removed and k new edges chosen at random replace them. Suppose that the three edges randomly chosen to enter the tour are (c, d) (d, g) and (e, g) with costs 1, 3 and 1, respectively. Then p1 returns ‘‘true”, since (7 + 4 + 3) > 0.90(1 + 3 + 1). The new three edges are inserted completing the tour and the manipulated chromosome representing the new solution is (a b c d g e f) with fitness 15. Since transgenetic vectors implement search operators, they can be designed to accomplish tasks of intensification or diversification, directing the search to promising or unexplored regions of the space of solutions. The algorithm designer decides which type of information and manipulation methods compose the transgenetic vectors. Depending on these decisions the transgenetic vectors will be more likely to direct the search to promising regions or to sample the space of solutions. Plasmids designed as in the previous example are likely to indicate promising regions of the search space, since their information are paths (sequences of edges) of the minimum spanning tree, a known lower bound for the TSP. Still with reference to the previous example, the transposons are more likely to direct the search to unexplored regions, once their method substitutes the removed edges by random ones and solutions that are worse than the original one within a fixed range are accepted. In order to illustrate the fact that the same type of transgenetic vector can be used to diversify or intensify the search, let us consider another transposon with the following characteristics: Information(I): To remove k edges with the highest weights. Procedure p1: If the manipulated chromosome is better than the original chromosome regarding the fitness, then return ‘‘true”. Procedure p2: To perform an r-opt search with r randomly chosen between 2 and k. Procedure p3: To choose 2 vertices at random with distance, at least, k in the tour. Procedure p2 of this new transposon defines a local search with the r-opt (Lin, 1965) neighborhood to be performed in the re-
40
M.C. Goldbarg et al. / European Journal of Operational Research 199 (2009) 36–45
stricted part of the chromosome which is defined in procedure p3. This transposon is more likely to intensify the search. Similarly, the plasmids may also be applied with diversification purposes. For example, let us consider paths that are rare or inexistent represented in the population as sources of information in the host’s repository. Plasmids built with information strings from these sources are more likely to direct the search to unexplored regions of the space of solutions. The transgenetic vectors can also be evaluated. Given a transgenetic vector, its fitness can be given by the number of chromosomes in a specific population that are susceptible to its manipulation, by some function of its information string or by a function of the difference between the fitness of the chromosome before and after the manipulation. 4. Application to the TPP In this section each component of the transgenetic algorithm developed to tackle the TPP is introduced with a numerical example exhibited in Table 2 and Fig. 3a with m = 6 and n = 4. The columns of Table 2 show the index, the demand, the quantities and the costs of each product in each market. The signal ‘‘–” indicates that the product correspondent to a specific line is not available at the market in the correspondent column. The distance matrix of the proposed example is shown in Fig. 3a. A solution of the TPP is defined by a subset of markets, the route between them and the establishment of which product is purchased in which market. In this paper one solution is represented by the sequence of indices of the visited markets. Although the sequence of visits begins and ends at the domicile, location v0 is not represented in the chromosomes. Implicitly, each product is purchased in the market (or markets) that offers the lowest price among all markets of the solution. Fig. 3b illustrates a route between five markets and the domicile and its representation in a chromosome. The fitness is given by the cost of the tour represented in the chromosome plus the lowest prices paid for acquiring all products in the markets of that tour. In this example, the purchaser leaves the domicile, visits markets v4, v3, v1, v6 and v5, and returns to v0. Product f1 with demand d1 = 5 is purchased in market v4 at cost 1 per unit. Thus, the contribution of product f1 for the fitness of the chromosome illustrated in Fig. 3b is 5. The demand of product f2, d2 = 6 is satisfied in markets v6 (4 units) and v5 (2 units)
at costs 1 and 2 per unit, respectively. The total contribution of product f2 to the fitness function is 8. The demands of product f3 and f4 are satisfied in markets v6 and v3, respectively, with costs 4 and 3. Therefore, the cost of acquiring all products is 20. Since, the sum of the weights of the edges in the route is 9, the cost of the solution represented in that chromosome is 29. Note that, although market v1 is in the route, no product is purchased there. Fig. 4 shows the pseudo-code of the transgenetic algorithm implemented for the TPP. A population of chromosomes is generated and evaluated. In order to generate a chromosome, a constructive procedure inserts, at each iteration step, a market chosen at random, with no repetition, until the solution represented in the chromosome is feasible. That solution is then improved with the variant of the Lin and Kernighan (1973) algorithm, LK, presented by Applegate et al. (1999). The host’s repository is initialized with a priori and a posteriori information. The source of a priori information is a Hamiltonian cycle, a cycle with all markets, obtained with the LK. The four best solutions represented in the chromosomes of the initial population are the sources of a posteriori information. At each iteration step, one type of transgenetic vector, plasmid or transposon, is randomly chosen. The probability of choosing one of them depends on the evolutionary stage of the algorithm. The total number of iterations performed by the algorithm, g, is partitioned in sets of b iterations, each of them corresponding to one evolutionary stage. During an evolutionary stage, the probability of choosing one of the two transgenetic vectors remains fixed. This strategy is inspired on the ‘‘punctuated equilibrium” hypothesis proposed by Eldredge and Gould (1972) who observe that evolution tends to have
Table 2 Demand, quantities and costs of 4 products of a TPP instance. k
dk
qk1
bk1
qk2
bk2
qk3
bk3
qk4
bk4
qk5
bk5
qk6
bk6
1 2 3 4
5 6 4 3
3 2 7 8
5 3 3 10
1 1 7 3
1 4 7 6
– 5 3 4
– 6 6 1
5 5 4 4
1 5 3 8
– 7 7 2
– 2 2 10
3 4 4 3
8 1 1 8
a
b
Fig. 3. (a) Distance matrix and (b) a tour represented in a chromosome.
Fig. 4. Pseudo-code of the Transgenetic algorithm for the TPP.
41
M.C. Goldbarg et al. / European Journal of Operational Research 199 (2009) 36–45
periods of stability and increments. The algorithm was developed such that in the initial iterations, plasmids are more likely to be chosen. During the execution of the algorithm, the probability of choosing transposons increases. Variable j controls that tendency, being initialized in step 3 and updated in step 24. Counter i is utilized to control the number of iterations of the inner loop given by the parameter b. The main loop stops after g iterations. Variable u receives an integer chosen at random, according to a uniform distribution, between 1 and g in step 7 of the algorithm. The value of variable u is compared with the value of variable j in step 8 and if the value of the former variable is greater than or equal to the value of the latter variable, then the type of transgenetic vector chosen in the current iteration is the plasmid. If the condition of step 8 is verified, then k information strings are generated and evaluated. The best one among them is chosen to compose the plasmid that will manipulate the chromosomes of the current iteration. The features of the plasmids designed in the algorithm for the TPP are: Information(I): A sequence of markets with length r. Procedure p1: If the fitness of the manipulated chromosome is better (lower) than the fitness of the original chromosome, then return ‘‘true”. Procedure p2: Test all insertion positions and insert I in the position that produces the route with the lowest cost. The length of the information string, r, is chosen randomly in the range [3, m/8]. The algorithm builds k information strings in step 9. Each of them is obtained from one of the five elements, chosen at random according to a uniform distribution, in the host’s repository. Given the source element, one market that belongs to this element is chosen at random. This market and the next r 1 successive ones in the tour represented in that element form the vector’s information string. If the element selected as the source of information is one of the four chromosomes, then it is considered as a circular list without the domicile. The information strings
manipulate_plas(S, λ) 1.
Snew ← remove_simultaneous_markets(S, λ)
2.
c_best ← ∞;
3.
for each possible position q for inserting λ’s information string in Snew
4.
Sman ← transcribe(λ, Snew, q);
5.
if (c < c_best) then c_best ← c; Sbest ← Sman
6.
c ← fit(Sman)
end_for
7. Remove from Sbest the markets where no product is purchased 8.
Sbest ← LK(Sbest)
9. return(Sbest) Fig. 5. Pseudo-code of procedure manipulate_plas.
a
are evaluated and the best of them is chosen to compose the plasmid. The value assigned to each information string is composed of three parcels: 1. The sum of the weights of the edges of the path formed by the sequence of markets. 2. The lowest prices of products available in some market of the information string. 3. The highest prices of the products not available in any market of the information string. Suppose that in the Hamiltonian cycle stored in the host’s repository the purchaser leaves the domicile, goes to markets v5, v3, v1, v4, v2, v6 and returns to the domicile. Let us consider that the information strings of the plasmids are represented by the indices of the markets that compose them, like chromosomes. Let two information strings be originated in this Hamiltonian Cycle: I1 and I2 constituted, respectively, by (1 4) and (3 5). The weight of the edges linking markets v1 and v4 and linking markets v3 and v5 are 4 and 8, respectively. All products are available at markets v1 and v4 of I1. The lowest prices of products f1, f2, f3 and f4 at these markets are, respectively, 5, 3, 3, and 4. Thus, the value assigned to the information string I1, is calculated by the addition of 4 (edge weight) with 5, 3, 3 and 4 (prices of products), resulting in 19. Now, consider I2 = (3 5). Product f1 is not available in markets v3 and v5. Then the contribution of product f1 for the value assigned to I2 is 8, the highest price of product f1. The lowest prices of products f2, f3 and f4 at markets v3 and v5 are, respectively, 2, 2 and 1. Thus, the value assigned to the information string I2 is 21. The procedure manipulate_plas(), shown in Fig. 5, implements the procedure p2 of the plasmids. The input data of this procedure are the target chromosome S and the plasmid k. First, a chromosome Snew is created by removing from S the markets that are simultaneously in the target chromosome and in the information string of k. Variable c_best stores the best value of a solution generated during the execution of procedure manipulate_plas(). In step 4, the transcription operator checks the insertion of the plasmid’s information string between each pair of markets of the cycle represented in Snew. The best insertion position is the one that yields the best TPP solution and the chromosome that represents this solution is stored in Sbest. It may be the case that in the resultant chromosome, Sbest, there exist markets where no products are purchased. In this case, the markets where no products are purchased are removed from Sbest and the LK procedure is utilized to improve the resultant tour (steps 7 and 8 of Fig. 5). Fig. 6a illustrates the manipulation of chromosome (4 2 1 6 5) with cost 51 by the plasmid (4 3 1). The traced arrows show the positions where it is possible to infiltrate the plasmid’s information in the target chromosome. Since the same set of markets is present in all solutions generated in the procedure manipulate_plas(), the difference in the objective function occurs only in the length of the tour. The resultant tours after the plasmid’s manipulation are (4,3,1,2,6,5), (2,4,3,1,6,5), (2,6,4,3,1,5) and (2,6,5,4,3,1) with lengths
b Plasmid
2
4
Chromosome
4
3
4
3
1
1
5
6
1
positions
Infiltration positions
2
Transcription
6
5
3
5 unfeasible
3
4
5
2
2
3
4
2
feasible
Fig. 6. (a) Plasmid’s manipulation and (b) removals examined by a transposon.
Chromosome
3
4 feasible
5
42
M.C. Goldbarg et al. / European Journal of Operational Research 199 (2009) 36–45
11, 22, 22 and 19, respectively. Thus, the information string of the plasmid is inserted in the first position, the one that yields the best TPP solution. The chromosome Sbest produced after step 6 of Fig. 6 is (4 3 1 2 6 5) with fitness 20. The products are purchased in markets v3, v4, v5 and v6. Since no products are purchased in markets v1 and v2, these markets are removed from Sbest. The tour represented in Sbest is then improved in the procedure LK, where only routes linking the markets represented in the input chromosome are considered. The procedure p1 implemented in step 18 of Fig. 4 was used both for the plasmid and the transposon. Let us consider that the output of procedure manipulate_plas() is the chromosome (3 4 6 5) with fitness 32. Then, since the manipulated chromosome represents a solution that is better than the one represented in the original chromosome, the former chromosome replaces the latter in the current population (step 19 of Fig. 4). If the condition in step 8 (Fig. 4) is not satisfied, a transposon is generated. The features of the transposons for the TPP are: Information(I): To remove markets. Procedure p1: If the fitness of the manipulated chromosome is better (lower) than the fitness of the original chromosome, then return ‘‘true”. Procedure p2: Remove one market and, if necessary, add new markets until reaching feasibility. If the solution represented in the chromosome is not improved, then repeat the operation removing two markets. Procedure p3: Choose 2 markets at random. The transposon’s information is to remove markets from the part of the chromosome specified in procedure p3. The transcription defined in procedure p2 is done withdrawing iteratively one or two markets of the chromosome. At first, each market is removed from the part of the chromosome specified in p3 as illustrated in Fig. 6b. New solutions, feasible or not, arise from this process. A solution in which the demand of, at least, one product is not satisfied in its markets is said to be unfeasible. In this case, new markets have to be added to the chromosome, until the demand of all products is satisfied. In the example shown in
Manipulate_trans(S, λ) 1. Sbest ← S 2. Y ← Μ \ S ;
X ← set_of_markets(S, λ)
3. for each market q ∈ X 4.
Sman ← remove_market(q,S)
5.
if Sman is unfeasible then Sman ← include_new_markets(Sman,Y)
6.
Sman ← LK(Sman)
7.
if ( fit(Sman) < fit(Sbest) ) then Sbest ← Sman
8.
else
9.
Sman ← remove_market(q, S); Sman ← remove_market(q+1 , S)
10.
if Sman is unfeasible then Sman ← include_new_markets(Sman,Y)
11.
Sman ← LK(Sman)
12.
if ( fit(Sman) < fit(Sbest) ) then Sbest ← Sman
13.
end_else
14.
Remove from Sbest the markets where no products are purchased
15. end_for
Fig. 6b, if market v4 is removed from the original chromosome, then the solution becomes unfeasible since the demand of product f1 is not fully satisfied in markets v3, v5 and v2. The procedure manipulate_trans() is shown in Fig. 7. At first, the original chromosome S, passed as input parameter to the procedure, is copied to Sbest. Two sets of markets, Y and X, are initialized. The elements of set Y are the markets that are not in S. The set X is formed with the markets of S between the limits established in procedure p3. The loop between steps 3 and 15 is executed until all elements of X are considered. Steps from 4 to 6 implement the removal of one market and steps from 9 to 11 implement the removal of two markets. Procedure remove_market() removes market q from chromosome Sman. If after removing market q the solution represented in Sman is unfeasible, new markets are included in the chromosome in procedure include_new_markets(). This procedure has two input parameters: Sman and Y. A value is assigned to each market of the set Y. This value is calculated by the lowest increase the addition of the considered market brings to the cost of the tour represented in Sman plus the highest prices of the products that are still not purchased after the insertion of this market. The lowest increase associated with each market of Y is calculated according to the criterion utilized by the insertion heuristics for the Traveling Salesman Problem (Rosenkrantz et al., 1977). Suppose that S = (1 4 2 5), Y = {3, 6} and that market v4 is removed resulting in Sman = (1 2 5). The 5 units of product f1 previously bought in market v4 have to be acquired in other markets. The algorithm verifies whether the demand for product f1 can be satisfied in the markets that remained in Sman. It is possible to purchase 3 units of product f1 in market v1 and 1 unit in market v2. However, 1 unit is still missing. If market v3 is inserted among the domicile and market v1, the edge (v0, v1) is removed from the tour and the edges (v0, v3) and (v3, v1) are added. Thus, the tour increase is calculated by c03 + c31 c01 = 5 + 1 4 = 2. The increase in the tour if market v3 is inserted between markets v1 and v2 is 4. Increases of 6 and 13 occur if market v3 is inserted between markets v2 and v5, and between market v5 and the domicile, respectively. Since product f1 is not available at market v3, its highest price is multiplied by the number of units that are still needed to satisfy its demand. The result is added to the value of the least tour increase. Thus, value 10 = 2 + (1 8) is assigned to market v3. The best value calculated for the tour increase of market v6 is 3. In this market product f1 is available at a cost of 8 per unit. Then the value assigned to market v6 is 5 = 3 + (1 8). Thus, market v6 is chosen to be inserted among markets v2 and v5, resulting in Sman = (1 2 6 5). The tour among the markets in chromosome Sman is improved in procedure LK() (steps 6 and 11). If the resultant chromosome represents a solution better than the best solution found so far in procedure manipulate_trans(), the chromosome Sbest is updated (steps 7 and 12). Markets where no products are purchased are removed from the resultant chromosome. When the process of removing one market does not result in an improvement of the chromosome, then the process is performed withdrawing two markets. In this case, the elements of set X are considered as a circular list. After the manipulation (step 20 of Fig. 4), if the new chromosome represents a solution that is better than the best current solution found so far, the host’s repository is updated in procedure update(). This procedure includes the new chromosome in the host’s repository and removes the worst chromosome.
5. Computational experiment
16. return(Sbest) Fig. 7. Pseudo-code of the procedure manipulate_trans.
Sections 5.1 and 5.2 present the results of computational experiments done with capacitated and uncapacitated instances,
43
M.C. Goldbarg et al. / European Journal of Operational Research 199 (2009) 36–45
respectively. The tests were run on a Pentium IV 2.8 GHz, 512 MB of RAM, Ubuntu Linux operational system and gcc compiler.
Table 4 Transgenetic algorithm RL-SG. Instances
RL-SG
5.1. The CTPP The experiment reported in this section was performed with 440 symmetric instances with known optimal solutions and 44 symmetric instances for which the optimal solution is not known (http://webpages.ull.es/users/jriera/TPP.htm). The instances are identified by the number of products, n, the number of markets, m, both varying between 50 and 200, by a parameter a and an identification number, ID, varying between 1 and 5. Five instances are generated for each value of n, m and a. The quantity of products available at each market was randomly generated in the interval [1,15] with uniform distribution. The demands, dk, were obtained with expression (I), for a = 0.1, 0.3, 0.5, 0.7, 0.9, 0.95 and 0.99, where qki stands for the quantity of product fk at market vi.
"
dk ¼ a max qki þ ð1 aÞ v i 2Mk
X
T(s)
%gap
T(s)
50 100 150 200
0.15 0.50 0.43 1.15
5 26 52 100
0.00 0.02 0.09 0.48
0 4 14 51
n
50 100 150 200
0.72 0.56 0.42 0.29
43 38 32 32
0.11 0.15 0.03 0.03
15 14 6 5
a
0.1 0.5 0.7 0.8 0.9 0.95 0.99
0.00 0.20 0.10 0.57 1.43 0.68 0.31
8 25 29 62 86 26 19
0.00 0.15 0.01 0.09 0.26 0.05 0.03
3 8 17 25 12 3 3
ðIÞ
v i 2Mk
After preliminary experiments the following values were fixed for the parameters of the algorithm applied to the capacitated instances: k = 30, g = 40, b = 4, size of the population = 50. A first experiment was performed in order to conclude about the advantages of the combined use of distinct transgenetic vectors. The results are shown in Table 3 that presents four versions of the transgenetic algorithm introduced in Fig. 4. In the first two versions only one type of transgenetic vector was used to manipulate the chromosomes: plasmids (column Plasmid) or transposons (column Transposon). In the third version, at each iteration step, one transgenetic vector, plasmid or transposon, was chosen at random with equal probability (column Pla/Tra50%). The last version corresponds to the algorithm shown in Fig. 4 (column TA). Columns ‘‘%gap” present the percent difference between the average of the best solutions found in 100 independent runs and the average of the optimal solutions for the set of instances represented in each line. The average processing time, in seconds, is shown in column ‘‘T(s)”. The format utilized to present the results has been usually adopted in other papers for the TPP (Boctor et al., 2003; Riera-Ledesma and SalazarGonzález, 2005). When the effects of each vector are examined separately, it is observed that the exclusive use of transposons yields better results than the exclusive use of plasmids, concerning quality of solution. Nevertheless, the processing times of the algorithmic version that utilized the plasmids are lower than the version that used the
Table 3 Different versions of the algorithm for the capacitated instances. Instances
%gap m
#
qki
Plasmid
transposon. When both vectors are utilized with equal probability, the results regarding quality of solution are better than the ones obtained by the first two versions. The processing times are lower than the version with the exclusive use of transposon. Finally, the version presented in Fig. 4, column TA of Table 3, that is the one that simulates evolutionary stages, presents the best compromise between quality of solution and processing time. Table 4 shows a comparison between TA and the current best approach for the CTPP, the algorithm RL-SG (Riera-Ledesma and Salazar-González, 2005). The experiment considered the 440 instances with known optimal solution. The average results and processing times of RL-SG are reported in the work of Riera-Ledesma and Salazar-González (2005). Except for the class of instances with a = 0.1, where both algorithms find optimal solutions of all instances, Table 4 shows that the costs of the solutions obtained with the TA are significantly lower than the results presented by the RLSG concerning all sets of instances. For the remaining 44 capacitated instances with optimal not known the proposed approach managed to find 17 new best results. The complete list of results is shown in Table 9 of the supplementary material. Table 5 shows the results of the 17 instances for which new best solutions were found by the transgenetic algorithm. The previous best solutions for these instances were obtained with the branch-and-cut algorithm presented by Laporte et al. (2003) and are reported in column B& C of Table 5. The first
Table 5 New best results CTPP instances with optimum not known.
Transposon
Pla/Tra50%
TA
%gap
T(s)
%gap
T(s)
%gap
T(s)
%gap
T(s)
m
n
a
ID
B& C
TA
T(s)
#m
%gap
150 50 100 100 150 150 200 200 200 50
0.95 0.9 0.95 0.99 0.95 0.99 0.95 0.95 0.99 0.7
4 5 1 4 3 4 1 3 3 4
4762 5886 4456 2316 5037 2202 5176 5354 2590 26,090
4747 5879 4455 2314 5000 2201 5168 5329 2256 26,082
9 8 11 4 16 7 20 16 14 127
45 63 58 25 61 26 70 68 33 187
0.31 0.12 0.02 0.09 0.73 0.05 0.15 0.47 12.90 0.03
50 50 100 100 100 100 100
0.95 0.95 0.9 0.95 0.99 0.99 0.99
1 5 3 2 2 3 4
3963 3806 9418 4867 2790 2239 2564
3924 3792 9389 4863 2756 2224 2548
9 7 48 22 8 10 10
52 51 127 74 30 28 31
0.98 0.37 0.31 0.08 1.22 0.67 0.62
m
50 100 150 200
0.46 1.20 1.58 2.75
0 2 5 10
0.00 0.07 0.37 1.09
2 11 39 92
0.00 0.04 0.20 1.73
1 7 28 89
0.00 0.02 0.09 0.48
0 4 14 51
n
50 100 150 200
1.93 1.16 0.79 0.85
4 4 2 2
0.41 0.32 0.07 0.09
24 33 19 19
0.24 0.21 0.04 0.05
24 28 13 11
0.11 0.15 0.03 0.03
15 14 6 5
100 150 150 150 150 150 150 150 150 200
0.00 0.15 0.13 0.66 2.43 3.55 2.85
2 3 4 5 5 2 1
0.00 0.15 0.02 0.21 0.83 0.49 0.11
41 38 28 25 13 7 10
0.00 0.15 0.03 0.21 0.72 0.16 0.06
24 21 28 32 22 6 7
0.00 0.15 0.01 0.09 0.26 0.05 0.03
3 3 17 25 12 3 3
200 200 200 200 200 200 200
a
0.1 0.5 0.7 0.8 0.9 0.95 0.99
TA
44
M.C. Goldbarg et al. / European Journal of Operational Research 199 (2009) 36–45 Table 8 Results for UTPP instances with unknown optimal solutions
four columns of Table 5 identify the instance. Columns TA, T(s) and #m present the results of the transgenetic algorithm regarding: quality of solution, average processing time (200 independent runs) and number of markets in the best solution, respectively. Column %gap shows the percent deviation between the result shown in column TA and column B&C. The average gap between the solutions found by the TA and the B&C for the 44 instances with optimal solution not known is 0.23636. The TA presents the same result as the B&C for 10 instances. The largest deviation presented by the proposed algorithm regarding the B&C solutions is 1.44.
m
300 300 300 300 300 300 350 350 350
5.2. The UTPP The experiments with the uncapacitated instances were done with a set of 89 instances with known optimal solutions and a set of 51 instances for which the optimal solution is not known (http://webpages.ull.es/users/jriera/TPP.htm). The number of markets and products, m and n, of the first set of 89 instances vary between 50 and 250, and between 50 and 200, respectively. The analysis regarding the contribution of the transgenetic vectors to different versions of the algorithm was also done for the set of 89 instances with optimal known solutions. The results are shown in Table 6. The conclusions that can be drawn based on the data presented in Table 6 are similar to the conclusions of the previous section. Those data show that the best performance regarding both quality of solution and processing time is achieved by the TA. The parameters utilized in this computational experiment are: k = 30, g = 40 and b = 4, size of the population = 120. The results obtained with the TA were compared with results found by the algorithms RL-SG (Riera-Ledesma and SalazarGonzález, 2005) and the DMD-ATA (Bontoux and Feillet, 2008). The results are shown in Table 7, following the same format utilized in Table 4. The results shown for the TA correspond to 200 independent executions for each instance. The TA finds the optimal solution of all instances of seven groups among the nine groups of instances and a percent deviation from the optimum of 0.03 in the other two groups. Regarding quality of solution, TA outperforms RL-SG in eight groups of instances and is superior to DMD-ATA in four groups. Those algorithms do not outperform the TA in
Plasmid
Transposon
Pla/Tra50%
%gap
T(s)
%gap
T(s)
%gap
T(s)
%gap
T(s)
50 100 150 200 250
0.03 0.01 0.11 0.26 0.07
0.22 0.47 0.72 1.04 1.23
0 0 0.03 0.01 0.19
0.60 0.98 1.44 1.75 1.86
0 0.01 0.04 0.01 0
0.41 0.73 1.08 1.39 1.55
0 0 0.03 0 0
0.83 1.42 2.15 2.54 2.60
n
50 100 150 200
0.02 0.12 0.02 0.26
0.58 0.63 0.74 0.78
0.04 0 0.05 0.02
0.74 1.06 1.49 1.89
0 0.01 0.01 0.03
0.66 0.85 1.12 1.32
0 0 0 0.03
0.95 1.58 2.22 2.74
50 150 200 200 200 200 200 200 200
DMD-ATA
5 3 1 2 3 5 1 2 4
TA
Sol
T(s)
Sol
T(s)
1257 2485 1815 1791 2442 2022 1503 1374 1385
276.00 663.24 488.15 1918.52 2852.05 1577.83 1033.39 3085.09 122.24
1256 2484 1803 1790 2437 2014 1498 1369 1356
1.57 6.34 575.39 627.73 184.00 605.39 25.34 56.07 32.88
6. Conclusion This paper presented an efficient evolutionary algorithm, inspired on horizontal gene transfer mechanisms and on endosymbiotic interactions. Crossover and other recombination methods to operate direct genetic gene sharing between the chromosomes are not considered. Intensification and diversification tasks in transgenetic algorithms are accomplished by means of vectors that manipulate the chromosomes with information obtained a priori and during the execution of the search process. These vectors modify the genetic code of chromosomes promoting the random variation necessary to explore the space of solutions of Combinatorial Optimization problems. The results of a computational experiment with 584 instances of a known benchmark show that the strategy adopted is very efficient in tackling the Traveling Purchaser Problem. The proposed algorithm was compared with other recent heuristics showing a superior performance. New best solutions were presented for 17 and 9 capacitated and uncapacitated instances, respectively. In future works this approach will be extended for the multiobjective version of the investigated problem.
TA
m
Id
any group of instances. Increasing g to 200 and b to 20, the TA obtains percent deviation 0.01 for the groups of instances with m = 150 and n = 200 with processing times 44 and 50, respectively. With these results the TA outperforms the RL-SG in all groups of instances and the DMD-ATA in five groups of instances. The results of Table 7 show that the TA presents processing times significantly lower than the DMD-ATA. In the experiments with the set of 51 instances with optimal not known, 5 independent executions of the TA were done for each instance with g = 200 and b = 20. The proposed algorithm outperforms the RL-SG in 50 instances concerning quality of outperforms the DMD-ATA in 9 instances and the latter algorithm presents 5 results better than the TA solution (Tables 10 and 11 of the supplementary material). In average, the TA is 6.5 times faster than the DMD-ATA for the whole set of 51 instances. Table 8 shows the new best solutions found by the TA. The previous best solutions for these instances were presented by Bontoux and Feillet (2008).
Table 6 Different versions of the algorithm for the uncapacitated instances. Instances
n
Table 7 Results of TA, RL-SG and DMD-ATA for instances with known optima. Method
m
n
50
100
RL-SG
%gap T(s)
0.07 3
0.14 10
DMD-ATA
%gap T(s)
0 2
0 20
TA
%gap T(s)
0 0.83
0 1.42
150
200
250
0.03 14
0.32 19
0.06 25
0.08 172
0.02 232
0.01 154
0.03 2.15
0 2.54
0 2.60
50 0.07 5 0 37 0 0.95
100 0.24 13 0.05 154 0 1.58
150 0.10 20 0 96 0 2.22
200 0.08 21 0.03 165 0.03 2.74
M.C. Goldbarg et al. / European Journal of Operational Research 199 (2009) 36–45
Acknowledgement We want to thank Jorge Riera Ledesma who made the details of his computational experiment available. This research was partially funded by CNPq and CAPES. Appendix A. Supplementary data Supplementary data associated with this article can be found, in the online version, at doi:10.1016/j.ejor.2008.10.027. References Applegate, D., Bixby, R., Chvátal, V., Cook, W., 1999. Finding tours in the TSP. Technical Report TR99-05. Department of Computational and Applied Mathematics, Rice University. Bentley, J.L., 1992. Fast algorithms for geometric traveling salesman problems. ORSA Journal on Computing 4, 387–411. Boctor, F.F., Laporte, G., Renaud, J., 2003. Heuristics for the traveling purchaser problem. Computers and Operations Research 30, 491–504. Bontoux, B., Feillet, D., 2008. Ant colony optimization for the traveling purchaser problem. Computers and Operations Research 35, 628–637. Burstall, R.M., 1966. A heuristic method for a job sequencing problem. Operational Research Quarterly 17, 291–304. Buzacott, J.A., Dutta, S.K., 1971. Sequencing many jobs on a multipurpose facility. Naval Research Logistics Quarterly 18, 75–82. Eldredge, N., Gould, S.J., 1972. Punctuated equilibria: An alternative to phyletic gradualism. In: Schopf, Y.J.M. (Ed.), Models in Paleobiology. Freeman Cooper, San Francisco, pp. 82–115. Goldbarg, E.F.G., Goldbarg, M.C., Schmidt, C.C., in press. A hybrid transgenetic algorithm for the prize collecting Steiner tree problem. Journal of Universal Computer Science. Golden, B.L., Levy, L., Dahl, R., 1981. Two generalizations of the traveling salesman problem. Omega 9, 439–445. Jain, R., Rivera, M.C., Moore, J.E., Lake, J.A., 2003. Horizontal gene transfer accelerates genome innovation and evolution. Molecular Biology and Evolution 20 (10), 1598–1602.
45
Kim, J.Y., Kim, Y., Kim, Y.K., 2001. An endosymbiotic evolutionary algorithm for optimization. Applied Intelligence 15, 117–130. Laporte, G., Rieira-Ledesma, J., Salazar-González, J.J., 2003. A branch-and-cut algorithm for the undirected traveling purchaser problem. Operations Research 51 (6), 142–152. Lomnicki, Z.A., 1996. Job scheduling. Operational Research Quarterly 17, 314–316. Lin, S., 1965. Computer solutions of the traveling salesman problem. Bell Systems Technical Journal 44, 2245–2269. Lin, S., Kernighan, B.W., 1973. An effective heuristic algorithm for the traveling salesman problem. Operations Research 21, 498–516. Margulis, L., 1992. Symbiosis in cell evolution: Microbial communities in the archean and proterozoic eon. W.H. Freeman. Michalewicz, Z., Fogel, D.B., 2000. How to Solve it: Modern Heuristics. Springer. Ong, H.L., 1982. Approximate algorithms for the traveling purchaser problem. Operations Research Letters 1, 201–205. Pearn, W.L., Chien, R.C., 1998. Improved solutions for the traveling purchaser problem. Computers and Operations Research 25, 879–885. Pierce, S.K., Massey, S.E., Hanten, J.J., Curtis, N.E., 2003. Horizontal transfer of functional nuclear genes between multicellular organisms. Biological Bulletin 204, 237–240. Ramesh, T., 1981. Traveling purchaser problem. Opsearch 18, 78–91. Riera-Ledesma, J., Salazar-González, J.J., 2005. A heuristic approach for the traveling purchaser problem. European Journal of Operational Research 162, 142–152. Rosenkrantz, D.J., Stearns, R.E., Lewis II, P.M., 1977. An analysis of several heuristics for the traveling salesman problem. SIAM Journal on Computing 6, 563–581. Singh, K.N., van Oudheusden, D.L., 1997. A branch and bound algorithm for the traveling purchaser problem. European Journal of Operational Research 97, 571–579. Teeninga, A., Volgenant, A., 2004. Improved heuristics for the traveling purchaser problem. Computers and Operations Research 31, 139–150. Timmis, J.N., Ayliffe, M.A., Huang, C.Y., Martin, W., 2004. Endosymbiotic gene transfer: Organelle genomes forge eukaryotic chromosomes. Nature Reviews Genetic 5, 123–135. Voß, S., 1996. Dynamic tabu search strategies for the traveling purchaser problem. Annals of Operations Research 63, 253–275. Watson, R.A., 2002. Compositional evolution: Interdisciplinary investigations in evolvability, modularity and symbiosis. PhD Dissertation, The Faculty of the Graduate School of Arts and Sciences, Brandeis University.