当前位置:文档之家› 改进蚁群算法在旅行商问题中的应用

改进蚁群算法在旅行商问题中的应用

1 基本蚁群算法
以求解平面n 个城市的旅行商问题(Traveling Sal- esman Problem,TSP)说明基本蚁群算法。 引入以下
记号:设 m 为蚁群中蚂蚁数量; di( j i,j =0,1,…,n - 1)为城市i 到城市 j 的距离;τi(j t)为时刻 t 路径(i,j) 上的信息素量。 初始时刻各条路径上的信息素量相
Abstract: The paper introduces the ant algorithm and its principles, algorithm model and how to realize it, analyzes the reasons of the premature stagnation phe- nomenon of the algorithm. The paper then presents a modified version of the algorithm by introducing principles of update of pheromones with the best and the worst routes as well as optimized local searching, so as to ex- pand the scope of feasible solution for the purpose of preventing premature stagnation and accelerating con- vergence speed of the algorithm. The example of TSP sh- ows the advantages of the improved ant colony algorithm. Key words: ant colony algorithm; TSP; route; pheromone
铁道运输与经济 RAILWAY TRANSPORT AND ECONOMY 文章编号:1003-1421(2009)02-0083-03 中图分类号:O29:U492.2+2 文献标识码:A
研究与建议
改进蚁群算法在 旅行商问题中的应用
Application of Improved Ant- Algorithm in TSP
80




10 J
B I
L 12


13
14



G D
F 11 K

-2 -5 0 5 10 15
图 4 改进蚁群算法的最优路径图
次就基本趋于稳定,收敛速度加快,而未改进的基本 蚁群算法迭代14 次才趋于稳定,收敛速度较前者慢。
合;tabuk 为禁忌表,记录蚂蚁 k 已经走过的城市。
[τi(j t)]α[ηi(j t)]β Pik(j t)= [ τi(s t)]α[ηi(s t)]β


allowed k

0s∈ a l lo w e d k 否则
图 2 基本蚁群算法的平均节点分支与迭代次数的进化曲线
改进后蚁群算法的目标函数随迭代次数的进化 曲线如图 3(其中横坐标表示迭代次数,纵坐标表示目 标函数)所示,最优路径如图 4 所示。 其最优路径为: A →K →F →E →G →D →J →C →B →I →L →H →M →N →A。最优路径的距离为 45.818 4。
很显然,改进蚁群算法的结果(最短路径长度为 45.818 4)比未改进的基本蚁群算法的结果(最短路径 长度为46.334 9)要好。而且蚁群算法改进后,迭代10
参考文献: [1] 刘志硕,申金升,柴跃廷.基于自适应蚁群算法的车辆路径问
题研究[J].控制与决策,2005,20(5): 562-566. [2] 郭倩倩,黄天民,施继忠.一种改进的蚁群算法及其在旅行商

式中:ξ ∈ [0,1] 是一个参数,τ0 = 1 / n Lbest,Lbest 为该
次循环中最短路径长度。
2.3 信息素量限定规则
49
48
47
46 0 5 10 15 20 25

式中:ηi( j t)为 t 时刻的能见度,反映由城市i 转移到 城市 j 的启发程度; β 为启发信息的重要程度;q 是在
[0,1]区间均匀分布的随机数; q0为一个参数(0 ≤q0≤
1 );s 为由公式⑵决定的随机变量;a l l o w e d k ={ 0 ,
1,…,n -1}-tabuk 表示蚂蚁 k 当前能选择的城市集
着算法的重复执行,信息素都积累在这条局部最优路
(7) 对最长路径和最短路径按公式⑸和公式⑹进
径上,使该条路径上的信息素量远大于其他路径的信 行全局更新。
息素量,导致所有的蚂蚁都集中到cmax,则循环结束并输出计
上,出现停滞现象[1]。为此,对基本蚁群算法的信息素 算结果,否则转到第(2)步。
[τmin,τmax] 之间,这样可以有效抑制由于最短路径和最 长路径信息素量差距加大而引起的停滞现象。 2.4 算法步骤
2 改进的蚁群算法
在基本蚁群算法中,蚁群的转移是由路径上留下 的信息素量和城市间的距离来引导的。 蚁群的运动
(1) 参数初始化。令 t =0 和循环次数Nc =0,设 置最大循环次数 N cmax,将 m 只蚂蚁随机地放到 n 个城 市,设每条边(i,j)上的信息素量为常数,且 ∆τij = 0, 将出发点城市设置到禁忌表中。
每只蚂蚁选择一个城市(走完一个边)以后,按公
式⑶更新该边上的信息素量。
τi(j t+1)=(1-ξ)τi(j t)+ξ τ0

