原创度高!性能好!|基于信息共享与黄金搜索的改进星鸦优化算法在50+个函数上进行测试(Matlab)

文章来源于我的个人公众号:KAU的云实验台,主要更新智能优化算法的原理、应用、改进

前面的文章中,KAU介绍了星鸦优化算法(Nutcracker Optimization Algorithm,NOA)[1],NOA算法模拟了星鸦觅食、存储以及缓存搜索、恢复的行为。在性能上,与近年发表的算法/高引算法/CEC竞赛获胜算法相比均排名第一。

在这里插入图片描述

然而由没有免费的午餐(NFL)定理可知,没有元启发式优化算法可以处理所有的优化问题,在某些情况下(可结合应用),NOA算法同样存在全局/局部开发能力不平衡,易陷入局部最优等问题。

因此本文将对其进行改进,并针对改进算法在CEC2017、CEC2020、CEC2022上进行函数测试。
在这里插入图片描述

本文可以为各位的算法改进提供一定思路,同时进一步也提供了相关改进的理论公式PDF与代码。

00 目录

1 星鸦优化算法(NOA)原理

2 基于信息共享与黄金搜索的改进星鸦优化算法原理

3 代码目录

4 算法性能

5 源码获取

01 星鸦优化算法(NOA)原理

在往期的文章中KAU介绍了星鸦优化算法(NOA)的原理及其代码实现。

02 基于信息共享与黄金搜索的改进星鸦优化算法原理

2.1 两阶段种群初始化策略

初始种群的分布位置影响元启发式算法的精度和收敛速度[2]。因此在求解不确定分布问题时,种群的初始位置需要在搜索空间中均匀分布,以确保种群的多样性与遍历性。原NOA算法中,其初始位置通过随机数生成,这样不能保证其遍历性和多样性,种群质量不高,会影响算法的收敛速度。因此,本文对其初始化过程作出改进。

2.1.1 佳点集策略

佳点集是一种有效的均匀选点方法。该理论由华罗庚先生提出[3],在许多群智能优化算法中都得到了应用,由佳点集的定义,设GD是D维欧式空间中的单位立方体,若r∈GD,形为:
在这里插入图片描述

其偏差满足:
在这里插入图片描述

则称Pn(k)为佳点集,r为佳点,其中C(r, ε)是是只与r、ε(ε>0)有关的常数。取rk={2cos(2pir/p)},1≤k≤n,p是满足(p-D/2)≥D的最小素数,理论[3]上已证明,用n个佳点构成的加权和比采用任何其他n个点所得到的误差都要小,并尤其适用于高维空间的近似计算。以二维单位搜索空间为例,随机取点与佳点集方法取点的对比如下:

在这里插入图片描述

由图可以看出,采用佳点集策略能够提高种群在搜索空间中的遍历性,有助于加快收敛速度。

2.1.2 镜面反射学习策略

反向学习(OBL)策略是由TIZHOOSH于2005年提出[4],在当前个体区域内生成相反个体,对比选取适应度高的个体进行后续迭代,可以有效提高种群的质量及多样性,加强算法的搜索能力,由于其出色的性能而被广泛用于改进元启发式算法。

同时,Zhang基于镜面反射原理提出镜面反射学习(SRL)[5],且已经证明,SRL策略生成的解决方案优于OBL,因此,本文将SRL策略引入佳点集生成的初始种群,进一步提升种群的质量。

具体而言,在物理学中,入射光和反射光之间存在明显的对应关系,如图(a)所示。基于这一现象,当前解和反向解可以以图1(b)所示的方式建模。
在这里插入图片描述

设平面存在一点X(a,0),其对点为X’(b,0),且任意的X和X’都属于[Xl,Xu]之间,当光入射时,入射角和反射角分别是和,O是[Xl,Xu]的中点,O=(x0,0)。根据反射定理,有如下关系:
在这里插入图片描述

当时,上述方程可写为:

在这里插入图片描述

其中u是预设的比例因子,当u取不同值时,b可表示为:

在这里插入图片描述

由此可以看出,当u改变时,b可以遍历[Xl,Xu]之间的所有值。设xi是镜面中的一点,则其镜面对点xpi可由下式计算:

在这里插入图片描述

2.2 参数自适应调整

