总第15卷166期 2013年6月 大众科技 Popular Science&Technology V01.15 No.6 June 2013 混合遗传算法解决单目标旅行商问题的研究 袁成林 (1.广西大学计算机与电子信息学院,广西南宁530004; 2.广西医科大学基础医学院,广西南宁530021) 【摘要】对混合遗传算法解决单目标旅行商问题进行研究,提出了一种基于对应连通子图交叉的混合遗传算法。本算法 还包括初始种群的生成、适应度函数的计算、选择、变异、LK局部搜索和小生境操作。最后通过具体算例的实验和对比表明算 法是有效的。在计算精度和速度上有较大提高。 【关键词】混合遗传算法;旅行商问题;对应连通子图交叉 【中图分类号】TP309 【文献标识码】A 【文章编号】1008—1151(2013)06.0004—03 Research of Hybrid Genetic Algorithm to Solve the Single 0bj ective Traveling Salesman Problem Absract:Hybrid genetic algorithm to SOlVe the single—objective traveling salesman problem,hybrid genetic lagorithm is proposed based on looking for the Corresponding Connected Subgraph Crossover.The algorithm also includes the generation of the initial population to adapt to the calculation of the function,selection,mutation,LK local search and niche operation.Finally,experimental and comparison of speciifc numerical examples show that the algorithm is effective and has improved greatly in accuracy and speed. Key words:hybrid genetic algorithm;traveling salesman problem;corresponding connected subgraph crossover 遗传算法是一种基于进化策略的优化算法“ ,被广泛使 用在组合优化问题中。但是遗传算法在解决问题的时候也有 诸多不足,首先是在早期的搜索中常常丢失种群的多样性 。 方向进化。对于旅行商问题通常采取自然编码,即每个基因 位对应一个城市的号码。例如卜2—3—4-5—6表示依次经过城 市1到6最后回到1。这种编码容易理解,效率高。但是在 这种编码方式下普通的交叉算法就不再适用了,因为可能产 生没有意义的个体。图1中两条可用路径经过交叉操作以后, 产生的卜1-5—6-3—6路径是没有意义的。为了解决这个问题, 很多学者提出了适用于TSP的交叉算子,像顺序插入法,启 发式交叉等,但是这些算法会打乱交叉片段中的基因位置因 而不能保存父体的优秀基因片段。 在单目标优化中,对于种群的适应性方面的研究很多,多样 性保持方面常常用的手段是小生境方法。其次由于遗传算法 的局部能力差,也有学者采用其他局部搜索算法来构造混合 遗传算法 ,这些方法对在种群适应性方面是有效的,但是 在种群多样性方面却不足,对于有的优化问题来说,多样性 保持对搜索最优解有着重要的作用。最后在旅行商问题中普 通的交叉算子会破坏要交换的基因片段,针对这个问题本文 提出了对应连通子图交叉(Corresponding Connected 可用路径棹1 可用路径抖2 Subgraph Crossover,CCSC),结合LK局部搜索和小生境等操 作构造一种基于CCSC的混合遗传算法(CHGA)。通过几个实例 的计算和对比表明,算法的设计是有效的,求解质量也有较 大提高。 E叵E臣四日 ,E田习卫习 厂———————]田曰珀I 田 田田珂▲ 田 1对应连通子图交叉 交叉算子是遗传算法中最重要的部分,既可以使个体发 生变化,又能保留父体的优秀基因片段,使种群向着理想的 J [田] 习 不可用路径抖1 J 臣 习卫习 不可用路径#2 图1普通交叉操作产生的不可用路径 【收稿日期】2013—05—10 【基金项目】广西大学科研基金(XJZl10585);广西研究生教育创新项目(YCSZ2012018 o 【作者简介】袁成林(1982一),男,广西大学计算机与%5-4 ̄息学院硕士生,研究方向为计算智能。 .d. 基于以上分析,本文提出一种新的交叉算子:对应连通 子图交叉(CCSC)。这种交叉方法可以做到严格的交叉,即子 代的基因都是从父代继承所得,所有基因片段都可以在两个 父体中找到。CCSC通过合并两条父体路径,构造连通图G。 对G中的对应连通子图进行搜索,然后进行交叉,交叉策略 可以是:随机选择某个或若干个对应连通子图进行交换,还 可以采用贪婪选择对每个对应连通子图进行多次搜索,找到 最短个体,这几种方法时间复杂度都在0(n)之内,本文权衡 算法效率和求解效果,决定采用随机选择若干个对应连通子 图进行交换的交叉策略。明显可以看出若对应连通子图的个 数大于等于1,CCSC就可以创造两个以上的后代个体。若有 k个对应连通子图,则可以产生2 L2个个体,减2是因为有 两个个体和父体是相同的。 对应连通子图:合并两条父体路径,构造连通图G,在G 中,删除两条父体路径的重合边后,得到图G ,G 的某个连 通子图中的节点在两条父体中均为连续的基因片段,此连通 子图称为对应连通子图。 图2—2中的a—b—C—d,a—c—b—d和g-h—j—i—k,g-i—h—j—k 就是两对对应连通子图: \ r 1\ ≮ |1 b n ~ ...…一 1 ’ /// \、f 1k 图2对应连通子图示意 寻找对应连通子图的流程如下: (1)删除图G中两条路径重合的边。 (2)建立队列Q,把度为1的n个节点放在队头,设定 计数器K=n。 (3)从队列的n+1个节点开始进行广度遍历,找出所有 连通子图,把遍历过的点前移,记录连通子图结点个数t , 直至所有节点操作完成。 (4)对结点个数t 大于等于3的连通子图i,对其父体 进行检查如果连通子图的节点在两父体中均为连续的基因片 段,则该连通子图为一个对应连通子图g,记录g。 (5)如果符合要求的连通子图都已经搜索就退出程序, 否则返回步骤4。 2混合遗传算法CHGA的实现 2.1选择算子 选择算子是算法中关键的一环,可以选择优秀个体进入 .5一 下一代进行交叉和变异操作,本文采用的是轮盘赌法,根据 个体的适应度进行选择,适应度越大个体被选择的概率就越 大,并且可以保留少量适应度较差的个体,增加种群多样性。 2.2变异和交叉算子 变异:本文采用两点随机交换的变异操作对种群进行扰 动,跳出某些局部最优解。 交叉:本文采用第一节提出的对应联通子图交叉作为交 叉算予。 2.3小生境操作 经过轮盘赌选择等操作后,适应度大的个体更容易进入 新种群,种群里就会出现很多一样或者很相似的个体,这样 就会导致算法早熟,结果陷入局部最优解,所以本文引入小 生境操作来保持物种多样性。 具体方法是:假设种群共有n个个体,首先计算个体 (1-1,2…n)和其他个体之间的小生境距离£( 。在对个体 与其他所有个体的小生境距离 ( , 求和,计算出个体 的小生境排序值 = L(f,,)。循环这个步骤直到计 ,=1 算出所有S 。升序排列毋后,用随机产生的个体代替 最高 的n个个体,算法的时间复杂度是0(n。)。 其中L(i,j)的求法是,假设TSP共有N个城市,取个体 i的第k(k=l,2,3…N)个基因位城市i(k),在个体j中找 到城市i(k)的位置t,对i(k)和j(t)左右两边城市号做同或 操作:L(i,j)=i(k+1)oj(t+1)+i(k+1)oj(t-1)+i(k-1)o J(t+1)+i(k-1)oj(t-1)。因为O<L(i,j)≤2,所以O<s E2n。 小生境排序值S 越大说明个体i周围的个体越多。对种群的 非精英个体进行小生境操作,起到了保留精英又增加种群多 样性的作用。 2.4局部搜索 在CHGA中局部搜索算法起着十分重要的作用。它可以使 种群迅速向着希望的方向进化。它的另一个作用是使CHGA 算法的第一代开始就能够找到更多的对应连通子图,提高算 法的效率,本文采用LK算法 作为局部搜索。 在本文中局部搜索的另一个作用是使算法的第一代开始 就能够找到等多的对应连通子图(CCS),通过实验测试CCSC 结合局部搜索算法可以产生的对应连通子图的大致个数,实 验采用TSPLIB中的att532,nrw1379和u1817三个算例,用 3-OPT,3-OPT和M0一LK算法对5O个随即路径进行测试,平 均实验结果如表1。通过实验发现2-OPT与CCSC结合在90% 的情况下可以产生可用个体,也就是至少有一对对应连通子 图而,结合3-OPT和LK算法的CCSC产生可用解的概率达到 了将近100%。 表1不同局部搜索找到的对应连通子图个数 3.oPT 2l 5 5 72 3算例实验 3.1实验环境 为验证所设计算法的有效性,基于如下实验环境进行相 关实验:联想台式机,其配置为: (1)CPU:AMD 64 2X 4400+: (2)内存:2 G DDR2; (3)操作系统:Windows XP 程序以VC++2008编写及编译,实验使用数据取自 TSPLIB。算法各参数如表1所示。实验结果均为运行算法1O 次后计算得到的平均值、最优值以及最差值。 3.2实验参数 表2混合遗传算法算法的参数设置 3.3实验结果 本文的算例采用TSPLIB数据库中的Att48、Ei151、 Ei 176、KroalO0、Chl30、Tsp225、Ch 150等6个测试对 象,每个算例进行2O次计算,结果取平均值,并与文献[5,6] 进行了对比。具体数据如下: 表3混合遗传算法算法的计算结果 文献 本文 O∞一 摄 8oo一 短 一 路6oO一 径 一一.一... 4oD一 遗传代 2f 一 5 1O 图3算例EiiS1收敛情况 实验结果表明,本文所做改进效果明显。100以内规模 的问题每次都可以计算出TSPLAB最优解,而且速度上相比文 献所述也有优势。100以上问题在2O次实验中可以计算出 TSPLAB最优解,而且平均值的误差也在1%以内。在下一步工 作中,可以着力改善算法的计算速度,并且向更大规模的问 题发起挑战。 【参考文献】 【1]Holland John H.Adap ̄fion in mtural andartiifcial systems:an introductory analysis with applicatiom tO biology,control,and artiifcial nitelligence[J].USA:Unive ̄ity ofMichigan,1975. [2 马良,2]旅行推销员问题的算法综述Ⅱ1.数学实践与认识, 2000,32(2):156—165. 【3】 葛继科,丘玉辉,等.遗传算法研究综述O】,计算机应用研 究,2008,25(10):2911-2917. [4】Helsgaun K General k—opt subrnoves for the Lin—Kemi ̄an TSP heurisitc[J].Mathematical Prog ̄nming Computation,2009, 1(2—3):119—163. [5】 孙凯,吴红星,王浩,丁家栋.蚁群与粒子混合算法求解TSP 问题 .计算机工程与应用,2012,48(34):60-63. [6 李哲,61夏立,庄浩俊,董红生.MMAS_EC算法求解旅行商 问题卟计算机工程与应用,2011,47(9):41—47. (责任编辑伍彬) .6。