胡洁,王盛洁,张涛
长江大学信息与数学学院,湖北 荆州 434023
群智能算法是一种群体迭代搜索算法,具有多样性、鲁棒性和自组织性,已广泛应用于路径规划[1]、时间序列预测[2]、图像处理[3]等领域。经典的群智能算法有蚁群算法(ant colony optimization,ACD)[4]和粒子群(particle swarm optimization,PSO)算法[5],近年来为了解决更为复杂的优化问题,相关学者提出了探路者算法(path finder algorithm,PFA)[6]、樽海鞘群算法(salp swarm algorithm,SSA)[7]、鹰栖息优化(eagle perching optimization,EPO)算法[8]等新型群智能算法。这些群智能算法也存在收敛速度慢、易陷入局部最优的缺陷,对此相关学者已经做出了一些改进,如自适应调优、混合算法等[9]。自适应调优是指在算法迭代过程中,根据所得数据特征自动调整算法参数。王倩和李风军[10]针对自适应遗传算法对较优个体作用不大的情况,引入四分位数间距IQR,自适应调整交叉和变异概率,从而使算法更好的摆脱局部收敛;CHEN等[11]在鲸鱼优化算法中采用双自适应权重策略,将惯性权重表示为局部最优度的非线性函数,以此改进算法的全局搜索和局部搜索能力;LI等[12]提出一种增强的自适应差分进化算法,根据适应度为每个个体匹配交叉率并排序,更好地维持了种群多样性。混合算法则是充分利用2种或多种算法的优势优化单一算法的性能。NGUYEN-VAN等[13]将差分进化和共生有机体搜索相结合,用于多频率约束下的桁架结构尺寸和形状优化;ALWATEER等[14]使用鲸鱼优化算法作为特征选择技术最小化特征数量,并用Naïve贝叶斯分类器实时分类,这一方法能够在较少的时间内处理庞大的医疗数据,且数据准确率更高;JIA等[15]提出了一种基于混合蚱蜢优化算法和最小交叉熵算法的卫星图像分割方法。
EPO 算法模拟了鹰在大自然中栖息的生物特性,在全局范围内随机采样,利用目标函数找到采样点中的最优解,之后将搜索范围缩小,在这个最优解附近进行二次采样,迭代这一过程,执行全局搜索到局部搜索的转变。算法原理简单、易于实现,已被用来解决悬臂梁设计、三杆桁架设计、齿轮系设计等约束问题,但在解决高维问题时,收敛精度低且易陷入局部最优。在上述成果的启发下,笔者提出了一种混合改进的鹰栖息优化(hybrid improved eagle perching optimization,HIEPO)算法:首先,在EPO算法中引入成功率,实现了搜索范围的自适应调整,提高收敛精度;其次,为了避免陷入局部最优,将引入成功率的EPO算法与PSO算法结合以实现双重循环优化。
在EPO算法中,每只鹰的初始位置随机生成,使种群在搜索空间内均匀分布,有利于算法寻优。EPO算法的搜索范围更新如下:
s=s*eta
(1)
式中:s是搜索范围变量,实现算法在全局搜索和局部搜索之间的转变;eta是收缩变量,eta∈(0,1)。
每只鹰的位置更新如下:
(2)
在EPO算法中,收缩变量eta直接影响搜索范围变量,是算法由全局搜索到局部搜索转变的关键,笔者引入成功率自适应调整eta,使这一转变更加有效,从而提高算法的收敛精度。另外,利用PSO算法全局搜索能力强的优点,将引入成功率的EPO算法和PSO算法串行结合达到全面精细搜索,改善算法易于陷入局部最优的缺陷。
在最小化问题中,成功率rs[16]是指适应值减小的鹰的数目cs占总数c的百分比,能够反映群体的寻优状态,计算公式如下:
(3)
笔者将成功率作为算法的反馈参数,使收缩变量随成功率的变化而自适应调整:
eta=(etamax-etamin)*rs+etamin
(4)
在搜索过程中,成功率是不断变化的,eta与成功率rs呈正相关。成功率高反映出鹰种群的适应值偏大,eta也偏大,此时搜索范围变量缓慢减小,鹰种群适应值缓慢减小向最优区域靠近,全局搜索能力强;成功率低则表明鹰种群的适应值在最优点附近,eta偏小,搜索范围变量减小较快,鹰种群适应值在最优区域振荡,局部搜索能力强。成功率rs对eta的改进有效实现了算法由全局搜索到局部搜索的自适应转变,有利于提高算法的收敛精度。
PSO算法[17]的基本概念源于鸟类的觅食行为,当粒子群在整个搜索空间移动时,粒子速度的动态调整由自身经验和其他粒子经验共同实现,个体之间协作,有利于维护种群多样性。
粒子更新公式[18]如下:
(5)
(6)
这里的惯性权重w采用基于S型函数的更新策略[19],公式如下:
(7)
式中:t为当前迭代次数;tmax为最大迭代次数。
将PSO算法与引入成功率的EPO算法串行结合。随机初始化种群,根据标准测试函数计算个体适应值,比较得出初始全局最优xmin;用引入成功率的EPO算法迭代u次后,更新个体最优解及全局最优解;将该组解执行PSO算法操作,同样迭代u次后,更新全局最优解;执行下一次循环操作。子迭代次数u和循环次数l满足(l+1)*2u=tmax,当达到最大迭代次数500时结束算法。迭代过程中,个体在全局范围搜索时,距最优点较远,执行EPO算法操作缩小搜索范围,所有个体缓慢向最优点靠近,增强算法的局部搜索能力;而个体在局部区域振荡时,执行PSO算法操作跳出局部最优,增强算法的全局搜索能力。改进后算法充分利用自适应优势双重循环搜索,寻优性能显著提高。
混合改进的鹰栖息优化算法的具体流程如图1所示。
图1 混合改进的的鹰栖息优化算法流程图
HIEPO算法的实现步骤如下:
步骤1 初始化算法参数,包括搜索范围变量、收缩变量、成功数目、迭代次数;
步骤2 在搜索范围内随机初始化种群并计算适应值,比较找出全局最优值;
步骤3 根据式(2)更新种群及适应值,式(3)计算种群成功率;
步骤4 根据式(4)和(1)更新收缩变量和搜索范围变量;
步骤5 迭代u次后,执行步骤6,否则返回步骤3;
步骤6 通过式(5)和(6)对种群进行PSO操作;
步骤7 同样迭代u次后,执行步骤8,否则返回步骤6;
步骤8 当达到最大迭代次数时,停止;否则,转至步骤3继续搜索。
为验证算法的有效性,这里用HIEPO算法和HEPO算法(混合PSO算法的EPO算法)、IEPO算法(引入成功率的EPO算法)、EPO算法、PSO算法及PFA算法求解3种标准测试函数:单峰(f1~f4),多峰(f5~f8),和定维多峰函数(f9~f12),函数信息如表1所示。所有算法独立运行30次求平均值,种群数设置为200,最大迭代次数设置为500。涉及代码均采用MATLAB R2018b软件编写,编译运行的PC机参数为:64位Windows 10操作系统,Intel(R)Core(TM)i5-8250U CPU 1.80GHz、8.00GB内存。
表1 标准测试函数
将求解得到的平均值(Ave)、标准差(Std)进行比较,结果如表2中所示(表中各函数Ave和 Std的最佳结果已标红)。在表2中,求解单峰函数时,平均值反映出IEPO算法对f1、f2和f4的求解结果较EPO算法有一定改进,HEPO算法求解f1、f2的收敛精度明显提高,而HIEPO算法对所有函数求解结果的改进更加显著,且得到的标准差更小。求解多峰函数时,f5和f8的结果表明,只有HIEPO算法和PSO算法一样能够收敛到全局最优;求解f6时,HIEPO算法较IEPO算法和HEPO算法均有所改进;求解f7时,所有算法的平均值和标准差都没有达到理论最优值。在定维多峰函数f9~f12的求解上,HIEPO算法、HEPO算法、IEPO算法、EPO算法和PFA都收敛到最优解,PSO算法则陷入局部最优。总体来说,IEPO算法只在求解单峰函数时效果较好,HEPO算法在部分函数上优势明显,而HIEPO算法求解3种标准测试函数得到的平均值和标准差小于其他算法,表明HIEPO算法寻优能力强更具有稳定性。
表2 求解结果
为了直观地比较算法的收敛速度,从表1中选出4个函数(f1,f2,f4,f6)绘制收敛曲线图,如图2所示。整体上,IEPO算法的收敛速度最慢,HEPO算法较快,而HIEPO算法较两者有所提升,收敛速度仅慢于PSO算法;而在求解f2和f6时EPO算法无法收敛到最优值,但HIEPO算法以更少的迭代次数收敛到最优值。
图2 函数收敛曲线图
将HIEPO算法应用在拉伸/压缩弹簧设计和压力容器设计的约束优化问题中[20],并与HEPO算法、IEPO算法、PFA[6]、EO算法[21]、SMA[22]、HHO算法[23]等6种新算法进行对比分析,检验算法在解决实际工程问题时的性能。
拉伸/压缩弹簧设计是测试算法性能中经典的约束优化问题。求解满足剪应力、喘振频率和最小挠度等约束的最小重量,设计问题的变量包括直径(d)、平均线圈直径(D)和有效线圈数(P)。问题模型如下:
(8)
各算法对拉伸/压缩弹簧设计问题的求解结果如表3所示,可以看出,HIEPO算法求解得到的弹簧重量最轻,比EPO算法和PSO算法效果更好。
表3 拉伸/压缩弹簧设计问题求解结果
另一个经典的约束优化问题是压力容器设计问题,目的是最小化设计总成本,变量包括壳体厚度(Ts)、头部厚度(Th)、内半径(R)和截面长度(L)。问题模型如下:
(9)
各算法对压力容器设计问题的求解结果如表4所示,可以看出,HIEPO算法的设计总成本低于其他算法,寻优效果最好。
表4 压力容器设计问题比较结果
针对EPO算法收敛精度低、易陷入局部最优的缺陷,引入成功率自适应调整搜索范围参数,使全局搜索和局部搜索间的转变更加有效,并创新性地将PSO算法与之串行结合,实现全面精细搜索,提出了一种混合改进的鹰栖息优化(HIEPO)算法。求解12个标准测试函数和2个约束优化问题的结果表明,HIEPO算法在收敛精度和避免局部最优方面均优于HEPO、IEPO、EPO、PSO和PFA等算法,且收敛速度有所提升,寻优性能良好。