蚁群算法

蚁群算法步骤

1)路径构建

每个蚂蚁都随机选择一个城市作为其出发城市,并维护一个路径记忆向量,用来存放该蚂蚁依次经过的城市。蚂蚁在构建路径的每一步中,按照一个随机比例规则选 择下一个要到达的城市。随机概率是按照下列公式来进行计算的:
 每只蚂蚁的一步转移概率由图中的每条边上的两类参数决定:1. 信息素值也称信息素痕迹。2.能见度,即距离的倒数。
上述公式就是计算 当前点 到 每一个可能的下一个节点 的概率。分子是 信息素强度 和 能见度 的幂乘积,而分母则是所有 分子的和值。注意每次选择好节点后,就要从可用节点中移除选择的节点。

2)信息素更新

算法在初始期间给信息素一个固定的浓度值,在每一次迭代完成之后,所有出去的蚂蚁回来后,会对所走过的路线进行计算,然后更新相应的边的信息素浓度。很明显,这个数值肯定是和蚂蚁所走的长度有关系的,经过一次次的迭代, 近距离的线路的浓度会很高,从而得到近似最优解。
①初始化信息素浓度τij=C:
1)如果C太小,算法容易早熟,蚂蚁会很快集中到一条局部最优路径上来,因为C值太小,使得和每次挥发和增强的值都差不多,那么随机情况下,一些小概率的事件发生就会增加非最优路径的信息素浓度;
2)如果C太大,信息素对搜索方向的指导性作用减低,影响算法性能。
3)一般情况下,我们可以使用贪婪算法获取一个路径值Cnn,然后根据蚂蚁个数来计算C(0) = m/Cnn ,m为蚂蚁个数。
②信息素更新:
    每完成一次迭代,计算每只蚂蚁全部路径长度Ck,根据以下公式更新信息素:
信息素的更新方式有2种,一是挥发,也就是所有路径上的信息素以一定的比率进行减少,模拟自然蚁群的信息素随时间挥发的过程;二是增强,给评价值“好”(有蚂蚁走过)的边增加信息素。其中△τ的定义如下:
   【这里每一次迭代的意义是:每次迭代的m只蚂蚁都完成了自己的路径过程,回到原点后的整个过程。】

3)迭代停止

 迭代停止的条件有两种情况:1)迭代次数达到最大用户定义
             2)所有蚂蚁都走同一路线(停滞状态)

蚁群伪代码




蚁群应用举例


  
  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值