1. 引言
近年来,基于自然现象而衍生出来的群智能优化算法的飞速发展与应用,一系列的算法被提出,如粒子群算法(PSO)、蚁群算法(ACO)、人工蜂群算法(ABC)、布谷鸟搜索算法(CS)、灰狼算法(GWO)、鲸鱼优化算法(WOA)等。这些群智能算法具有灵活性、简单易操作性、无梯度机制等优点。樽海鞘群算法(SSA)是一种元启发智能优化算法,由Mirjalili等人[1]于2017年提出,与其它群智能算法一样,在迭代后期存在收敛速度慢、收敛精度低、易陷入局部最优等的不足。但该算法模拟海洋中樽海鞘群体的链式觅食行为,设置参数少、实施简单方便、结构简单,受到国内外广大学者的关注与喜爱,于是,国内外学者对基本SSA分别做了不同程度的改进以改善SSA的寻优能力。周鹏等人[2]通过引入混沌映射和模拟退火思想,改善了易陷入局部最优和收敛速度慢的问题;白钰等人[3]自适应惯性权重因子和差分变异思想被引入到SSA中,提升了SSA的寻优性能;基于Levy飞行策略的改进樽海鞘算法被张严等人[4]提出,SSA引入了Levy飞行策略,加强了SSA的全局搜索能力和提高了SSA的收敛速度;常祥洁等人[5]提出一种多策略改进的樽海鞘群算法,通过混沌初始化、变异操作和正余弦搜索提高了算法的收敛精度、收敛速度及鲁棒性;天体运动更新机制由张文彬[6]应用于SSA中,提高了算法的收敛速度和计算精度;张志强等人[7]将粒子群算法的随机惯性权重引入SSA的追随者位置更新公式中,其次用差分进化算法的变异操作替代SSA的领导者位置更新操作来提高收敛速度和计算精度;刘景森等人[8]在领导者位置引入上一代樽海鞘群位置并加入了惯性权重策略,提高了算法的寻优精度和稳定性。
上述改进的樽海鞘群算法均在不同程度上提升了算法的收敛速度和避免了算法陷入局部最优,使得算法寻优性能有所改善,但仍存在改进的空间。本文提出一种改进的樽海鞘群算法,用于三杆桁架模型求解问题。领导者位置采用正余弦搜索策略,提高樽海鞘群领导者的全局探索能力。同时在追随者位置上采用差分策略,食物源采用高斯变异策略,以增强算法跳出局部最优的能力,通过数值仿真实验,证明本文算法的有效性。
2. 樽海鞘算法及其局限性分析
2.1. 樽海鞘算法
樽海鞘算法起源于樽海鞘种群在觅食过程中所形成的链状追随特性,其基本原理如下:依据樽海鞘群体捕食特点,将种群形成的樽海鞘链的前一部分粒子作为领导者,后面的所有粒子作为追随者,将最优的位置作为食物,作为领导者的樽海鞘不断向食物靠近,而其后追随的樽海鞘依据其前面个体的位置不断更新自己的位置。
基本樽海鞘算法由领导者和追随者2种类型的樽海鞘组成,位于樽海鞘链前一半的为领导者,后一半为追随者。假设目标环境是一个
的空间(N为种群数量,d为空间维度),定义樽海鞘个体的位置为
,
,目标位置
,各维度范围内搜索的上界为
,下界
。初始化种群的位置如下:
(2.1)
式中:
——
内N行d列的任意矩阵。
领导者位置更新:领导者的位置必须具备一定的任意性,其领导者向目标位置运动。将搜索空间上一个叫F食物源作为种群的搜索目标(在实际寻优过程中,并不知道食物的位置,因此,设定拥有最大适应度樽海鞘的位置为当前食物源的位置)。位置更新规则为:
(2.2)
式中:
——领导者在维度d上的位置;
——目标位置的d维值;
——控制参数,c1的作用是平衡迭代过程中的搜索和开发能力,决定收敛速度;c2、c3——
间的随机数,决定领导者的移动方向,具体表示为
(2.3)
式中:l——当前迭代次数;
最大迭代次数。
追随者位置更新:追随者的位置不是随机的,它是在领导者基础上进行的更新,规则为:
(2.4)
式中:
——第n个追随者在维度d上的位置;
——上一代樽海鞘追随者在维度d上的位置。
2.2. 樽海鞘算法的局限性分析
(1) 樽海鞘在对领导者位置进行更新时,只考虑在该维度上食物源位置对其的影响,并未考虑在历史搜索过程中的记忆效果,即迭代前的领导者对迭代后的领导者位置更新的影响,以致作为领导者的樽海鞘搜索效率低,从而计算速度和精度较低。同时参数c1数值较大,在作为领导者的樽海鞘靠近食物进行位置更新时,步长较大,全局搜索能力强,但局部搜索能力不足,在程序迭代的后期,参数值虽然相对会减小,但是搜索半径依旧较大,很难实现在目标值附近的精细搜索,结果跳跃性很大,稳定性和精度不足。
(2) 樽海鞘在对追随者位置进行更新时,从(2.4)式中,我们可以看到第n个追随者的位置更新只与自身和跟随的第
个樽海鞘的位置信息相关联,这种单向接受第
个樽海鞘的位置信息后立即更新位置,并没有很好体现追随者个体之间的位置信息交流,同时使得追随者个体的搜索范围相对有限,易造成算法陷入局部最优,一定程度上还限制了算法的搜索能力,降低了搜索效果。
3. 改进的樽海鞘算法
3.1. 基于正余弦搜索策略的领导者位置更新
考虑到基本SSA存在收敛速度较慢、全局寻优能力较差等不足,而正余弦算法[9]是根据数学中三角函数模型,利用正余弦函数在空间内规律循环的特点,增强算法对搜索空间范围的利用,具有较强的全局搜索能力。因此,本文采用正余弦搜索策略对领导者位置更新,使得算法寻优区域更加全面,同时提高算法的收敛速度。改进后的领导者位置更新规则为:
(3.1)
式中:
为
次迭代时领导者的位置;
为t次迭代时领导者的位置;
为t次迭代时食物源的位置;r2为
之间的随机数;
或者
;r4为区间
之间的随机数;r1为平衡全局探索和局部开发的重要参数,由式表示:
(3.2)
其中,t为当前迭代次数;
为最大迭代次数;参数a设置为2。
3.2. 基于差分策略的追随者位置更新
基于原始的樽海鞘群算法,由(2.4)式我们可以看出,第n个追随者的位置更新只与自身和跟随的第
个樽海鞘的位置信息相关联,这种单向接受第
个樽海鞘的位置信息后立即更新位置,在一定程度上限制了算法的搜索能力。针对算法这一不足,引入第
个樽海鞘的位置信息,增加追随者个体之间的位置信息交流,扩大追随者个体的搜索范围,避免算法陷入局部最优,改善算法的搜索效果。
引入第
个樽海鞘后种群中相互跟随的三个个体为
,
,
,第n个追随者个体位置更新规则为:
(3.3)
式中:r1、r2——
之间服从正态分布的随机数;
—第n个追随者在维度d上的位置。
3.3. 基于高斯变异策略的食物源位置更新
迭代后期,如果当前最好个体(食物源)的适应度值连续
次迭代没有得到改善(
设置为10),则对食物源进行Gaussian变异,具体为:
(3.4)
式中:
是服从标准正态分布的随机变量,
。变异结果保留为:
(3.5)
式中:
是x的适应度值。
4. 三杆桁架截面尺寸优化及仿真实验
桁架结构截面尺寸优化是以各组杆件截面尺寸为设计变量,在满足杆件许用应力和节点位移约束条件的前提下,对各组杆件截面尺寸进行优化设计使结构的重量最轻,其数学模型可以表示为:
设计变量:
(4.1)
目标函数:
(4.2)
约束条件:
(4.3)
式中:
——第i杆的截面面积;n——杆件总数;W——结构的总质量;
——第i杆的材料密度;
——第i杆的长度;
——应力约束;
——位移约束;
——第i组结构的容许应力值;
——第i组构件的最不利应力值;
——节点j在给定方向上的容许位移值;
——节点j的最大位移;m——节点总数;w——由节点位移所约束的维数;
——杆件最小截面面积;
——杆件最大截面面积。对于工程中常见的三杆桁架结构,其动力学模型如图1。
Figure 1. Triangular truss
图 1. 三杆桁架
根据桁架结构截面尺寸优化建立三杆桁架的数学模型[10],如下所示:
考虑
(4.4)
最小化
(4.5)
约束条件
(4.6)
(4.7)
(4.8)
变量范围
(4.9)
已知
。
对于不满足约束条件的解,添加一个惩罚项对其进行惩罚处理,惩罚公式如下:
(4.10)
式中,z为惩罚项;
为惩罚常数,取值为109;
用于标识第i个约束条件是否满足,若满足该约束条件,则
取值为0,不对适应度值进行惩罚,若不满足,则
取值为1,剔除惩罚此适应度值所对应的解,进而筛选出满足约束条件的解。
利用改进的樽海鞘算法对其进行求解,具体求解步骤如下:
Step 1. 设置种群规模、初始迭代值、最大迭代次数和问题边界等参数,输入三角桁架相关数据;
Step 2. 在边界范围内随机初始化樽海鞘种群,利用式(4.5)求出领导者位置和相应值;
Step 3. 判断是否达到最大迭代次数,如果是,输出领导者和相应值,结束算法,否则进入Step 4;
Step 4.首先执行式(3.2),然后对每一个樽海鞘执行式(3.1);再执行式(3.3);
Step 5.对种群中每一个樽海鞘进行越界处理,利用式(4.5)求出领导者位置和相应值,并判断此时樽海鞘的值是否优于之前领导者值,如果是则用较优值代替较差值;
Step 6.迭代次数加1,进入Step 3。
最大迭代次数设置为1500,通过运行50次,求解得到其最优重量和最优横截面积,再将其与基本樽海鞘算法(SSA)、粒子群算法(PSO)求得的最优重量和最优横截面积进行比较,结果如表1及其收敛曲线如图2。
Table 1. Three algorithms are used to solve the optimal weight of the triangular truss problem and the corresponding optimal solutions
表1. 3种算法求解三杆桁架问题的最优重量及其对应的最优解
算法 |
最优重量(g) |
A1 |
A2 |
PSO |
2098.29 |
0.76886 |
0.49829 |
SSA |
2071.58 |
0.78847 |
0.40883 |
改进SSA |
2071.58 |
0.78844 |
0.40891 |
Figure 2. Convergence curve of triangular truss optimization results
图2. 三杆桁架优化结果收敛曲线
综合图2及表1可以发现:对于二维约束的三杆桁架优化问题,樽海鞘算法和改进的樽海鞘算法得到的最优方案材料用量为2071.58 g,明显优于标准粒子群算法得到的2098.29 g;在算法求解效率上,改进的樽海鞘算法在120次迭代左右得到最优方案,明显小于樽海鞘算法的460次,表明改进SSA在求解三杆桁架设计问题上效率更高,同时也说明改进SSA的收敛速度更快;粒子群算法在10次迭代左右得到最优方案材料用量2098.29 g,相比于SSA和改进SSA,PSO并未寻找到真正最优的方案,陷入局部最优值。与其余2种算法相比,改进SSA展现了较为明显的优越性。
5. 结论
本文为了解决樽海鞘算法在算法寻优中收敛速度慢和易陷入局部最优等问题,分析了樽海鞘领导者在位置更新时未考虑搜索时的记忆效果及追随者在更新位置时只考虑到前一个樽海鞘的位置是造成其问题的主要原因,借鉴正余弦算法、差分算法中搜寻最优解的方式来分别实现对樽海鞘领导者和追随者的位置更新,提出一种改进的樽海鞘算法,通过三杆桁架优化仿真实验表明,所提算法具有更快的收敛速度且不易陷入局部最优解。同时也表明了本文所提算法在求解三杆桁架优化问题上的有效性。
基金项目
江西省教育厅科学技术研究项目(GJJ200757)。
NOTES
*通讯作者。