蚁群算法简单总结
0.算法思路
模拟自然界蚂蚁寻找食物的过程。蚂蚁在寻找食物时会在路径上释放信息素,而选择路径时蚂蚁会优先走信息素多的路径,一定时间后信息素会集中在最短路径上。下面用TSP问题来举例总结
1.算法框架
2.算法参数
- 蚂蚁数量M:M过大导致每条路径被走过的可能都增大,导致信息素差不多,收敛速度慢;过小可能导致有很多路径没被发现,导致局部收敛
- 信息素常量Q:Q过大导致路径的搜索范围减小,导致局部收敛;过小导致路径上信息素区别不大,进入混沌状态
- 最大迭代次数N:过小可能陷入局部最优
- 信息素因子 α \alpha α: α \alpha α过大会使得蚂蚁更关心信息素,更可能走以前走过的路径,容易陷入局部最优;过小会导致算法不收敛。
- 启发函数因子 β \beta β: β \beta β参数和 α \alpha α参数类似
- 信息素挥发因子 ρ \rho ρ: ρ \rho ρ过大导致信息素挥发过快,导致不容易收敛;过小导致信息素含量受早期的信息素影响过大,算法容易陷入局部最优
通常,蚂蚁数量M=1.5*目标数,信息素Q=[10,1000],最大迭代次数N=[100,500],信息素因子 α \alpha α=[1,4],启发函数因子 β \beta β=[0,5],信息素挥发因子 ρ \rho ρ=[0.2,0.5]。
3.关键步骤
- 蚂蚁通常选择下一条路径的方式为轮盘赌选择法,权重为信息素浓度
- 蚂蚁走完所有城市后才会对路径上城市释放信息素,所以当前第t轮迭代释放的信息素不会影响当前轮的蚂蚁,而会影响t+1轮及以后的蚂蚁路径选择