勘探阶段指算法对全局空间的搜索能力,决定了算法能否获得最优解;开发阶段指对局部空间的搜索能力,决定了算法获得最优解的速度。勘探和开发之间的平衡做的越好,算法的性能就越好。然而NOA的局限之一是其在勘探与开发阶段之间的转换并不平衡, NOA在觅食/存储阶段的Pa1控制其勘探/开发的转换, Pa1是线性减小的,而实际情况中,星鸦觅食/存储过程极可能是非线性变化的;同时,寻找储藏区/找回食物阶段中,控制勘探与开发的参数Pa2是固定值0.2,其不能有效刻画星鸦找储藏区和取食物的复杂性,同样阶段二的算法也不能得到有效执行。显然这些参数(Pa1与Pa2)并不能准确贴近实际迭代过程。

同时,NOA的两个阶段之间的转换通过随机数选择,这将导致搜索过程不稳定,优化结果鲁棒性不强。同时,通过对星鸦习性的观察,能够注意到星鸦在其对应的阶段一觅食/存储中会倾向于大范围搜索食物以及存储,这种搜索是随机且宽范围的;而在阶段二寻找储藏区/找回食物时,星鸦则会根据参考点进行固定范围的搜索,这种搜索则没有阶段一的广度与随机性。因此星鸦在两种阶段的搜索策略所表现出的特征存在差异,可能有比单纯采用随机数进行阶段选择更好的方式来表现星鸦在两阶段的特征。

针对以上论述中所提到的问题,本文提出新的自适应参数调整策略,使其更适应于复杂问题的优化求解。

Pa1与Pa2的更新如下:

在这里插入图片描述

由图可知,新策略更侧重于在前期进行充分的全局探索,避免算法面对复杂优化问题时陷入局部最优状态。在后期阶段,它迅速跌至较低概率值,这有助于算法精细搜索以加速收敛。

阶段1与阶段2的转换参数如下:
在这里插入图片描述

由图可知,随着迭代次数的增加,阶段转换呈现周期性,这也与星鸦春秋季寻觅松子等坚果、冬季寻找储藏起来的坚果的动态过程一致,设置该参数以增强算法迭代的稳定性。

2.3 融合黄金搜索算法的勘探阶段

黄金搜索优化算法(Golden Search Optimization,GSO)是一种结合了粒子群优化算法(PSO)和正余弦算法(SCA)的优化方法,黄金搜索算法的步长评估策略是搜索算法的核心,具有运算量小、全局搜索性能好的优点,将黄金搜索算法的更新策略融合到星鸦搜索食物的勘探阶段,以帮助星鸦更高效地搜索食物。

2.4 信息共享

星鸦通常会单独或成对活动,偶成小群。若星鸦单独行动,则搜索效率低,因为同一个地点有可能被不同的星鸦重复搜索或从始至终都没有被探索。若使星鸦成群协作,实现信息互动,则将极大提升食物搜索效率,提升了星鸦群体在冬季的存活率。

因此,本文引入一种信息共享的搜索策略,以实现星鸦之间的信息交互,充分探索领域信息。

在这里插入图片描述

该策略的核心思想是采用不同交流算子的个体之间进行间接或直接信息交换以增加种群的多样性,充分利用各自的领域信息。此外,该共享策略使算法在整个优化搜索过程中展现更丰富的随机行为,避免算法陷入局部最优。

改进后的算法流程如下:

在这里插入图片描述

03 代码目录

在这里插入图片描述

MATLAB编写,在Readme文件中对各文件夹内容作了说明:
在这里插入图片描述

代码都经过作者重新注释,代码清爽,可读性强。

04 算法性能

为检验改进算法的优化性能,本文选择CEC2017、2020、2022函数集进行测试,具体函数表达式可以参照下面的文章:

测试结果:

CEC2017

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

CEC2020

在这里插入图片描述

CEC2022

在这里插入图片描述

部分表格
在这里插入图片描述

仅运行ISGS-NOA
在这里插入图片描述

05 源码获取

GZH后台回复NOA1
或私信

后面KAU打算更一些应用型文章,如有粉丝提到的资源优化配置/泊位分配优化等,若各位有感兴趣想要实现的应用也可以私信我哦!

参考文献

[1] Abdel-Basset M , Mohamed R , Jameel M ,et al.Nutcracker optimizer: A novel nature-inspired metaheuristic algorithm for global optimization and engineering design problems[J].Knowledge-Based Systems, 2023, 262:110248-.

[2] W. Yang, K. Xia, T. Li, M. Xie, F. Song, A multi-strategy marine predator algorithm and its application in joint regularization semi-supervised ELM, Mathematics 9(3) (2021) 291, https://doi.org/10.3390/math9030291.

