王联国 刘小娟
甘肃农业大学信息科学技术学院,兰州,730070
正弦余弦算法(sine cosine algorithm,SCA)[1]是一种基于正弦余弦函数模型的群体智能算法。该算法主要利用三角函数模型的周期振荡性使其趋于问题的最优解,同时嵌入随机参数和自适应参数,平衡算法的全局探索阶段与局部开发阶段。尽管SCA控制参数较少、模型简单、易于实现、全局寻优能力强,但与其他智能优化算法一样,在迭代后期仍易出现局部开发能力差、收敛速度慢和求解精度低等问题,致使算法陷入局部最优。
为了提高SCA的优化性能,国内外学者相继以不同策略对SCA进行了改进。刘勇等[2]通过分析转换参数,设计出了转换参数抛物线函数递减和指数函数递减两种正弦余弦算法,并以协同过滤推荐算法中相似度函数的计算为应用对象,验证了改进指数函数递减正弦余弦算法的可行性和有效性;徐明等[3]提出了一种基于非线性转换参数和随机差分变异策略的改进正弦余弦算法,并利用该算法优化神经网络参数解决了两类经典的分类问题;曲良东等[4]通过对正弦余弦算法进行简化,提出了一种简化的正弦余弦算法,仿真实验结果表明新算法的搜索效率明显高于基本正弦余弦算法;方旭阳等[5]通过引入精英反向学习策略及利用个体的反思学习能力,对正弦余弦算法进行改进,提高了算法的寻优精度,也避免了其未成熟收敛;郭文艳等[6]提出了一种基于精英混沌搜索策略的交替正弦余弦算法,增强了算法的探索能力,降低了算法时间复杂度,提高了算法收敛速度;李银通等[7]提出了一种自学习策略和Lévy飞行的正弦余弦算法,提高了算法的优化性能;何庆等[8]提出了一种基于改进正弦余弦算法的节点部署优化方法,通过引入双曲正弦调节因子、动态余弦波权重系数、拉普拉斯和高斯分布的变异策略,有效提高了无线传感器网络的性能;SHUBHAM等[9]提出了一种改进的全局优化正弦余弦算法,该算法主要将交叉的开发方案与个体解的最佳状态相结合,同时将自学习与全局搜索机制相结合,增强了算法的开发能力,并减少了经典正弦余弦算法搜索方程中存在的多样性溢出问题,最后通过图像分割中的多阈值分割的仿真实验,验证了新算法解决实际优化问题的有效性;CHEN等[10]提出了一种用于求解全局优化和约束实际工程问题的多策略正弦余弦算法,将Cauchy突变算子、混沌局部搜索机制、基于反向学习策略等多种机制与基于差分进化的两种算子相结合,有效避免了算法陷入局部最优;LALIT等[11]提出了一种混合二进制粒子群优化-正弦余弦算法(BPSO-SCA)特征选择方法,仿真实验表明该方法具有良好的性能。
上述改进算法通过调整参数、引入不同局部搜索策略或与其他智能算法相融合等策略,提高算法的优化性能,并且部分改进算法在求解实际复杂问题方面取得了较好的优化效果。然而,分析上述文献发现,SCA与其他智能优化算法的混合模式研究成果相对较少,并且已有的研究成果在实际问题中的应用仍存在一定的局限性。
本文在已有SCA研究的基础上,对缩短算法运行时间、参数位置调整、参数r1的自适应调整及r3的动态调整、与人工蜂群算法的采蜜机制融合、提高收敛速度、平衡全局探索与局部开发能力、防止算法陷入局部最优等方面进行了进一步的探索研究,提出了一种基于采蜜机制的正弦余弦算法(sine cosine algorithm based on the honey gathering mechanism,SCAHGM)。对23个标准测试函数和2个机械优化设计实例进行仿真实验,验证了SCAHGM的可行性、鲁棒性和适用性。
SCA求解优化问题始于一组随机解,并通过全局探索和局部开发两个阶段逐步趋向全局最优解。假设优化问题的候选解对应搜索空间中个体的空间位置,则第i个个体的空间位置可表示为Xi=(Xi1,Xi2,…,XiD)T,i∈{1,2,…,N},N为种群规模,D为搜索空间的维度,f(Xi)为第i个个体的目标函数值,P=(P1,P2,…,PD)T为种群中最优个体的空间位置。首先,在解搜索空间中按下式随机初始化N个个体的空间位置:
(1)
然后,在每一次迭代中,种群中第i个个体以均等概率选取正弦函数或余弦函数更新空间位置,其空间位置更新方程为:
(2)
由式(2)可见,r1、r2、r3和r4是SCA中起重要作用的4个参数。其中,参数r1决定下一次迭代时第i个个体的空间位置区域,它可在当前解与目标最优解间的区域或两者所构成区域以外自由变化;参数r2定义了当前解朝目标最优解向内或向外移动的方向和步长;参数r3的作用是为目标最优解赋予一个随机权重,以反映其所定义的搜索步长对目标最优解增强(r3>1)、减弱(r3<1)或保持(r3=1)的作用;参数r4的作用是以均等概率决定式(2)中正弦和余弦函数部分的迭代更新。随机参数和线性递减参数的设置使得算法能够很好地平衡全局探索与局部开发能力[12]。
SCA能使全局探索和局部开发阶段起到较好的平衡作用,以发现搜索空间中有希望的区域,并最终收敛到全局最优。在整个迭代过程起主要贡献作用的是参数r1,并且r1是一个线性递减函数,其值随迭代次数的增加而线性减小,使用下式自适应地调整与变换式(2)中正弦与余弦的范围:
(3)
式中,t为当前迭代次数;T为最大迭代次数;a为一个值为2的常数。
默认情况下,当迭代过程中满足条件t>T时,算法终止优化过程。
图1为正弦余弦算法的原理示意图。在算法的整个迭代过程中,全局探索能力和局部开发能力的有机协调,体现出了种群个体在不同搜索空间的搜索行为。当正弦和余弦函数的范围位于区间(1,2]和[-2,-1)之间时,SCA全局探索搜索空间;在区间[-1,1]之间时,局部开发搜索空间。
图1 正弦余弦算法原理示意图Fig.1 Principle diagram of SCA
2.1.1每个个体采用相同的参数r1、r2、r3和r4
由于SCA在一次迭代中,r1本身是采用统一的计算公式,即所有个体都采用相同的r1,因此,将SCA中参数r2、r3和r4的位置从每个个体的维度循环内改为维度循环外,使每个个体采用相同的参数r1、r2、r3和r4,并使每个个体的所有维度以相同方式与比例进行搜索,提高算法的搜索效率。
2.1.2按幂递减函数自适应调整参数r1
文献[2]将参数r1改为指数递减函数,分析了参数r1对算法性能的影响。本文调整参数r1为幂递减函数,表达式如下:
(4)
式中,s为调整参数,主要作用是调整非线性幂递减函数的下降速率。
图2反映了算法在最大迭代次数为1000时参数r1按线性递减函数[1]、指数递减函数[2]和幂递减函数变化的趋势。从图2可以看出,在算法的整个迭代过程中,线性递减函数曲线是匀速下降的。相比线性递减函数曲线,指数递减函数曲线随着迭代次数的增加,r1逐渐变小,与线性递减函数曲线下降规律相似,体现出算法全局探索能力和局部开发能力的有机协调。幂递减函数曲线与线性递减函数曲线下降规律不同,在前期迭代次数小,r1较大,当迭代次数大于500时,曲线出现转折,之后执行算法的局部开发阶段,中后期随着迭代次数的持续增加,r1非线性递减,逐渐为0,体现出算法在前期全局探索能力最强,到中后期局部开发能力增强。
图2 参数r1递减曲线对比图Fig.2 Comparison chart of decline curve of parameter r1
由于标准SCA中正余弦算子具有优异的全局探索能力,但局部开发能力较弱,因此本文调整参数r1为幂递减函数以更好地平衡算法的全局探索能力和局部开发能力。
2.1.3动态调整参数r3
参数r3反映其所定义的搜索步长对目标最优解增强(r3>1)、减弱(r3<1)或保持(r3=1)的作用。算法前期,r3在[0,2]之间随机取值,有利于算法的全局搜索,但到中后期既要注重算法的全局探索能力,更要加强算法的局部开发能力,同时要发挥目标最优解对优化过程的实际引导作用,提高算法的优化精度,因此,在算法中后期,r3以一定概率取常数1,减少随机性,加快算法的搜索速度。参数r3的调整策略如下:
(5)
式中,ξ、Ψ分别为[0,1]之间的常数;R2、R3分别为(0,1)和[0,2]之间的随机数。
2.1.4贪婪选择策略
贪婪选择通用于所有的智能优化算法,该策略通过保留种群中的精英个体,使算法进化方向恒定,促使算法尽快找到全局最优解。根据个体i的空间位置Xi和按更新策略产生的新个体空间位置Vi的函数值f(·),选择较优个体进入下一代。对于最小化问题,其选择策略按下式进行:
(6)
同时按照下式更新连续停留次数n:
(7)
2.1.5蜂群采蜜机制
人工蜂群(artificial bee colony,ABC)算法是土耳其学者DERVIS等[13]于2005年受蜜蜂行为启发提出的一种觅食寻优算法。ABC算法利用不同类型蜜蜂(采蜜蜂、观察蜂和侦察蜂)的分工协作机制求解问题的最优解,主要包括种群初始化、采蜜蜂、观察蜂和侦察蜂四个阶段。本文利用ABC算法中的采蜜蜂算子增强SCA的局部开发能力,提高算法的优化精度。在迭代过程中,以一定概率交替执行正余弦算子或采蜜蜂算子,同时利用侦察蜂算子防止算法陷入局部极值,提高全局探索能力,较好地平衡SCA的全局探索和局部开发阶段。
(1)采蜜蜂算子。采蜜蜂算子具有较强的局部开发能力,采蜜蜂根据下式进行邻域搜索并产生新蜜源,同时计算新蜜源的适应度函数值,再采用贪婪选择策略或轮盘赌法更新蜜源:
Vij=Xij+R4(Xij-Xkj)
(8)
式中,Vij为新产生的蜜源位置;R4为[-1,1]之间的随机数;j和k随机选取,j∈{1,2,…,D},k∈{1,2,…,N},且k≠i,N为蜜蜂总数。
(2)侦察蜂算子。侦察蜂算子主要搜寻在蜂巢周围潜在的蜜源。当连续停留次数n达到一定的阈值L仍未找到更优空间位置时,即表明陷入了局部最优,此时蜜蜂的角色由采蜜蜂或观察蜂转变为侦察蜂,并按照式(1)重新搜索随机产生新蜜源。
2.1.6更改空间位置更新方程
因正弦函数sinr2取正值和负值的概率相等,文献[4]去掉式(2)中的绝对值符号,故本文引入该方法并将空间位置更新方程改写为
(9)
SCAHGM的具体步骤如下:
(1)初始化参数,如种群规模N、空间维度D、阈值L、当前迭代次数t、最大迭代次数T、目标精度O及常数a等,随机产生初始种群;
(2)计算种群中每个个体的函数值,并记录全局最优解;
(3)按照概率P执行正余弦算子阶段,按照概率1-P执行采蜜蜂算子阶段,若执行正余弦算子阶段,转向步骤(4),否则,执行采蜜蜂算子阶段,并转向步骤(5);
(4)在正余弦算子阶段,随机产生参数r2和r4,并根据式(4)、式(5)计算参数r1和r3的值,随后再以式(9)更新每个个体的空间位置,转向步骤(6);
(5)在采蜜蜂算子阶段,根据式(8)产生新蜜源;
(6)计算每个个体的函数值;
(7)执行贪婪选择策略,按照式(6)更新每个个体,按照式(7)更新连续停留次数n;
(8)更新全局最优解;
(9)执行侦察蜂算子,若连续停留次数n达到阈值L,则采蜜蜂变为侦察蜂,按照式(1)随机产生新蜜源;
(10)判断是否达到算法设定的收敛条件(如最大迭代次数T或目标精度O),若是,停止迭代并输出最优值,否则转向步骤(3)。
SCAHGM的时间复杂度主要由标准SCA、采蜜蜂算子和侦察蜂算子三部分组成,并按照概率P执行正余弦算子阶段,按照概率1-P执行采蜜蜂算子阶段。假设种群规模为N,问题维度为D,最大迭代次数为T,则正余弦算子的时间复杂度为O1(NPDT),采蜜蜂算子的时间复杂度为O2(N(1-P)T),侦察蜂算子的最大时间复杂度为O3(NDT/L),则SCAHGM的时间复杂度为
O(SCAHGM)=O1(NPDT)+O2(N(1-P)T)+
O3(NDT/L)
(10)
标准SCA的时间复杂度为
O4(SCA)=O5(NDT)
(11)
以求23个标准测试函数的最小值为例进行仿真实验,客观评价SCAHGM的优化性能,函数表达式详见文献[1,14],其他参数及目标精度如表1所示。其中,f1~f7为单峰函数,在定义域内只有一个极值,用于测试算法的收敛速度和寻优精度,并考察算法的优化性能;f8~f13为多峰函数,f14~f23为固定维度多峰函数,由于这些函数较复杂,存在多个极值点,因而算法寻找全局最优值的难度较大,常用于测试算法全局探索与避免早熟的能力。
表1 23个标准测试函数参数表Tab.1 Parameters of 23 standard benchmark functions
为了测试SCAHGM的性能,本文将其与标准SCA在种群规模一定,维度和最大迭代次数变化的条件下进行比较。实验中两种算法参数设置为:在单峰函数f1~f7和多峰函数f8~f13中,种群规模N=30,维度D为30、50、100,对应的最大迭代次数T为1000、2000、3000;在固定维度多峰函数f14~f23中,种群规模N=30,最大迭代次数T=1000。即,为了公平起见,两种算法采用相同的函数最大评价次数M(M=NT)。此外,经实验验证,当阈值L=140、式(4)中的s=5、式(5)中的ξ=0.5和Ψ=0.6以及根据式(2)中参数r4的范围所确定步骤(3)中概率P=0.5时,SCAHGM优化效果较好。两种算法独立运行30次的实验结果见表2,其中,加粗数据代表对比结果的最优值,下同。图3~图8列出了N=30,T=1000的部分测试函数收敛曲线。其中,平均最优值反映算法的收敛速度和求解精度,标准差反映算法的稳定性和鲁棒性,最大值和最小值反映可行解的质量,成功率反映算法达到目标精度的执行效率,平均运行时间反映算法运行的时间成本,收敛曲线图反映算法的收敛趋势变化。
表2 SCAHGM与标准SCA的实验结果Tab.2 Experiment results of SCAHGM and standard SCA
续表
续表
图3 f5平均最优值的收敛曲线Fig.3 Convergence curve of the average optimal value of f5
图4 f6平均最优值的收敛曲线Fig.4 Convergence curve of the average optimal value of f6
图5 f8平均最优值的收敛曲线Fig.5 Convergence curve of the average optimal value of f8
图6 f11平均最优值的收敛曲线Fig.6 Convergence curve of the average optimal value of f11
图7 f15平均最优值的收敛曲线Fig.7 Convergence curve of the average optimal value of f15
图8 f23平均最优值的收敛曲线Fig.8 Convergence curve of the average optimal value of f23
从不同峰型的测试函数在平均最优值、标准差、成功率和平均运行时间四方面的优化效果来看:在f1~f7单峰函数中,SCAHGM在四方面均达到了显著的优化效果。其中,f5(Rosenbrock)被称为“病态函数”,是一个对大部分优化函数都难以收敛到全局最优的极复杂单峰函数,而SCAHGM却能得到较好解,这说明SCAHGM较好地克服了SCA的缺陷;在f8~f13的多峰函数中,对寻优难度较大的f8,SCAHGM在维度D为30,50,100下的稳定性不如SCA。然而,对具有许多局部极小值的函数f10和多模态函数f12、f13,SCAHGM均达到了一定数量级的明显优化效果,并且在具有强烈振荡的复杂多模态函数f9和f11中,也已取得了理论最优值;在f14~f23的固定维度多峰函数中,SCAHGM均表现出较好的优化能力。在所有测试函数的对比结果中,SCAHGM平均运行时间变短,这是由于在局部开发能力较强的采蜜蜂算子中,每个个体只更新一个维度的数据,再结合全局探索能力强的正余弦算子,运算速度加快,时间变短。
收敛曲线图中,除了图5和图8外,其余曲线图的纵坐标为函数平均最优值的对数值,横坐标为迭代次数。另外,图4和图6均以10-10作为截止值,避免函数值变为0致使曲线中断。
分析收敛曲线图发现,对f8和f23而言,SCAHGM分别约在500和150次时开始收敛,并随着迭代次数增加持续收敛;对f5、f6和f11而言,SCAHGM一开始就表现出显著的收敛速度,迭代次数不到100次时已收敛;对于SCAHGM,f15在前期收敛速度和精度稍逊于SCA,但当迭代次数在400次以后,其收敛速度加快并取得更高的收敛精度。总体上看,SCAHGM的收敛速度和精度都有显著的改进效果。
为验证以上实验结果的真实性并更好地评估算法性能,采用显著性水平为5%的Wilcoxon signed ranks检验进行测试。表3给出了SCAHGM与标准SCA的Wilcoxon signed ranks统计决策结果。其中,“+”表示SCAHGM优于SCA,“-”表示SCAHGM逊于SCA,“=”表示两者作用相当。
表3 显著性水平为0.05的Wilcoxon signed ranks统计决策Tab.3 Statistical decision based on Wilcoxon signed ranks
表3中决策结果显示,23个测试函数的所有显著性pvalue均小于0.05,并且决策结果均显示为“+”,这说明了SCAHGM的有效性,也表明SCAHGM较标准SCA具有显著的优化效果。
以上分析表明,改进SCAHGM具有更好的收敛效果、更高的优化精度、较强的鲁棒性和较小的时间代价,从而验证了算法的优越性。
为进一步测试SCAHGM的性能,将其与SCA的改进算法及近年来提出的其他元启发式算法进行比较。
(1)将SCAHGM与SCA改进算法OBSCA[15]、COSCA[6]、m-SCA[16]、ESCA[2]、MSCA[17]进行比较。为体现公平性,SCAHGM和其他SCA改进算法采用相同的参数设置,并使算法的函数最大评价次数保持一致。除了ESCA 和SCAHGM外,其他算法的实验数据取自各文献。表4列出了SCAHGM与几种SCA改进算法的性能比较结果,其中,Ave表示平均值,Std表示标准差。由表4可以看出,在SCAHGM与OBSCA、COSCA、m-SCA三者的比较实验中(函数最大评价次数M=15 000),SCAHGM相对于OBSCA,除了测试函数f7的优化效果稍逊于OBCSA外,其余测试函数的优化效果均优于OBSCA;SCAHGM相对于COSCA,除了测试函数f2、f21、f22和f23的优化效果稍逊于COSCA外,SCAHGM对其他19个测试函数的优化效果优于COSCA;SCAHGM相对于m-SCA,除了测试函数f13和f16的优化效果稍逊于m-SCA外,SCAHGM对其他21个测试函数的优化效果相对较好;在SCAHGM与ESCA比较实验中(M=300 000),SCAHGM相对于ESCA,除了测试函数f7的优化效果逊于ECSA外,在其他22个测试函数上的优化效果仍然相对较好;在SCAHGM与MSCA比较实验中(M=500 000),SCAHGM相对于MSCA,除了测试函数f1~f4、f6、f9、f11、f14和f16的优化效果与MSCA相当,f5、f8、f12、f13和f15的优化效果逊于MSCA外,在其他6个测试函数上的优化效果仍然相对较好(测试函数f21~f23在文献[17]中无实验数据)。
(2)将SCAHGM与其他元启发式算法[18]及HPSO[19]进行比较。将SCAHGM、HPSO及文献[18]中的7种算法的参数设置相同,即所有算法的函数最大评价次数仍保持一致。除SCAHGM和HPSO进行仿真实验外,其余对比算法的实验数据来自文献[18],表5列出了SCAHGM与其他元启发式算法的性能比较结果(表中仅列出了算法运行30次后取得的平均最优值)。
表4 SCAHGM与SCA改进算法的性能比较Tab.4 Performance comparison of SCAHGM with the improved algorithms for SCA
表5结果显示,相比其他8种对比算法,除了测试函数f7、f12、f13、f16和f17外,SCAHGM对其他18个测试函数都能得到最好的优化结果,表现出了相对显著的优化性能。
综上所述,基于采蜜机制的正弦余弦算法求解精度高、鲁棒性强、收敛性好,取得了相对较好的优化效果,提高了算法的优化效率。
表5 SCAHGM与其他元启发式算法的性能比较Tab.5 Performance comparison of SCAHGM with other meta-heuristic algorithms
本文将提出的SCAHGM用于求解机械优化设计问题,以说明提出算法的可行性和适用性。
选取设计变量、列出目标函数、给定约束条件是构造优化设计问题数学模型的重要步骤。该问题的数学模型一般可以描述为如下约束非线性优化设计问题[20]:
(12)
群体智能优化算法求解约束优化问题时需要将约束问题转化为无约束优化问题进行求解。将约束优化问题转化为无约束优化问题的主要处理方法是罚函数法[21]。该方法的基本思想是:构造惩罚项并将其加入目标函数中以构成惩罚函数,使约束优化问题转化为求解一系列无约束极值子问题,然后按照无约束优化方法来求解。该策略将对求解过程中违反约束条件的迭代点进行“惩罚”,进而迫使无约束子问题的极小值点趋向于满足约束条件[22]。
基于此,罚函数的一般形式为
F(X)=f(X)+λ(h2(X)+[min(0,g(X))]2)
(13)
式中,F(X)为惩罚函数;f(X)为优化问题的原始目标函数;λ为惩罚因子;h2(X)和[min(0,g(X))]2分别为与等式有关的惩罚项和与不等式有关的惩罚项。
利用SCAHGM优化2个机械设计问题,通过计算机仿真来验证所提出算法的性能。实例1来自文献[16],实例2来自文献[19]。为了体现比较的公平性,SCAHGM与其他算法作对比时,实例1和实例2中SCAHGM参数设置分别为:N=50,T=2500和N=30,T=2700。另外,因实例均受约束限制,SCAHGM采用罚函数法处理约束越界。算法独立运行30次并取最优值,具体实验结果如表6~表8所示。
表6 不同算法对实例1的最优解比较Tab.6 Comparisons of the optimal solution for example 1
表7 不同算法对实例2的最优解比较Tab.7 Comparisons of the optimal solution for example 2
表8 不同算法求解实例2的统计结果Tab.8 Statistical results of the optimal solution for example 2 by different algorithms
4.3.1悬臂梁设计问题
根据悬臂梁平面结构[16],该问题受不同单元梁高度(或宽度)约束,设计目标为使悬臂梁矩形截面的质量尽可能小。其数学模型如下:
(14)
式中,f(x)为最小化悬臂梁矩形截面的质量;设计变量
xi表示不同单元梁的高度(或宽度)。
文献[1,16,23-24]给出了该实例的解,表6所示是SCAHGM与其他文献获得最优解的比较结果。可以明显地看出,SCAHGM获得的最优解要优于其他文献中算法的最优解。
4.3.2压力管道设计问题
根据压力管道平面结构[19],该问题的设计目标为最小化费用总成本,包括材料、成形和焊接的成本。其数学模型如下:
(15)
式中,f(x)为最小化费用总成本;四个设计变量x1,x2,x3和x4分别表示壳体厚度、头部厚度、内半径和除头部外的圆柱形截面长度,x1和x2必须为1.5875 mm(0.0625 in)的整数倍,x3和x4为连续变量。
文献[19,25-30]给出了该实例的解,表7所示是SCAHGM与其他文献获得最优解的比较结果,表8给出了不同算法求解实例2获得最优值统计结果的比较(表中g1(x)~g4(x)部分的数据来自文献[30])。
由表7可见,SCAHGM的最优解与HPSO的最优解相当,且优于其他算法的最优解。同时,在表8的统计结果中,除了文献[28]外,SCAHGM的平均值和标准差小于对比算法的平均值和标准差,这表明SCAHGM的平均搜索能力优于其他算法,具有较好的收敛精度和较强的鲁棒性。此外,根据表8所列的其他算法求解函数值和SCAHGM处理的约束函数值,SCAHGM获得的函数最优解为(x1,x2,x3,x4)=(0.81250,0.437 50,42.098 445 595 854 919,176.636 599 813 031 040),最优值f(x)=6 059.714 427 88,约束函数g1(x)=0,g2(x)=-0.035 880 829 015 544 069,g3(x)=0,g4(x)=-63.363 400 186 968 960 000,均满足约束条件。
(1)通过悬臂梁设计和压力管道设计问题的实例验证,本文算法SCAHGM可以取得优于或相近于其他文献算法的优化结果,说明SCAHGM优化机械设计问题是可行有效的。
(2)由于机械优化设计问题的数学模型具有一定的通用性,故其他工程优化设计问题均可表示为式(12)描述的约束非线性优化设计问题,通过罚函数法转化为无约束优化问题,再用改进算法SCAHGM求解,表明SCAHGM具有一定的实际应用可行性。
(1)更改标准正弦余弦算法(SCA)中参数的位置,使每个个体采用相同的参数r1、r2、r3和r4,并按幂递减函数非线性调整参数r1,动态调整参数r3,减少随机性,提高了算法的搜索效率。
(2)利用智能算法通用的贪婪选择策略,加快了算法的收敛速度,并协同侦察蜂算子,提高了种群多样性,防止算法陷入局部最优。
(3)按一定概率交替执行正余弦算子或采蜜蜂算子,更好地平衡算法的全局探索与局部开发能力,有效弥补了算法局部开发能力差的不足。
(4)选取23个标准测试函数进行仿真实验,将基于采蜜机制的正弦余弦算法(SCAHGM)与标准SCA、改进SCA和其他元启发式算法进行比较,结果表明提出的SCAHGM具有较好的寻优性能。
(5)通过优化2个机械设计实例,验证了SCAHGM的可行性和适用性,为解决工程设计优化问题提供了一条新途径。