全局路径规划 - 02 蚁群算法

算法流程:

  1. 设整个蚂蚁群中蚂蚁的数量为m,城市的数量为n,城市i与城市j之间的相互距离为dij(i,j=1,2,,n)t时刻城市与城市连接路径上的信息素浓度为τij(t)。初始时刻,各个城市间连接路径上的信息素浓度相同,不妨设为τij(0)=τ0

  2. 蚂蚁k(k=1,2,,m)根据各个城市间连接路径上的信息素浓度决定其下一个访问城市,设Pijk(t)表示时刻t蚂蚁k从城市i转移到城市j的概率,其计算公式如下:

    Pijk={[τij(t)]α[ηij(t)]βsallowk[τis(t)]α[ηis(t)]β,sallowk0,sallowk

    其中,ηij(t)为启发函数,,ηij(t)=1dij表示蚂蚁从城市i转移到城市j的期望程度,allowk为蚂蚁k待访问城市的集合。开始时,allowk中有个(n1)元素,即包括了蚂蚁k除了发城市的其他所有城市。随着时间的推进,allowk中的元素不断减少,直至为空,即表示所有的城市都访问完毕,α为信息素重要程度因子,其值越大,表示信息素的浓度在转移中起的作用越大;β为启发函数重要程度因子,其值越大,表示启发函数在转移中的作用越大,即蚂蚁会以较大的概率转移到距离短的城市。

  3. 在蚂蚁释放信息素的同时,各个城市间连接路径上的信息素逐渐小时,设参数ρ(0<ρ<1)表示信息素的挥发程度。因此,当所有蚂蚁完成一次循环后,各个城市间连接路径上的信息素浓度需要进行实时更新,具体公式如下:

    τij(t+1)=(1ρ)×τij(t)+Δτij,0<ρ<1Δτij=Σk=1mΔτijk

    其中,Δτijk表示第k只蚂蚁在城市i与城市j连接路径上释放的信息素浓度,Δτij表示所有蚂蚁在城市i与城市j连接路径上释放的信息素浓度之和。

注:在ant cycle system模型中,Δτijk的计算公式为:

Δτij={Q/Lk,第k只蚂蚁从城市i访问城市j0,其他

posted @   HeyRay_Yang  阅读(440)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示
主题色彩