目录
- 1.摘要
- 2.分数阶微积分基础知识
- 3.分数阶蚁群算法FACA
- 4.分数阶蚁群算法FACA数学证明与分析
- 5.结果展示
- 6.参考文献
- 7.代码获取
- 8.算法辅导·应用定制·读者交流
1.摘要
本文提出了一种新颖分数阶蚁群算法(Fractional-Order Ant Colony Algorithm, FACA),这是一种基于分数阶长期记忆的协同学习方法。整数阶蚁群算法每只蚂蚁根据由信息素值以及其当前位置邻接边上的附加信息计算出的转移概率来选择下一条路径,FACA引入了分数阶微积分中的长期记忆机制,通过更复杂的转移表达式模拟具有前瞻性的决策行为,从而增强搜索能力。
2.分数阶微积分基础知识
几种典型分数阶微积分定义
3.分数阶蚁群算法FACA
在传统蚁群算法中,蚂蚁在节点 i i i处计算转移概率 p i j p_{ij} pij,并据此按照一定规则选择下一个节点 j j j。此过程蚂蚁本身并不具备记忆能力,我们希望对该机制加以改进:即在获取 p i j p_{ij} pij 并转移到节点 j j j后,继续计算 p j k p_{jk} pjk,选择节点 k k k,再计算 p k l p_{kl} pkl,依此类推,从而获得一条未来的转移概率序列。利用该序列,蚂蚁便可在初始节点 i i i做出比传统算法更优的选择。
这里引入了分数阶微积分中的长期记忆思想,并通过重写转移概率表达式来获取前瞻性转移序列。这种表达式的数学动因源于分数阶导数理论,其用更复杂的函数替代了传统的简单差分表达方式。
m p i j v ( t ) = 1 f { p i j ( t ) + ∑ k = 1 N 1 − 1 ∣ Γ ( k − v ) Γ ( − v ) Γ ( k + 1 ) ∣ p ( j + k − 1 ) ( j + k ) ( t ) i f j ∈ C i m ( t ) a n d ( j + k ) ∈ C i m ( t ) 0 i f j ∉ C i m ( t ) ^mp_{ij}^v(t)=\frac{1}{f} \begin{cases} p_{ij}(t)+\sum_{k=1}^{N_1-1}\left|\frac{\Gamma(k-v)}{\Gamma(-v)\Gamma(k+1)}\right|p_{(j+k-1)(j+k)}(t) & ifj\in C_i^m(t) \\ & and(j+k)\in C_i^m(t) \\ 0 & ifj\notin C_i^m(t) & \end{cases} mpijv(t)=f1⎩ ⎨ ⎧pij(t)+∑k=1N1−1 Γ(−v)Γ(k+1)Γ(k−v) p(j+k−1)(j+k)(t)0ifj∈Cim(t)and(j+k)∈Cim(t)ifj∈/Cim(t)
其中, f = ∑ k = 0 N 1 − 1 ∣ Γ ( k − v ) Γ ( − v ) Γ ( k + 1 ) ∣ f=\sum_{k=0}^{N_1-1}\left|\frac{\Gamma(k-v)}{\Gamma(-v)\Gamma(k+1)}\right| f=∑k=0N1−1 Γ(−v)Γ(k+1)Γ(k−v) 是归一化因子, C i m ( t ) C_{i}^{m}(t) Cim(t)表示从第 i i i 个节点到第 j j j 个节点的 v v v 阶转移概率,其中第 i i i 个节点与其相邻节点构成了一组下一步可选节点。 m p i j v ( t ) ^{m}p_{ij}^v(t) mpijv(t)是邻边 ( i , j ) (i,j) (i,j)上关于 p i j ( t ) p_{ij}(t) pij(t)和
p ( j + k − 1 ) ( j + k ) ( t ) p_{(j+k-1)(j+k)}(t) p(j+k−1)(j+k)(t)的 v v v阶绝对分数阶差分:
p i j ( t ) = { [ τ i j ( t ) ] α [ η i j ( t ) ] β ∑ c ∈ C i m ( t ) [ τ i c ( t ) ] α [ η i c ( t ) ] β i f j ∈ C i m ( t ) 0 i f j ∉ C i m ( t ) p_{ij}(t)= \begin{cases} \frac{\left[\tau_{ij}(t)\right]^{\alpha}\left[\eta_{ij}(t)\right]^{\beta}}{\sum_{c\in C_{i}^{m}(t)}\left[\tau_{ic}(t)\right]^{\alpha}\left[\eta_{ic}(t)\right]^{\beta}} & ifj\in C_{i}^{m}(t) \\ 0 & ifj\notin C_{i}^{m}(t) & \end{cases} pij(t)=⎩ ⎨ ⎧∑c∈Cim(t)[τic(t)]α[ηic(t)]β[τij(t)]α[ηij(t)]β0ifj∈Cim(t)ifj∈/Cim(t)
p ( j + k − 1 ) ( j + k ) ( t ) = { [ τ ( j + k − 1 ) ( j + k ) ( t ) ] α [ η ( j + k − 1 ) ( j + k ) ( t ) ] β ∑ c ∈ C ( j + k − 1 ) m ( t ) [ τ ( j + k − 1 ) c ( t ) ] α [ η ( j + k − 1 ) c ( t ) ] β i f ( j + k ) ∈ C ( j + k − 1 ) m ( t ) 0 i f ( j + k ) ∉ C ( j + k − 1 ) m ( t ) p_{(j+k-1)(j+k)}(t)= \begin{cases} \frac{\left[\tau_{(j+k-1)(j+k)}(t)\right]^\alpha\left[\eta_{(j+k-1)(j+k)}(t)\right]^\beta}{\sum_{c\in C_{(j+k-1)}^m(t)}\left[\tau_{(j+k-1)c}(t)\right]^\alpha\left[\eta_{(j+k-1)c}(t)\right]^\beta} & if(j+k)\in C_{(j+k-1)}^m(t) \\ 0 & if(j+k)\notin C_{(j+k-1)}^m(t) & \end{cases} p(j+k−1)(j+k)(t)=⎩ ⎨ ⎧∑c∈C(j+k−1)m(t)[τ(j+k−1)c(t)]α[η(j+k−1)c(t)]β[τ(j+k−1)(j+k)(t)]α[η(j+k−1)(j+k)(t)]β0if(j+k)∈C(j+k−1)m(t)if(j+k)∈/C(j+k−1)m(t)
对于FACA,当 k ≥ 1 k\geq1 k≥1时,所有候选的 ( j + k ) (j+k) (j+k)节点必须为当前第 i i i个节点的邻居节点。除了第 i i i个节点的邻接节点外,FACA 还包括连续多个步骤中的前瞻性节点,以构造具有更强前瞻性的转移概率。FACA 的分数阶转移概率 m p i j v ( t ) ^mp_{ij}^v(t) mpijv(t) 利用了当前位置邻域内的最大信息,包括 p i j ( t ) p_{ij}(t) pij(t)和 p ( j + k − 1 ) ( j + k ) ( t ) p_{(j+k-1)(j+k)}(t) p(j+k−1)(j+k)(t),以提升路径选择的合理性,这有助于 FACA 在搜索能力与利用能力之间实现更优的分数阶非线性平衡。
为了在第 t t t次迭代中尽可能避免第 m m m只蚂蚁陷入局部最优,系统将候选集合中已选定的节点集记作 S i m ( t ) ⊂ C i m ( t ) S_i^m(t)\subset C_i^m(t) Sim(t)⊂Cim(t),表示如下:
S i m ( t ) = { j if p i j m ( t ) = max [ p i c v m ( t ) ] , j , c ∈ C i m ( t ) l if d i l ( t ) ≤ ξ d i j ( t ) , l , j ∈ C i m ( t ) ∅ otherwise S_i^m(t) = \begin{cases} j & \text{if } p_{ij}^{m}(t) = \max\left[p_{ic}^{v\,m}(t)\right],\ j, c \in C_i^m(t) \\ l & \text{if } d_{il}(t) \leq \xi d_{ij}(t),\ l, j \in C_i^m(t) \\ \varnothing & \text{otherwise} \end{cases} Sim(t)=⎩ ⎨ ⎧jl∅if pijm(t)=max[picvm(t)], j,c∈Cim(t)if dil(t)≤ξdij(t), l,j∈Cim(t)otherwise
此外,在第 t t t次迭代完成后,我们将所有蚂蚁的已访问路径长度按从短到长进行排序( L 1 ( t ) ≤ ⋯ ≤ L m ( t ) ≤ ⋯ ≤ L N 3 ( t ) ≤ ⋯ ≤ L Q a ( t ) L^1(t)\leq\cdots\leq L^m(t)\leq\cdots\leq L^{N_3}(t)\leq\cdots\leq L^{Q_a}(t) L1(t)≤⋯≤Lm(t)≤⋯≤LN3(t)≤⋯≤LQa(t)),其中 Q a Q_a Qa 表示蚁群中蚂蚁的初始总数量, L m ( t ) L^m(t) Lm(t)是第 t t t次迭代中第 m m m只蚂蚁所访问路径的总长度。
为了充分利用第 t t t次迭代中表现优异的精英蚂蚁所获得的有价值信息,我们选择路径较短
的前 1 ≤ N 3 ≤ Q a 1\leq N_3\leq Q_a 1≤N3≤Qa只蚂蚁作为精英蚂蚁,并增强其已访问路径上的信息素浓度。
在下一次迭代FACA 的分数阶信息素更新:
τ i j ( t + 1 ) = ( 1 − ρ ) τ i j ( t ) + ∑ m = 1 N 3 ∣ Γ ( m − v − 1 ) Γ ( − v ) Γ ( m ) ∣ Δ τ i j m ( t ) \tau_{ij}(\mathrm{t}+1)=(1-\rho)\tau_{ij}(\mathrm{t})+\sum_{m=1}^{N_{3}}\left|\frac{\Gamma(m-v-1)}{\Gamma(-v)\Gamma(m)}\right|\Delta\tau_{ij}^{\mathrm{m}}(t) τij(t+1)=(1−ρ)τij(t)+m=1∑N3 Γ(−v)Γ(m)Γ(m−v−1) Δτijm(t)
第 m m m 个被选中的精英蚂蚁的信息素增量 Δ τ i j m ( t ) \Delta \tau_{ij}^{m}(t) Δτijm(t):
Δ τ i j m ( t ) = { 1 L m ( t ) if the m th elitist ant visited edge ( i , j ) 0 if the m th elitist ant doesn’t visit edge ( i , j ) \Delta \tau_{ij}^{m}(t) = \begin{cases} \frac{1}{L^m(t)} & \text{if the $m$th elitist ant visited edge } (i,j) \\ 0 & \text{if the $m$th elitist ant doesn't visit edge } (i,j) \end{cases} Δτijm(t)={Lm(t)10if the mth elitist ant visited edge (i,j)if the mth elitist ant doesn’t visit edge (i,j)
4.分数阶蚁群算法FACA数学证明与分析
作者给出了详细分析,挺数学 赞~
5.结果展示
6.参考文献
[1] Yi-Fei P U, Siarry P, Wu-Yang Z H U, et al. Fractional-order ant colony algorithm: a fractional long term memory based cooperative learning approach[J]. Swarm and Evolutionary Computation, 2022, 69: 101014.
7.代码获取
xx