037.(9.19)蚁群算法基础知识梳理

定位

蚁群算法(ACO)是一种智能优化算法(现代算法),概率、图论与矩阵是其理论主要组成部分。

ACO是对蚁群凭借信息素标识,从而寻找食物这一过程的借鉴,可以用来寻找优化路径。

有关信息素

1.长路径上的信息素浓度低
2.蚂蚁会留下信息素,而信息素自身也会挥发。一般规定一轮迭代(所有蚂蚁周游完一次)后更新一次信息素

算法基本流程

(1)根据具体问题设置多只蚂蚁,分头并行搜索。

(2)每只蚂蚁完成一次周游后,在行进的路上释放信息素,信息素量与解的质量成正比。

(3)蚂蚁路径的选择根据信息素强度大小(初始信息素量设为相等),同时考虑两点之间的距离,采用随机的局部搜索策略。这使得距离较短的边,其上的信息素量较大,后来的蚂蚁选择该边的概率也较大。

(4)每只蚂蚁只能走合法路线(经过每个城市1次且仅1次),为此设置禁忌表来控制。

(5)所有蚂蚁都搜索完一次就是迭代一次,每迭代一次就对所有的边做一次信息素更新,原来的蚂蚁死掉,新的蚂蚁进行新一轮搜索。

(6)更新信息素包括原有信息素的蒸发和经过的路径上信息素的增加。

(7)达到预定的迭代步数,或出现停滞现象(所有蚂蚁都选择同样的路径,解不再变化),则算法结束,以当前最优解作为问题的最优解。

相关公式

  1. 转移概率计算公式
    在这里插入图片描述
    注意,对于一只蚂蚁,每走一步都要更新相应的转移概率以及禁忌表。后者在记录下一只蚂蚁的路径时需要重置。

  2. 启发式因子计算公式
    在这里插入图片描述
    dij 是两个城市之间的距离

  3. 信息素公式
    在这里插入图片描述
    可考虑设置信息素浓度界限!
    在这里插入图片描述
    对于 Q/Lk,是指对于每只蚂蚁,其周游路线 每一步路径 的信息素更新,而Lk是其周游总路径长度。

改进版

如精英蚂蚁(加入一只最优蚂蚁的权)和最大最小蚁群算法。

猜你喜欢

转载自blog.csdn.net/u013598957/article/details/108678983