前几篇解释了一些智能优化算法,今天才想到还有一个重要的给忘了,,言归正传,蚁群算法也是一种生物仿生算法,它是通过模拟自然界中蚂蚁集体寻径行为而提出的一种基于种群的启发式随机搜索算法。自然界常理,蚂蚁可以通过群体行动在没有任何提示下从家找到食物源的最短路径,并能随着环境变化不断调整适应性地搜索出新的路径产生新的选择使得找到的路径最短。一般来说每个蚂蚁可以看成是独立的个体,相互交流的纽带是通过释放分泌信息素来实现的,所以这也是该算法模拟的核心地方,根据信息素的浓度进行下一个最优移动方向的选择,从而做到周游所有地点的最短路径,具体过程下面详述
这里的信息素更新思想需要着重解释一下,并不是每只蚂蚁从城市i到城市j走过之后就立即更新,而是要等所有的蚂蚁把所有的n个城市都遍历一遍(因为有禁忌表,不会存在重复遍历)后,才计算所有道路的累积的信息素更新。
城市i到城市j的信息素为
其中,令
此时
为一次完整迭代时(一次迭代时间为城市数量n,即需要遍历完所有的城市后才计算信息素更新)在边ij所产生的信息素,这里就又涉及到一个问题,每只蚂蚁在城市i到j走过后信息素变化
怎么计算,为此文献中有几种方法,即
其中
表示第k只蚂蚁在本次周游(遍历n个城市后)中所走过的所有路径长度,
表示城市i到j之间的距离,Q为一个正常数,且当蚂蚁没有从城市i走到城市j时,
第一种策略较为推荐,因为它考虑了蚂蚁走过的全长,使其更容易找到全局最优,而第二种和第三种都只是用了和蚂蚁无关的其他已知信息,这样其实在一定程度上会导致较长的搜索时间和容易出现停滞的现象,毕竟每次迭代时路径上的信息素增量都是有规律的
初始时刻的信息素
增量为0
中,然后蚂蚁k依据城市切换概率公式选择城市j前进,然后将j加到蚂蚁k的禁忌表中
时间t不是严格意义上的时间,尽管城市i到j之间的距离不一样,依然认为每次经过的时间间隔为1个单位,而路径长短的因素是放在了信息素的产生值上面和增强城市ij切换的期望程度(一般是城市距离的倒数)上面
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有