https://www.bilibili.com/video/BV1ZA411v7pC?from=search&seid=4072474314501391572
观看视频后感觉作者讲的很好,对于新手来说比较友好,在这里做一下总结。
基本原理: 蚂蚁在路径上运动时会分泌信息素;
蚂蚁会选择信息素浓度高的路径;
信息素浓度会随着时间挥发。
特点: · 自组织的算法(在没有外力作用下使系统熵减的过程,即无序变成有序)
· 并行的算法,每个蚂蚁互相独立,仅通过信息熵相互通信
· 正反馈算法 选择信息素浓度高的路径。所以选择最短路径直接依赖于路径上 信息素浓度。
蚂蚁数量一般设置为目标数的1.5倍
信息素常量一般取值[10,1000]
最大迭代次数一般[100,500],建议200
信息素因子α 反映了蚂蚁运动过程中在路径上积累的信息素的量对整体最优解的影响程度 一般范围是[1,4]
启发因子β 反映了启发信息在指导蚁群搜索时的重要程度,蚁群寻优中先验性,确定性的重要程度 范围【0,5】
信息素挥发因子ρ 信息素的挥发速度,一般范围[0.2,0.5]
构建路径
一:每个蚂蚁随机选择一个城市作为出发点,并且维护一个路径记忆向量,存储 经过的城市。
每次选择下一个城市时,采用轮盘赌法
其中nij也是一个常取的启发函数。
二: 启发函数nij表示从i到j的能见度,两地距离越短,信息素浓度越大的路径越容易被选择
三:更新信息素
更新信息素有三种方式,根据不同的规则分为蚁周模型(Ant-Cycle),蚁量模型(Ant-Quantity),蚁密模型(Ant-Destiny)。
规则是 完成一次路径循环后蚂蚁才释放信息素
其中Q时初始化设置的信息素常量,Lk是路径之和。
终止条件
是否达到迭代次数
一次迭代就是m只蚂蚁走完所有城市,即存在m条路径,将所有路径进行比较,选择长度最短的路径,可视化处理,更新信息素。迭代次数加一