2025年SCI1区TOP:真菌生长优化算法FGO,深度解析+性能实测
目录
- 1.摘要
- 2.算法原理
- 3.结果展示
- 4.参考文献
- 5.代码获取
1.摘要
本文提出了一种新型的自然启发元启发式算法——真菌生长优化算法(FGO),灵感来源于真菌在自然界中的生长行为。真菌的生长行为包括菌丝生长、分枝和孢子萌发,菌丝生长行为模拟了菌丝的扩展和趋化性,能够精确探索搜索空间,并有效地发现和利用富含营养的区域,避免了局部最优解的停滞和收敛速度过慢的问题。分枝行为则模拟了新菌丝从现有菌丝侧面生长,探索周围区域寻找更多资源,增强了算法的探索能力。孢子萌发行为则代表了现有菌丝如何探索新环境,寻找更加安全且富含营养的区域。在FGO中,孢子在优化初期随机降落,以促进探索过程;随着优化进程的推进,随机位置会逐渐转变为在当前最优解和随机位置之间的某个位置,从而在促进开发的同时防止过早收敛。
2.算法原理
菌丝尖端生长行为
在适当的条件下,菌丝会沿直线扩展,探索搜索空间并寻找富含营养的区域。然而,环境和化学因素可能会导致菌丝改变生长方向。此外,菌丝的生长速度受多种因素影响,如真菌物种、环境条件(湿度、温度、营养可用性)和菌丝的年龄。通常,年轻的菌丝生长速度较快,而在富含营养的区域,菌丝可能会出现指数级的生长。相反,在营养匮乏或不利的环境中,菌丝的生长会显著减慢。
增长速度和方向:探索算子
FGO中的生长速率通过一个与当前适应度值相关的指数函数来表示,其中适应度值较高的解对应于富营养区域,适应度值较低的解则代表营养匮乏的区域:
E
=
e
f
i
∑
k
=
1
N
f
k
\mathrm{E}=e^\frac{f_i}{\sum_{k=1}^Nf_k}
E=e∑k=1Nfkfi
FGO通过将每个解的适应度值归一化,从而减小优化过程中指数值的影响。在没有波动的情况下,生长速率对于每个适应度值是恒定的,这会导致FGO的探索行为缺乏多样性,无法精准地探索搜索空间。为了解决这个问题,将归一化后的适应度值乘以一个介于0和1之间的随机数,使生长速率出现波动:
$$
\begin{aligned}
& \mathrm{E}=e^F \
& F=\frac{f_i}{\sum_{k=1}^Nf_k}\cdot r_1\cdot\mathscr{C} \
& \mathscr{E}=\left(1-\frac{t}{t_max}\right)^{\left(1-\frac{t}{t_{max}}\right)}
\end{aligned}
$$
在FGO中,生长速率和方向的变化是通过动态调整来模拟真菌生长行为的。生长速率受到一个系数
E
E
E的控制,该系数在优化初期较大,以加速搜索空间的探索;随着优化过程的推进,生长速率逐渐减小,从而促进当前解周围区域的开发。
D
→
\overrightarrow{D}
D表示生长方向:
D
→
=
S
→
a
t
−
S
→
c
t
\overrightarrow{D}=\overrightarrow{S}_a^t-\overrightarrow{S}_c^t
D=Sat−Sct
根据先前计算出的生长速率和方向,可以确定第
i
i
i条菌丝的新的生长路径:
S
→
i
t
+
1
=
S
→
i
t
+
E
⋅
D
→
\overrightarrow{S}_i^{t+1}=\overrightarrow{S}_i^t+\mathrm{E}\cdot\overrightarrow{D}
Sit+1=Sit+E⋅D
菌丝的生长可能仅在某些维度上发生变化,而非在所有维度上均匀扩展。在FGO中,现有的菌丝生长与新的生长共同作用,根据一定的公式生成新的菌丝生长:
S
i
,
j
t
+
1
=
[
R
j
−
r
3
]
S
i
,
j
t
+
(
1
−
[
R
j
−
r
3
]
)
S
i
,
j
t
+
1
S_{i,j}^{t+1}=[R_j-r_3]S_{i,j}^{t}+(1-[R_j-r_3])S_{i,j}^{t+1}
Si,jt+1=[Rj−r3]Si,jt+(1−[Rj−r3])Si,jt+1
趋化行为:开发算子
在FGO中,开发算子模拟了趋化性行为,通过化学信号引导菌丝朝向富营养区域或其他有潜力的区域,以尽可能快速地找到更好的解:
D
→
i
e
=
r
4
⋅
(
S
→
a
t
−
S
→
i
t
)
\overrightarrow{D}_i^e=r_4\cdot\left(\overrightarrow{S}_a^t-\overrightarrow{S}_i^t\right)
Die=r4⋅(Sat−Sit)
第
i
i
i个菌丝向代表第一状态的最佳或随机选择的解的生长方向:
D
→
i
e
=
r
4
⋅
(
S
→
a
t
−
S
→
i
t
)
+
r
→
5
⊙
(
β
⋅
S
→
∗
−
S
→
i
t
)
⋅
[
r
6
>
R
]
\overrightarrow{D}_i^e=\pmb{r}_4\cdot\left(\overrightarrow{S}_a^t-\overrightarrow{S}_i^t\right)+\overrightarrow{r}_5\odot\left(\beta\cdot\overrightarrow{S}^*-\overrightarrow{S}_i^t\right)\cdot[\pmb{r}_6>\mathscr{R}]
Die=r4⋅(Sat−Sit)+r5⊙(β⋅S∗−Sit)⋅[r6>R]
在富含营养的环境中,菌丝的生长速率会显著提高,菌丝朝向当前最优解或随机选择的解移动的距离越大,其生长速率也越高。
η
i
=
{
r
7
,
t
<
t
m
a
x
2
f
i
,
e
l
s
e
\eta_i= \begin{cases} r_7,t<\frac{t_{max}}{2} \\ f_i,else & \end{cases}
ηi={r7,t<2tmaxfi,else
第
i
i
i菌丝按照第一状态的新生长:
S
→
i
t
+
1
=
S
→
i
t
+
η
i
⋅
D
→
i
e
\overrightarrow{S}_i^{t+1}=\overrightarrow{S}_i^t+\eta_i\cdot\overrightarrow{D}_i^e
Sit+1=Sit+ηi⋅Die
流程图
伪代码
3.结果展示
4.参考文献
[1] Abdel-Basset M, Mohamed R, Abouhawwash M. Fungal growth optimizer: A novel nature-inspired metaheuristic algorithm for stochastic optimization[J]. Computer Methods in Applied Mechanics and Engineering, 2025, 437: 117825.