翻筋斗觅食海鸥优化算法-附代码
翻筋斗觅食海鸥优化算法
文章目录
- 翻筋斗觅食海鸥优化算法
- 1.海鸥优化算法
- 2. 改进海鸥优化算法
- 2.1 非线性参数 A 策略
- 2.2 翻筋斗觅食策略
- 3.实验结果
- 4.参考文献
- 5.Matlab代码
- 6.python代码
摘要:针对基本海鸥优化算法(SOA)在处理复杂优化问题中存在低精度、慢收敛和易陷入局部最优的不足,提出了一种基于翻筋斗觅食策略的SOA算法(SFSOA)。该算法首先采用基于倒S型函数的控制参数A非线性递减策略更新海鸥个体的位置,以改善个体的质量和加快收敛速度;引入一种基于翻筋斗觅食策略的学习机制以增加海鸥个体位置的多样性,避免算法在搜索后期陷入局部最优值。
1.海鸥优化算法
基础海鸥优化算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/107535864
2. 改进海鸥优化算法
2.1 非线性参数 A 策略
在 SOA 中, 海鸥个体的迁移行为是算法的一种重要操作, 通过引人一个参数 A A A 来控制海鸥个体位置, 避免海鸥个体在 飞行寻优过程中与其他相邻个体发生碰撞, 不产生重复的位 置。因此,参数 A A A 在 S O A \mathrm{SOA} SOA 搜索过程中对平衡算法的勘探和开 采能力起重要作用。然而, 从式 (2) 可以看出, 参数 A A A 的值随 迭代次数增加从 f c f_c fc 线性递减到 0 。一般来说, f c f_c fc 的取值为 2 , 即 在 SOA 迭代过程中 A A A 的值由 2 线性减少至 0 。
在利用 S O A \mathrm{SOA} SOA 解决优化问题中, 其搜索过程非常复杂且呈 现出一个非线性下降趋势。同时, 待求问题也需要算法的探索 性和开发性行为发生非线性变化, 以避免局部最优解。若控制 参数 A A A 纯粹地以线性递减的方式模拟海鸥群体的迁移过程, 就会降低 S O A \mathrm{SOA} SOA 的寻优搜索能力。因此, 本文提出一种基于倒 S S S 型函数的非线性递减控制参数 A A A 策略, 其数学表达式为
A = f c , max − ( f c , max − f c , min ) × 1 1 + e η − μ (12) A=f_{c, \text { max }}-\left(f_{c, \text { max }}-f_{c, \text { min }}\right) \times \frac{1}{1+\mathrm{e}^{\eta-\mu}}\tag{12} A=fc, max −(fc, max −fc, min )×1+eη−μ1(12)
其中: f c , max f_{c, \text { max }} fc, max 和 f c , min f_{c, \text { min }} fc, min 分别为频率控制参数 f c f_c fc 的最大值和最小值; η \eta η 和 μ \mu μ 均为常数。从式 (12) 可知, 在 SOA 的寻优过程中, 参数 A A A 的值以非线性方式进行递减可增强算法的全局搜索能力, 同 时既能避开海鸥个体之间的位置重叠, 也可在全局探索和局部 开发能力上获得一个较好的平衡。
2.2 翻筋斗觅食策略
在算法搜索后期,所有海鸥个体均向当前群体中最优个体所在区域靠拢, 导致群体多样性损失, 如果当前最优个体不是 全局最优解, 则算法陷人局部最优, 这是群体智能优化算法的 固有缺点。为了克服这个缺点, 研究者在群体智能优化算法中 引人许多策略如变异算子、反向学习、Lévy 飞行、透镜成像学 习、小孔成像学习等。翻筋斗受食是蝠鲼在捕食时最有效的一 种方式, 当找到食物源时, 它们会做一系列向后翻筋斗动作, 围 绕浮游生物 (猎物) 旋转, 将其吸引到自己身边。受这种现象 启发, Zhao 等人 提出了一种新型的翻筋斗受食策略用于群 体智能优化算法中, 原理实现如下: 在这种策略中, 猎物的位置 被视为一个支点, 每只蝠鲼都倾向于围绕枢轴和翻筋斗来回游 动到一个新的位置, 其数学模型为
X ( t + 1 ) = X ( t ) + S ⋅ ( r 1 ⋅ X b e s t − r 2 ⋅ X ( t ) ) (13) X(t+1)=X(t)+S \cdot\left(r_1 \cdot X_{b e s t}-r_2 \cdot X(t)\right) \tag{13} X(t+1)=X(t)+S⋅(r1⋅Xbest−r2⋅X(t))(13)
其中: X X X 为蝠鲼个体位置; X best X_{\text {best }} Xbest 是当前全局最优个体位置; S S S 称 为空翻因子; r 1 r_1 r1 和 r 2 r_2 r2 分别是 [ 0 , 1 ] [0,1] [0,1] 的随机数。
为了降低 S O A \mathrm{SOA} SOA 在搜索后期陷人局部最优的概率, 将蝠鲼 翻筋斗受食策略引人到 SOA 中, 其数学表达式为
P s ( t + 1 ) = P s ( t ) + S ⋅ ( r 1 ⋅ P b s − r 2 ⋅ P s ( t ) ) (14) P_s(t+1)=P_s(t)+S \cdot\left(r_1 \cdot P_{b s}-r_2 \cdot P_s(t)\right)\tag{14} Ps(t+1)=Ps(t)+S⋅(r1⋅Pbs−r2⋅Ps(t))(14)
其中: 空翻因子 S = 2 S=2 S=2 。

