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

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

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

相关推荐
readmancynn3 分钟前
二分基本实现
数据结构·算法
萝卜兽编程5 分钟前
优先级队列
c++·算法
盼海13 分钟前
排序算法(四)--快速排序
数据结构·算法·排序算法
一直学习永不止步28 分钟前
LeetCode题练习与总结:最长回文串--409
java·数据结构·算法·leetcode·字符串·贪心·哈希表
Rstln1 小时前
【DP】个人练习-Leetcode-2019. The Score of Students Solving Math Expression
算法·leetcode·职场和发展
芜湖_1 小时前
【山大909算法题】2014-T1
算法·c·单链表
珹洺1 小时前
C语言数据结构——详细讲解 双链表
c语言·开发语言·网络·数据结构·c++·算法·leetcode
几窗花鸢2 小时前
力扣面试经典 150(下)
数据结构·c++·算法·leetcode
.Cnn2 小时前
用邻接矩阵实现图的深度优先遍历
c语言·数据结构·算法·深度优先·图论
2401_858286112 小时前
101.【C语言】数据结构之二叉树的堆实现(顺序结构) 下
c语言·开发语言·数据结构·算法·