[3]华罗庚,王元.数论在近似分析中的应用[M].北京:科学出版社. 1978: 83-86.Hua LG,Wang Y.Application of number theory in approximate analysis[M. Beijing: Science Press,1978:83-86.

[4]TIZHOOSH H R. Opposition-based Learning: A New Scheme for Machine Intelligence[C]//IEEE. Proceedings of Computational Intelligence for Modelling, November 28-30, 2005, Vienna, Austria. New York: IEEE, 2005: 695-701.

[5]Y. Zhang, “Backtracking search algorithm with specular reflection learning for global optimization,” Knowledge-Based Systems, vol. 212, Article ID 106546, 2021.

[6]Noroozi M, Mohammadi H, Efatinasab E, et al. Golden Search Optimization Algorithm[J]. IEEE Access, 2022(10): 37515-37532.

[7]SUN J J, WANG L L, YANG C Y, et al. An Ancient BCR-Like Signaling Promotes ICP Production and Hemocyte Phagocytosis inOyster. iScience, 2020. 23 (2). DOI: 10. 1016/ j. isci. 2020.100834.

另:如果有伙伴有待解决的优化问题(各种领域都可),可以发我,我会选择性的更新利用优化算法解决这些问题的文章。

如果这篇文章对你有帮助或启发,可以点击右下角的赞/在看(ง •̀_•́)ง(不点也行),你们的鼓励就是我坚持的动力!若有定制需求,可私信作者。

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

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

相关文章

人脸识别概念解析

目录 1. 概述 2. 人脸检测 3. 人脸跟踪 4. 质量评价 5. 活体检测 6. 特征提取 7. 人脸验证 8. 人脸辨识 1. 概述 人脸识别在我们的生活中随处可见,例如在大楼门禁系统中,它取代了传统的门禁卡或密码,提高了进出的便捷性和安全性。在商…

现代神经网络总结(AlexNet VGG GoogleNet ResNet的区别与改进)

VGG NIN GoogleNet 1.VGG,NIN,GoogleNet的块结构图对比(注意:无AlexNet) 这些块带来的区别与细节 AlexNet未使用块,主要对各个层进行了解: 卷积:捕捉特征 relu:增强非线性 池化层:减少计算量 norm:规范数据分布 全连接层:分类VGG块的改善(对比AlexNe…

理解Linux文件系统

文章目录 一、引言二、Linux文件系统概述1、文件系统的结构2、文件系统目录树的逻辑结构 二、文件系统的特性1、super block:文件系统的超级块2、inode:文件系统的索引节点3、inode table4、block:文件系统的数据块5、块组描述符表&#xff0…

Python 与 TensorFlow2 生成式 AI(二)

原文:zh.annas-archive.org/md5/d06d282ea0d9c23c57f0ce31225acf76 译者:飞龙 协议:CC BY-NC-SA 4.0 第四章:教授网络生成数字 在前一章中,我们涵盖了神经网络模型的构建基块。在这一章中,我们的第一个项目…

CGAL 点云数据生成DSM、DTM、等高线和数据分类

原文链接 CGAL 点云数据生成DSM、DTM、等高线和数据分类 - 知乎 在GIS应用软件中使用的许多传感器(如激光雷达)都会产生密集的点云。这类应用软件通常利用更高级的数据结构:如:不规则三角格网 (TIN)是生成数字高程模型 (DEM) 的基础,也可以利…

【综述】多核处理器芯片

文章目录 前言 Infineon处理器 AURIX™系列 TC399XX-256F300S 典型应用 开发工具 参考资料 前言 见《【综述】DSP处理器芯片》 Infineon处理器 AURIX™系列,基于TriCore内核,用于汽车和工业领域。 XMC™系列,基于ARM Cortex-M内核&…

Power BI:如何将文件夹批量Excel(多sheet页)文件导入?

故事背景: 业务同事想用Power BI分析近两年市场费用。 数据源全部是Excel文件,并且以每月一个Excel文件的方式,统一存放到同一文件夹下面。 重点,每张Excel文件会有多张sheet页,用区分每家分公司的费用信息。 目前…

2023年蓝桥杯C++A组第三题:更小的数(双指针解法)

题目描述 小蓝有一个长度均为 n 且仅由数字字符 0 ∼ 9 组成的字符串,下标从 0 到 n − 1,你可以将其视作是一个具有 n 位的十进制数字 num,小蓝可以从 num 中选出一段连续的子串并将子串进行反转,最多反转一次。小蓝想要将选出的…

使用 Python 和 OpenCV 进行实时目标检测的详解

使用到的模型文件我已经上传了,但是不知道能否通过审核,无法通过审核的话,就只能 靠大家自己发挥实力了,^_^ 目录 简介 代码介绍 代码拆解讲解 1.首先,让我们导入需要用到的库: 2.然后,设…

ansible-playbook离线升级centos内核

目录 概述实践ansible目录结构关键代码执行效果 结束 概述 内核离线包官网下载地址如下: 地址 实践 ansible目录结构 如对 ansible 不熟悉,离线包下载有问题,请至此地址下载,按本文操作可直接使用。 相关文章链接如下 文章地…

水电气能耗管理云平台

安科瑞薛瑶瑶18701709087/17343930412 能耗管理云平台采用泛在物联、云计算、大数据、移动通讯、智能传感器等技术手段可为用户提供能源数据采集、统计分析、能效分析、用能预警、设备管理等服务,平台可以广泛应用于多种领域。

Centos的一些基础命令

CentOS是一个基于开源代码构建的免费Linux发行版,它由Red Hat Enterprise Linux (RHEL) 的源代码重新编译而成。由于 CentOS是基于RHEL构建的,因此它与RHEL具有非常类似的特性和功能,包括稳定性、安全性和可靠性。并且大部分的 Linux 命令在C…

基于H.264的RTP打包中的组合封包以及分片封包结构图简介及抓包分析;FU-A FU-B STAP-A STAP-B简介;

H.264视频流的RTP封装类型分析: 前言: 1.RTP打包原则: RTP的包长度必须要小于MTU(最大传输单元),IP协议中MTU的最大长度为1500字节。除去IP报头(20字节)、UDP报头(8字节)、RTP头&a…

ZISUOJ 高级语言程序设计实训-基础C(部分题)

说明&#xff1a; 有几个题是不会讲的&#xff0c;我只能保证大家拿保底分。 题目列表&#xff1a; 问题 A: 求平均数1 思路&#xff1a; 送分题…… 参考题解&#xff1a; #include <iostream> #include <iomanip> using std::cin; using std::cout;int main(…

Django后台项目开发实战二

我们的需求是开发职位管理系统 三个功能&#xff1a; 管理员发布职位候选人能浏览职位用户能投递职位 第二阶段 创建应用 jobs&#xff0c;实现职位数据的建模 python manage.py startapp jobs 然后再 setting .py 注册应用&#xff0c;只需添加应用名称到最后一行 INST…

git 的迁移

现象是gitlab经常会挂掉&#xff0c;linux会显示磁盘空间不足&#xff0c;实际上&#xff0c;我们linux某个目录的空间是4T。这个空间应该是足够的。猜测是gitlab的安装目录不对导致的空间不足。 1、查找原因 用rpm 安装gitlab会有自己的目录&#xff0c;很多安装文件会在opt…

【华为】华为防火墙双机热备

【华为】华为防火墙双机热备 实验需求实验拓扑配置FW5-M前骤单臂路由和VRRP划分防火墙基本区域部署HRP&#xff08;华为心跳协议&#xff09; FW6-B前骤单臂路由和VRRP划分防火墙基本区域部署HRP&#xff08;华为心跳协议&#xff09; LSW2PC NATSNAT &#xff1a;Easy IPDNAT&…

DSP实时分析平台设计方案:924-6U CPCI振动数据DSP实时分析平台

6U CPCI振动数据DSP实时分析平台 一、产品概述 基于CPCI结构完成40路AD输入&#xff0c;30路DA输出的信号处理平台&#xff0c;处理平台采用双DSPFPGA的结构&#xff0c;DSP采用TI公司新一代DSP TMS320C6678&#xff0c;FPGA采用Xilinx V5 5VLX110T-1FF1136芯片&#xff…

如何在Spring Boot中配置数据库密码加密

如何在Spring Boot中配置数据库密码加密&#xff1f; alibaba/druid Wiki GitHub 使用ConfigFilter alibaba/druid Wiki GitHub 巧用Druid数据源实现数据库连接密码的加密解密功能 import com.alibaba.druid.filter.config.ConfigTools;public class Testttt {public stat…

【IDEA】IDEA自带Maven/JDK,不需要下载

IDEA是由Java编写的&#xff0c;为了保证其运行&#xff0c;内部是自带JDK的。IDEA 2021 及 之后的版本是自带Maven的&#xff1a; 视频连接&#xff1a; https://www.bilibili.com/video/BV1Cs4y1b7JC?p4&spm_id_frompageDriver&vd_source5534adbd427e3b01c725714cd…