介绍
蚁群算法是一种用来寻找优化路径的概率型算法。其灵感来源于蚂蚁在寻找食物过程中发现路径的行为。这种算法具有分布式计算、信息正反馈和启发式搜索的特征,本质上是进化算法中的一种启发式全局优化算法。
基本原理
- 蚂蚁在携带等量的信息素一路释放
- 信息素浓度会和路径的长度成反比
- 下次蚂蚁来到该路口会选择信息素浓度较高的那条
- 短的路径上的信息素浓度会越来越大,最终成为蚁群的最优路径
参数解析
定义 | 参数影响分析 | |
---|---|---|
alpha | 信息启发式因子 | alpha的值越大,蚂蚁选择之前走过的路径可能性越大,搜索路径的随机性减弱,alpha越小,蚁群搜索范围就会减少,容易陷入局部最优 |
beta | 期望启发式因子 | beta的值越大,蚁群就越容易选择局部较短路径,这时算法的收敛速度是加快了,但是随机性却不高,容易得到局部的相对最优 |
m | 蚁群数量 | m的数量越多,得到的最优解就越精确,但是会产生不少重复解,随着算法接近最优值的收敛,信息正反馈作用降低,大量的重复工作,消耗了资源,增加了时间复杂度 |
v | 信息挥发因子,1-v表示残留因子 | v过小时,在各路径上残留的信息素过多,导致无效的路径被搜索,影响到算法的收敛速率,v过大,无效的路径虽然可以被排除搜索,但是不能保证有效的路径也会被放弃搜索,影响到最优值的搜索 |
算法流程
- 开始
- 建立种群和基本参数设置
- 开始迭代
- 随机产生出发城市
- 计算城市间的转移概率,轮盘赌确定下一个访问的城市
- 计算各条路径距离
- 更新信息素
- 每次迭代记录下最优值,转到第二步,迭代次数加1
- 结束
Matlab代码实现