近些年,元启发算法[1]发展迅速,2019年的海鸥优化算法(seagull optimization algorithm,SOA)[2]就是元启发算法的代表算法之一。该算法通过模拟海鸥种群的协作飞行和捕食猎物实现对问题的求解,并在多个工程领域内得到了成功应用。但是,由于该算法缺少严格的数学理论支持,在解决较高维度的函数优化问题时出现了收敛速度慢、解精度低和容易早熟等问题[3-5]。
针对标准SOA容易早熟、解精度低等问题,毛清华等[6]提出一种融合改进Logistics混沌和正弦、余弦算子的自适应t分布海鸥算法,该算法采用改进的Logistics混沌映射机制初始化种群,在种群的搜索阶段引入正弦、余弦算子更新个体的位置,并引入非线性收敛因子协调算法的局部搜索和全局搜索,加快算法的收敛速度;同时,为了克服算法早熟,对种群内最优个体所在的位置引入自适应t分布变异策略加以扰动。王宁等[7]提出一种黄金正弦引导与Sigmoid连续化的海鸥优化算法,该算法在海鸥迁徙阶段,引入Sigmoid函数的惯性权重引导海鸥种群的全局搜索;在捕食阶段,将置信度低的区域设置为搜索禁忌,保证种群一直向置信度高的优秀解空间区域飞行;并且加入黄金正弦机制帮助种群寻找搜索范围,指引种群的位置更新,提高寻优能力。秦维娜等[8]提出一种基于惯性权重的海鸥优化算法,采用非线性递减的惯性权重计算附加变量的值来调整海鸥的位置,通过Levy飞行和随机指数值增加海鸥飞行的随机性,增强算法搜索寻优的全局能力,避免算法寻优搜索陷入局部最优。Che等[9]提出了一种混合鲸鱼-海鸥优化算法,该算法首先在SOA螺旋式攻击行为中融入鲸鱼优化算法的空间收缩策略,以提高SOA的计算精度;其次,在SOA的搜索算子中引入Levy飞行策略,引导算法跳出局部最优的约束。上述改进机制在一定程度上改善了算法的性能,但是均没有考虑种群内粒子之间的信息交流问题。
本文提出一种具有学习机制的改进海鸥优化算法(improved SOA with learning,ISOAL)。该算法在迁移算子中引入基于当前粒子和种群均值间差异的学习机制,在算法的后期引入精英粒子的反向学习(opposition-based learning,OBL)[10-11],以提升算法性能。
标准海鸥优化算法流程如图1所示。
图1 标准海鸥优化算法流程
Figure 1 Flow chart of standard SOA
在迁移算子中设置2个搜索代理和
前者用于搜索解空间内不与其他粒子发生碰撞的位置;后者用于搜索当前种群内的最优粒子所在位置,记Xb(t)为种群内的最优粒子,则有
(1)
(2)
式中:A=fs-[t·(fs/Tmax)],fs=2,Tmax为最大迭代次数;B=2A2·rand(0,1)。
当前粒子与最优粒子之间的相对距离为
(3)
海鸥采用一种螺旋式飞行的方式对猎物进行攻击,在三维空间的运动为
(4)
式中:r为海鸥在螺旋飞行时的半径;θ∈[0,2π]为随机角度;u、v为常数。
当前粒子的捕食算子为
Xi(t+1)=Di(t)·gxgygz+Xb(t)。
(5)
综上,算法迭代过程中的当前粒子轨迹为
Xi(t+1)=|(A-B)·Xi(t)+B·Xb(t)|·
gxgygz+Xb(t)。
(6)
由式(6)可知,海鸥优化算法的迭代过程仅有2个参数。其中参数A为线性变化,在一定程度上提升了算法的收敛速度,但对于解空间为多峰的复杂优化问题,算法容易忽略部分解空间。此外,该算法没有考虑种群内部非最优粒子之间的信息交流和互动行为,而自然界中的生命群体均会存在内部信息的沟通和学习行为,这种学习行为在很大程度上可以主导种群的演化方向。基于此,本文将从以下几个方面对算法进行改进。
记Xm(t)为当前种群全部粒子的平均状态值,则式(1)的空间搜索机制更新为
(7)
式中:α为(0,1)的随机数;Xm(t)-Xi(t)表示当前粒子向种群均值学习,这样可以在算法早期有效扩大搜索范围,避免过早的收敛。
标准SOA中的参数A受fs的制约,从2线性递减到0,收敛速度较快。但是,大多数优化问题的解空间为非线性,线性参数并不适合对空间进行有效搜索,容易忽略部分空间。因此将参数A调整为非线性以保证粒子对解空间的非线性搜索,见式(8):
(8)
式中:betarand(·)为能产生beta分布的随机数生成器。
图2为参数A和A′随迭代次数的变化曲线。在算法前期,参数A′能够在较长时间内保持较大值且变化幅度较大,以扩大种群内粒子的搜索范围。在算法后期,参数A′逐渐减小,强化粒子对自身所在区域的精细勘探。
图2 参数A和A′随迭代次数的变化曲线
Figure 2 Curves of A and A′ with the number of iterations
群体智能算法中,适应度优的精英粒子必然包含了更多的引导种群向全局最优收敛的有益信息。令精英粒子执行反向学习,既能加快算法的收敛速度,也加强了算法的局部探索能力。
定义1 反向解。设在[a,b]上存在一个实数x,则x的反向数x′=a+b-x。基于此,假设在R域上存在某n维点X=(x1,x2,…,xn),并且xi∈[ai,bi],则定义为X的反向点。其中,
为[0,1]上均匀分布的随机数,称作一般化系数。
定义2 基于反向解的优化。设待优化问题为最小问题,适应度函数为f(X),若存在某个可行解X,其反向解为X′,若f(X′)<f(X)成立,则用X′替换X。
算法1 OBL算法。
输入:个体Xi(t),下限a,上限b,最大迭代次数Itermax;
输出:最优个体Xi(t);
Step 1 设置迭代次数为m=0;
Step 2 生成一般化系数k∈[0,1],依据定义1生成反向解X′t(m),并保存;
Step 3 迭代次数没有满足结束条件,则m=m+1,转至Step 2;
Step 4 在Xi(t)和所产生的全部反向解中选择最优的个体替换Xi(t)并输出,算法结束。
算法2 具有学习机制的海鸥优化算法ISOAL。
输入:种群规模N,最大迭代次数等参数;
输出:最优粒子Xb(t)。
Step 1 在解空间内随机初始化种群POP;
Step 2 计算粒子的适应度值选择最优粒子Xb(t);
Step 3 以式(7)、(8)替换式(1),执行迁移算子;
Step 4 执行捕食算子;
Step 5 精英粒子变化幅度小于0.01,则执行反向学习;
Step 6 算法不满足终止条件,则转至Step 2;
Step 7 输出最优粒子Xb(t),算法结束。
设算子最大迭代次数为Tmax,种群规模为N,分析上述算法可知,主要操作集中于Step 3~6,则时间复杂度为O(Tmax·N)。
为了验证所提算法的性能,应用MATLAB 2019编程实现上述算法,实验环境为联想笔记本(intel i7,16 GB)。选择10个CEC2017标准测试函数来测试算法的性能,列于表1中,以近年来最新算法HPSO-TS[12]、V-DVGA[13]、DADE[14]和CMA-ES[15]作为对比算法。ISOAL的种群规模设置为30,问题维度为50,算法的迭代次数为3 000。所有算法均独立运行30次,以消除偶然因素的影响,取解均值和方差进行对比,如表2所示。
表1 CEC2017测试函数
Table 1 CEC2017 functions
测试函数函数名称搜索域f1shifted and rotated bent cigar[-100,100]f2shifted and rotated sum of different power function[-100,100]f3shifted and rotated Zakharov function[-300,300]f4shifted and rotated rosenbrock's function[-100,100]f5shifted and rotated rastrigin's function[-600,600]f6shifted and rotated expanded scaffer's f6 function[-60,60]f7shifted and rotated lunacek bi-rastrigin's function[-100,100]f8shifted and rotated non-continuous rastrigin's function[-200,200]f9shifted and rotated levy function[-100,100]f10shifted and rotated schwefel's function[-150,150]
表2列出了SOA、HPSO-TS、V-DVGA、DADE、CMA-ES与本文算法在CEC2017的10个函数上的解均值和方差。由表2可知,在单峰函数f1、f2、f3上,本文算法ISOAL的解均值和方差均最小。多峰函数f4、f6的解空间并不复杂,考验的是算法跳出局部最优约束的能力,从实验结果看,ISOAL在解均值和方差上比CMA-ES算法略差,但是仍然优于其他算法。多峰函数中的f5、f7、f8的解空间较复杂,存在多个局部最优极值点,因此,对应算法不仅需要有摆脱局部极值约束的能力,而且还要有一定的勘探新解的能力。在f5函数上,HPSO-TS、V-DVGA和ISOAL的解均值精度相差不大,ISOAL的方差优于其他几个算法,表现出较好的稳定性。在f7、f8函数上,ISOAL的解均值和方差均最小,稳定性良好。在函数f9上,ISOAL的解均值和方差均略高于DADE算法,但也在同一个数量级上,优于其他算法。函数f10是一个多峰函数且局部最优值数量众多,ISOAL同样表现出色,解均值和方差均最小,优于其他对比算法。
表2 与其他改进的群智能算法的对比
Table 2 Comparison with other improved swarm intelligence algorithms
测试函数SOAHPSO-TSV-DVGACMA-ESDADEISOAL解均值方差解均值方差解均值方差解均值方差解均值方差解均值方差f12.13E-032.95E-034.32E-142.84E-113.62E-513.19E-535.69E-472.76E-386.28E-483.00E-406.47E-533.62E-54f21.18E-013.49E-011.84E-225.11E-344.22E-257.64E-233.11E-314.54E-271.37E-225.88E-271.56E-345.94E-28f38.05E-021.17E-028.17E-125.44E-147.56E-271.20E-133.14E-211.07E-275.05E-223.25E-285.32E-303.06E-32f49.05E-022.06E-015.10E-061.53E-036.18E-062.20E-055.09E-082.65E-084.01E-052.12E-024.49E-072.71E-06f56.70E-013.48E-016.12E-022.40E-025.31E-023.09E-027.03E-012.23E-016.94E-013.07E-026.69E-021.85E-02f69.51E-025.42E-017.94E-063.53E-085.31E-023.09E-025.91E-094.50E-095.42E-062.46E-076.71E-091.74E-08f73.78E-021.25E-015.14E-062.55E-044.28E-062.02E-013.82E-082.77E-047.21E-041.58E-042.29E-083.46E-05f87.23E-023.41E-024.63E-035.51E-013.67E-042.16E-041.72E-056.43E-023.90E-022.69E-043.81E-062.14E-04f92.45E-021.57E+023.15E-012.14E-013.26E+002.94E+007.64E-023.67E-012.98E-045.67E-053.66E-046.83E-05f107.42E-011.03E+004.27E-027.22E-013.26E-021.38E-044.16E-037.80E-042.37E-028.09E-033.08E-053.91E-05
图3为V-DVGA、HPSO-TS、ISOAL和SOA算法在f1、f2、f3、f4、f5和f6上的收敛曲线。
图3 算法收敛曲线对比
Figure 3 Comparison of algorithm convergence curve
由图3可知,在函数f1、f2、f3和f4上,ISOAL初始种群的最优适应度就已经优于其他算法,并且经过非常少的迭代次数就迅速收敛,收敛速度明显优于其他算法。在函数f1上,HPSO-TS搜索到的最小适应度值为0.224 5,ISOAL搜索到的最小适应度值为0.191 2,相比下降14.83%。在函数f3上,HPSO-TS搜索到的最小适应度值为0.165 7,ISOAL搜索到的最小适应度值为0.154 7,相比下降6.63%。在函数f5上,HPSO-TS与ISOAL搜索到的最小适应度值相差不大。在函数f6上,HPSO-TS搜索到的最小适应度值为0.363 3,ISOAL搜索到的最小适应度值为0.342 7,相比下降5.67%。在函数f2上,ISOAL算法和其他算法的收敛曲线在迭代初期交叉在一起,但是ISOAL算法在经过较少的迭代之后,能够迅速收敛到最优解周围,并开始进行勘探操作。结果表明,ISOAL所获得最终解的精度优于其他算法。
针对工程中常见的张力弹簧问题[16]进行测试实验,以检测本文算法在约束问题上的性能。实验目标是在满足挠度、剪应力和振动频率等约束条件下,获得最小质量的弹簧。其变量分别为弹簧的线圈直径W(x1)、弹簧的平均直径D(x2)、弹簧的有效线圈数L(x3)。该问题的目标函数(总代价)和约束函数分别为
(9)
(10)
式中:0.05≤x1≤2.00; 0.25≤x2≤1.30; 2.0≤x3≤15.0。
表3列出了对比算法在该问题上的求解结果,对比算法的数据取自文献[16]。由表3可知,ISOAL在仅有8 000次的评价次数内,获得的总代价比SOA降低了3.5%,弹簧的线圈直径和平均直径分别下降了5.7%和3.5%。
表3 算法在张力弹簧问题上的结果对比
Table 3 Result comparison of design of tension/compression springs
算法W(x1)D(x2)L(x3)总代价评价次数SzAPSO0.0530.36411.3890.014 1160 000SAMGA0.0520.36711.4520.014 5100 000GSDE0.0510.36211.2540.013 290 000SOA0.0530.37511.4550.014 490 000ISOAL0.0500.36211.3960.013 980 000
表4为对比算法约束条件函数值。上述实验结果表明,ISOAL能够比较好地解决约束优化问题,且具有良好的性能。
表4 弹簧设计问题的约束函数值对比
Table 4 Comparison of constrained function values in design of tension/compression springs
算法g1(x)g2(x)g3(x)g4(x)SzAPSO-8.02E-04-3.54E-04-4.061-0.760SAMGA-3.78E-09-6.59E-09-4.063-0.778GSDE-1.25E-13-1.24E-14-4.069-0.761SOA-7.63E-06-5.32E-07-4.054-0.731ISOAL-3.58E-14-7.16E-13-4.057-0.799
为了解决标准SOA算法内部粒子之间缺少交流的问题,本文提出了一种具有学习机制的海鸥优化算法ISOAL。该算法引入了基于粒子状态差异的学习机制,使当前粒子先向种群内粒子的均值状态学习,再搜索非冲突位置,执行位置迁移,并将原参数A由线性递减修改为非线性自适应递减方式,增强种群对解空间的全局搜索能力。为了提升算法的解精度,在后期引入精英反向学习,通过该机制加强对精英个体所在空间的勘探。在CEC2017和张力弹簧上的测试实验表明,ISOAL不仅具有较快的收敛速度,还具有较好的解精度和鲁棒性。
海鸥优化算法出现时间较短,相应的研究成果较少,下一步应该加强对其收敛性能的研究。借鉴其他算法以改善SOA的性能,探索新的应用领域也是未来主要的研究方向。
[1] 徐霜, 万强, 余琍. 基于学习理论的改进粒子群优化算法[J]. 郑州大学学报(工学版), 2019, 40(2): 29-34.
XU S, WAN Q, YU L. An improved particle swarm optimization algorithm based on learning theory[J]. Journal of Zhengzhou university (engineering science), 2019, 40(2): 29-34.
[2] DHIMAN G, KUMAR V. Seagull optimization algorithm: theory and its applications for large-scale industrial engineering problems[J]. Knowledge-based systems, 2019, 165: 169-196.
[3] CHEN X, LI Y L, ZHANG Y C, et al. A novel hybrid model based on an improved seagull optimization algorithm for short-term wind speed forecasting[J]. Processes, 2021, 9(2): 387.
[4] 岳文静,孙鹏,陈志.基于改进海鸥算法的认知无人机网络频谱分配[J].计算机技术与发展,2021,31(9):7-12.
YUE W J,SUN P,CHEN Z. Spectrum allocation of cognitive UAV network based on improved seagull algorithm[J]. Computer technology and development,2021,31(9):7-12.
[5] 许乐, 莫愿斌, 卢彦越. 基于改进海鸥优化算法的PID控制器参数优化[J]. 机床与液压, 2021, 49(16): 17-23.
XU L, MO Y B, LU Y Y. Parameter optimization of PID controller based on improved seagull optimization algorithm[J]. Machine tool & hydraulics, 2021, 49(16): 17-23.
[6] 毛清华,王迎港.融合改进Logistics混沌和正弦余弦算子的自适应T分布海鸥算法[EB/OL].(2021-10-22)[2021-11-13].http:∥kns.cnki.net.zzulib.vpn358.com/kns8/defaultresult/index.
MAO Q H, WANG Y G. Adaptive T distribution seagull optimization algorithm combining improved logistics chaos and sine-cosine operator[EB/OL].(2021-10-22)[2021-11-13].http:∥kns.cnki.net.zzulib.vpn358.com/kns8/defaultresult/index.
[7] 王宁, 何庆. 融合黄金正弦与sigmoid连续化的海鸥优化算法[J]. 计算机应用研究, 2022, 39(1): 157-162, 169.
WANG N, HE Q. Seagull optimization algorithm combining golden sine and sigmoid continuity[J]. Application research of computers, 2022, 39(1): 157-162, 169.
[8] 秦维娜, 张达敏, 尹德鑫, 等. 一种基于非线性惯性权重的海鸥优化算法[J]. 小型微型计算机系统, 2022, 43(1): 10-14.
QIN W N, ZHANG D M, YIN D X, et al. Seagull optimization algorithm based on nonlinear inertia weight[J]. Journal of Chinese computer systems, 2022, 43(1): 10-14.
[9] CHE Y H, HE D X. A hybrid whale optimization with seagull algorithm for global optimization problems[J].Mathematical problems in engineering,2021,2021: 6639671.
[10] TIZHOOSH H R. Opposition-based learning: a new scheme for machine intelligence[C]∥International Conference on Computational Intelligence for Modelling, Control and Automation and International Conference on Intelligent Agents, Web Technologies and Internet Commerce. Piscataway:IEEE, 2005: 695-701.
[11] 刘琨, 赵露露, 王辉. 一种基于精英反向和纵横交叉的鲸鱼优化算法[J]. 小型微型计算机系统, 2020, 41(10): 2092-2097.
LIU K, ZHAO L L, WANG H. Whale optimization algorithm based on elite opposition-based and crisscross optimization[J]. Journal of Chinese computer systems, 2020, 41(10): 2092-2097.
[12] 周文峰, 梁晓磊, 唐可心, 等. 具有拓扑时变和搜索扰动的混合粒子群优化算法[J]. 计算机应用, 2020, 40(7): 1913-1918.
ZHOU W F, LIANG X L, TANG K X, et al. Hybrid particle swarm optimization algorithm with topological time-varying and search disturbance[J]. Journal of computer applications, 2020, 40(7): 1913-1918.
[13] 孙敏, 叶侨楠, 陈中雄. 云环境下方差定向变异遗传算法的任务调度[J]. 计算机应用, 2019, 39(11): 3328-3332.
SUN M, YE Q N, CHEN Z X. Task scheduling of variance-directional variation genetic algorithm in cloud environment[J]. Journal of computer applications, 2019, 39(11): 3328-3332.
[14] 沈鑫, 邹德旋, 张强. 采用双变异策略的自适应差分进化算法及应用[J]. 计算机工程与应用, 2020, 56(4): 146-157.
SHEN X, ZOU D X, ZHANG Q. Adaptive differential evolution algorithm using double mutation strategies and its application[J]. Computer engineering and applications, 2020, 56(4): 146-157.
[15] 赵云涛, 梅伟, 李维刚, 等. 基于改进CMA-ES算法的机器人轨迹规划[J]. 计算机仿真, 2019, 36(12): 317-322.
ZHAO Y T, MEI W, LI W G, et al. Robot trajectory planning based on improved CMA-ES algorithm[J]. Computer simulation, 2019, 36(12): 317-322.
[16] 李牧东, 赵辉, 翁兴伟, 等. 基于最优高斯随机游走和个体筛选策略的差分进化算法[J]. 控制与决策, 2016, 31(8): 1379-1386.
LI M D, ZHAO H, WENG X W, et al. Differential evolution based on optimal Gaussian random walk and individual selection strategies[J]. Control and decision, 2016, 31(8): 1379-1386.