蚁群算法
蚁群算法是一种用来寻找优化路径的概率型算法。
它由Marco Dorigo于1992年在他的博士论文中提出,其灵感来源于蚂蚁在寻找食物过程中发现路径的行为。
这种算法具有分布计算、信息正反馈和启发式搜索的特征,本质上是进化算法中的一种启发式全局优化算法。
一. 基本原理
- 在研究蚂蚁觅食行为过程中,人们发现,尽管单只蚂蚁的能力十分有限,但整个蚁群却在觅食过程中可以发现从蚁巢到食物源的最短路径。
在觅食过程中,蚂蚁通过“媒介质”来协调它们之间的行动。所谓“媒介质”指的是一种以环境的变化为媒介的间接通信方式。蚂蚁在寻找食物时,以其产生的被称为信息素的化学物质作为媒介而间接的传递信息。当蚂蚁从蚁穴走到食物源,从而形成了含有信息素的路径。 - 蚁群算法是对自然界蚂蚁的寻径方式进行模似而得出的一种仿生算法:蚂蚁在运动过程中,能够在它所经过的路 径上留下信息素(pheromone)的物质进行信息传递,而且蚂蚁在运动过程中能够感知这种物质,并以此指导自己的运动方向。
- 由大量蚂蚁组成的蚁群集体行为便表现出一种信息正反馈 现象:某一路径上走过的蚂蚁越多,则后来者选择该路径的概率就越大。
二. 算法流程
- 在ACO算法中,人工蚂蚁实际上代表的是一个解的随机构建过程,从最初的空解开始,通过不断地向部分解添加解的成分而构建出一个完整的解。
- AS算法对TSP的求解主要有两大步骤:
- 路径构建
- 信息素更新
三. 实验分析
alpha —— 信息素重要程度因子
beta —— 启发函数重要程度因子
rho —— 信息素挥发因子
改变因子的大小:
1. beta、rho不变,alpha发生变化
alpha = 0.1,beta = 5,rho = 0.1:
最短距离:25119.2698
最短路径:4 14 39 15 1 44 27 3 5 13 32 42 31 28 22 21 24 35 10 11 26 16 43 7 41 19 47 33 46 49 29 25 45 18 30 50 17 37 6 2 38 40 34 9 8 36 12 48 23 20 4
alpha = 1,beta = 5,rho = 0.1 :
最短距离:23965.9929
最短路径:21 22 28 31 42 13 32 3 5 27 44 15 1 4 14 39 20 23 48 12 36 8 9 34 40 6 2 38 17 37 50 30 18 35 24 16 11 26 43 41 7 19 47 33 46 49 29 25 10 45 21
alpha = 5,beta = 5,rho = 0.1 :
最短距离:23537.0522
最短路径:10 25 29 49 41 7 19 47 33 46 32 13 3 5 27 44 15 1 14 4 39 20 23 48 12 36 8 9 34 40 6 2 38 17 37 50 21 22 28 31 42 43 26 11 16 30 18 35 24 45 10