一、相关学习博客
二、群蚁算法说明
1.TSP问题的人工蚁群算法中,假设m只蚂蚁在图的相邻节点间移动,从而协作异步地得到问题的解。每只蚂蚁的一步转移概率由图中的每条边上的两类参数决定:1. 信息素值也称信息素痕迹。2.可见度,即先验值。
2.信息素的更新方式有2种,一是挥发,也就是所有路径上的信息素以一定的比率进行减少,模拟自然蚁群的信息素随时间挥发的过程;二是增强,给评价值“好”(有蚂蚁走过)的边增加信息素。
3.蚂蚁向下一个目标的运动是通过一个随机原则来实现的,也就是运用当前所在节点存储的信息,计算出下一步可达节点的概率,并按此概率实现一步移动,逐此往复,越来越接近最优解。
4.蚂蚁在寻找过程中,或者找到一个解后,会评估该解或解的一部分的优化程度,并把评价信息保存在相关连接的信息素中。
三、注意知识点
初始化信息素浓度C(0),如果太小,算法容易早熟,蚂蚁会很快集中到一条局部最优路径上来,因为可以想想,太小C值,使得和每次挥发和增强的值都差不多,那么 随机情况下,一些小概率的事件发生就会增加非最优路径的信息素浓度;如果C太大,信息素对搜索方向的指导性作用减低,影响算法性能。一般情况下,我们可以使用贪婪算法获取一个路径值Cnn,然后根据蚂蚁个数来计算C(0) = m/Cnn ,m为蚂蚁个数。
(ps:贪心算法:在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。)
跟着蚂蚁的踪迹,你找到了什么?通过上面的原理叙述和实际操作,我们不难发现蚂蚁之所以具有智能行为,完全归功于它的简单行为规则,而这些规则综合起来具有下面两个方面的特点:
1、多样性
2、正反馈
多样性保证了蚂蚁在觅食的时候不置走进死胡同而无限循环,正反馈机制则保证了相对优良的信息能够被保存下来。多样性保证了系统的创新能力,正反馈保证了优良特性能够得到强化,两者要恰到好处的结合。如果多样性过剩,也就是系统过于活跃,这相当于蚂蚁会过多的随机运动,它就会陷入混沌状态;而相反,多样性不够,正反馈机制过强,那么系统就好比一潭死水。
错误概率表示这个蚂蚁不往信息素最大的区域走的概率,越大则表示这个蚂蚁越有创新性。
速度半径表示蚂蚁一次能走的最大长度,也表示这个蚂蚁的感知范围。
记忆能力表示蚂蚁能记住多少个刚刚走过点的坐标,这个值避免了蚂蚁在本地打转,停滞不前。而这个值越大那么整个系统运行速度就慢,越小则蚂蚁越容易原地转圈。
【注1】更新选择的路径上的信息素方式为为
messijmessij为从第i个城市到第j个城市的路径上的信息素(初始化为该路径长度的倒数);
uu为信息素衰退因子;
QQ为常数因子;
lenlen为从起始城市回到到城市的路径距离;
【注2】更新信息素的过程分为全局更新和局部更新;
【注3】全局更新信息素的的大小有多种,以下有三种模型;
- ACS(Ant Circle System)
messijmessij为从第i个城市到第j个城市的路径上的信息素(初始化为该路径长度的倒数);
uu为信息素衰退因子;
QQ为常数因子;
lenlen为从起始城市回到起始城市的路径距离;
- AQS(Ant Quantity System)
messijmessij为从第i个城市到第j个城市的路径上的信息素(初始化为该路径长度的倒数);
uu为信息素衰退因子;
QQ为常数因子;
dicijdicij为从第i个城市到第j个城市的路径距离;
- ADS(Ant Density System)
messijmessij为从第i个城市到第j个城市的路径上的信息素(初始化为该路径长度的倒数);
uu为信息素衰退因子;
QQ为常数因子;
【注4】ACS模型中,每群蚂蚁只有最优的蚂蚁才能释放信息素,取消了局部更新;
【注5】个人理解:每群蚂蚁在选择路径时可以并不受当前群蚂蚁释放的信息素影响,,在每群蚂蚁结束后,再将本群蚂蚁的释放的信息素更新到全局信息素中,即只使用全局更新信息素;