用蚁群算法解决
TSP
问题
一、引言
蚁群算法是一种受自然界生物行为启发而产生的“自然”算法,产生于对蚂
蚁行为的研究。蚁群中的蚂蚁以“信息素”为媒介,间接异步的相互联系。
蚂蚁在行动中,会在他们经过的地方留下一些化学物质,称为“信息素”
。
这些物质能被同一种群众后来的蚂蚁感受到,
并作为一种信号影响后者的行
动,
具体表现在后到的蚂蚁选择有这些物质的路径的可能性比选择没有这些
物质的路径的可能性大的多。后者留下的信息素会对原有的信息素进行加
强,并循环下去。这样,经过蚂蚁多的路径,后到蚂蚁选择这条路径的可能
性就越来越大。由于在一定的时间内,越短的路径会被越多的蚂蚁访问,因
而积累的信息素就越多,在下一个时间内被其他的蚂蚁选中的可能性也越
大。这个过程会持续到所有的蚂蚁都走到最短的那一条路径为止。
二、关键技术
(
1
)
解的表达形式
在应用蚁群优化算法时,只需要建立一个虚拟的始终点,相当于蚁群的
巢穴和食物所在地,这样一个所经过城市的路径的排列就构成了一个解;
(
2
)
信息素的记忆和更新
在算法开始时,由于从来没有蚂蚁去寻找过路径,因此可以认为是没有
任何先验信息,即每条路上的信息相等。客观地将,信息素应该都为
0
,但
是由于在蚁群算法中,信息素决定了蚂蚁选择这条路径的概率,因此可以认
为初始信息素矩阵为:
1/(
*(
1))
0
ij
N
N
p
i
j
i
j
其中
N
为城市数
当算法运行过程中,每次放出
m
支蚂蚁,每只蚂蚁按照信息素选择路径,将
其中路径最短的记录下来,对这条最短路进行信息素的加强;而对于其他路
径,因为信息素的挥发,信息素浓度将会降低,更新后的信息素矩阵为:
1
1
(1
)
/
/
(1
)
/
k
ij
k
ij
k
ij
p
N
p
p
i
j
i
j
经过路径
不经过路径
其中
N
为城市数,
为挥发系数
(
3
)
蚁群的规模
在一般应用中,
蚁群中蚂蚁的个数
m
是固定数,
不超过
TSP
图的节点数。