任务描述
本关任务:使用 python 实现蚁群算法,并寻找商队旅行最短路径。
相关知识
为了完成本关任务,你需要掌握:1.蚁群算法原理,2.蚁群算法流程,3.使用蚁群算法解决商队旅行问题。
蚁群算法原理
大家已经知道,蚂蚁是根据信息素浓度来选择下一步行走的路线,信息素越浓,蚂蚁选择的概率越大,公式如下:
pijk(t)=s∈Jk(i)∑[τis(t)]α[ηis(t)]β[τij(t)]α[ηij(t)]β
pijk(t):第 k 只蚂蚁 t 时刻,从城市 i 到 j 的概率。
τij(t): t 时刻蚂蚁走完一周后,城市 i 到 j 的信息素浓度。
ηij:启发式因子。
ηij=dij1
τij(t+n)=(1−ρ)τij(t)+Δτij
Δτij=k=1∑mΔτijk(t+n)
Δτijk=LkQ
α:信息素重要程度。 β:启发式因子重要程度。 ρ:信息素挥发速度。 Lk:蚂蚁 k 在本次周游中所走路径长度。 m:蚂蚁个数。 n:城市个数。 d:城市之间距离。
蚁群算法流程
初始化各个参数
随机放置蚂蚁到各个城市
对每一只蚂蚁选择下一个城市
走遍所有城市时,计算当前最佳路径并更新信息素浓度
重复2,3,4直到达到最大迭代次数
输出最短路径
使用蚁群算法解决商队旅行问题