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.代码获取

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/70777.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

穿越AI边界:深度集成DeepSeek API与云平台的实践之路

云边有个稻草人-CSDN博客 随着人工智能技术的日益发展&#xff0c;深度学习和自然语言处理&#xff08;NLP&#xff09;已经在很多领域得到了广泛的应用。DeepSeek作为一款领先的大型语言生成模型&#xff0c;凭借其强大的推理和生成能力&#xff0c;已经被越来越多的开发者和…

动态表头导出EasyExcel

在 Spring Boot 中结合 EasyExcel 实现动态表头导出&#xff08;无实体类&#xff0c;表头和字段&#xff08;前端传表名&#xff0c;字段值动态查询&#xff0c;返回List<Map<String,Object>>&#xff09;由前端传递&#xff09;可以通过以下步骤实现。以下是完整…

1 | 从零开始解密数据库:数据库基础概念

❤个人主页&#xff1a;折枝寄北的博客 ❤专栏位置&#xff1a;数据库专栏 目录 前言1. 数据&#xff08;data&#xff09;2. 数据库(DB)3. 数据库管理系统(DBMS)4. 数据库系统(DBS) 感谢您的阅读支持 前言 【前言】 在万物互联的数字时代&#xff0c;数据已成为驱动社会运转…

Web自动化之Selenium下Chrome与Edge的Webdriver常用Options参数

目录 引言 说明 Add_argument() 添加方式 常用参数 Add_experimental_option() 添加方式 常用方法 任务结束后仍然保持浏览器打开 禁用“Chrome 正受到自动测试软件的控制”提示 设置下载路径 禁用弹窗拦截 禁用图片加载 禁用 JavaScript 注意 引言 …

AI提示词的种类与适合的任务

以下是提示词的主要种类及其适用任务&#xff0c;基于大模型特性与最佳实践总结&#xff1a; 一、基础提示词 零样本提示&#xff08;Zero-shot Prompting&#xff09; 形式&#xff1a;直接输入任务指令&#xff0c;不提供示例&#xff08;如“翻译以下句子&#xff1a;Hello …

FTP 实验(ENSP模拟器实现)

目录 FTP 概述 FTP实验 FTP的报文交互 FTP 概述 FTP&#xff08;File Transfer Protocol&#xff0c;文件传输协议&#xff09;是一种用于在网络上进行文件传输的标准协议。它允许用户在两台计算机之间上传和下载文件。 1、FTP采用客户端-服务器模型&#xff0c;客户端通过…

Windows前端开发IDE选型全攻略

Windows前端开发IDE选型全攻略 一、核心IDE对比矩阵 工具名称最新版本核心优势适用场景推荐指数引用来源VS Code2.3.5轻量级/海量插件/跨平台/Git深度集成全栈开发/中小型项目⭐⭐⭐⭐⭐14WebStorm2025.1智能提示/框架深度支持/企业级调试工具大型项目/专业前端团队⭐⭐⭐⭐47…

鸿蒙5.0实战案例:har和hsp的转换

往期推文全新看点&#xff08;文中附带全新鸿蒙5.0全栈学习笔录&#xff09; ✏️ 鸿蒙&#xff08;HarmonyOS&#xff09;北向开发知识点记录~ ✏️ 鸿蒙&#xff08;OpenHarmony&#xff09;南向开发保姆级知识点汇总~ ✏️ 鸿蒙应用开发与鸿蒙系统开发哪个更有前景&#…

简单易懂,解析Go语言中的struct结构体

目录 4. struct 结构体4.1 初始化4.2 内嵌字段4.3 可见性4.4 方法与函数4.4.1 区别4.4.2 闭包 4.5 Tag 字段标签4.5.1定义4.5.2 Tag规范4.5.3 Tag意义 4. struct 结构体 go的结构体类似于其他语言中的class&#xff0c;主要区别就是go的结构体没有继承这一概念&#xff0c;但可…

记录一下用docker克隆某授权制定ip的环境恢复

#首先还是要看日志根据问题去进行调整 java web的老项目配置文件一般是 bin启动里边的脚本 还有conf中的 xml配置文件 再或者就是classes中的配置文件,再或者就是lib中的jar包中的配置文件 1.安装docker 2.创建docker网络 docker network create --driver bridge --subnet…

