向海昀,李鸿鑫,符 晓,苏小平
(1.西南石油大学 计算机科学学院,成都 610500;2.西南石油大学 网络与信息化中心,成都 610500)
全局优化问题存在于数学、医学、经济、工程实践等领域中。在实际问题中具有许多高维度、多极值、非线性等复杂全局优化的情况。传统优化算法难以得到理想的优化效果,而智能优化算法则提供了优化的解决方法。群体智能优化算法搜索单元使用模拟的生物集体智能和社会智能进行导航,是目前快速发展的一种智能技术[1-2]。典型的群体智能优化算法有粒子群优化(Particle Swarm Optimization,PSO)算法[3]、遗传算法(Genetic Algorithm,GA)[4]、哈里斯鹰优化(Harris Hawks Optimization,HHO)算法[5]、正余弦 优化算 法(SCA)[6]、鲸鱼优 化算法(Whale Optimization Algorithm,WOA)[7]等。
蜜獾算法(Honey Badger Algorithm,HBA)是HASHIM 等[8]提出的一种群体智能优化算法,通过模拟蜜獾觅食行为进行寻优,因其与其他算法仿真实验结果对比表现优异,且算法结构简单,因此具有较好的研究价值。虽然HBA 已被证明在收敛速度和探索-开发平衡方面优于模拟退火(Simulated Annealing,SA)算法、PSO 算法、蚱蜢优化算法等,但是在解决高维复杂问题时,其寻优能力和稳定性等仍需改进,可将其他策略与其相结合以提高算法性能。国内外对HBA 算法在这些问题上的改进研究较少。在对群体智能优化算法改进的领域中,研究人员常将随机学习、反向学习、不同算法与所研究算法相结合,进而提高原算法的寻优性能。如董海等[9]提出一种结合差分进化原则的蜜獾算法,增强算法的寻优能力。刘琨等[10]在WOA 中引入精英反向学习策略初始化种群,以提高种群的质量,利用纵横交叉策略提高种群多样性,防止算法陷入早熟。孟宪猛等[11]提出一种新的WOA,利用精英反向学习初始化种群,提高初始解的质量,加入Lévy 飞行策略,精确搜索范围,避免算法出现早熟。DENG[12]等将Lévy 飞行策略以及GA 中的算子与HBA 相结合,提高算法处理复杂工程问题时的寻优能力。HAN等[13]提出将反向学习与混沌机制引入HBA,增强种群质量,提高原算法的收敛速度。NASSEF 等[14]在HBA 中引入狩猎搜索策略进而提高算法的寻优能力,保持了勘探和开发阶段平稳过渡。LEI 等[15]提出螺旋搜索机制更新HBA 的勘探阶段,从而提高算法全局搜索能力,引入准余弦定律更新原算法中密度因子平衡不同阶段的过渡,设计针孔成像策略,进而提高种群多样性。DÜZENLI 等[16]利用高斯混沌映射处理HBA 中的关键随机变量,提高算法搜索能力,加入对立学习,使问题的搜索空间边界根据对立学习中随机和相反候选解的适应度值而变化,避免算法陷入局部最优。ALSHATHRI 等[17]将HBA 与二维Hénon 映射相结合,以提高算法的基本性能,引入基于量子的优化技术用于提高算法搜索能力,平衡勘探和开发2 个阶段的过渡。ABD ELAZIZ 等[18]在HBA 中引入Lévy 飞行策略,在医学图像领域加快特征选择,有效平衡HBA 的不同寻优阶段。YASEAR等[19]在HBA 中加入反向学习机制,提高种群多样性,用于解决电力消耗成本中的复杂问题。王梓辰等[20]提出一种自适应动态WOA,引入自适应惯性权重系数、非线性收敛因子,平衡全局与局部的过渡,引入广义反向学习机制避免算法陷入早熟。研究人员提出一种基于混沌收敛因子和惯性权重的改进WOA[21],利用混沌收敛因子和惯性权重更新算法寻优路径,对寻优过程中最优个体进行多项式变异,避免算法陷入局部最优。
针对HBA 算法存在的改进空间,本文提出一种多策略改进的蜜獾算法(MSHBA)。该算法在挖掘模式和蜂蜜模式不同寻优路径更新的基础上引入限制反向学习机制,提高种群质量,增强算法的寻优性能,引入自适应权重因子更新寻优路径,促进不同搜索阶段的平稳过渡。提出一种新的饥饿搜索策略,进一步增强算法跳出局部最优的能力。
HBA 算法的模型是通过模拟蜜獾智能行为建立的,其通过模拟蜜獾捕食行为进行寻优。蜜獾种群大小为N,HBA 算法将种群在一定上下限范围内进行随机初始化,如式(1)所示:
其中:xi代表种群N中第i个蜜獾的位置;而uub,i和llb,i分别表示搜索区间的上界和下界;r1为[0,1]的随机数。
蜜獾的捕食能力与第i只蜜獾的距离、猎物的集中强度和气味强度有关。Ii是猎物的气味强度。当Ii增大时,蜜獾速度随之加快。Ii的具体定义如下:
其中:r2为[0,1]的随机数;S为猎物的集中强度;di表示猎物和第i只蜜獾之间的距离。
非线性密度因子α约束随时间变化的寻优路径,使得算法演变过程更加稳定。非线性密度因子α随迭代次数减少,其定义如式(3)所示:
其中:tmax表示最大迭代次数;C≥1(默认值设为2)。
HBA 算法寻优路径分为挖掘模式和蜂蜜模式,这2 种模式具有不同的运动轨迹。
1.4.1 挖掘模式
在挖掘模式中,蜜獾的行动轨迹类似心形,通过式(4)可以模拟行动路线轨迹:
其中:xnew代表个体的新位置;xprey代表猎物在环境中的最佳位置;β≥1(默认值为6)反映蜜獾个体对于食物的获取能力;F1作为搜索方向不断改变的标志;r3、r4和r5表示0~1 之间3 个随机的取值。F1的定义如式(5)所示:
其中:r6属于0~1 的随机数。
蜜獾在挖掘模式中的搜索路径主要受猎物的距离di、猎物的嗅觉强度Ii和非线性密度因子α的影响。
1.4.2 蜂蜜模式
在蜂蜜模式中,蜜獾改变寻优路径,跟随蜂蜜向导鸟到达目标蜂巢,其路线轨迹的模拟如式(6)所示:
其中:r7为0~1 的随机数;α和F1由式(3)和式(5)确定。在该阶段,蜜獾的寻优路径与猎物和第i只蜜獾之间的距离di、猎物的最佳位置xprey以及α有关,蜜獾在xprey附近进行探索。
在实验中发现原HBA 算法在解决高维复杂问题中存在收敛速度慢、难以有效寻优等问题。通过分析发现,非线性密度因子α随着迭代次数增加而减少,在迭代中期,当α的系数C默认为2 时,α将降为1,密度因子较低影响全局寻优能力,算法容易陷入早熟。
为解决以上问题,本文通过加入限制反向学习机制以增强种群质量、多样性,加入自适应权重因子以平衡全局和局部搜索,提升算法寻优性能、稳定性,加入饥饿搜索策略,增强算法搜索能力。本文基于以上对HBA 算法的改进,提出一种多策略改进的蜜獾算法。
在蜜獾算法中,蜜獾个体以猎物的气味强度以及猎物距离和随时间变化的非线性密度因子α为导向,通过迭代不断寻找最优解,但是当最优解为非全局最优解时,算法寻优结果错误使得算法陷入早熟。针对算法早熟问题,李安东等[22]将精英反向学习策略加入到优化算法中,提高种群质量。通过比较原解与反向学习生成的反向解,选择更优个体继续加入种群,使种群范围得到扩大[23]。本文在挖掘模式和蜂蜜模式不同路径更新的基础上引入限制反向学习机制,在算法迭代时,对当前的种群个体进行限制反向学习,生成新的限制反向解,提升解的质量,增加种群多样性,加快算法收敛速度。限制反向学习机制表达式如式(7)所示:
限制反向学习机制相比于反向学习,解的上下限随迭代次数变化且限制了反向解越过边界。相比反向学习机制,限制反向学习机制进一步优化种群质量,使得在增加种群多样性的基础上,加快了算法的收敛速度。
在粒子群算法中,惯性权重是其中重要的参数之一,当惯性权重较小时,算法搜索范围更精细,当惯性权重较大时,算法搜索范围更大[24]。考虑到捕猎过程中猎物目标对蜜獾位置更新的影响以及自适应权重因子可有效平衡算法在不同阶段的搜索能力,本文提出一种自适应权重因子,如式(8)所示:
其中:t为当前迭代次数;tmax为最大迭代数。
引入自适应权重因子,HBA 中挖掘模式和蜂蜜模式搜索路线的式(4)和式(6)分别更新为式(9)和式(10):
ω随着迭代次数的增加,其值呈非线性增加。在算法迭代初期自适应权重因子的值较小,目标位置模糊,对原蜜獾算法中挖掘模式和蜂蜜模式搜索路线的更新影响不大;在算法迭代的中后期,目标逐渐清晰,此时自适应权重因子的值随迭代次数的增加逐渐变大,目标对蜜獾个体的吸引更强,自适应权重因子增强了局部开发的能力,使得蜜獾能够在算法迭代的中后期更快地找到目标解。加入自适应权重因子能够促进算法全局和局部搜索平稳过渡,提升算法寻优性能和稳定性。
在蜂蜜搜索阶段,蜜獾在目前发现的猎物位置xprey附近进行搜索。在算法迭代的中后期,算法可能出现早熟情况,由哈里斯鹰优化算法中的逃逸能量理论得到启发,本文提出一种新的饥饿搜索策略。在算法寻优过程中,当蜜獾表现出能量较低、适应度较差时,蜜獾处于饥饿状态,通过改变蜜獾的寻优路径增强搜索能力,从而避免算法陷入局部最优。在蜂蜜模式中,当蜜獾种群数量迭代超过1/2 时,引入饥饿搜索策略对原蜜獾寻优路径进行改变。
饥饿搜索策略表达式如下:
其中:xworse表示全局最差的位置;xi为当前种群个体的位置。
饥饿搜索策略基于全局最差位置对原搜索路径进行改进,在蜜獾处于饥饿状态时,使其在原搜索路径的基础上实现更广泛的搜索,增强跳出局部最优的能力。
综上所述,MSHBA 执行步骤采用伪代码表述,如算法1 所示。
算法1MSHBA 算法
本文分 别选取PSO[3]、GA[4]、HHO[5]、SCA[6]、WOA[7]以及HBA、MSHBA 进行仿真实验分析。为直接对比各算法性能,本文将所选取各算法的最大迭代次数均设为500,种群数量均设为30,算法维度分别为30、200、500,算法具体参数如表1 所示。
表1 算法仿真实验参数Table 1 Simulation experiment parameters of algorithms
为测试本文所提的MSHBA 与原HBA、WOA 等算法的性能差异,本文选用9 个测试函数进行仿真对比实验,其中F1~F4为单峰函数,F5~F7为不定维多峰函数,F8~F9为固定维多峰函数。该实验采用标准差值(Std)、平均值(Mean)和最优值(Best)作为评价指标[25],进而分析各算法的性能差别。具体测试函数信息如表2 所示。
表2 测试函数及具体信息Table 2 Test functions and specific information
本文使用MATLAB 仿真软件对每个函数在不同算法的应用下进行30 次实验,得出与各算法对应不同函数评价指标的结果,如表3所示,加粗表示最优数据。所测试算法在各函数200 维度上的收敛曲线如图1 所示。
图1 在维度为200 时各算法的收敛曲线Fig.1 Convergence curves of each algorithms at dimension 200
表3 MSHBA 与对比算法在不同函数和维度上的优化性能指标Table 3 Optimization performance indicators of MSHBA and comparison algorithms on different functions and dimensions
从同一维度测试函数F1~F4的仿真结果可以看出,MSHBA 在算法的收敛精度和稳定性上都表现出比PSO、GA、HHO、SCA、WOA 以及HBA 更好的性能。在F1中,仅有MSHBA 取得了理论最优值,虽然HBA 同样表现出良好的稳定性,但在寻优精度上明显不足,MSHBA 改进了其寻优性能。在F2~F4测试结果中,MSHBA 在所测算法中的各评价指标均达到了最佳,相比HBA 和WOA 等算法提高了多个数量级,说明MSHBA 具有更优的稳定性和寻优能力。在F5、F6和F7测试结果 中,所 测HHO、HBA、MSHBA 算法寻优能力差异不大,均表现出了相对其他测试算法更优的稳定性。特别是在F6测试结果中,所测算法在寻优时都没能找到全局最优,但是从收敛精度分析,HBA、MSHBA、HHO 均表现出远优于其他测试算法的收敛精度。在F8测试结果中,HHO、HBA、MSHBA 均表现出优异的寻优能力,就稳定性而言,MSHBA 对比原HBA 算法有较大的提升,平均值最接近表现最好的HHO。在F9测试结果中,多个测试算法均达到最优值,MSHBA 对原HBA算法稳定性有了更好的优化。
在维度为30~500 的变化过程中,所测试算法的寻优性能均有所下降,在单峰测试函数F1~F4测试结果中,即使算法维度达到500,MSHBA 依然表现出最优的寻优能力和稳定性。在不定维多峰函数测试结果中,F5和F7测试结果表示,随着维度增大,MSHBA 与HBA、HHO 依然可以得到全局最优解。在F6中,SCA 等算法随着维度增加,寻优性能有所下降,MSHBA 则依然可以保持较优的寻优性能。但是所测算法均未得出最优解,MSHBA 相较于HBA表现更优的稳定性。
本文基于HBA 提出3 种不同的改进策略,分别为限制反向学习机制、自适应权重因子、饥饿搜索策略。为研究3 种单一策略以及混合策略对原HBA 寻优性能的影响,本文基于5 种算法对上述9 个测试函数进行仿真实验分析。将HBA、MSHBA 与只采用限制反向学习机制的HBA(记作HBA-1)、只采用自适应权重因子的HBA(记作HBA-2)、只采用饥饿搜索策略的HBA(记作HBA-3)进行对比,5 种算法参数设置与表1 中HBA 参数设置相同,5 种算法在测试函数维度为30 时的寻优性能结果如表4 所示。
表4 在维度为30 时不同算法性能对比Table 4 Performance comparison among different algorithms at dimension 30
从表4 可以看出,MSHBA 对HBA 寻优性能的改进比单一策略的改进效果更明显,对比原HBA,所有策略都能对其进行有效改进,其中HBA-3 改进效果略差,HBA-1和HBA-2对HBA 均有较优的改进效果。
综上所述,MSHBA 在单峰函数性能测试中,表现出最佳的收敛精度和稳定性。在不定维多峰函数性能测试中,MSHBA 同样具有较优的寻优性能。在固定维多峰函数性能测试中,MSHBA 提升了原HBA 的算法稳定性。对比单一改进策略,MSHBA表现出更佳的性能。
针对工程设计与应用领域中常出现数值约束问题,传统的寻优方法(如梯度下降法)效率低、极易陷入局部最优,且难以解决更高维以及非线性的数值优化问题。本文将MSHBA 算法用于机械设计问题的优化,进而对算法的可行性做进一步检验[26]。本文主要优化的机械设计问题是活塞杆设计问题。将粒子群优化算法、鲸鱼优化算法、遗传算法、正余弦优化算法、蜜獾算法以及MSHBA 应用于活塞杆设计问题优化,并进行仿真实验。各算法具体参数如表1 所示,种群数量均为50,最大迭代次数均为1 000,每个算法独立运行30 次后取平均值。
优化活塞杆设计问题的主要目的是在活塞杆从0°提升至45°时,通过最小化油量定位活塞部件H、B、D和X,如图2所示。
图2 活塞杆结构问题Fig.2 Structure problem of piston rod
该活塞杆设计的数学模型如下:
这些不等式约束考虑了力平衡、杠杆的最大弯矩、最小活塞行程、几何条件等。表5 所示为MSHBA 和其他测试算法获得的最佳解决方案,据此可知,MSHBA 获得的函数最优解[H,B,D,X]=[0.05,2.05,4.09,119.95],f(H,B,D,X)=8.45,表 明MSHBA 获得最小油量,对比原算法其性能提高了88%。图3 所示为测试算法求解活塞杆设计问题的收敛曲线,证明MSHBA 能够快速找到活塞杆设计难题的最佳解决方案。
图3 测试算法求解活塞杆设计问题的收敛曲线Fig.3 Convergence curves of testing algorithms for piston rod design problem
表5 活塞杆设计问题中各算法的优化结果对比Table 5 Comparison of optimization results of various algorithms in piston rod design problem
针对蜜獾算法在解决高维复杂问题时存在收敛精度低、稳定性较差的问题,本文提出一种多策略改进的蜜獾算法。该算法引入限制反向学习机制,提高种群质量与多样性及算法寻优性能;引入自适应权重因子,协调全局搜索和局部开发,提升算法稳定性;设计一种新的饥饿搜索策略,防止算法陷入局部最优。为验证本文提出的多策略改进算法的先进性,与经典智能优化算法、新型智能优化算法以及原HBA 进行比较,通过对不同算法不同维度在9 个测试函数上进行实验,以及将多策略改进的蜜獾算法应用于机械设计优化问题,实验结果表明,本文所提算法在原始HBA 算法的基础上,提高了稳定性、收敛速度和收敛精度,可用于解决极复杂的高维问题,具有良好的应用价值。下一步将结合其他优化算法进行性能优化,并将MSHBA 应用于组合优化和图像分割,例如车间调度、多级阈值分割等任务。