A Powerful Genetic Algorithm for Traveling Salesman Problem

Shujia Liu
liushujia@yahoo.com
Department of Computer Science, Sun Yat-sen University, Guangzhou 510006 China

arXiv:1402.4699v1 [cs.NE] 19 Feb 2014

Abstract
This paper presents a powerful genetic algorithm (GA) to solve the traveling salesman
problem (TSP). To construct a powerful GA,
I use edge swapping(ES) with a local search
procedure to determine good combinations of
building blocks of parent solutions for generating even better offspring solutions. Experimental results on well studied TSP benchmarks demonstrate that the proposed GA is
competitive in finding very high quality solutions on instances with up to 16,862 cities.

Experimental results on 10 well studied TSP benchmark instances (the largest size is 16,862) show that
the proposed GA outperforms the state-of-the-art LKbased algorithms in finding very high quality solutions. the GA find optimal or best known solutions
for most benchmark instances in a reasonable computation time.

2. Basic Framework
In this section, I describe the basic ideas and outline
the proposed GA in this paper.
2.1. Basic Ideas

1. Introduction
The traveling salesman problem (TSP) is one of the
most cited NP-hard combinational optimization problems because it is so easy to understand but difficult
to solve. It is a challenging problem of significant academic value as it is often used as a benchmark problem
when new solution approaches are developed.
The simplest heuristic approach for the TSP would be
a greedy local search with the k-opt neighbourhood,
which is defined as a set of solutions that are transformed from a current loop by replacing at most k
edges to construct possible loops. The solution quality will improve with increasing k when the neighbourhood is completely searched at each iteration, but at
the cost of rapidly increasing computation time.
This paper presents a sophisticated version of ES,
describe the enhancements and provides more instructive analysis of the impact of these enhancements from a new perspective. Moreover, a wider
class of benchmarks and instances with up to
15,000 cities are now also considered. The program code of the proposed GA is available in
the online supplement of this paper (available at
https://github.com/sugia/GA-for-TSP).
Appearing in Proceedings of the course Principles of Artificial Intelligence, Sun Yat-sen University, Guangzhou,
China, 2012. Copyright 2013 by the author.

GAs for the TSP usually require longer computation
times than efficiently implemented local search based
algorithms in order to exercise their capabilities. One
reason for this is the nature of the population based
search. However, the major reason arises from the fact
that crossover operators require more computational
cost to generate an offspring solution than do local
search operators to evaluate a solution in the neighbourhood.
To reduce the computational cost of ES, I proposed
localization of ES with an efficient implementation of
this edge swapping operator. A localized version of ES
generates, denoted as PA , by replacing relatively few
edges with edges selected from the other parent, denoted as PB . This approach enables generation of an
offspring solution in less than O(N) time by making use
of the fact that it will be similar to PA . In addition, localization of ES contributes to maintaining population
diversity coupled with an appropriate GA framework
where only PA is replaced with an offspring solution
in the selection for survival. I therefore use only a localized version of ES from the start of the search until
it can no longer effectively generate offspring solutions
to improve PA .
When the localized version of ES cannot generate an
offspring solution that improves PA , the whole genetic
algorithm will get trapped into a local optimum. In
this case, the number of edges replaced by ES should

A Powerful Genetic Algorithm for Traveling Salesman Problem

Algorithm 1 Genetic Algorithm
Initialize a population [x1 , · · · , xNpop ]
repeat
r(.) = a random permutation of [1, · · · Npop ]
for i = 1 to Npop do
PA = xr(i)
PB = xr(i+1)
[c1 , · · · , cNch ] = ES(PA , PB )
xr(i) = BEST (c1 , · · · , cNch , PA )
end for
until termination condition is satisfied
return the best individual solution

be increased to further improve PA , and the localized
version of ES should be switched to a global version
of ES, which exchanges more edges than does the localized version of ES. In this paper, I propose a good
local version of ES and a great global version of ES
with a sophisticated design concept.
2.2. GA Framework
Algorithm 1 gives the basic framework of GA. The
population consists of Npop solutions, where Npop is
a parameter. Individuals in the population are generated by an appropriate procedure. Here, I use a greedy
local search algorithm with the 2-opt neighbourhood,
because it is reasonable to use a simple local search
procedure to efficiently obtain Npop solutions with a
certain level of quality.
The search process of the GA consists of two stages.
First, I use a localized version of ES as the crossover
operator from the start of the search until no improvement in the best solution is found over a period of
generations. After that, I switch to a global version
of ES and use it until the end of the search. More
precisely, let G be the number of generations, and if
the value of G has already been determined and the
best solution does not improve over the last G generations, I terminate the local version of ES and proceed
to the global version of ES. The global version of ES
is also terminated by the same condition, where G is
initialized at the beginning of the algorithm.
Because a localized version of ES generates offspring
solutions similar to PA , it is reasonable to replace only
parent PA , rather than both parents, in order to better
maintain population diversity. Here, the offspring solution that replaces parent PA is selected according to
a given evaluation function. The most straightforward
evaluation function would be the tour length, but I
employ an alternative evaluation function in order to
maintain population diversity in a positive manner.

3. ES Algorithm
I first present the ES algorithm along with the description of the framework of ES. The local version of ES is
described in section 3.2, and the global version of ES
is presented in section 3.3. Details of the efficient implementation techniques for the localized version of ES
are presented in the online supplement of this paper.
3.1. ES Framework
Step 1. Let MAB be the undirected graph merged by
PA and PB , defined as MAB = (V, EA ∪ EB ), where
EA is the edge set of PA and EB is the edge set of PB .
Step 2. Partition all edges of MAB into merged
rings(M-rings), where a M-ring is defined as a ring
in MAB , such that edges of EA and edges of EB are
alternately linked.
The partition of the edges into M-rings is always possible, because for any vertex in MAB the number of
incident edges of EA is equal to that of EB . However,
the partition is not uniquely determined and I partition the edges randomly into M-rings in the following
way. The procedure is started by randomly selecting
a vertex. Starting from the selected vertex, trace the
edges of EA and EB in MAB in turn until an M-ring is
found in the traced path, where the edge to be traced
next is randomly selected (if two candidates exist) and
the traced edges are immediately removed from MAB .
If a M-ring is found in the traced path (a portion of
the traced path including the end may form a M-ring),
store it and remove the edges constituting it from the
traced path. If the current traced path is not empty,
start the tracing process again from the end of the
current traced path. Otherwise, start the tracing process by randomly selecting a vertex from among those
linked by at least one edge in MAB . If there is no edge
in MAB , iterations of the tracing process are terminated.
Step 3. Construct a rings set(R-set) by selecting Mrings according to a given selection strategy, where an
R-set is defined as the union of M-rings. Note that
this selection strategy determines a version of ES.
Step 4. Generate an intermediate solution from PA by
removing the edges of EA and adding the edges of EB
in the R-set, i.e., generate an intermediate solution by
EC = (R −set∩EA )∪(R −set∩EB ). An intermediate
solution consists of one or more loops.
Step 5. Generate an offspring solution by connecting
all loops into one loop .
Step 6. If a further offspring solution is generated,
then go to Step 3. Otherwise, terminate the procedure.

A Powerful Genetic Algorithm for Traveling Salesman Problem

solution therefore consists of one or more loops.
3.2. Local Version of ES
ES can generate various intermediate solutions, depending on the combination of M-rings selected in Step
3 for constructing R-sets. I can construct different
versions of ES by using different selection strategies
of M-rings. For the original ES, I proposed a simple
selection strategy, which I call single strategy in this
paper. In addition, I proposed another simple selection strategy, which is called the random strategy in
this paper. The two selection strategies of M-rings are
described below.
Single strategy. Select a single M-ring randomly
without overlapping the previous selections.
Random strategy. Select M-rings randomly with a
probability of 0.5 for each.
The intermediate solution of the single strategy tends
to be similar to PA . In contrast, the random strategy
typically forms a R-set in Figure 1, and the resulting
intermediate solution tends to contain edges of EA and
edges of EB equally. In this paper, I apply the random
strategy to the construction of a localized version of
ES.
3.3. Global Version of ES

Figure 1. Illustration of the Edge Swapping Algorithm

I define the size of a M-ring as the number of edges of
EA (or EB ) included in it. Note that some of the Mrings might consist of two overlapping edges, one from
EA and one from EB . I call such a M-ring ineffective
because the inclusion of ineffective M-rings in an R-set
does not affect the resulting intermediate solution. I
call an M-ring effective if it includes more than four
edges. In Step 3, I select only effective M-rings for
constructing R-set. I define the size of a R-set as the
number of edges of EA (or EB ) included in it.
According to the definition of a R-set and the procedure in Step 4, ES generates an intermediate solution
from EA by replacing edges with the same number of
edges selected from EB , under the condition that every vertex is linked by just two edges. An intermediate

In this subsection, I present three selection strategies
of M-rings for constructing global versions of ES. Here,
the size of R-sets generated by a global version of ES
should be greater than that by the localized version of
ES. However, the increase of the R-set size typically
increases the number of sub-loops in intermediate solutions (see the R-sets and the resulting intermediate
solutions in Figure 1 for an illustration), which degrades the capability to generate good offspring solutions that improve parent solutions when parent solutions are very high quality loops. This is because the
new edges introduced in Step 5 of the ES algorithm
frequently degrade the quality of offspring solutions
in this situation. So it is preferable to decrease the
number of sub-loops while increasing the R-set size.
A global version of ES needs to be designed to satisfy
these two competing demands.
K-multiple strategy. Select K M-rings randomly,
where K is a given parameter (K=6 in my experiments).
In this paper, I propose a heuristic selection strategy of
M-rings, called block strategy to construct an effective
global version of ES.
Block strategy. Select geographically close M-rings

A Powerful Genetic Algorithm for Traveling Salesman Problem

to construct a R-set, the resulting intermediate solution is generated from EA by replacing a block of edges
of EA with a block of edges of EB in the same region.
In fact, the block strategy is clearly superior to the
K-multiple strategy in the experiments.

4. Computational Experiments
The proposed GA was tested on 10 instances with up
to 16,862 cities selected from well-known, widely used
benchmark sets for the TSP.
They are the TSPLIB:

(10 runs)
Instance
ja9847
xmc10150
rl11849
xvb13584
brd14051
xrb14233
fnl4461
rl5915
rl5934
it16862

Optimum
491, 924
28, 387
923, 288
37, 083
469, 385
45, 462
182, 566
565, 530
556, 045
557, 274

LKH
Err
0.07
0.03
0.04
0.04
0.01
0.02
0.01
0.02
0.05
0.01

Time

GA
Err

Time

381
403
549
691
744
759
785
882
928
976

0.00
0.00
0.00
0.01
0.00
0.01
0.00
0.00
0.02
0.00

372
395
451
592
651
676
705
799
815
863

Table 1. Results of GA Compared with LKH

(http://comopt.ifi.uni-heidelberg.de)
and the National TSP benchmarks:
(http://www.math.uwaterloo.ca/tsp/).
The number of cities for every instance is indicated by
the instance name.
The proposed GA was implemented in C and the program code was compiled using GNU gcc compiler.
The program code is available in the online supplement. I executed the GA in a computer with Intel(R)
Core(TM) i5 CPU 2.27 GHz, and the program execution time varied substantially, depending on the instances. So I measured the CPU time by executing
the GA 10 trials and calculate the average time cost
of them to obtain the results.
In this section, I first describe several configurations
for the GA and then analyze the impact of the proposed enhancements on a selected group of the instances. Detailed results of the GA using all enhancements on all 10 instances are compared with a LKH
algorithm.
4.1. Configuration of the GA
I apply the GA (Algorithm 1) using several different
configurations to analyze the impact of the proposed
enhancements on the performance. One configuration
is determined by selecting one strategy from each of
the items listed below. For each item, the default strategy corresponds to each of the proposed enhancements,
and other strategies are also tested for comparison. As
for the default parameter values for Npop and Nch , I
determined them through preliminary experiments.
Population size (Npop ): 200(default). Alternatively,
set to 400 if greedy selection is used.
Number of offspring solutions (Nch ): 20(default). Alternatively, set to 10, 30, and 40.

4.2. Impact of the ES
I apply the GA using each configuration 10 times to
a selected group of instances with sizes ranging from
9,847 to 16,862 in order to save space and to avoid numerous experiments. Results are presented in the following format: the instance name(Instance), the number of runs that succeed in finding the optimal or best
known solution (no better solution was found) over 10
runs, the average percentage excess with respect to the
optimal solutions(Err), and the computation time for
a single run in seconds(Time).

5. Conclusion
In this paper I have proposed a powerful GA in finding very high quality solutions for the TSP. The proposed GA has found optimal or best known solutions
for most benchmark instances with up to 16,862 cities.
One of the strengths of my GA is the use of ES, an
edge swapping operator for the TSP. the local version of ES and the global version of ES significantly
reduce the computational cost, with the help of efficient implementation techniques. This resolves the
common problem that GA for TSP are usually much
more time consuming than efficiently implemented local search based algorithms. Another important contribution is the development of ES in generating even
better offspring solutions from very high quality parent
solutions at the final phase of the GA. An interesting
feature is that I design a simple local search procedure
into ES to determine good combinations of the edges of
parents. I have demonstrated that the enhancements
significantly improve the performance of the GA. I believe that the proposed GA provides a good example
of a sophisticated GA application for a representative
combinatorial optimization problem and that some of
the ideas can be successfully applied to the design of
GAs for other combinatorial optimization problems.

A Powerful Genetic Algorithm for Traveling Salesman Problem

References
Abduljabbar, Zaid Ameen, Khalefa, Mustafa S, and
Jabar, Marzanah A. Comparison between ant
colony and genetic algorithm using traveling salesman problem. International Journal of Soft Computing, 8(3):171–174, 2013.
Ahmed, Zakir Hussain.
A hybrid genetic algorithm for the bottleneck traveling salesman problem. ACM Transactions on Embedded Computing
Systems (TECS), 12(1):9, 2013a.
Ahmed, Zakir Hussain. An experimental study of a
hybrid genetic algorithm for the maximum traveling
salesman problem. Mathematical Sciences, 7(1):1–7,
2013b.
Albayrak, Murat and Allahverdi, Novruz. Development a new mutation operator to solve the traveling salesman problem by aid of genetic algorithms.
Expert Systems with Applications, 38(3):1313–1320,
2011.
Chen, Xiaofeng, Tan, Zhenhua, Yang, Guangming,
and Cheng, Wei. A hybrid algorithm to solve traveling salesman problem. In Advances in Electronic
Engineering, Communication and Management Vol.
1, pp. 99–105. Springer, 2012.
Chowdhury, Arkabandhu, Ghosh, Arnab, Sinha, Subhajit, Das, Swagatam, and Ghosh, Avishek. A novel
genetic algorithm to solve travelling salesman problem and blocking flow shop scheduling problem. International Journal of Bio-Inspired Computation, 5
(5):303–314, 2013.
Djordjevic, Milan, Grgurovič, Marko, and Brodnik,
Andrej. Performance analysis of the partial use of
a local optimization operator on the genetic algorithm for the travelling salesman problem. Business
Systems Research, 3(1):14–22, 2012.
Dong, Gaifang, Guo, William W, and Tickle, Kevin.
Solving the traveling salesman problem using cooperative genetic ant systems. Expert Systems with
Applications, 39(5):5006–5011, 2012.

Li, Jun, Sun, Qirui, Zhou, MengChu, and Dai, Xianzhong. A new multiple traveling salesman problem and its genetic algorithm-based solution. In Systems, Man, and Cybernetics (SMC), 2013 IEEE International Conference on, pp. 627–632. IEEE, 2013.
Liew, Sing. Optimal tree for genetic algorithms in the
traveling salesman problem (tsp). arXiv preprint
arXiv:1204.2352, 2012.
Nagata, Yuichi and Kobayashi, Shigenobu. A powerful
genetic algorithm using edge assembly crossover for
the traveling salesman problem. INFORMS Journal
on Computing, 25(2):346–363, 2013.
Nagata, Yuichi and Soler, David. A new genetic algorithm for the asymmetric traveling salesman problem. Expert Systems with Applications, 39(10):8947–
8953, 2012.
Osaba, E, Onieva, E, Diaz, F, Carballedo, R, and Perallos, A. Comments on albayrak, m., & allahverdy
n.(2011). development a new mutation operator to
solve the traveling salesman problem by aid of genetic algorithms. expert systems with applications,
38 (3), 1313–1320: A proposal of good practice.
Expert Systems with Applications, 41(4):1530–1531,
2014.
Roy, Sharadindu. Genetic algorithm based approach
to solve travelling salesman problem with one point
crossover operator. INTERNATIONAL JOURNAL
OF COMPUTERS & TECHNOLOGY, 10(3):1393–
1400, 2013.
Simões, Anabela and Costa, Ernesto. Extended virtual loser genetic algorithm for the dynamic traveling salesman problem. In Proceeding of the fifteenth
annual conference on Genetic and evolutionary computation conference, pp. 869–876. ACM, 2013.
Whitley, Darrell, Hains, Doug, and Howe, Adele. A
hybrid genetic algorithm for the traveling salesman
problem using generalized partition crossover. In
Parallel Problem Solving from Nature, PPSN XI,
pp. 566–575. Springer, 2010.

Hatami, Shirin and Babazadeh, Morteza. A new solution for travelling salesman problem by genetic algorithm. International Journal of Advanced Research
in Computer Science, 2(6), 2011.

Yu, Qingsheng, Wang, Dong, Lin, Dongmei, Li, Ya,
and Wu, Chen. A novel two-level hybrid algorithm
for multiple traveling salesman problems. In Advances in Swarm Intelligence, pp. 497–503. Springer,
2012.

Karabulut, Korhan and Tasgetiren, Mehmet Fatih. A
discrete artificial bee colony algorithm for the traveling salesman problem with time windows. In Evolutionary Computation (CEC), 2012 IEEE Congress
on, pp. 1–7. IEEE, 2012.

Yuan, Shuai, Skinner, Bradley, Huang, Shoudong, and
Liu, Dikai. A new crossover approach for solving
the multiple travelling salesmen problem using genetic algorithms. European Journal of Operational
Research, 2013.

