TSP_旅行商问题-基本蚁群算法学习

一、相关学习博客

理论基础

注意点,补充点

小数据C++实现代码

二、群蚁算法说明

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】个人理解:每群蚂蚁在选择路径时可以并不受当前群蚂蚁释放的信息素影响,,在每群蚂蚁结束后,再将本群蚂蚁的释放的信息素更新到全局信息素中,即只使用全局更新信息素;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值