An Improved Salp Swarm Algorithm Based on Sine-Cosine and Differential Search Strategy and Its Application
Aiming at the shortcomings of the standard salp swarm algorithm (SSA) in the process of optimization, such as slow convergence speed, low precision and insufficient convergence stability, which lead to local optimal and energy loss, this paper proposes an improved salp swarm algorithm. The improved salp swarm algorithm combines sine-cosine search strategy in the leading position, and enhances the global search and local development ability of the algorithm. At the same time, the followers introduce differential strategy to update the location and improve the local search ability of the algorithm. Food source adopts Gaussian variation to reduce the probability of the algorithm falling into the local optimal solution. Finally, the algorithm is applied to the optimization design of triangular truss, and the effectiveness of the improved salp swarm algorithm in solving triangular truss model is verified by numerical experiments compared with the traditional particle swarm optimization algorithm and salp swarm algorithm.
Salp Swarm Algorithm
近年来,基于自然现象而衍生出来的群智能优化算法的飞速发展与应用,一系列的算法被提出,如粒子群算法(PSO)、蚁群算法(ACO)、人工蜂群算法(ABC)、布谷鸟搜索算法(CS)、灰狼算法(GWO)、鲸鱼优化算法(WOA)等。这些群智能算法具有灵活性、简单易操作性、无梯度机制等优点。樽海鞘群算法(SSA)是一种元启发智能优化算法,由Mirjalili等人
上述改进的樽海鞘群算法均在不同程度上提升了算法的收敛速度和避免了算法陷入局部最优,使得算法寻优性能有所改善,但仍存在改进的空间。本文提出一种改进的樽海鞘群算法,用于三杆桁架模型求解问题。领导者位置采用正余弦搜索策略,提高樽海鞘群领导者的全局探索能力。同时在追随者位置上采用差分策略,食物源采用高斯变异策略,以增强算法跳出局部最优的能力,通过数值仿真实验,证明本文算法的有效性。
樽海鞘算法起源于樽海鞘种群在觅食过程中所形成的链状追随特性,其基本原理如下:依据樽海鞘群体捕食特点,将种群形成的樽海鞘链的前一部分粒子作为领导者,后面的所有粒子作为追随者,将最优的位置作为食物,作为领导者的樽海鞘不断向食物靠近,而其后追随的樽海鞘依据其前面个体的位置不断更新自己的位置。
基本樽海鞘算法由领导者和追随者2种类型的樽海鞘组成,位于樽海鞘链前一半的为领导者,后一半为追随者。假设目标环境是一个 的空间(N为种群数量,d为空间维度),定义樽海鞘个体的位置为 , ,目标位置 ,各维度范围内搜索的上界为 ,下界 。初始化种群的位置如下:
(2.1)
式中: —— 内N行d列的任意矩阵。
领导者位置更新:领导者的位置必须具备一定的任意性,其领导者向目标位置运动。将搜索空间上一个叫F食物源作为种群的搜索目标(在实际寻优过程中,并不知道食物的位置,因此,设定拥有最大适应度樽海鞘的位置为当前食物源的位置)。位置更新规则为:
(2.2)
式中: ——领导者在维度d上的位置; ——目标位置的d维值; ——控制参数,c1的作用是平衡迭代过程中的搜索和开发能力,决定收敛速度;c2、c3—— 间的随机数,决定领导者的移动方向,具体表示为
(2.3)
式中:l——当前迭代次数; 最大迭代次数。
追随者位置更新:追随者的位置不是随机的,它是在领导者基础上进行的更新,规则为:
(2.4)
式中: ——第n个追随者在维度d上的位置; ——上一代樽海鞘追随者在维度d上的位置。
(1) 樽海鞘在对领导者位置进行更新时,只考虑在该维度上食物源位置对其的影响,并未考虑在历史搜索过程中的记忆效果,即迭代前的领导者对迭代后的领导者位置更新的影响,以致作为领导者的樽海鞘搜索效率低,从而计算速度和精度较低。同时参数c1数值较大,在作为领导者的樽海鞘靠近食物进行位置更新时,步长较大,全局搜索能力强,但局部搜索能力不足,在程序迭代的后期,参数值虽然相对会减小,但是搜索半径依旧较大,很难实现在目标值附近的精细搜索,结果跳跃性很大,稳定性和精度不足。
(2) 樽海鞘在对追随者位置进行更新时,从(2.4)式中,我们可以看到第n个追随者的位置更新只与自身和跟随的第 个樽海鞘的位置信息相关联,这种单向接受第 个樽海鞘的位置信息后立即更新位置,并没有很好体现追随者个体之间的位置信息交流,同时使得追随者个体的搜索范围相对有限,易造成算法陷入局部最优,一定程度上还限制了算法的搜索能力,降低了搜索效果。
考虑到基本SSA存在收敛速度较慢、全局寻优能力较差等不足,而正余弦算法
(3.1)
式中: 为 次迭代时领导者的位置; 为t次迭代时领导者的位置; 为t次迭代时食物源的位置;r2为 之间的随机数; 或者 ;r4为区间 之间的随机数;r1为平衡全局探索和局部开发的重要参数,由式表示:
(3.2)
其中,t为当前迭代次数; 为最大迭代次数;参数a设置为2。
基于原始的樽海鞘群算法,由(2.4)式我们可以看出,第n个追随者的位置更新只与自身和跟随的第 个樽海鞘的位置信息相关联,这种单向接受第 个樽海鞘的位置信息后立即更新位置,在一定程度上限制了算法的搜索能力。针对算法这一不足,引入第 个樽海鞘的位置信息,增加追随者个体之间的位置信息交流,扩大追随者个体的搜索范围,避免算法陷入局部最优,改善算法的搜索效果。
引入第 个樽海鞘后种群中相互跟随的三个个体为 , , ,第n个追随者个体位置更新规则为:
(3.3)
式中:r1、r2—— 之间服从正态分布的随机数; —第n个追随者在维度d上的位置。
迭代后期,如果当前最好个体(食物源)的适应度值连续 次迭代没有得到改善( 设置为10),则对食物源进行Gaussian变异,具体为:
(3.4)
式中: 是服从标准正态分布的随机变量, 。变异结果保留为:
(3.5)
式中: 是x的适应度值。
桁架结构截面尺寸优化是以各组杆件截面尺寸为设计变量,在满足杆件许用应力和节点位移约束条件的前提下,对各组杆件截面尺寸进行优化设计使结构的重量最轻,其数学模型可以表示为:
设计变量:
(4.1)
目标函数:
(4.2)
约束条件:
(4.3)
式中:
——第i杆的截面面积;n——杆件总数;W——结构的总质量;
——第i杆的材料密度;
——第i杆的长度;
——应力约束;
——位移约束;
——第i组结构的容许应力值;
——第i组构件的最不利应力值;
——节点j在给定方向上的容许位移值;
——节点j的最大位移;m——节点总数;w——由节点位移所约束的维数;
——杆件最小截面面积;
——杆件最大截面面积。对于工程中常见的三杆桁架结构,其动力学模型如
根据桁架结构截面尺寸优化建立三杆桁架的数学模型
考虑
(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)求得的最优重量和最优横截面积进行比较,结果如
算法 |
最优重量(g) |
A1 |
A2 |
PSO |
2098.29 |
0.76886 |
0.49829 |
SSA |
2071.58 |
0.78847 |
0.40883 |
改进SSA |
2071.58 |
0.78844 |
0.40891 |
综合
本文为了解决樽海鞘算法在算法寻优中收敛速度慢和易陷入局部最优等问题,分析了樽海鞘领导者在位置更新时未考虑搜索时的记忆效果及追随者在更新位置时只考虑到前一个樽海鞘的位置是造成其问题的主要原因,借鉴正余弦算法、差分算法中搜寻最优解的方式来分别实现对樽海鞘领导者和追随者的位置更新,提出一种改进的樽海鞘算法,通过三杆桁架优化仿真实验表明,所提算法具有更快的收敛速度且不易陷入局部最优解。同时也表明了本文所提算法在求解三杆桁架优化问题上的有效性。
江西省教育厅科学技术研究项目(GJJ200757)。
*通讯作者。