蚁群算法
1.算法原理
一群蚂蚁在寻找食物的过程中,如何确定一条最短路径呢?是通过一种信息素的物质实现了相互间的间接通信,从而找到最短路径。
当前面的蚂蚁走过,后面的蚂蚁选择路线时,会选择较短的路径,那如何确定哪条是较短的路径呢?后面的蚂蚁会根据信息素的浓度来确定路径长短,越短的路径信息素浓度就越大,后面的蚂蚁就会选择信息素浓度大的那条路,经过这条较短路径的蚂蚁就会比其他路径上的蚂蚁多,这样大量蚂蚁实践之后就找到了最短路径。
2.路径构建
蚂蚁在当前所在的点 到每一个下次可能到达的点 的概率公式:
3.信息素更新
每一次迭代完成后,即出去的蚂蚁全部返回来时,就对所有路径进行计算,更新相应的边的信息素浓度。经过一次次迭代,距离短的路径的信息素浓度会增加。
4.实验分析
4.1初始化参数如下时:
可以看到收敛速度较慢,在大约迭代到第75次时停止。
4.2修改参数α、β、ρ:
(1)修改ρ(信息素挥发因子)
将ρ变大(0.1->0.5):
收敛的速度较快,大约在迭代到25次时停止。
(2)修改α(信息素重要程度因子)
将α变大(1->5):
收敛速度变快,而且最短距离变长。
(3)修改β(启发函数重要程度因子)
将β变小(5->2):
发现,在快要迭代到最大迭代次数时,最短距离还有要下降的趋势。而且寻找到的最短距离 比第一次长了。
5.结果分析
信息素重要程度因子(α):反映了蚂蚁在移动过程中 积累的信息量在 蚁群搜索最短路径过程中的 相对重要程度,α 值过大,蚂蚁选择下一个城市的 随机概率 减小。α 值过小,会过早的陷入局部最优。
启发函数重要程度因子(β):反映了启发式信息在 蚁群搜索最短路径过程中的 相对重要程度,其值过大,收敛速度加快,或早陷入局部最优。β 值过小,一直处于寻找过程中,如果最大迭代次数不够大的话,不能在最大迭代次数内找到最优解。
信息素挥发因子(ρ):信息素的挥发水平,它的大小直接关系到蚁群算法的全局搜索能力和收敛速度。
版权声明:本文为qq_42500326原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。