原创度高!性能好!|基于信息共享与黄金搜索的改进星鸦优化算法在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.mzph.cn/bicheng/7425.shtml

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

相关文章

如何高效筹备水力发电乙级资质申请材料

1. 明确资质要求 研究最新政策:首先,彻底研究最新的资质申请指南、政策文件和标准要求,确保每一步操作都符合当前规定。理解细节:详细理解资质标准中的每一项要求,包括企业资质、人员配置、技术条件、设备设施等。 2…

docker启动clickhouse全流程操作

1、拉取clickhouse的镜像 docker pull clickhouse/clickhouse-server2、启动clickhouse容器 docker run \ -p 8123:8123 \ -p 3500:9000 \ --name clickhouse-server \ --ulimit nofile262144:262144 \ -e CLICKHOUSE_DBdefault \ -e CLICKHOUSE…

SSL证书中DV、OV和EV有什么区别,又该如何选择

SSL(安全套接层)证书作为一种加密工具,确保了网站与其用户之间传输的信息的安全性。而在选择SSL证书时,我们通常会看到三种类型:域名验证(DV)、组织验证(OV)和扩展验证&a…

Nacos高频面试题及参考答案(2万字长文)

目录 Nacos是什么?它的主要功能有哪些? Nacos在微服务架构中扮演什么角色?

学习前端第三十天(解构赋值,日期和时间)

一、解构赋值 解构赋值 是一种特殊的语法,它使我们可以将数组或对象“拆包”至一系列变量中。 1、数组解构 // 数组解构let arr [c, xx, "dwdw"];let [a, b] arr;console.log(a, b); (1)它“拆开”了数组或对象,将其…

信息系统项目管理师0090:项目经理的影响力范围(6项目管理概论—6.3项目经理的角色—6.3.2项目经理的影响力范围)

点击查看专栏目录 文章目录 6.3.2项目经理的影响力范围1.概述2.项目3.组织4.行业5.专业学科6.跨领域6.3.2项目经理的影响力范围 1.概述 项目经理在其影响力范围内可担任多种角色,这些角色反映了项目经理的能力,体现了项目经理的价值和作用,项目经理会涉及项日、组织、行业、…

免费开源论坛社区社交圈子系统,圈子系统,系统开发,支持二开,包含公众号/app/H5,源码交付!

一款追求体验的社区论坛圈子系统 什么是圈子交友系统? 圈子交友系统(多客开源圈子系统)为会员提供精准交友服务 结合多种营销机制为创业者提供低成本、高效获取注册会员,是婚恋交友行业的创业利器! 多类型内容形式 多场景应用 精准推广、直…

vue cli 自定义项目架子,vue自定义项目架子,超详细

脚手架Vue CLI基本介绍: Vue CLI 是Vue官方提供的一个全局命令工具 可以帮助我们快速创建一个开发Vue项目的标准化基础架子【集成了webpack配置】 脚手架优点: 开箱即用,零配置内置babel等工具标准化的webpack配置 脚手架 VueCLI相关命令…

拼多多标准推广二阶段跑不动怎么办

拼多多推广可以使用3an推客。3an推客(CPS模式)给商家提供的营销工具,由商家自主设置佣金比例,激励推广者去帮助商家推广商品链接,按最终有效交易金额支付佣金,不成交不扣费。是商家破零、积累基础销量的重要…

mysql 按字段查询重复的数据

在 MySQL 中,可以使用多种方法来查询按字段重复的数据。以下是一些最常用的方法: 1. 使用 GROUP BY 和 HAVING 子句 SQL SELECT column_name, COUNT(*) AS count FROM table_name GROUP BY column_name HAVING count > 1; Use code with caution. …

MongoDB(四):条件操作符

条件操作 1、概述2、比较操作2.1、大于操作符-$gt2.2、大于等于操作符-$gte2.3、小于——$lt2.4、小于等于——$lte2.5、范围查询 3、总结 大家好,我是欧阳方超,可以扫描下方二维码关注我的公众号“欧阳方超”,后续内容将在公众号首发。 1、…

程序员的实用神器:高效开发与质量保证的秘诀

程序员的实用神器:高效开发与质量保证的秘诀 在软件开发的海洋中,程序员的实用神器如同航海中的指南针,帮助他们导航、加速开发、优化代码质量,并最终抵达成功的彼岸。这些工具覆盖了从代码编写、版本控制到测试和部署的各个环节…

数据分析的数据模型

数据分析的数据模型 前言一、优化模型1.1线性优化模型1.1.1线性优化模型定义1.1.2线性优化模型求解算法1. 1.2.1图解法1. 1.2.2. 单纯形法 1.1.3 线性优化模型的应用 1.2非线性优化模型1.2.1非线性优化模型定义1.2.2非线性优化划模型求解方法1. 2.2.1有约束非线性模型算法1.2.2…

ThinkPHP8导出Excel单元格为下拉选择框

说明 本文章是基于上一篇ThinkPHP8 导出Excel数据表格文章的完善版,上一篇仅导出为文本框,此处增加下拉框。 其他内容与上一章不变,此处展示不同内容。 更改 1.头部数组修改 增加type类型,text为文本框,select为下…

已解决java.util.IllegalFormatConversionException异常的正确解决方法,亲测有效!!!

已解决java.util.IllegalFormatConversionException异常的正确解决方法,亲测有效!!! 目录 问题分析 报错原因 示例报错代码: 解决思路 解决方法 检查和更正格式说明符 示例修正代码: 调整参数类型…

【Linux 基础 IO】文件系统

文章目录 1.初步理解文件2. fopen ( )的详解 1.初步理解文件 🐧① 打开文件: 本质是进程打开文件; 🐧②文件没有被打开的时候在哪里呢? ----- 在磁盘中; 🐧③进程可以打开很多个文件吗&#xff…

1329. 将矩阵按对角线排序

1329. 将矩阵按对角线排序 题目链接:1329. 将矩阵按对角线排序 代码如下: //参考:https://leetcode.cn/problems/sort-the-matrix-diagonally/solutions/2760094/dui-jiao-xian-pai-xu-fu-yuan-di-pai-xu-p-uts8 class Solution { public:v…

Android Ant编译环境配置(Win)

1、 载ant包: 2、设置环境变量: 3、检查是否设置成功及版本 4、执行命令: android update project -p . -n “projectname”(例如:android update project --target 1 -p . -n “Couplet”)(只输入红色部分也是可以的…

[Docker]容器的网络类型以及云计算

目录 知识梗概 1、常用命令2 2、容器的网络类型 3、云计算 4、云计算服务的几种主要模式 知识梗概 1、常用命令2 上一篇已经学了一些常用的命令,这里补充两个: 导出镜像文件:[rootdocker ~]# docker save -o nginx.tar nginx:laster 导…

HTML5实现酷炫个人产品推广、工具推广、信息推广、个人主页、个人介绍、酷炫官网、门户网站模板源码

1. 首先&#xff0c;创建一个HTML文件&#xff0c;例如index.html&#xff0c;并添加以下内容&#xff1a; html <!DOCTYPE html> <html lang"zh"> <head> <meta charset"UTF-8"> <meta name"viewport" content&q…