SACO\AS\ACS蚁群算法+个人理解理解 (概念讲解无Python编程)


Simple Ant Colony Optimisation (SACO)

  • 简单蚁群优化
  • 蚁群优化问题就是可以当成求解两个点之间最短距离的优化问题。有很多的节点,其中一个是出发点一个是目的地,从出发点出发经过那些到达目的地的距离最短的问题。打个比方:从上海到北京,如果经过新疆,那么这个路线绕的太远了,就不是最短路径。
  • SACO中每两个地方(节点)之间,存在两个变量,一个是距离 L i j ( t ) L_{ij}(t) Lij(t)一个是信息素 τ i j ( t ) \tau_{ij}(t) τij(t),距离是计算损失的,就是通过计算蚂蚁走过的不同节点之间的总距离,来判断这个蚂蚁选择的路线是否是比较短(优)的,信息素则是蚂蚁在面临选择哪一个节点前进时的唯一指示,信息素浓度高的蚂蚁选择的概率大。
  • 类似遗传算法,蚁群算法也是有一个种群的,其中有K只蚂蚁,然后每一只蚂蚁都会从出发点到目的地,只是走的路程会不同。他们都是基于同样的信息素进行概率选择路径
  • 蚂蚁如何选择不同的节点:
    在这里插入图片描述
  • 每一代结束之后,信息素如何更新:
    • 第一步,之前残留的信息素会挥发一些:
      在这里插入图片描述
    • 蚂蚁走过的路径上,蚂蚁会释放新的信息素:
      在这里插入图片描述
      可以看到,总共有 n k n_k nk只蚂蚁,某一只蚂蚁假设走过从节点1到节点2的路径,那么就会在这个路径上留下 Q f ( x k ( t ) ) \frac{Q}{f(x^k(t))} f(xk(t))Q的信息素,可以看到这个留下的信息素是与这个蚂蚁总共走完的路程成反比。可以理解为,一只蚂蚁体内只有100的信息素,假设蚂蚁走的总距离是200,那么蚂蚁就只能给每一条边增加0.5的信息素,假设蚂蚁走的总距离是50,那么每一条边释放的信息素就是2,更加浓郁。这就是一种启发式信息,总路程越短的蚂蚁释放的信息素浓度高,这样他走的路就会更大概率被后一代的蚂蚁重复选择。

Ant System(AS)

  • 蚂蚁系统。
  • 蚂蚁在选择走向那个节点的时候,概率计算方法变化了:

AS的转移概率计算(2种)

  • 第一种就是下面的,增加了一个新的参数 η \eta η,这个参数是根据距离计算的
    在这里插入图片描述
  • 第二种计算方法是类似的:
    在这里插入图片描述

AS的信息素更新(4种)

pheromone evaporation(信息素蒸发)

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

pheromone update(信息素更新)

  • 前三种采用的公式与SACO相同,但是细节不同:
    在这里插入图片描述
    三个方法的区别就是更新的数值,但是具体的区别也很小。
  • 第四种是采用了精英策略的更新方法:
    在这里插入图片描述
    可以看到,公式多了一项。其实最直观的理解就是,用上面三种中的Ant-Cycle AS的方法计算完了之后,在重复吧种群中最聪明的蚂蚁释放的信息素再计算一遍。(其实严格来说不算是再计算一遍,但是确实是相当于让精英蚂蚁释放的信息素的浓度相比其他普通蚂蚁的高)。

其实可以看的出来,这是一种强化本地搜索,弱化全局搜索的功效。但是可以提高收敛速度。

Ant Colony System(ACS)

  • 这个就是现在常说的蚁群算法

transition probability

  • 这个就是蚂蚁选择哪一个节点前进的概率:
    在这里插入图片描述
    可以看到两个计算概率的公式,这个是依照概率选择的,如果概率r小于事先设定的 r 0 r_0 r0,那么就选择上面的方法,上面的方法是贪婪算法,就是一定选择信息素浓度最高的那一个路径;反之选择了下一种方法,那么就是跟AS一样的概率方法,不过仔细观察可以发现,AS的公式中的 α \alpha α在ACS中没有了。

pheromone update

locally update rules

  • 这个虽然叫做本地更新规则,但是其实可以看成pheromone蒸发的一种改进。
    因为信息素会不断的蒸发,假设某一个路径连续几代都没有蚂蚁走过,那么信息素不断蒸发,会趋近于0,那么将来就再也没有蚂蚁可能走这条路了,所以这里设置了一个比较小的常数 τ 0 \tau_0 τ0,这样可以保证信息素趋近于 τ 0 \tau_0 τ0而不是0,从而保证信息素被选择的概率存在
    在这里插入图片描述

globally update rule

  • 虽然叫做全局更新规则,但是其实跟AS中的信息素更新也有些类似,又有不同。有点像是,仅仅让精英蚂蚁释放信息素,其他蚂蚁不能参与信息素的更新当中的感觉。
    在这里插入图片描述
    可以ACS中不管是local还是global,都有一个蒸发系数这样的参数,然后全局搜索只考虑搜索到的最优策略(可能是当前代的最优结果,也可能是所有代中的最优)。
    在这里插入图片描述

公众号回复【下载】有精选的免费机器学习学习资料。 公众号每天会更新一个机器学习、深度学习的小知识,都是面试官会问的知识点哦~

  • 【机器学习的基础数学(PDF)】
  • 【竞赛中的大数据处理流程(PDF)】
  • 【如何做大数据的基础特征工程(PDF)】
  • 【自然语言处理NLP的应用实践大合集(PDF)】
  • 【python入门级教材(400页PDF)】

公众号每天会更新一个机器学习、深度学习的小知识,都是面试官会问的知识点哦~

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值