零基础学启发式算法-蚁群算法 (Ant Colony Optimization, ACO)

Posted 软件工程小施同学

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了零基础学启发式算法-蚁群算法 (Ant Colony Optimization, ACO)相关的知识,希望对你有一定的参考价值。

一、原理   

     蚂蚁会分泌一种叫做信息素的化学物质,蚂蚁的许多行为受信息素的调控。蚂蚁在运动过程中能够感知其经过的路径上信息素的浓度,蚂蚁倾向朝着信息素浓度高的方向移动。

    

    蚂蚁从A点出发,速度相同,食物在D点,取得食物后再折返回蚁巢。可能随机选择路线ABD(9个时间单位)或ACD(18个时间单位)。假设蚂蚁每经过一处所留下的信息素为一个单位,则经过36个时间单位后,所有开始一起出发的蚂蚁都经过不同路径从D点取得了食物,此时ABD的路线往返了2趟,每一处的信息素为4个单位,而ACD的路线往返了一趟,每一处的信息素为2个单位,其比值为2:1。

    单位时间内路径上通过蚂蚁的数量越多,则该路径上留下的信息素浓度越高。因此,最短路径上走过的蚂蚁数量越多,则后来的蚂蚁选择该路径的机率就越大,从而蚂蚁通过信息的交流实现了寻找食物和蚁巢之间最短路的目的。

二、蚁群算法

蚁群算法的基本原理:


1、蚂蚁在路径上释放信息素。

2、碰到还没走过的路口,就随机挑选一条路走。同时,释放与路径长度有关的信息素。

3、信息素浓度与路径长度成反比。后来的蚂蚁再次碰到该路口时,就选择信息素浓度较高路径。

4、最优路径上的信息素浓度越来越大。

5、最终蚁群找到最优寻食路径。

流程

三、案例

对于 TSP(旅行商问题),其流程图如下

https://leovan.me/cn/2019/04/heuristic-algorithms/

https://blog.csdn.net/qq_33829154/article/details/85258615

https://blog.csdn.net/qq_36744449/article/details/120033201

https://www.cnblogs.com/caiyishuai/p/13270746.html

https://blog.csdn.net/weixin_42715356/article/details/83590449

以上是关于零基础学启发式算法-蚁群算法 (Ant Colony Optimization, ACO)的主要内容,如果未能解决你的问题,请参考以下文章

零基础学启发式算法-模拟退火 (Simulated Annealing)

零基础学启发式算法-遗传算法 (Genetic Algorithm)

零基础学启发式算法-禁忌搜索 (Tabu Search)

零基础学启发式算法-局部搜索(Local Search)和爬山算法(Hill Climbing)

启发式算法之蚁群算法

启发式算法之蚁群算法