聚类处理的蚁群算法在旅行商问题中的应用
2023-09-17
来源:小奈知识网
第33卷第l期 2015年3月 湖北民族学院学报(自然科学版) Journal of Hubei University for Nationalities(Naturla Science Edition) V01.33 No.1 Mar.2015 文章编号:1008—8423(2015)01-0031—04 DOI:10.13501/j.cnki.42—1569/n.2015.03.009 聚类处理的蚁群算法在旅行商问题中的应用 孟喜艳 ,傅文灵 ,马波 ,方壮 (1.恩施职业技术学院人文科学系,湖北恩施445000; 2.湖北民族学院理学院,湖北恩施445000) 摘要:针对大规模旅行商问题具有区域分布的族类特征,采用最小方差法将城市样本点聚成k个城市群,利用蚁群 算法,求出每个城市群内部城市的最短路径及城市群之间的最短路径.提出了一种新的城市群连接方式及标记方 法,使得从任一个城市出发,以该方式可对每个城市群的连接城市进行标记,同时,利用循环搜索的方法可得到每 个城市群的连接方式,最终得到全局最短路径的一个满意解.最后利用TSPLIB提供的实验数据,对算法的正确性 进行了验证. 关键词:蚁群优化算法;旅行商问题;聚类分析 中图分类号:TP301.6 文献标志码:A Application of Ant Colong Algorithm Based on Clustering to Traveling Sales Problem MENG Xiyan ,FU Wenling ,MA Bo ,FANG Zhuang (1.Department of Human Science,College of Enshi Technical,Enshi 445000,China; 2.School of Science,Hubei Univetsity for Nationalities,Enshi 445000,China) Abstract:As a large number of sample sets of TSP feature regional distributed clustering,the city sample points are changed into k different city groups and the shortest route among city groups and cities inside each city groups are obtained by using ant colony optimization algorithm.In this paper,we proposed a new method to link the city groups and mark the linking cities.By using this method,every linking city can be marked and the way of connecting to each city groups can be determined,then the global shortest route is derived.Finally the correct result has been proven by the experimental data verification provided by the internationally recognized TSPLIB in the case pr152. Key words:ant colony optimization algorithm;traveling salesman problem;clustering analysis 旅行商问题(Traveling Saleman Problem,TSP)是指已知n个城市的两两距离,商人从自己所处的城市出 发,确定一条访遍各个城市顾客一次且仅一次的最短路径问题.若将城市记为顶点集 = , ,…, },相连 接顶点 与 组成的边e 胸成集合记为边集E,相连接顶点 与 之间的距离d 胸成的距离矩阵记为D, TSP问题的图论描述即为:在图G=( ,e)中确定一条长度最短的Hamilton回路. TSP是一个NP完全难题,很多典型的组合优化问题如芯片加工问题、电路板设计中的钻孔问题、航迹 规划等,最终都可归结为TSP问题.因此快速、有效地解决TSP有着重要的理论价值和极高的实际应用价值. 相对于传统算法,蚁群算法_1 自1991年Dorigo提出后,就成功应用到TSP问题,并吸引了很多学者对其进 行研究.黄翰等 分析了蚁群算法的收敛速度;徐红梅等 分析了参数的初始设置对蚁群算法的影响;冀俊 忠 j、李成兵 J、吴华峰 j、梁志茂等 通过修正信息素更新方式,对蚁群算法进行了改进;胡俊鹏l9 研究 了双向选择相遇算法,提高了搜索速度;怀丽波等¨u-讨论了蚁群算法在其他优化方面的应用.春花等¨ 研究 了蚁群算法参数的设置;孙凯等¨ 还将蚁群算法与其它优化算法相融合,提高了部分TSP问题的求解精度. 对于大规模的TSP,蚁群算法容易陷入局部最优.考虑到旅行商问题的实际背景,商人访问一个城市群 中的每一个城市后,再访问下一个城市群是合理的,为此,先将所有城市聚类成若干城市群后,在每一个城市 收稿日期:2014—12-16. 基金项目:湖北省教育厅科学技术研究项目(B20111909);恩施州科技局科学研究项目(20111601);2012年地方高校国家级大学生创新创业 练计划项目(201210517002). 作者简介:孟喜艳(1979-),女,硕士生,讲师,主要从事数学建模、生物数学的研究. 32 湖北民族学院学报(自然科学版) 第33卷 群内求解TSP子问题,然后选择合适的城市群之间的连接线路,使总的的连接路线最短,这样可以降低算法 的复杂度,最终得到所有城市最佳巡游路线的一个满意解.依据这一思想,卢欣 对这一算法的复杂度进行 了分析;丁建立¨ 以pcb442问题为例,通过动态聚类结合蚁群优化算法得到了该问题的一个近似解,冀俊 忠 J、侯文静 、任志刚等_1 通过不同的类与类之间连接方式结合蚁群算法,得到了大规模TSP的近似解. 通过聚类的方法求解TSP问题,其准确性依赖于各城市群建的连接顺序,这样,如何从已有的分类及连接顺 序中找到一个满意的巡游圈,就是一个值得研究的问题,本文通过蚁群算法确定了城市群的连接顺序,并在 此顺序下,通过标记城市群接入点的方式,以TSP问题测试库中的Pr152数据为例,得到了一个最佳巡游圈 的满意解. 1算法基本思想 如图1示,将所有城市聚类,图1所示聚成4个城市群,在每一城市群中用蚁群算法求解其最佳巡游圈, 并求出城市群的连接顺序,图1中每一类的最佳巡游圈如黑色线条所示,城市群的连接顺序为G G:一G, 一G 一G .任给一点P ∈G ,在下一个城市群G 找到距P 离最短的点P:,将P:标记为G 的接入点,P :, P”:为P:在G 中巡游圈中的邻接点;在第三个城市群G,中找到 距P ,P 最短的点P P”。 并分别求其距离DP 尸 Dp"2P”G ,计算DP'2P G 一W 2, "2P G 一W 2,比较两者中的最小 值,将最小值对应的在G 中的点记为P。,P,作为G,城市群的接 入点,P ,P,, 为P 在G 城市群中巡游圈中的邻接点; 按此方法依次经行下去,当同一个点有两次标记为接入点时, 输出一个巡游圈,更新P .寻找下一个巡游圈,当P 遍历完第一个 城市群中的每一个点时,结束循环.将巡游圈距离最小者作为输出. 2聚类分析的蚁群算法 2.1聚类分析 擘 图1算法示意图 在上节中,首先要对所有城市进行聚类.本文采用的是谱系聚类以城市点问的欧氏距离来进行分类,谱 系聚类是对统计样本进行定量分析的一种多元统计分析法,该方法是对待处理样本进行依次归类,然后由聚 类的方法得到一个二叉树聚类图.观测点之间的距离能够用欧氏距离或欧氏距离的平方来计算,而类间聚类 的计算方法有多种,这里计算类间距离的方法是Ward最小方差法:若现在有/7,个观测数, 个变量数,G为 分类的个数, 为i个观测,c 是当前水平G的第K类,J7v 为c 中的观测个数,均值向量为 ,类c 中的均 值向量(中心)为 ,lI lI为欧氏长度, = I 一 ll 是总离差平方和, = l i-XK_ 是类C 的类 l内离差平方和,P =∑Wj为聚类水平G对应的各类的类内离差平方和的总和.假设某一步聚类过程中把类 c 和类c 合并为下一水平的类 ,那么定义B甩= 一 一 为合并导致的类内离差平方和的增量.用 a(x,Y)来表示两个观测点之间的距离或非相似性测度,D舡是第G水平的类c 和类G 之间的距离或非相 似性测度.采用Ward最小方差法时,D皿=BKL=l 一 lI『 /(1/ +1/ ). 当观测距离为d( ,l,)=l IX-Y l /2时递推公式为:l /NM。 DjM= NKD JK+N LD JL /NM—NKNLDrL,1 2.2基本蚁群优化算法 设c表示观测点的集合,b (t)表示t时刻位于城市点i的蚂蚁数目, ( )为t时刻路径(i,J.)上的信息 量,m为蚁群中蚂蚁的总数目, 表示TSP规模,则m= 6 (t);r={丁 f fc ,cf c c)是t时刻集合C中所有城市 点任意两个城市点间残留信息素量的集合,设定在最开始时刻每条路径上的存储信息量相等,设定 (0)= const.因为任意蚂蚁k在遍历过程中不能重复经过同一个城市,建立禁忌表tabu (k=1,2,…,11)来记录蚂蚁 已经过的城市,禁忌表随着蚂蚁的运动做动态变化.搜索过程中,每只蚂蚁根据每条路径上的信息量及路径 本身的启发信息来计算状态转移概率,建立蚂蚁k由i城市转移Nj城市的状态转移概率如下 : 第1期 孟喜艳等:聚类处理的蚁群算法在旅行商问题中的应用 r 33 [r f(t)] [r/ f(t)] . p ( ):{【 j ==1 _ - 6 (2) o ∈ n6 其中: 表示从i到 的期望程度,一般认为从 到 的距离的倒数即rl f=1/d¨成为启发函数;ol为信息启发 式因子,表示路径的相对重要性,反映了蚂蚁在搜索路径过程中所积累的信息量在蚂蚁运动中所起的作用, 其值越大,那么其它蚂蚁走过的路径就更容易被后续蚂蚁选择,蚂蚁之间的相互协作性也就越强; 为期望 启发式因子,反映了蚂蚁在搜索路径过程中启发信息在蚂蚁选择路径中所受到重视程度,其值越大,则该状 态转移概率就会越接近贪心规则,越倾向于最优路径;p (t)表示信息素较多且距离较短的路径被选中的概 率越大. 引入信息素在算法中的全局更新规则:当全部蚂蚁完成一次游历后,在其走过的路径上留下一定量的信 息素,从而改变信息素,则t+n时刻的信息素修改公式: 丁 (t+n)=(1一P)・7- (t)+P・△ (t) (3) 其中:P表示信息素挥发系数,则1-p表示信息素的持久性系数,P∈[0,1);初始时刻△ (0)=0,△ (t)表示 第k只蚂蚁在本次迭代中留在边e0上信息素量,若蚂蚁k没有经过e 则△r k,的值为零,所以将△r 表示为: △ :J【 若蚂蚁k在本次周游中经过边 (4) 0 否则 其中:Q表示信息素强度;C 表示第k只蚂蚁在本次周游中所走过的路径长度. 信息素局部更新规则:在路径构建过程中,对每只蚂蚁,每当其经过一条e 时,它将立刻对这条边进行信 息素的更新: r (t)=(1一 )・r ( )+ ・ro (5) 其中: 是信息素局部挥发速率,满足O<sC<1; 。是信息素的初始值. 在算法的构建过程中,信息启发式因子O/和期望值启发式因子 对算法性能的影响和作用是相互配合、 密切相关的,要得到好的优化结果必须适当的选择 和 的取值范围一般的选取范围为 =0.5~5, =1~5. 研究表明信息素的持久性系数1-19关系到蚁群算法的全局搜索能力及收敛速度,系数过大则以前搜索过的 路径被再次选择的可能性过大,也会影响到算法的随机性能和全局搜索能力,反之减少系数虽可以提高算法 的随机性能和全局搜索能力但又会使得算法的收敛速度降低,因此在信息素的持久性系数选择的时候要对 全局搜索能力和收敛速度两方面做出合理折中的选择. 在TSP测试库中以Oliver30(问题规模30)数据为例,设定参数: =1, =5,P=0.1,Q=100,最大迭代次 数为200次,计算得到图2所示结果. 由图2可知蚁群优化算法在解决TSP上能较快得到可行解,结果也较为理想,但随着问题规模的增加, 算法的计算复杂度也在增加,收敛速度变慢,极有可能陷入局部最优解,例如取测试库中的prl07(问题规模 107)测试时,得到如图3所示的结果. 一0 ……一一…一~…— 鹣 m “1晦8 鬻 锄 黪 哟 tm妒姆 。。∞蹲 一l肇8哇 孵一一一…一一 ・ — —— — —弋 — ■ r1崎—拍r— 图2 Oliver30的TSP最短路径及收敛分析 图3 Prl07的TSP最短路径及收敛分析 Fig.2 The shortest route and the Fig.3 The shortest route and the convergence analysis of Oliver 30 convergence analysis of Prol07 图3所示,按收敛分析显示最短路径已收敛到最优解,但从其结果明显可看出此结果并非最优.Prl07问 题的最优解为44303,而图3所示的路径的最优解为45 845.大量的实验显示ACO算法因为其本身的鲁棒 性、自学习能力强能特点能有效解决小规模TSP问题,但随着问题的规模变大、复杂度增加,迭代次数也要 34 湖北民族学院学报(自然科学版) 第33卷 增加,时间花费变大且不能得到全局最优解. 2.3基于聚类处理蚁群算法的步骤 针对单纯的ACO算法已不能完全解决大规模TSP问题,为了能有效求得可行解并求解过程中提高求解 速度,因此在ACO算法的基础上加入聚类处理,通过聚类分析,将相似性大的城市点聚为一类,相似性小的 分开,每个小类可做一次TSP子问题求解,然后将每个类作为一个城市点,再进行一次求解,最后即可合成 所需问题的可行解.如此一来,既保留了算法的特点,同时也提高了算法的求解速度,可避免出现局部最优现 象.其基本步骤如下: 1)对所有城市进行聚类.得到若干个城市群G ,G ,…,G ; 2)利用蚁群算法,求每一个城市群的最佳巡游圈C .,C 一,CGk ̄并求每一类城市的聚类中心; 3)确定聚类中心的连接顺序,并将其作为城市群的连接顺序,不妨设其顺序就为G ,G ,…,G ; 4)确定城市群的接入点.任给P ∈G ,在G 中确定到P 距离最短的点P…,将P川标记为G…的接入 点,P 川,P” 为P川在第二类中巡游圈中的邻接点;在Gm中确定到P ,Pni+l距离最短的点P ,P”。 ,并 分别求其距离DP 川P ,DP”川P”。 ,计算DP 川P r ,--W Ⅲ,D 川尸,, 一 川,比较两者中的最小值,将最 小值对应的在Gm中的点记为Pm,Pm作为Gm的接入点,P m,P"i+2为Pm在Gm中巡游圈中的邻接点;按 此方法依次经行下去,当同一个点有两次标记为接人点时,输出一个巡游圈,更新P 及接入城市标志.寻找 下一个巡游圈,当 遍历完G 中的每一个点时,结束循环.将巡游圈距离最小者作为输出. 3实验结果及分析 同样的设定参数O/=1, =5,P=0.1,Q=100,最大迭代次数为500次,分成30个城市群,以测试数据库中 的Pr152为例,计算得到如图4所示,其可行解为73 683与其最优解73 682的误差不超过0.001 5%. 4结论 本文所提出的在ACO蚁群优化算法的基础上加入聚类的处理,对 大规模的TSP问题进行分解,大大降低了问题的难度系数,也减小了 问题的复杂度,同时也保留了算法的求解特点.在聚类的基础上,问题 被细化,算法求解速度得到提高,避免了算法本身易陷入停滞现象的局 限性,但此方法也会因聚类的方法不一样而得到不一样的结果,同时还 图4本文算法处理Pr152所得结果 g.4 The processing result of pr152 会因城市点间的相似程度而影响聚类结果,所以对于这类的大规模 FiTSP问题的求解还需具体考虑到实际问题,从实际出发才能更好的解决问题. 参考文献: [1]Colorni A,Dorigo M,Maniezzo V.Distirbuted optimization by ant colonies.Proceeding ofthe 1st European Conference on Ariifcial Life[C]//Paris, France:Elsevier Publishing,1991:134—142. [2]黄翰,郝志峰,吴春国,等.蚁群算法的收敛速度分析[J].计算机学报,2007(8):1344—1353. [3]徐红梅,陈义保,刘加光,等.蚁群算法中参数设置的研究[J].山东理工大学学报:自然科学版,2008(1):7—11. [4] 冀俊忠,黄振,刘椿年.基于聚类和分段优化的蚁群算法[J].北京工业大学学报,2008(4):434—440. [5] 冀俊忠,黄振,刘椿年.一种快速求解旅行商问题的蚁群算法[J].计算机研究与发展,2009(6):968—978. [6]李成兵,郭瑞雪,李敏.改进蚁群算法在旅行商问题中的应用[J].计算机应用,2014(SI):131—132. [7]吴华锋,陈信强,毛奇凰,等.基于自然选择策略的蚁群算法求解TSP问题[J].通信学报,2013(4):165—170. [8]梁志茂,腾建华,何晋.基于改进蚁群算法的TSP问题研究[J].云南民族大学学报:自然科学版,2010,19(3):220—223. [9]胡俊鹏.基于双向选择的蚁群相遇算法的优化[J].湖北民族学院学报:自然科学版,2013,31(1):60—64. [10] 怀丽波,崔某一,赵在慧.基于改进的蚁群算法的教室管理的优化问题[J].延边大学学报:自然科学版,2014,40(4):335—339. [11]春花,特13格勒,任哲明.关于蚁群算法参数的设定[J].内蒙古民族大学学报:自然科学版,2011,26(4):402—404. [12]’孙凯,吴红星,王浩,等.蚁群与粒子群 昆合算法求解TSP问题[J].计算机工程与应用,2012(34):60—63. [13]卢欣,李衍达.TSP问题分层求解算法的复杂度研究[J].自动化学报,1999(2):139—142. [14]丁建立,陈增强,袁著祉.基于动态聚类邻域分区的并行蚁群优化算法[J].系统工程理论与实践,2003(9):105—110. [15] 侯文静,马永杰,张燕,等.求解TSP的改进蚁群算法[J].计算机应用研究,2010(6):2087—2089. [16]任志刚,冯祖仁,柯良军,等.基于聚类分析的增强型蚁群算法[J].控制与决策,2010(8):1201—1206. 责任编辑:高山