当前位置: 首页 > news >正文

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=ek=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 =S atS ct

根据先前计算出的生长速率和方向,可以确定第 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} S it+1=S it+ED

菌丝的生长可能仅在某些维度上发生变化,而非在所有维度上均匀扩展。在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=[Rjr3]Si,jt+(1[Rjr3])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) D ie=r4(S atS it)

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}] D ie=r4(S atS it)+r 5(βS S it)[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 S it+1=S it+ηiD ie

流程图

伪代码

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.

5.代码获取

相关文章:

  • java23种设计模式-观察者模式
  • Spring MVC框架六:Ajax技术
  • 用 DeepSeek 打样!KubeSphere LuBan 用 3 天/3 分钟“干掉”大模型部署焦虑
  • 第五六七章
  • Element Plus: el-card的内容滚动问题
  • ES 客户端 API 二次封装思想
  • C++大整数类的设计与实现
  • 点云配准技术的演进与前沿探索:从传统算法到深度学习融合(2)
  • 【Grok3】强化学习(Reinforcement Learning, RL)复习文档
  • Python 编程题 第二节:组合数字、乘法口诀表、水仙花数、反向输出四位数、判断三角形
  • 蓝桥杯 五子棋对弈
  • AI人工智能机器学习之神经网络
  • 人工智能丨大语言模型不再高不可攀!DeepSeek开源FlashMLA,开启AI新纪元
  • 验证码介绍及生成与验证(HTML + JavaScript实现)
  • 组件注册方式、传递数据
  • 实体机器人识别虚拟环境中障碍物
  • Layui页面粘贴的方法
  • python整理文件下
  • 对 flask 框架中的全局变量 request 探究
  • SQL_优化
  • 刘国中:毫不松懈巩固拓展脱贫攻坚成果,全力以赴抓好农业防灾减灾工作
  • 吴志朴当选福建德化县人民政府县长
  • 言短意长|政府食堂、停车场开放的示范效应
  • 女乘客遭顺风车甩客、深夜丢高速服务区,滴滴霸道回应:赔五百元
  • 国内生产、境外“游一圈”再进保税仓,这些“全球购”保健品竟是假进口
  • 加拿大温哥华发生驾车冲撞人群事件,加拿大总理发声