式中:ξ ∈ [0,1] 是一个参数;τ0 为常数。
当所有蚂蚁走完全部城市后,各路径上的信息素
量按公式⑷更新。
τi(j t+n)=(1-ρ)τi(j t)+∆τij

其中,∆τij=
更新方式及局部搜索策略进行改进。 2.1 全局更新规则
3 实例计算
计算该循环中所有蚂蚁经由的路径距离,找出最
以旅行商问题为例,对 1 4 个城市的 T S P 进行计
短路径和最长路径,对最短路径和最长路径上的信息 算,其各城市所在位置对应的平面图坐标分别为: A(8,
素量按公式⑸和公式⑹进行更新[2]。
信息素量更新后,将每条边上的信息素量限定在
图 1 基本蚁群算法的目标函数随迭代次数的进化曲线
84
第 31 卷 第 2 期
改进蚁群算法在旅行商问题中的应用 李成兵 等
研究与建议
铁道运输与经济

3.5

14
2.5
2 0 5 10 15 20 25
改进蚁群算法通过改变信息素量的更新方式,加 快了收敛速度,同时在搜索过程中引入局部最优搜索 策略,使改进蚁群算法解的性能得到较大提高,并应 用仿真手段证明了改进蚁群算法的实用性与高效性。
70
60
50
40 0 10 20 30 40 50 60 70 80 90 100 图 3 改进蚁群算法的目标函数随迭代次数的进化曲线
摘 要: 介绍蚁群算法及其原理,算法模型和实 现过程,分析基本蚁群算法易出现早熟停滞现象 的原因。 在原有算法基础上引入最优、最差信 息素更新策略和局部最优搜索策略,从而扩大可 行解的范围,避免算法过早停滞,同时加快算法 的收敛速度。以旅行商问题为例进行仿真计算, 说明改进蚁群算法的性能。 关键词:蚁群算法;旅行商问题;路径;信息素
素就不一定能反映最优路径的方向,不能保证蚁群创
(5) 计算每只蚂蚁找出的路径长度,保留最长和
建的第一条路径能引导蚁群走向全局最优路径。 而 最短路径。
在第一次循环中,蚁群留下的信息素会因正反馈作用
(6) 对最短路径采用2-opt策略,把得到的最短路
使这条路径可能不是最优,且得不到应有的增强。 随 径作为最优解。
1/Lgb ( i,j)∈全局最优路径 0 否则
式中: ρ 为信息素挥发系数,则 1 -ρ 为信息素残留因
83
第 31 卷 第 2 期
研究与建议
铁道运输与经济
改进蚁群算法在旅行商问题中的应用 李成兵 等
子,为防止信息素量的无限积累,通常设置 0 <ρ <1; ∆τij为本次循环中路径(i,j)上的信息素增量;Lgb为到 目前为止找出的全局最优路径。
总是趋向于信息素最强的路径,所以信息素最强的路
(2) 按公式⑴选择下一个城市。
径与最优路径比较接近。 由于各路径上的初始信息
(3) 按公式⑺进行局部信息素量更新。
素量相同,蚁群创建第一条路径的引导信息素主要是
(4) 循环执行第(2)步和第(3)步,直到每只蚂蚁
城市间的距离,这样蚁群在所经过的路径留下的信息 都生成一条路径。
等,设τi(j t)=C(C 为常数),则 t 时刻位于城市 i 的蚂 蚁k(k =1,2,…,m)按公式⑴选择下一个城市 j。
S = arg j ∈ amllaoxwe d k {[τi(j t)][ηi(j t)]β} q≤q0 s 否则
局部信息素量更新的作用是使已选的边对后来 示,得到最优路径的距离为 46.334 9。
的蚂蚁具有较小的吸引力,从而使蚂蚁对没有被选中 51
的边有更强的探索能力。当蚂蚁从城市 i 转移到城市 50
j 后,路径(i,j)上的信息素量按公式⑺进行更新[2]。
τi(j t+1)=(1-ξ)τi(j t)+ξ τ0
L(9,4),M(11,3),N(13,2)(单位略)。 以 MATLAB
∆τij= -Lworst/Lbest ( i,j)∈最长路径 0 否则
⑹ 7.0 编制程序,在 P 4 3.0 Ghz1 G 内存计算机中运行, 实验参数设置: m = 1 2 0,Ncmax = 1 0 0,α = 1,β = 5,
相关主题