计算智能——蚁群算法学习

一、蚁群寻找食物过程

在这里插入图片描述
在这里插入图片描述
昆虫学家通过大量研究发现:

  • 蚂蚁在寻找食物的过程中往往是随机选择路径的,但它们能感知当前地面上的信息素浓度,并倾向于往信息素浓度高的方向行进。
  • 信息素会随着时间的推移逐渐挥发掉,于是路径的长短及其蚂蚁的多少就会对信息素的浓度产生影响。
  • 由于较短路径上蚂蚁的往返时间比较短,单位时间内经过该路径的蚂蚁多,所以信息素的浓度比长路径
  • 当后续蚂蚁在路口时,就能感知先前蚂蚁留下的信息,并倾向于选择一条较短的路径前行。这种正反馈机制使得越来越多的蚂蚁选择在较短路径上行进。
  • 由于其他路径上的信息素会随着时间蒸发,最终所有的蚂蚁都在最优路径上行进。

二、蚁群算法基本原理

在这里插入图片描述
AS算法基本原理

  • AS釆用人工蚂蚁的行走路线来表示问题的可行解。

  • 每只蚂蚁在解空间中独立地搜索可行解,当它们碰到未走过的路口时,会随机(概率)选择一条路径前行,同时释放信息素。

  • 当后续蚂蚁来到这个路口时,会以相对较大的概率选择信息素浓度大的路径(路径越短,信息素的浓度就越大),并在“行走路线”上留下信息素,影响后来的蚂蚁,形成正反馈机制

  • 随着算法推进,代表最优解路线上的信息素逐渐增多,选择它的蚂蚁也逐渐增多。同时,其他路径上的信息素会随着时间推移而逐渐挥发,导致选择的蚂蚁越来越少,这是负反馈机制

  • 最终整个蚁群集中到最优解的路线上,即找到最优解

AS算法中,构建行走路线问题与TSP问题的求解过程非常相似,因此以TSP问题作为背景介绍AS算法。

在这里插入图片描述
构建路径时,蚂蚁k由当前城市i转到下一个城市j的决定因素有如下几个方面:

1.禁忌列表

为了避免蚂蚁重复走入同一个城市,AS算法为每只蚂蚁配备一个路径记忆向量,用来存放该蚂蚁依次经过的城市, 称为禁忌列表。

2.能见度(启发信息)

定义为城市i到城市j的距离的倒数,表示为 η i , j = 1 / d i , j η_{i,j}=1/d_{i,j} ηi,j=1/di,j。两个城市之间的距离越短,其能见度越大,被选择的愿望越大。这种信息是固定的,也称为启发信息。

3.虚拟信息素

当蚂蚁由城市i选择城市j后,将在路径i,j上遗留虚拟信息素,表示为 τ i , j τ_{i,j} τi,j
是一种动态的信息,反映了蚂蚁在解决问题过程中的经验积累和向其他蚂蚁学习的能力,该参数是在线更新的。

更新:信息素增加和挥发两方面

  • 信息素的更新公式:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 三种AS模型(蚁周模型最常用):

在这里插入图片描述
在这里插入图片描述

4.路径构建

  • 蚂蚁选择下一个城市的概率:

在这里插入图片描述
在这里插入图片描述

实现步骤:

步骤1:初始化,设定相关参数:

  • 全部城市数n
  • 全部蚂蚁数m, m<n
  • 循环(迭代)次数的最大值Nmax
  • 初始时各路径信息素τi,j(0)=τ0
  • 信息素挥发系数ρ以及α、β、Q等
  • 建立禁忌列表Jk,并保证此时表中没有任何城市。

注意:
在这里插入图片描述

步骤2:将m只蚂蚁随机放在各个城市上,每个城市至多分布一个蚂蚁,并将m个蚂蚁所在城市存入禁忌列表Jk。

步骤3:所有蚂蚁依据概率选择下一城市,并将选择城市存入禁忌列表。

步骤4:所有蚂蚁都构建完一条完整的路径后,在所经过的路径上更新信息素,并记录本次迭代过程中的最优路径最优路径长度

步骤5:清空禁忌列表Jk,重复步骤2和步骤4直到每一只蚂蚁完成Nmax次迭代,或者出现停滞现象(所有蚂蚁都选择相同路径,路径不再变化),最后输出最优路径。

在这里插入图片描述

  • 一些参数说明:

在这里插入图片描述


三、蚁群算法主要特点

在这里插入图片描述
1.蚁群算法是一种自组织的优化算法。自组织就是在没有外界作用下使得系统熵减小的过程(即系统从无序到有序的变化过程),蚁群算法充分体现了这个过程。

2.蚁群算法是一种分布式计算的优化算法,易于并行实现。每只蚂蚁搜索的过程彼此独立,仅通过信息素进行通信。提高了算法的效率,使得算法具有较强的全局搜索能力。

3.蚁群算法是一种具有正反馈机制的优化算法。对蚁群算法来说,初始状态时各个路径存在完全相同的信息素,算法采用的反馈方式是较优的路径上留下更多的信息素,而更多的信息素又吸引了更多的蚂蚁选择这条路径,这个正反馈的过程使得这个路径上的信息素不断增多,引导整个系统向最优解的方向进化。

4.蚁群算法具有较强的鲁棒性。相对于其它算法,蚁群算法对初始路线要求不高,即蚁群算法的求解结果不依赖于初始路线的选择,而且在搜索过程中不需要进行人工的调整。其次,蚁群算法的参数数目少,设置简单,易于蚁群算法应用到其他组合优化问题的求解中。


  • 33
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值