蚁群算法(简析)

蚁群算法用于最短路径寻优比较常见。

基于原理

 

算法:

1,n个城市坐标点 C(x_iy_i,i=1,2,...,n

2,n个城市间全连接距离n\times n矩阵  D(d_{ij}),i=1,2,...,n,j=1,2,...,n

3, 将m只蚂蚁随机放到n个城市,每个城市均有蚂蚁

4, 给定一个信息素n\times n矩阵Tabu_{ij},i=1,2,...,n,j=1,2,...,n,之后迭代更新Tabu_{ij}

5,计算n\times n矩阵Eta_{ij}启发因子,这里为距离的倒数

6, 定义Alpha 表征信息素重要程度的参数;Beta 表征启发式因子重要程度的参数

7,计算一只蚂蚁i,从城市j到达下一城市k的概率公式:

p(k)=(Tau(visited(end),J(k))^{Alpha})*(Eta(visited(end),J(k))^{Beta}) -------(1)

visited(end):蚂蚁最近走的到一处地方,j(k)为下一作城市

在这里计算了蚂蚁城市j到达下一城市k的所有概率,接下来使用轮盘赌算法,使蚂蚁选择不同的路。而轮盘赌算法就公式而言,和蚁群算法核心很相似。

轮盘赌算法:https://blog.csdn.net/pymqq/article/details/51375522

8,Tabu(i,j)为第i个蚂蚁走过的路

9,信息素更新公式:

Tau(Tabu(i,j),Tabu(i,j+1))=DetaTau(Tabu(i,j),Tabu(i,j+1))+Q/l(i)--------------(2)

Q 信息素增加强度系数。l(i)为第i个蚂蚁走过的全距离。本质更新为所有的路段的信息素增量:经过这个路段的蚂蚁走过的全距离的倒数*比例。

 

最后蚁群算法实现核心有两点:1,蚂蚁如何选择下一个城市;2,城市间路径信息素如何更新。

1,下一城市选择基于概率计算,计算公式为(1),得到剩下去城市概率,产生一个随机数,基于随机数决定去下面哪一个城市。例如:剩3个城市,概率为:0.1,0.2,0.7,累计概率为:0.1,0.3,0.7,产生一个随机数,随机数为0.21,则去城市2。此过程则为轮盘赌,又可说其服从蚁群算法会优先去概率大的地方,但还是随机走。

2,概率由信息素决定,信息素根据蚂蚁走过的路线长度进行更新,每一段城市i,j之间的信息素增量为经过这段的路蚂蚁总路径的倒数*比例。

算法实现:https://blog.csdn.net/zlk961543260/article/details/70172647

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值