2015年第2期 文章编号:1006-2475(2015)02-0034-06 计算机与现代化 JISUANJI YU XIANDAIHUA 第234期 基于改进遗传算法的大规模TSP问题求解方案 雷玉梅 (阜新高等专科学校,辽宁阜新123000) 摘要:TSP问题不仅描述旅行商周游城市的问题,也是许多工程领域中复杂问题的抽象形式,找到一种有效的TSP问题 求解方案具有十分重要的意义。针对大规模TSP问题中最小回路代价的求解问题,提出一种基于遗传算法的大规模 TSP问题的求解方案,采用分而治之的思想,并对传统遗传算法的初始化和遗传算子进行改进,提高了算法性能。多个 数据集上的实验结果证明了提出的算法能够优化收敛结果,一定程度上解决过早收敛的问题。 关键词:大规模TSP问题;最短路径;遗传算法;改进遗传算法 中图分类号:TP3o1.6 文献标识码:A doi:10.3969/j.issn.1006-2475.2015.02.008 A Solution of Large・scale TSP Based on Improved Genetic Algorithm LEI YU.mei (Fuxin Higher Training College,Fuxin 123000,China) Abstract:TSP not only describes the problem of travelling around a number of cities,but also stands for a number of problems in some other fields.Thus,it is meaningful to find an effective solution to large—scale TSP.As for the solution tO find the minimum distance of a loop consisting of a large number of cities in TSP,in this paper,we propose such a new solution based on genetic al— gorithms.It adopts the idea of dividing and ruling,and utilizes a genetic algorithm based on improved initialization method and genetic operators to improve its performance.Experimental results across multiple datasets illustrate the proposed algorithm per— forms well in optimizing convergence result and solving the problem of premature convergence to some extent. Key words:large—scale TSP;shortest path;genetic algorithm;improved genetic algorithm 0 引 言 TSP(Traveling Salesman Problem)问题,也称旅行 商问题或货郎担问题,是一个典型的NP(Non.deter— ministic Polynomia1)完全问题。它不仅描述了商人从 个城市出发,经过其他多个城市,且只经过一次之 后,又回到出发城市的问题,也是数学领域一个复杂 一rithm),没有严密的数理逻辑,但通常能够更为高效 地求得可接受的问题的解,因此在实际中应用更为广 的组合优化问题,更是诸多领域内许多复杂问题的概 括的形式化描述。凡是可以抽象地表示为遍历且只 遍历所有结点一次,最终回到初始结点,求代价最小 的回路问题,都可以仿照求解TSP问题的方法进行 求解。因此,TSP问题的解决方案在计算机理论和实 际应用中得到广泛的关注。 目前解决TSP问题的方法大致可以分为2大 类lL】j,一类是拥有较好的数理逻辑和理论基础的精 确的计算方法(Exact Algorithm),能够找到问题的最 优解,另一类是近似的计算方法(Approximation Algo- 收稿日期:2014—11-06 泛,遗传算法就是一种典型的近似计算方法。 遗传算法是根据优胜劣汰的生物进化理论设计 出来的一种优化的搜索算法,主要通过遗传染色体信 息,选择对“环境”的“适应能力”高于父代的子代,直 到适应能力满足一定的要求。高经纬等人在文献 [2]中证明了使用遗传算法求解TSP问题时具有结 果准确、收敛速度快的特点。文献[3-9]从不同的方 面对遗传算法进行改进,提升了其解决TSP问题的 能力。然而,对于大规模的TSP问题,始终没有较好 的解决办法,也吸引了越来越多的研究学者的关注。 本文结合启发式的思想和改进的遗传算法,提出 了新的解决大规模TSP问题的HG方法,采用分而治 之和启发式的初始化方法,利用改进的遗传算子,提 高了遗传算法的性能,多个数据集上的实验结果证明 了HG算法的有效性。 作者简介:雷玉梅(1980.),女,辽宁阜新人,阜新高等专科学校讲师,硕士,研究方向:计算机软件。 2015年第2期 雷玉梅:基于改进遗传算法的大规模TSP问题求解方案 35 1 相关概念 1.1 TSP问题形式化描述 给定N个城市的集合,城市用Ci,i∈{0,1,..., N一1]表示,R=(C。,C ..,e 一 )表示经过所有N 个城市的一条路线,当路线R满足公式(1)取得最小 值时,R即为TSP问题的最优解: N一2 f(R)= d(c.,c.+.)+d(cN一 ,c。) (1) 其中,d(Ci,Ci+ )表示城市Ci与城市Ci+ 之间的距离, f(R)表示路线R的距离。 解决TSP问题的目标就是找到一条路线R ,使得 f(R )取得最小值。对于N个城市的TSP问题,采用全 局搜索的方式,可行的组合有(N—1)!种,当N变得很 大时,全局搜索的方法已经不可能解决rlSp问题。 1.2遗传算法 遗传算法首先对问题中的参数集进行编码,形成 初始种群,计算适应度,然后通过染色体信息的代代相 传(利用选择、交叉和变异算子不停地进行算法迭代)搜 索具有最高适应度的个体,算法流程可用图1表示。 将问题中的参数信息编码为个体染色体信息 初始化种群 产生下一代种群 计算适应度 适应度是否满足要求 ~—\—/ 是 葚甬 J否 根据交叉概率执行交叉算子 根据变异算子执行变异算子 解码输出 图1遗传算法流程图 2 HG算法 2.1聚类 本文沿用分而治之的思想解决大规模的TSP问 题,根据坐标位置进行聚类操作,把相对位置较近的 城市划分到一个类簇(聚类的结果)中。城市之间的 “相似性”采用欧式距离描述,如公式(2)所示: (2) 其中,P表示结点的属性的数量,这里是2(城市的经 度和纬度),Wij表示结点ci与 j的相似性。在TSP 问题中,结点之间的欧式距离表示城市之间的位置距 离,因此聚类操作会把距离较近的城市划分到同一个 类簇,符合进行聚类操作的初衷。 经过聚类操作,把一个大规模的TSP问题,划分 为多个类簇中的子TSP问题,然后采用本文改进的 遗传算法求解各个子TSP问题。 2.2编码与初始化 本文采用序号编码的方式,把每个类簇中的城市 编号为1,2,3,…,ni,ni表示第i个类簇的城市数量。 一条路径编码为一条染色体,用1~ni的任一排列组 合表示。 初始化过程用来构造初始的种群(染色体的集 合),初始化结果的好坏,一定程度上决定了遗传算 法收敛所用的时间。传统的遗传算法中,一般采用随 机的方式产生初始化种群,但是这种方法的不稳定性 极高,遗传算法的收敛可能需要很长时间。Osaba等 人在文献[9]中指出,使用启发式的初始化函数能够 有效地提升遗传算法的性能。本文就采用了NN[1O] 的启发式初始化函数,具体地,在类簇i中随机选择 一个起始城市c。∈{1,2,…,n;},然后根据公式(3) 依次选择剩下的ni一1个城市,组成初始路线: cj arg “d(cj,Ck),j∈{1,2 .'ni一1t,k∈{1,2….'n。} s.t.。j鹾{c0,cl,。卜l} (3) HG的初始化方法,使最初的路线拥有较高的适 应度,有利于从根本上提升算法的收敛速度以及优化 收敛结果。 2.3适应度函数 适应度是用来评价个体对“环境”的适应能力, 适应度越高,说明适应能力越强。在TSP问题中,适 应度可以用路线的距离来表示,路线的距离越短,说 明路线越优。为方便后续的遗传算子的操作,HG方 法采用公式(4)所示的适应度函数: ni一2 f(R。)= (MAX—d(c ,c k+1))+MAX—d(c ;_l’c0) (4) 其中,MAX表示无穷大,f(R;)表示种群中个体i的适 应度,其值越大,表示个体的适应能力越强。 2.4交叉算子 交叉是指父代2个个体的部分染色体信息进行 互换,重组为新的个体的操作,在生物进化的过程中 发挥着核心作用。遗传算法中的交叉算子同样发挥 着重要作用,但不是任意2个父代的个体都会进行交 叉操作,交叉行为的发生有一定的概率,发生交叉行 为的个体占种群个体总数的比例称为交叉率。由于 HG方法采用的是序号编码,因此采用单亲遗传的方 法,在单条染色体内进行单点交叉操作。对满足交叉 率的染色体,利用公式(5)选择交叉点: 36 计算机与现代化 2015年第2期 tik=arg max d(ci,c{+1),j∈{0,1,...,n。一2},k∈{1, J 2,...,S} (5) 其中,ti 表示染色体i的第k个交叉点,S表示交叉点 的总数。由公式(4)可知,根据路线R 中连续2个城 市之间的距离最远的s个位置,依次选择s个交叉 点,把染色体i切成S+1个片段,然后将这S+1个 片段重新组合成完整的一条染色体。 HG的交叉算子消除了个体中对适应度影响最 大的染色体信息(切断路线中距离最远的连续的2个 城市),有利于促进算法的收敛进程,同时能够增加 种群的多样性,有利于避免过早收敛的现象。 2.5变异算子 变异算子是指对染色体上某位置的信息进行变 动,比如,交换路线上任意2个不同城市的位置。跟 交叉操作一样,变异操作同样有变异率的约束,是指 发生变异的个体占种群中个体总数的比例。传统的 遗传算法通常为变异率选择固定的数值,而HG算法 利用公式(6)定义动态的变异率: mutation=— (6) 其中,mutation表示变异率,分子表示种群中染色体信息 相同的个体数目的最大值,分母表示种群的数量。比 如,随着算法的迭代,在某一世代的种群中染色体A出 现了2次,染色体B出现了3次,且A≠B,且没有其他 染色体对应多个个体,则公式(6)的分子值为3。 在满足变异率的前提下,随机交换染色体2个位 置的信息,而且在算法迭代初期,只针对染色体的前 段信息进行变异操作,以扩大解空间的搜索范围,到 算法迭代后期,则只变异染色体的后段信息,否则可 能会影响算法的收敛。 HG算法的动态变异算子,保证了种群的多样 性,有利于避免过早收敛的问题,同时还保证了较大 的解空间的搜索范围和较好的收敛结果。 2.6选择算子 选择算子用来把种群中的优良个体直接选人下 一代。轮盘赌方法是一种简单又常用的选择方法,每 个个体对应一个选择概率,适应能力强的个体,选择 概率大,适应能力低的,选择概率小,选择概率通过公 式(7)计算: p。k 雨 —一: (7), l ∑f(R 1 。 ) 其中pik表示种群i中个体k的选择概率。 由公式(7)可知,种群中所有个体的选择概率之 和为1,因此可以通过累加的方式为每个个体确定一 个概率区间。比如个体1的选择概率为0.1,个体2 的选择概率为0.2,则个体1的概率区间为0~0.1, 而个体2为0.1~0.3。然后根据0~1区间内的一个 随机数,确定被选中的个体。 2.7全局TSP问题的解 在求得各子TSP问题的解之后,需要将它们集 成为全局的TSP问题的解,即把各个类簇连接起来。 HG方法仿照单链接的聚类方法,在2个待连接的类 簇之间应用2次单链接方法,把2个类簇连接起来, 但要求2次单链接方法选中的4个点必须是2对点, 即同一个类簇中的2个点是直接相连的。单链接聚 类是指根据2个类簇对象之间的最短距离连接类簇 的方法,具体可由图2表示。 \ \\ ....一............. ...一....一 ........................ ......... / \ 图2聚类连接 图2中,中间的虚线分割的上下2个类簇就是待 连接的类簇。2次单链接方法,分别可以找到结点1 和3之间的虚线,以及结点2和4之间的虚线,然后 把结点1和2之间以及结点3和4之间的黑色加粗 连线剪断,把结点1和3以及结点2和4连接起来, 就成功地把2个类簇连在了一起。实际操作过程中, 是先找到2个类簇距离最近的4个点,如图2中的1, 2,3,4,然后比较1.3,2_4的距离之和与1 4,2—3的距 离之和,选择较短的一组进行连接。这样就把2个类 簇连接成了一次类簇,再继续与其他的类簇连接,就 可以得到全局的TSP问题的解。 2.8 HG算法流程 根据前文的阐述,可用表1描述HG算法的流程。 表1 HG算法流程 2015年第2期 雷玉梅:基于改进遗传算法的大规模TSP问题求解方案 37 3 实 验 为了验证HG算法解决大规模的TSP问题的性 能,本节选用标准问题库TSPLIB的A280和 NRW1379两个数据集进行实验,采用标准的遗传算 法(SGA)以及Le等人 和金聪 提到的利用启发 式思想改进的遗传算法作为对比算法。文献[10]主 要将NN的启发式思想用于初始路径的选取(H. NN),而文献[1 1]则选用梯度寻优技术对变异算子 进行了改进(H—GO)。 实验中选用k-means的聚类方法 12j,A280数据 集聚成10个类簇,NRW1379数据集聚成25个类簇。 实验均在Intel i5处理器、2G的PC机上运行。 图3和图4分别展示了HG和H—NN算法在2个 数据集上随着迭代次数的增加,所计算出来的全局联 通路径的长度的变化,而图5和图6则是与SGA算 法以及H.GO算法的对比结果。 全 局 距 离 算法迭代次数 图3路径长度随迭代次数的变化(A280) 迭代次数 图4路径长度随迭代次数的变化(NRW1379) 全 局 距 离 图5 HG VS(SGA&&H—GO)(A280) 图6 HG VS(SGA&&H—GO)(NRW1379) 从图3~图6可以看出,随着迭代次数的增多, HG算法计算得到的路径长度逐渐减小。在A280数 据集上,HG算法经过3 000次迭代之后,路径长度已 减小到3 200左右,而SGA算法仍徘徊在13 000附 近,大概是HG计算结果的4倍。H—NN与HG算法 的效果比较接近,但H—GO算法由于采用了梯度优化 的方法,在算法迭代后期,收敛速度较慢。在 NRW1379数据集上,HG算法经过5 000次迭代,路 径长度已减小到68 000左右,而SGA算法的计算结 果却仍相当于HG的7倍之多。H—NN算法由于并没 有考虑样本的多样性,出现了过早收敛的趋势,而H— GO算法同样存在后期收敛速度减缓的问题。此外, SGA算法在A280数据集上表现出了不稳定,距离长 度曲线有回升的情况,这是由于算法运行一段时间 后,路径的前段序列已接近最优,而在变异算子随机 交换了2个结点之间的顺序之后,使得原本较优的路 径变差所导致的,采用动态变异算子的HG算法就没 有出现这种情况。 迭代次数的增加,必然伴随着运行时间的增加,图7 38 计算机与现代化 2015年第2期 和图8展示了算法计算结果随着运行时间的变化。 运行时间/s 图7路径长度随运行时间的变化(A280) (a)HG算法 (b)SGA算法 图8路径长度随运行时间的变化(NRW1379) 从图7和图8中可以看出,随着运行时间的增 加,HG算法和SGA算法计算的路径长度大体都呈下 降趋势,但两者之间仍存在很大差距。例如在 NRW1379数据集上,当HG算法的计算结果达到70 000左右时,SGA的计算结果还停留在250 000附近, 并且有出现过早收敛的迹象,而HG算法则始终呈现 较好的下降趋势。在图7和图8中,H.NN算法过早 收敛的问题和H.GO后期收敛速度缓慢的问题表现 的更加明显。 此外,为了直观、明显地观察HG算法分而治之 的思想,以及各个类簇连接的效果,图9展示了 NRW1379数据集上HG算法在迭代5 000次之后的 路径(并没有把各个聚类连接),而图10则展示了 A280数据集上类簇连接前后的路径结果图,同样证 明了HG算法的有效性。 图9 NRW1379数据集路径 结点横坐标 (a)类簇连接前 结点横坐标 (b)类簇连接后 图10 A280数据集路径 2015年第2期 雷玉梅:基于改进遗传算法的大规模TsP问题求解方案 39 I 数据集 J HG均值 J HG均方差J SGA均值}SGA均方差J I A280 l 3 099.79 l 56.089 l 3691.1 l 61.13 l I NRW1379 l 69 104.35 l 929.648 l 454 440.1 l 5 352.6 I noat: (8) 4 结束语 [4]Yu Yingying,Chen Yan,Li Taoying.A new design of ge- netic algorithm for solving TSP[C]//Proceedings of the Fouah International Joint Conference on Computational Sciences and Optimization.2011:309—313. [5] 王斌,李元香,王治.一种求解TSP问题的单亲遗传算 法[J].计算机科学,2003,30(5):73-75. [6] 李茂军,朱陶业,童调生.单亲遗传算法与传统遗传算 法的比较研究[J].系统工程,2001,19(1):61-65. [7] Chen Junhong,Hu Junxiang,Zhen Xunyan.Application of improved pa ̄heno—genetic algorithm in distirbution net— work switch optimal planning[C]//2010 International Conference on Electircal and Control Engineering (ICECE).2010:467470. [8] Yang Jinqiu,Yang Jiangang,Chen Genlang.Solving large— scale TSP using adaptive clustering method[C]//The Second International Symposium on Computional Intelli— gence and Design.2009:49—51. [9]Osaba E,Carballedo R,Diaz F,et a1.On the influence of using initialization functions on genetic algorithms solving combinatorial optimization problems:A first study on the TSP[C]//2014 IEEE Conference on Evolving and Adap. tive Intelligent Systems(EAIS).2014:1-6. [10]Le Ny J,Feron E,Frazzoli E.On the Dubins traveling salesman problem『J].IEEE Transactions on Automatic Control,2012,57(1):265-270. [11]金聪.启发式遗传算法及其应用[J].数值计算与计算 机应用,2003,24(1):30—35. [12]戴文华,焦翠珍,何婷婷.基于并行遗传算法的K.means 聚类研究[J].计算机科学,2008,36(6):171—174. [13]戚玉涛,刘芳,焦李成.求解大规模TSP问题的自适应 规约免疫算法[J].软件学报,2008,19(6):1265— 1273. [14]赵连朋,金喜子,王娜,等.求解超大规模旅行商问题的 纵深遗传算法[J].计算机工程与应用,2009,45(4): 56—58. [15]左国才,杨金民.K.means算法在电信CRM客户分类中 的应用[J].计算机系统应用,2010,19(2):155—159. [16]温光辉,王明旭,郭嗣琮.一种求解TSP问题的新型遗 传编码方案[J].科学技术与工程,2006,6(2):206. 208 [17]滕奇志,唐棠,何小海,等.基于交换.单亲遗传算法的 砂岩三位显微图像重建[J].数据采集与处理,2010, 25(3):364—368.