时间:2024-05-04
毕孝儒
(四川外国语大学重庆南方翻译学院,重庆401120)
正弦余弦算法(Sine Cosine Algorithm,SCA)[1]是澳大利亚学者Mirjalili 于2016 年提出的一种新型群体智能优化算法。SCA 算法原理简单易实现,仅使用正弦余弦函数取值在[-1,1]之间的性质,设计种群个体位置更新数学公式,通过多次迭代达到搜索最优解的目的。实验已经证明SCA 算法的搜索精度和收敛速度均优于PSO 算法、FA 算法和GSA 算法等。然而,和其他智能优化算法类似,SCA 算法仍然存在收敛精度低、易陷入局部最优解的不足。鉴于此,许多学者提出了不同的改进策略,Elaziz 等人[2]将反向学习策略引入SCA算法,生成当前个体反向解,在正向与反向空间同时搜索,提高了算法收敛精度;Hathiram 等人[3]结合差分演化算法中的变异、交叉算子,提出了增强性正弦余弦算法,仿真实验结果显示,该算法较基本SCA 算法、PSO算法具有更强的全局寻优能力;Wen Long 等人[4]采用非线性收敛因子平衡SCA 算法的全局探索和局部开采能力,并引入惯性权重对个体位置更新公式进行修正,有效地提升了SCA 算法性能;Shubham 等人[5]在位置更新公式中引入自我学习部分,并采用动态因子对其自适应调正,明显提高了SCA 算法搜索精度。曲良东等人[6]对SCA 算法进行理论分析,提出了一种简化的正弦余弦算法,仿真结果表明该算法搜索效率明显高于SCA 算法。陈聪等人[7]将量子计算引入正弦余弦算法,利用量子比特对位置进行编码、量子旋转门对个体状态进行更新、量子非门实现变异操作,仿真实验验证了算法的有效性。刘勇等人[8]提出了一种转换参数非线性递减的正弦余弦算法,分别以抛物线函数和指数函数控制参数的变化,实验结果表明指数函数对参数的动态调整,较好地平衡了算法得全局勘探和局部开发能力。
对于SCA 算法求解非线性优化问题中存在的收敛精度低、易陷入局部最优解的不足,提出具有对数递减权重的混沌正弦余弦算法。采用对数递减权重描述的非线性权重对当前个体位置进行修正,提高算法收敛精度、加快收敛速度;引入改进Tent 混沌搜索策略增强算法全局寻优能力。仿真实验结果表明,与PSO 算法、GWO 算法、WOA 以及几种改进正弦余弦算法相比,该算法具有更高的求解精度、更快的收敛速度。
假设种群规模为N ,搜索空间维度为D,搜索空间每个个体位置代表优化目标问题的可行解,则第i 个个体在D 维空间位置可表示为i=1,2,…,N 。首先,SCA 算法在搜索空间中随机初始化N 个个体位置,然后,计算依据优化目标函数计算每个个体的适应度值,记录最优个体位置。在算法每一次迭代中,个体根据式(1)更新位置:
其中,a 为正常数,T 为最大迭代次数。
在(1)式位置更新公式中,由于当前个体位置领域范围内的可行解未被充分开发和利用,致使SCA 算法存在全局开发能力强而局部探索能力弱的不足。本文设计基于对数递减权重的非线性权重,以对当前个体位置进行动态修正,实现对最优解邻域周围精细搜索和算法快速收敛。基于双曲正弦函数的非线性权重计算公式如式(3)所示。
上式中,c 为常数因子,t 为当前的迭代次数,Tmax为最大迭代次数。对式(3)两端对t 求一阶导数的结果如式(4)所示。
由上式可知,当t=1,2,…,Tmax时,wt的一阶导数小于0,表明wt在区间[1,Tmax]具有单调递减性。图1展示了常数因子c 取值为4、5、6、7 时的wt权重变化曲线。
图1 不同c 取值对应的wt 权重曲线
鉴于上述分析,本文将改进的位置更新公式定义为:
在SCA 算法的迭代后期,由于群体中所有鲸鱼个体均向最优个体靠拢,致使群体多样性损失,此时,若当前最优个体为局部最优解,则SCA 算法易陷入局部最优。Tent 混沌作为一种非线性运动现象,由于其具有非周期性、随机性、均匀遍历性、规律性、自相关和互相关性小等特点,因而成为避免仿生优化算法陷入局部最优的有效策略[22],其混沌映射数学表达式定义为:
上式中,参数a ∈(0,1),当混沌变量xi∈(0,1),映射处于混沌状态。
对上述Tent 混沌表达式分析可得,迭代序列中存在小周期点(0.2,0.4,0.6,0.8),同时存在不稳周期点(0.25,0.5,0.7)。因此,本文将自适应随机扰动因子μ∗((Imax-i)/Imax)∗rand(0,1)引入Tent 混沌映射中,以避免Tent 混沌序列在迭代过程中落入小周期点和不稳定周期点。改进的Tent 表达式如下:
上式中,参数u=0.005 是扰动强度,Imax为混沌搜索最大次数。当改进Tent 映射到达小周期或不稳定点时,随机扰动算子μ∗((Imax-i)/Imax)∗rand(0,1)对xi序列进行扰动,以使Tent 映射跳出小周期点或不稳定点,再次进入混沌状态。
基于以上分析,本文给出了最优鲸鱼个体自适应随机扰动Tent 的混沌搜索策略,即以当前最优鲸鱼个体位置为基础,采用改进的Tent 进行混沌搜索,将产生的最优解作为新的全局最优解,以使算法在跌代后期能够跳出局部最优解。具体步骤如算法2 所示:
算法1 改进Tent 的混沌搜索
输入:当前最优鲸鱼个体位置X*。
输出:改进Tent 的混沌搜索后最优鲸鱼个体位置Xb。
Step1:采用公式(7)将X*每维映射到(0,1),得到归一化的当前最优解
Step2:将Xi每一维代入改进的Tent 混沌映射公式(8)进 行 混 沌 搜 索,产 生 混 沌 向 量 Xi,其中,i=1,2,…,Imax。
Step3:利用式(8)将Xi+1每一维反映射到原搜索领域内,获取混沌搜索后原空间位置X';
Step4:利用式(9)计算原空间新的搜索位置X''
Step5:计算适应度值f(X''),若f(X'') 具有对数递减权重的混沌正弦余弦算法描述如下: 输入:种群规模N ,维度D,迭代次数最大次数Tmax,迭代次数t=1,改进Tent 的混沌搜索触发参数w=0。 输出:种群最优个体位置Xb。 Step1:计算种群中每个个体的适应度值,记录当前最优个体位置。 Step2:根据式(3)计算wt的值。 Step3:如果r4<0.5,按照式(4.1)更新当前种群个体位置,否则,依据式(4.2)更新当前种群个体位置,计算当前每个种群个体的适应度值,并对其排序,取得当前最优个体位置Xt*。 Step4:若f(Xt*)≥f(Xt-1*),则w=w+1,若w=10 ,转Step5,否则转Step6。 Step5:利用算法2 进行改进Tent 混沌搜索,更新当前最优个体位置,转Step6。 Step6:t=t+1 ,若t 10 个benchmark 测试函数被选择运用进行仿真实验,以测试本文提出算法的优化性能,测试函数信息如表1 所示。其中,f1~f6是单峰函数,用于检验算法的局部开采能力(收敛速度、求解精度),f7~f10是多峰函数,用于检验算法的全局搜索能力。实验采用算法对各测试函数最优值的平均值和标准差评价优化算法性能。仿真实验采用Intel Core i5-2410 处理器,2GRAM,实验环境为MATLAB 7.0。实验统计结果包括优化结果平均值(Mean)和标准差(Std.Dev)。 表1 benchmark 测试函数 为了验证本文算法的有效性,将其与PSO、GWO 以及WOA 算法在10 个测试函数上的优化结果进行对比分析,其中,设置种群规模N 均为30,最大迭代次数Tmax均为500。PSO 算法参数设置中,粒子速度Vmax=6 ,wmax=0.9,wmin=0.2,c1=2,c2=2;GWO 算法参数设置中,a ∈[0,2]线性递减;WOA 算法参数设置中,a ∈[0,2]线性递减;在30 维、100 维搜索空间进行了实验,相应实验结果如表2、表3 所示。图2-图6 给出对比算法在30 维搜索空间对5 个测试函数的优化收敛曲线。 从表2、表3 对比实验结果可以看出,本文提出算法相较于PSO、WOA 算法,对f1~f10函数均具有更高的寻优精度和稳定性。相较于GWO 算法,除了函数f6、f10之外,本文提出算法寻优结果和稳定性均具有明显优势。其中,对函数f1-f3、f5、f10均取得了理论最优值,函数f1-f5、f7~f10标准差达到了最小值0。从图2~9 中对应算法收敛曲线可知,通过采用基于双双曲正弦函数非线性权重能够协调算法局部开采和全局探索能力,提高了算法收敛精度、加快收敛速度,单科目自主学习策略能有效保持种群多样性,增强算法全局寻优能力。 表2 不同算法寻优结果对比(D=30) 表3 不同算法寻优结果对比(D=100) 图2 不同算法在Rosenbrock函数上收敛曲线 图3 不同算法在Ackley函数上收敛曲线 图4 不同算法在Penalized1 函数上收敛曲线 图5 不同算法在Penalized1函数上收敛曲线 图6 不同算法在Griewank函数上收敛曲线 为了进一步验证本文提出算法的有效性,将本文算法与基本SCA 算法、反向学习正弦余弦算法(OBSCA)[2]和改进正弦余弦算法(ISCA)[4]进行实验对比。仿真实验中,种群规模N 均为30,维度为30,最大迭代次数Tmax均为500,改进SCA 算法的参数设置与原文献相同。表4 给出了本文算法与基本SCA 算法、改进SCA 算法对10 个基本测试函数的寻优结果。 从表4 对比实验结果可以看出,相较于其他改进算法,本文算法在函数f1~f3、f5、f10上获得了最小平均值和最小均方差,在函数f4、f7、f8和f9上取得最小均方差,特别是对于单峰病态函数f4,由于其最优点位于平滑、狭长抛物线山谷,一般很难寻优到全局最优点。而从寻优结果可知,4 种算法中只有本文算法在函数f4上取得很好的优化结果。类似地,对于具有多个局部极小值点的复杂多峰函数f9,本文算法收敛精度和稳定性均明显优于其他3 种算法。上述分析结果说明,本文算法在对单峰、多峰函数寻优时比其他3 种算法具有更好优化性能,进一步说明本文算法改进策略是有效的。 表4 SSLSCA 算法与改进SCA 算法寻优结果对比 针对基本正弦余弦算法求解非线性优化问题中存在的收敛精度低、易陷入局部最优解的不足,提出一种具有对数递减权重的混沌正弦余弦算法。采用对数递减权重描述的非线性权重对当前个体位置进行修正,提高算法收敛精度、加快收敛速度;引入改进Tent 混沌搜索策略以有效保持种群多样性,避免算法陷入局部最优。对10 个基准测试函数仿真实验,结果表明,与PSO 算法、GWO 算法、WOA 以及几种改进正余弦算法相比,该算法求解精度、收敛速度得到明显改进。将改进策略运用到大规模约束优化问题、多目标优化问题中,是下一步将要研究的内容。2.3 改进的正弦余弦算法流程
3 仿真实验及结果分析
3.1 测试函数及仿真环境
3.2 与PSO、GWO、WOA算法优化性能对比
3.3 与基本SCA、改进SCA算法优化性能对比
4 结语
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!