SAP-ABAP:使用ST05(SQL Trace)追踪结构字段来源的步骤

ST05 是 SAP 提供的 SQL 跟踪工具&#xff0c;可以记录程序运行期间所有数据库操作&#xff08;如 SELECT、UPDATE、INSERT&#xff09;。通过分析跟踪结果&#xff0c;可以精准定位程序中结构字段对应的数据库表。 步骤1&#xff1a;激活ST05跟踪 事务码 ST05 → 点击 Activa…

【落羽的落羽 数据结构篇】树、二叉树

文章目录 一、树1. 树的概念和结构2. 树的相关术语 二、二叉树1. 概念与结构2. 满二叉树3. 完全二叉树4. 二叉树的性质5. 二叉树的存储结构 一、树 1. 树的概念和结构 之前我们学习了线性表&#xff0c;今天我们再来接触一种全新的数据结构——树。 树是一种非线性的数据结构…

blender bpy渲染禁用日志

效果有待测试&#xff1a; import bpyimport logging # 设置日志级别为ERROR&#xff0c;只有错误信息才会输出 logging.getLogger().setLevel(logging.ERROR) 这段代码会将日志级别设置为ERROR&#xff0c;只会显示错误信息&#xff0c;其他的日志&#xff08;如调试信息、…

CPU、MCU、MPU、SOC、DSP、ECU、GPU、FPGA傻傻分不清楚?一文讲清它们的区别

文章目录 前言一、定义与功能1、CPU&#xff08;Central Processing Unit&#xff0c;中央处理器&#xff09;2、MCU&#xff08;Microcontroller Unit&#xff0c;微控制单元&#xff09;3、MPU&#xff08;Microprocessor Unit&#xff0c;微处理器&#xff09;4、SOC&#x…

前端包管理工具进化论:npm vs yarn vs pnpm 深度对比

前端包管理工具进化论&#xff1a;npm vs yarn vs pnpm 深度对比 一、工具定位与核心差异二、功能特性对比三、优缺点深度解析四、性能实测对比&#xff08;示例数据&#xff09;五、选型建议六、未来趋势 一、工具定位与核心差异 npm (Node Package Manager) Node.js 官方捆绑…

网络安全学习-常见安全漏洞检测以及修复方法-1

渗*透测试 渗透测试就是模拟攻击者入侵系统&#xff0c;对系统进行一步步渗透&#xff0c;发现系统的脆弱环节和隐藏风险。形成测试报告提供给系统的所有者&#xff0c;所有者根据报告对系统进行加固&#xff0c;提升系统的安全性&#xff0c;防止真正的攻击者入侵。 渗透测试…

JVM之JVM的组成

Java 虚拟机&#xff08;JVM&#xff09;是 Java 程序的运行核心&#xff0c;它主要由类加载系统、运行时数据区、执行引擎和本地方法接口这几个关键部分组成。 类加载系统&#xff08;Class Loading System&#xff09; 类加载系统负责在程序运行时动态地将 Java 类加载到 J…

个人简历html网页模板,科技感炫酷html简历模板

炫酷动效登录页 引言 在网页设计中,按钮是用户交互的重要元素之一。这样一款黑色个人简历html网页模板,科技感炫酷html简历模板,设计效果类似科技看板图,可帮您展示技能、任职经历、作品等,喜欢这种风格的小伙伴不要犹豫哦。该素材呈现了数据符号排版显示出人形的动画效…

大白话Vue 双向数据绑定的实现原理与数据劫持技术

咱们来好好唠唠Vue双向数据绑定的实现原理和数据劫持技术&#xff0c;我会用特别通俗的例子给你讲明白。 啥是双向数据绑定 你可以把双向数据绑定想象成一个神奇的“同步器”。在网页里有两部分&#xff0c;一部分是数据&#xff0c;就像你记在小本本上的信息&#xff1b;另一…

java后端开发day18--学生管理系统

&#xff08;以下内容全部来自上述课程&#xff09; 1.业务分析并搭建主菜单 1.需求 采取控制台的方式去书写学生管理系统 2.分析 1.初始菜单 2.学生类 属性&#xff1a;id&#xff0c;姓名&#xff0c;年龄&#xff0c;家庭住址 3.添加功能 键盘录入每一个学生信息并…