基于蚁群算法的TSP问题.docx
- 文档编号:27288800
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:25
- 大小:469.50KB
基于蚁群算法的TSP问题.docx
《基于蚁群算法的TSP问题.docx》由会员分享,可在线阅读,更多相关《基于蚁群算法的TSP问题.docx(25页珍藏版)》请在冰豆网上搜索。
基于蚁群算法的TSP问题
基于蚁群算法的TSP问题求解
1引言
1.1问题描述
设计求解以下两个TSP问题的蚁群优化(ACO)算法。
其中城市的坐标见附件(kroA100.tsp和kroB100.tsp)。
1.2理论基础
1.2.1蚁群算法简介
蚁群算法是由意大利学者M.Dorigo等人于20世纪90年代初提出的一种新的模拟进化算法,其真实地模拟了自然界蚂蚁群体的觅食行为。
M.Dorigo等人将其用于解决旅行商问题(travelingsalesmanproblem,TSP,并取得了较好的实验结果。
近年来,许多专家学者致力于蚁群算法的研究,并将其应用于交通、通信、
化工、电力等领域,成功解决了许多组合优化问题,如调度问题(job-hop
schedulingproblem)>指派问题(quadraticassignmentproblem)、旅行商问题
(travelingsalesmanproblem等。
1.2.2蚁群算法基本思想
生物学家研究发现,自然界中的蚂蚁觅食是一种群体性行为,并非单只蚂蚁自行寻找食物源。
蚂蚁在寻找食物源时,会在其经过的路径上释放一种信息素,并能够感知其它蚂蚁释放的信息素。
信息素浓度的大小表征路径的远近,信息素浓度越高,表示对应的路径距离越短。
通常,蚂蚁会以较大的概率优先选择信息素浓度较高的路径,并释放一定量的信息素,以增强该条路径上的信息素浓度,这样会形成一个正反馈。
最终,蚂蚁能够找到一条从巢穴到食物源的最佳路径,即是最短距离。
值得一提的是,生物学家同时发现,路径上的信息素浓度会随着时间的推进而逐渐衰减。
将蚁群算法应用于解决优化问题的基本思路为:
用蚂蚁的行走路径表示待优化问题的可行解,整个蚂蚁群体的所有路径构成待优化问题的解空间。
较短的路径上蚂蚁释放的信息素量较多,随着时间的推进,较短的路径上积累的信息素浓度逐渐增高,选择该路径的蚂蚁个数也愈来愈多。
最终,整个蚂蚁会在正反馈的作用下集中到最佳的路径上,此时对应的便是待优化问题的最优解。
123蚁群算法解决TSP问题的基本原理
为不失一般性,设整个蚂蚁群体中蚂蚁的数量为m,城市的数量为n,城市
i与城市j之间的距离为dj(i,j=1,2,...,m),t时刻城市i与城市j连接路径上的信息素浓度为j(t)。
初始时刻,各个城市连接路径上的信息素浓度相同,不妨设为-ij(0)=・o。
蚂蚁k(k=1,2...,m)根据各个城市间连接路径上的信息素浓度决定其下一个
访问城市,设p:
(t)表示t时刻蚂蚁k从城市j的概率,其计算公式为:
j(t)=ijt()“
salloWk
工【%(t)F』st(])
sWallowk
0,s一一allowk
其中ij(t)为启发函数,ij(t)=1/dij,表示蚂蚁从城市i转移到城市j的期望
程度;allowk(k=1,2,…,m)为蚂蚁k待访问城市的集合,开始时,allowk中有(n-1)
个元素,即包括除了蚂蚁k出发城市的其它所有城市,随着时间的推进,allowk中的元素不断减少,直至为空,即表示所有的城市均访问完毕;:
为信息素重要程度因子,其值越大,表示信息素的浓度在转移中起的作用越大;-为启发函数重要程度因子,其值越大,表示启发函数在转移中的作用越大,即蚂蚁会以较大的概率转移到距离短的城市。
如前文所述,在蚂蚁释放信息素的同时,各个城市间连接路径上的信息素逐渐消失,设参数「(0:
:
:
「:
:
1)表示信息素的挥发程度。
因此,当所有蚂蚁完成一
次循环后,各个城市间连接路径上的信息素浓度需进行实时更新,即:
其中,「/表示第k只蚂蚁在城市i与城市j连接路径上释放的信息素浓度;
."■:
.j表示所有蚂蚁在城市i与城市j连接路径上释放的信息素浓度之和。
针对蚂蚁释放信息素问题,M.Dorigo等人曾给出了三种不同的模型,分别称之为Antcyclesystem,Antquantitysystem和Antdensitysystem,其计算公式分别如下。
(1)Antcyclesystem模型
Antcyclesystem模型中,二的计算公式为:
(1-3)
.kQ/Lk,第k只蚂蚁从城市i访问城市jj二0,其他
其中,Q为常数,表示蚂蚁循环一次所释放的信息素总量;Lk为第k只蚂蚁
经过路径的长度。
(2)Antquantitysystem模型
Antquantitysystem模型中,匚%k的计算公式为:
(3)Antdensitysystem模型
Antdensitysystem模型中,•—jk的计算公式为:
kQ,第k只蚂蚁从城市i访问城市j
(1-5)
■打=
j0,其他
上述3种模型中,Antcyclesystem模型利用蚂蚁经过路径的整体信息(经过路径的总长)计算释放的信息素浓度;Antquantitysystem模型则利用蚂蚁经
过路径的局部信息(经过各个城市间的距离)计算释放的信息素浓度;而Ant
densitysystem模型则更为简单地将信息素释放的浓度取为恒值,并没有考虑不同蚂蚁经过路径长短的影响。
因此,一般选用Antcyclesystem模型计算释放的
信息素浓度,即蚂蚁经过的路径越短,释放的信息素浓度越高。
1.2.4蚁群算法的特点
基于蚁群算法的基本思想及解决TSP问题的基本原理,不难发现,与其它
优化算法相比,蚁群算法具有以下几个特点:
(1)采用正反馈机制,使得搜索过程不断收敛,最终逼近最优解。
(2)每个个体可以通过释放信息素来改变周围的环境,且每个个体能够感知周围环境的实时变化,个体间通过环境进行间接地通讯。
(3)搜索过程采用分布式计算方式,多个个体同时进行并计算,大大提高了算法的计算能力和运行效率。
(4)启发式的概率搜索方式不容易陷入局部最优,易于寻找到全局最优解。
1算法设计
蚁群算法应用于解决TSP问题一般需要以下几个步骤,如图1所示
图1蚁群算法解决TSP问题的基本步骤
(1)初始化参数
在计算之初,需要对相关的参数进行初始化,如蚁群规模(蚂蚁数量)m、
信息素重要程度因子:
、启发函数重要程度因子1、信息素挥发因子’、信息素
释放总量Q、最大迭代次数iter_max、迭代次数初值iter=1
(2)构建解空间
计算其下一个待访问的城市,直到所有蚂蚁访问完所有的城市
(3)更新信息素
计算各个蚂蚁经过的路径长度Lk(k=1,2...,m),记录当前迭代次数中的最优解(最短路径)。
同时,根据式(1-2)和式(1-3)对各个城市连接路径上的信息素浓度进行更新。
(4)判断是否终止
若iter (2);否则,终止计算,输出最优解。 2算例设计 依据蚁群算法解决TSP问题的基本原理及步骤,实现该TSP问题求解大体上可以分为以下几个步骤,如图2所示。 图2蚁群算法求解TSP问题一般步骤 (1)计算城市间相互距离 根据城市的坐标位置,计算两两城市间的相互距离,从而得到对称的距离矩阵(维数为100的方阵)。 需要说明的是,计算出的矩阵对角线上的元素为0, 然而如前文所述,由于启发函数j(t)=1/dj,因此,为了保证分母不为零,将 对角线上的元素修正为一个非常小的正数。 (2)初始化参数 如前文所述,在计算之前,需要对相关的参数进行初始化。 (3)迭代寻找最佳路径 首先构建解空间,即各个蚂蚁根据转移概率公式(1-1)访问所有的城市。 然后计算各个蚂蚁经过路径的长度,并在每次迭代后根据式(1-2)和式(1-3) 实时更新各个城市连接路径上的信息素浓度。 经过循环迭代,记录下最优的路径 及长度(4)结果分析 找到最优路径后,可以将之与其它方法得出的结果进行比较,从而对蚁群算法的性能进行评价。 同时,也可以研究不同取值的参数对优化结果的影响,从而找到一组最佳或者较佳的参数组合。 3仿真实验设计与结果分析 4.1仿真实验结果 编写MATLAB程序,分别载入两个附件中100个城市的坐标,得到基于蚁群算法的TSP问题的最优解如下: (1)KroA100 最短距离: 22756.0988 最短路径: 91982345321117155974217210843699382418795388162294706665426197597568031894289216364990479328675861258169644054244507368853930967852537137633958248100714114343462934835512278635205779875177626091 (2)KorB100 最短距离: 23537.4394 最短路径: 96921944411745361824771621378633148516414428233156483876074668943525458847579461357112983259769982997912831193857353703940675622610056697530802038864968102190195462592734723765798147882223555096 运行结果对应的路径如图3和图4所示,各代的最短距离与平均距离如图5和图6所示。 从图中不难发现,随着迭代次数的增加,最短距离与平均距离均呈现下降趋势。 当迭代次数大于某一数值后最短距离已不再变化,说明已经找到了最优解。 5001000150020002500300035004000 TheX-coordinateofCity ACAoptimalresult.22756.0908 I □0 SI4 Mi 2000 1000 no 6 nuonu-nu-oonuD_o-u-n~onu_u一II- 4208642^1.^1-1 AloJCO? H匚-pdnoo>ruGl 图3KroA优化路径 ACAoptimaresuit: 23537.4394 3 500WOO1500200025003CS3D35004000 TheJtcoordin^leofCity LJUOOOOOOOOOOOO^2-0-8642Al_oJomlEEp』o3CULI1 2O1B1E 图4KroB优化路径 图5KroA各代最短距离与平均距离 图6KroB各代最短距离与平均距离 4.2参数对优化结果的影响 (1)蚂蚁数量m的影响 为研究蚂蚁数m对计算结果的影响,比较10组不同蚂蚁数的计算结果,每组计算10次取平均值。 同时,由于计算次数多达100次,为提高程序运行速度,暂将最大迭代次数减少为20次,仅对m变化引起结果变化的趋势作以研究(下同)。 取0=1,[=5,p=0.1,Q=1,研究结果如图7和图8所示。 LOe+04* 2.8832 2.8360 2.7886 2.7407 2.8631 2.3223 2.8458 2.8808 2.7690 2.7533 2.8163 2.8492 2.8D87 2.7369 2.7679 2.7771 2.9305 2.8477 2.7561 2.7951 2.1227 2.7992 2.8400 2.8050 2.7B65 2.8599 2.8058 2.8222 2.7964 2.7454 2.7205 2.7009 2-7883 2.7175 2.7209 2.7114 2.8428 23845J 2aT69S 2.8172 2,7667 2,79J55 2.1731 2.7943 2.827& 2.71ES 2.7206 2.6746 2.7056 2.1658 2.7337 2.7690 2.7ES6 2.7460 2・7417 2.7264 2.7649 2.7936 2.7857 2.8082 2.7433 2.7796 2.7524 2.7691 2.7665 2.TQ55 2.722S 2,7702 2-7116 2.7049 2.738S 2.7T73 2.74W 2a7Q58 2.8071 2-7385 2.7432 2.7053 2,5349 2.7766 2.7D22 2.7412 2,G432 2,fflOE 2.7735 2.1529 2.7223 2.6852 2.7259 2.6730 2.6282 2.7586 2.6052 2.7337 2.7362 2.7389 2.1718 2.7066 2.69E1 2.7171 2.7537 2.3239 2.6903 2.1221 2.8036 2.7563 2.66P7 2.7601 2.7395 图 7蚂蚁数对计算结果的影响 图8蚂蚁数对平均最短距离的影响 可见,随着蚂蚁数的增加,平均最短距离呈减小的趋势,图中蚂蚁数为45 时,得到最小的平均最短距离为27056。 (2)信息素重要程度因子a的影响 为研究信息素重要程度因子a对计算结果的影响,比较10组不同a值的计算结果,每组计算10次取平均值。 取m=45,3=5,p=0.1,Q=1,研究结果如图9和图10所示。 1.Oe+04* 2.7238 2.74S4 2.6480 2.1469 2.7075 2.U14 2.7566 2.7496 2,8127 2.7026 2.7365 2.7123 2.7349 2.7215 2.7019 2.7912 2.7064 2.0715 2.7606 2.7350 2.7671 2.7302 2.7115 2.6786 2.6S54 2.1932 2.8444 2.8227 2.7532 2.8028 2.7733 2.7602 2.7635 2-7412 占7454 2.7383 2.8220 2.7765 2.6961 2.6151 2.6745 2b7714 2b7093 2.7291 2.8190 2.6768 2.B126 2.7596 2.6487 2.6891 2.7795 2.7266 2.7060 2.B968 2.7215 2.7258 2.7741 2.7474 2.6661 2.7344 2.7335 2.7702 2.6411 2.72C9 2.7256 2.7229 2-7445 2・689T 2.7513 2.7630 2.7264 2.6BG5 2.T295 2.6855 2.7749 2.6485 2.7202 2,67S5 2.77T0 ? .7C01 2.1H5 2.6925 2.84茹 2.®070 2.7737 2,7086 2. 2.7DS2 2.6177 2.6781 2.7667 2.6S39 2.7192 2.7110 2.8163 2.6563 2.7294 2.6468 2.7026 2-5643 2.6946 2.7425 2.7639 2.6726 2.7670 2.7253 2.6441 2.7132 2.7160 2.7004 图 9信息素重要程度因子对计算结果的影响 图10信息素重要程度因子对平均最短距离的影响 可见,随a增大,平均最短距离大体呈下降趋势,当a=10时,得到最小的 平均最短距离为27004。 (3)启发函数重要程度因子B的影响 为研究启发函数重要程度因子 3对计算结果的影响, 比较 10组不同3值的 计算结果 ,每组计算 10次取平均值。 取 m=45, a=10, 尸0.1, Q=1, 研究结果 如图11和图12所示。 L.0e+04» B.S5I4 B.4568 &5354 £.4914 &3817 &70@9 &5830 20381 乱9372 8.4215 &6209 4.8193 4.9B66 J8211 4.8083 4-7H1 4.9B11 丄69D1 4.39B8 4.6812 L3034 4.30E7 3.5931 3.4626 3.4223 3.4436 X4S08 3.4105 3.52D0 3.45B7 3.6093 3.dt77 3.4799 2.9141 2-8890 2-M24 X0151 3,0356 2.9142 2,7329 瓷9340 3-027S 2.9066 瓷9312 2.3066 2.1415 2.58U6 2.? ]97 込6578 2.G4S1 2.$008 I,T佃 2.7197 2,0303 2,0835 2.B746 2.B049 2.B903 2.63)0 2.6608 2.6970 2.6478 2.6103 2.6470 2.6870 2.6161 2.5650 2.5391 2.48B7 2.5385 2.5087 2.5181 2.4995 2.5391 2.5364 2.5615 2.5294 2.EMO £.43C0 £.4186 2.5333 2^945 2.&4Q4 2,^734 2^354 2.4409 益就朋 2^845 2.391E 2.4550 2.4996 2.50S3 2.4281 2.3834 2.4718 2.4950 2.4964 2.4647 2.40T6 2.4323 2.44T7 2.4771 2.4632 2.4259 2.4218 2.4336 2.4486 2.4899 2.4438 图 11启发函数重要程度因子对计算结果的影响 图12启发函数重要程度因子对平均最短距离的影响 可见,随B增大,平均最短距离呈下降趋势,而当3=10时,得到最小的平 均最短距离为24438。 (4)信息素挥发因子p的影响 为研究信息素挥发因子p对计算结果的影响,比较 10组不同p值的计算结 果,每组计算10次取平均值。 取m=45,和图14所示。 LQe+04 2.43E6 2.4068 2.4205 2.4197 2.4162 2.4329 2.4530 2.3B4E 2.3963 2.3696 2-4219 2.3632 2.4166 2.3978 2.4315 2.3902 2.4645 2.3912 艺4126 2-4220 2-4297 2-45U 2.4002 2-4399 2.4053 2.4063 2.4652 2.4601 2.4544 2.3835 0=10, 3=10, Q=1, 研究结果如图13 2.458B 2.5093 2,^070 2.46E1 2.4425 2.4351 2.396? 2.4294 2.4L21 2.406S 2.4109 2.4537 2.4024 3.43S1 2.^198 L4303 2-4324 2.4322 N374E 2.4256 2.4T83 2.4403 2.4190 £.4111 2.4323 图13信息素挥发因子对计算结果的影响 图14信息素挥发因子对平均最短距离的影响 可见,随p增大,平均最短距离呈先下降后上升趋势,而当尸0.2时,得到 最小的平均最短距离为24068。 (5)信息素释放量Q的影响 为研究信息素释放总量Q对计算结果的影响,比较10组不同Q值的计算结果,每组计算10次取平均值。 取m=45,0=10,3=10,尸0.2,研究结果如图15 和图16所示。 图16信息素释放量对平均最短距离的影响 可见,随Q增大,平均最短距离大致呈上升趋势,而当Q=10时,得到最小的平均最短距离为24179。 综合分析以上参数的影响,可以看出,随着研究的进行,通过控制变量法,得到的平均最短距离有下降趋势,但最后一次的24179却比倒数第二次的24068要大。 我们分析这里可能有两个原因,一是因为我们为尽快运行程序,降低了迭代次数,算法寻优过程的偶然性增大;二是由于蚁群算法本身的偶然性,即使将迭代次数调整回200次,运行结果有时也会偏大,但增大迭代次数,得到最优解的概率会越大。 4总结与展望 本文详细叙述了应用蚁群优化算法解决TSP问题的一般过程,并将其应用于题中所给出的具体问题。 算法使用MATLAB编写程序实现,给出了程序运行的仿真结果并对其进行了分析。 考虑程序运行的结果与效率,可以看出蚁群优化算法可以很好的解决TSP等组合优化问题。 但是算法中的参数一般由人为确定,导致方法的优化性能往往与人的经验密切相关。 因此本文接下来分析了蚁群算法中参数的选取对结果的影响,通过仿真实验得到了求解该TSP问题的最佳参数。 蚁群算法以其分布并行式计算、启发式搜索方式等特点,在各个领域中取得了广泛的应用,解决了诸多组合优化方面的难题。 针对其可能陷入局部最优的缺点,不少专家和学者提出了许多改进的方法,并将其它算法(如遗传算法、粒子群算法等)与蚁群
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 算法 TSP 问题