3.实验结果

4.参考文献
[1]徐明,龙文,羊洋.用于函数优化和特征选择的翻筋斗觅食海鸥优化算法[J].计算机应用研究,2022,39(12):3639-3643+3650.DOI:10.19734/j.issn.1001-3695.2022.05.0224.
5.Matlab代码
6.python代码
相关文章:
翻筋斗觅食海鸥优化算法-附代码
翻筋斗觅食海鸥优化算法 文章目录 翻筋斗觅食海鸥优化算法1.海鸥优化算法2. 改进海鸥优化算法2.1 非线性参数 A 策略2.2 翻筋斗觅食策略 3.实验结果4.参考文献5.Matlab代码6.python代码 摘要:针对基本海鸥优化算法(SOA)在处理复杂优化问题中存在低精度、…...
K8S常见应用场景(六)
Kubernetes 是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态系统。Kubernetes 的服务、支持和工具广泛可用。 Kubernetes 这个名字源于希腊语,意为“…...
《不抱怨的世界》随记
*不抱怨的世界 * 1.天才只有三件事:我的事,他的事,老天的事。抱怨自己的的人,应该试着学习接纳自己;抱怨他人的人,应该试着把抱怨转成请求;抱怨老天的人么,请试着用祈祷的方式来诉求…...
2.2 利用MyBatis实现CRUD操作
一、准备工作 打开MyBatisDemo项目 二、查询表记录 1、在映射器配置文件里引入结果映射元素 在UserMapper.xml文件里创建结果映射元素 将UserMapper接口里抽象方法上的注解暂时注释掉 运行TestUserMapper测试类里的testFindAll()测试方法,查看结果 2、添加…...
自动缩放Kubernetes上的Kinesis Data Streams应用程序
想要学习如何在Kubernetes上自动缩放您的Kinesis Data Streams消费者应用程序,以便节省成本并提高资源效率吗?本文提供了一个逐步指南,教您如何实现这一目标。 通过利用Kubernetes对Kinesis消费者应用程序进行自动缩放,您可以从其…...
介绍js各种事件
目录 一、点击事件 二、鼠标移动事件 三、键盘事件 四、滚轮事件 五、拖放事件 六、窗口大小改变事件 一、点击事件 点击事件是指当用户单击页面上的某个元素时触发的事件。这是最常见和基础的事件之一,也是Web应用程序中最常用的交互之一。 以下是如何使用…...
Python 将 CSV 分割成多个文件
文章目录 使用 Pandas 在 Python 中创建 CSV 文件在 Python 中将 CSV 文件拆分为多个文件根据行拆分 CSV 文件根据列拆分 CSV 文件 总结 在本文中,我们将学习如何在 Python 中将一个 CSV 文件拆分为多个文件。 我们将使用 Pandas 创建一个 CSV 文件并将其拆分为多个…...
S32K144开发板
目录 一.S32K144开发板概述 二.产品技术和功能规格 三.开发环境 1.S32K144的开发环境主流是这么三种: 2.开发板Demo工程 四.S32K144开发板实物图 五、汽车大灯硬件架构 一.S32K144开发板概述 S32K14…...
三波混频下的相位失配原理
原理推导 在四波混频情况下,实现零相位失配是一件很困难的事情。因为在四波混频中,相位调制和增益都依赖于相同的参数,即克尔非线性 γ \gamma γ。这个问题可以用嵌入在传输线上的辅助共振元件的复杂色散工程来部分解决。 但是在三波混频中…...
软考A计划-试题模拟含答案解析-卷一
点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&am…...
Ubuntu下编译运行MicroPython Unix版本
文章目录 github拉取源码更新模块编译运行 github拉取源码 到Github(https://github.com/micropython/micropython)上下载源码 终端输入,如果提示识别不到gh命令,就sudo apt-get install gc安装一下。 再根据提示在终端里登录自己的github账号。 再次…...
实现用QCustomPlot封装的插件,放到绘图软件中可以点击和移动
首先,我们需要在绘图软件中创建一个插件,并将QCustomPlot控件添加到插件中。QCustomPlot是一个功能强大的绘图控件,可以轻松创建各种类型的图表,包括折线图、散点图、柱状图等等。 接下来,我们需要为QCustomPlot控件添加鼠标事件处理函数,以实现点击和移动的功能。QCust…...
【源码解析】Nacos配置热更新的实现原理
使用入门 使用RefreshScopeValue,实现动态刷新 RestController RefreshScope public class TestController {Value("${cls.name}")private String clsName;}使用ConfigurationProperties,通过Autowired注入使用 Data ConfigurationProperti…...
界面组件DevExpress ASP.NET Core v22.2 - UI组件升级
DevExpress ASP.NET Core Controls使用强大的混合方法,结合现代企业Web开发工具所期望的所有功能。该套件通过ASP.NET Razor标记和服务器端ASP.NET Core Web API的生产力和简便性,提供客户端JavaScript的性能和灵活性。ThemeBuilder工具和集成的Material…...
阿里系文生图(PAI+通义)
PAI-Diffusion模型来了!阿里云机器学习团队带您徜徉中文艺术海洋 - 知乎作者:汪诚愚、段忠杰、朱祥茹、黄俊导读近年来,随着海量多模态数据在互联网的爆炸性增长和训练深度学习大模型的算力大幅提升,AI生成内容(AI Gen…...
Netty概述及Hello word入门
目录 概述 Netty是什么 Netty的地位 Netty的优势 HelloWord入门程序 目标 pom依赖 服务器端 客户端 运行结果 入门把握理解 概述 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable hi…...
汇编寄存器之内存访问
1.内存中字的存储: 在CPU中用一个16位寄存器来存储一个字, 高8位存高字节,低8位存低字节 如AX寄存器存在一个字,那么AH存高字节,AL存低字节 在内存中存储字时是用两个连续的字节来存储字的, 这个字的低字节存在低单元,高字节存在高单元. 如下表示: 内存单元编号 单元中…...
C++进阶 —— lambda表达式(C++11新特性)
目录 一,模板函数sort 二,lambda表达式 一,模板函数sort 在C98中,如对一个数据集合中的元素进行排序,可使用模板函数sort,如元素为自定义类型,需定义排序时的比较规则;随着C的发展…...
数据结构04:串的存储结构与KMP算法
前言 参考用书:王道考研《2024年 数据结构考研复习指导》 参考用书配套视频:4.1_1_串的定义和基本操作_哔哩哔哩_bilibili 特别感谢: Google Bard老师[解释KMP,修改BUG]、Chat GPT老师[修改BUG]、BING老师[封面图]~ 当我请求BI…...
零基础快速搭建私人影音媒体平台
目录 1. 前言 2. Jellyfin服务网站搭建 2.1. Jellyfin下载和安装 2.2. Jellyfin网页测试 3.本地网页发布 3.1 cpolar的安装和注册 3.2 Cpolar云端设置 3.3 Cpolar本地设置 4.公网访问测试 5. 结语 转载自cpolar极点云的文章:零基础搭建私人影音媒体平台【…...
IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...
盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...
《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...
智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...
html-<abbr> 缩写或首字母缩略词
定义与作用 <abbr> 标签用于表示缩写或首字母缩略词,它可以帮助用户更好地理解缩写的含义,尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时,会显示一个提示框。 示例&#x…...
