基于改进萤火虫算法的起重机箱形主梁优化设计*
2021-10-23李毅斌
李毅斌 周 勇
武汉理工大学物流工程学院 武汉 430063
0 引言
起重机箱形主梁优化设计问题是一个属于多约束、非线性的复杂问题[1,2],其目标函数与约束条件都比较复杂,采用传统的优化算法处理此类问题存在优化精度不高、耗时长等缺点,难以达到理想状态,故采用新的优化算法处理起重机箱形主梁优化设计问题非常必要。
人工萤火虫算法是一种通过模拟萤火虫发光行为的新型群智能仿生优化算法[3]。该算法具有操作方便、鲁棒性强、峰值发现率高等优点,但也存在收敛速度较慢、寻优精度不高和极易陷入局部最优等缺点[4]。为了解决萤火虫优化算法的不足,进一步提高起重机箱形主梁优化性能,本文提出了一种基于引力导向和自适应步长策略的改进萤火虫算法,最后结合实际工况进行实例优化对比,进一步验证了改进萤火虫算法的有效性。
1 基本萤火虫算法
1.1 算法描述
在基本萤火虫优化算法中,种群的初始化阶段需要在多维求解空间内随机分布一定数量的萤火虫群体,每只萤火虫对应的位置代表求解空间中的一个解。萤火虫群体中每个个体的初始荧光素都被设置为相同初始值,萤火虫个体的亮度与萤光素强度成正比关系,荧光素强度由当前萤火虫位置对应的目标函数值决定,即荧光素值越高,萤火虫亮度越强,代表目标函数值越优。
萤火虫个体在移动方向选择时遵循轮盘赌法的规则。萤火虫个体i在自身动态决策域半径范围内寻找荧光素强度比自身大的萤火虫个体组成自身的邻域集,并利用轮盘赌法在邻域集内按照概率选出另一个萤火虫个体j作为移动目标,个体i就会朝着个体j的方向移动。完成移动步骤后,更新萤火虫个体i的荧光素强度大小和自身动态决策域半径,为下一次迭代做准备。
重复这一过程,在不断地迭代运动后,萤火虫种群就会向问题最优解的区域移动,最后聚集在荧光素强度较大的萤火虫个体周围,即搜寻到目标函数的最优解。
1.2 基本萤火虫算法主要步骤
基本的萤火虫算法总体可分为5 个主要步骤[5]:萤火虫种群初始化、荧光素更新、移动方向选择、个体位置更新和决策域更新。
1) 萤火虫种群初始化
对算法中萤火虫群体的荧光素挥发因子、适应度提取比例、邻域变化率、邻域萤火虫数、步长、荧光素浓度、感知半径、决策半径、解集范围、最大迭代代数等参数进行初始化。
2) 荧光素更新
萤火虫荧光素值与萤火虫位置对应的目标函数值相关,目标函数值越优,则该萤火虫个体适应度越好,对应的个体荧光素值就越大,亮度也随之变得越亮。经位置更新后,萤火虫的荧光素值由上一代的荧光素值和当代位置的适应度共同决定。在下一次算法迭代开始前,所有萤火虫个体的荧光素值都需要更新,荧光素值的更新依据为
式中:ρ为荧光素挥发因子,取值范围是(0,1);li(t)为第i只萤火虫在第t次迭代荧光素大小;γ为适应度提取比例,取值范围是(0,1);J(xi(t+1))为萤火虫i在第t+1 次迭代的位置xi(t+1)对应的目标函数值。
3) 移动方向选择
在每次萤火虫算法迭代过程中,萤火虫个体需要调整更新自身的空间位置。在个体移动前,需要在萤火虫i的动态决策域半径内,选择荧光素值比自己高的萤火虫个体组成一个邻域集Ni(t)。建立邻域集后,利用轮盘赌法则选择其中一只萤火虫j作为萤火虫i的移动方向。邻域集内每只萤火虫个体被选择的概率计算为
式中:dij(t)为在第t次迭代萤火虫i与萤火虫j的空间欧氏距离。
4) 个体位置更新
在邻域集中根据轮盘赌法则选出萤火虫个体j,确定了移动方向之后可以进行萤火虫个体i下一代位置更新,更新规则可表示为
式中:s为萤火虫的固定移动步长;║xj(t)-xi(t)║为在第t次迭代中萤火虫j与萤火虫i之间的空间欧氏距离。
5) 决策域更新
在每次迭代结束后,萤火虫的决策域范围都会随其位置的改变而更新,决策域半径可根据邻域集内萤火虫数量大小进行动态调整。萤火虫个体i的决策域半径可确定为
式中:β为萤火虫动态决策域调节因子,nt为邻域集内萤火虫数目的阈值。
2 改进萤火虫算法
2.1 基本萤火虫算法分析
由基本萤火虫算法可知,在萤火虫个体选取移动方向时,采用的策略是在邻域集中利用轮盘赌法则随机选择其中一只高荧光素的萤火虫作为移动目标。此选择策略不仅随机性很大,同时忽略了萤火虫之间的距离因素和邻域集内其他萤火虫的影响因素。在自然界中,除了荧光素值的影响,萤火虫之间的吸引力还应考虑距离因素。当2 萤火虫相距越远时,吸引力也会随之下降,即使该萤火虫荧光素最高;此时相距较近的萤火虫也可能会被作为吸引目标,即使该萤火虫荧光素不是最高。此外,当邻域集内存在多只高荧光素的萤火虫时,采用轮盘赌选择策略会有很大的随机性与误差。为了提高算法的收敛性与收敛速度,该萤火虫的移动方向选择策略应同时考虑邻域集内所有萤火虫的荧光素与距离对自身的影响。
在基本萤火虫算法中的个体位置更新阶段采用固定移动步长进行移动,移动步长越大,其搜索范围越大。然而,在算法迭代运行后期,若步长太大,易出现峰值附近的震荡或跳离最优解等问题,影响了算法的寻优精度;相反,在算法迭代运行前期,若步长太小,则早期搜索时间增加,影响了算法的收敛速度。
2.2 改进算法描述
针对基本萤火虫算法存在的不足,本文对其改进主要引入了两个策略:一是考虑了邻域集内所有萤火虫的荧光素与距离对自身影响的移动方向选择策略;二是将固定步长调整为自适应步长。
1)移动方向选择
由于基本萤火虫算法选择移动方向中未考虑距离因素,本文利用由万有引力所引起的物体运动导向思想,根据式(5)定义邻域集内其他萤火虫j对萤火虫i的吸引力;同时考虑邻域集内所有萤火虫对自身的吸引力大小与方向的影响,最终在第t次迭代中萤火虫i的移动方向Vi(t)可表示为
式中:G为常数1;(t)为在第t次迭代中萤火虫j对萤火虫i的吸引力;Fi(t)为在第t次迭代中萤火虫i在自身邻域集中受到所有吸引力的矢量和;Vi(t)为单位化的Fi(t),即第t次迭代中萤火虫i的移动方向。
将改进后与原始的移动方向选择策略进行对比(见图1,为了凸显效果,移动步长进行了适当放大),图中假设萤火虫i(实心)的决策域半径内共有2 只荧光素比自身高的萤火虫j1、j2(实心)。Fi为萤火虫i所受的吸引力,Vi为萤火虫i最终确定的移动方向。从图1 中看出,按原始策略中无论向萤火虫j1移动一个步长到达点A,还是向萤火虫j2移动一个步长到达点B,其所对应的值都低于以Vi为移动方向移动一个步长所达到的点C。
2)自适应步长
由于基本萤火虫算法中采用固定步长的策略会导致算法寻优精度不高、收敛速度慢、易产生峰值震荡等问题,本文综合考虑了迭代次数以及邻域集内萤火虫的总吸引力2 个因素来动态地调整萤火虫的移动步长。在算法迭代初期,采用较大移动步长,以实现较好的全局寻优能力,防止算法易出现陷入局部最优、过早成熟的缺陷。在算法迭代后期,采用较小移动步长,使其在局部范围内精细搜索,减弱局部峰值附近的震荡作用,提高算法的求解精度。此外,还考虑了吸引力的影响因素,吸引力越大则步长越大,反之越小。第t次迭代中萤火虫i的移动步长si(t)可确定为
式中:t为当前迭代次数;tmax为最大迭代次数;smax、smin分别为最大移动步长和最小移动步长;q为步长调节因子,取值为2。
2.3 改进算法步骤
本文在基本萤火虫算法的基础上,改进了移动方向选择策略,调整为自适应步长。根据上述改进描述,改进萤火虫算法的主要步骤如下:
步骤1:初始化萤火虫种群数量,并将萤火虫个体随机分布在目标函数的解集空间内。对改进后的萤火虫算法相关参数进行初始化;
步骤2:根据式(1)更新萤火虫个体的荧光素值;
步骤3:计算萤火虫个体i的邻域集Ni(t);
步骤4:判断邻域集是否为空集,若是,则转向步骤6;否则转向步骤5;
步骤5:根据式(5)~式(7)获取萤火虫i的移动方向,根据式(8)~式(10)获取萤火虫i的自适应步长。然后对萤火虫i位置进行更新。然后跳转到步骤6;
步骤6:根据式(4)对萤火虫的动态决策域半径进行更新;
步骤7:判断是否达到最大迭代次数,如果达到,则终止算法,输出目标函数最优解;否则返回步骤2,继续运行算法。
3 起重机箱形主梁优化设计
本文以起重机箱形截面主梁结构为研究对象建立数学模型,并采用改进萤火虫算法GAGSO 与其余2 种萤火虫优化方法对模型进行优化求解。
3.1 数学模型的建立
起重机箱形主梁的计算简图与截面图如图2 所示。在满足性能基础上,使箱形主梁质量最小,其质量主要取决于箱形主梁的截面面积,故以箱形主梁的截面面积最小为优化目标,建立如下数学模型[6]。
图2 起重机箱形主梁的计算简图与截面图
1)设计变量
式中:x1为主梁腹板高度,x2为主梁翼缘板宽,x3为腹板厚度,x4为翼缘板厚度。
2)目标函数
3)约束条件
根据《起重机设计手册》及其他相关规范对强度、刚度、稳定性等性能的要求,经整理简化后确定的约束条件为
其中,L=10.5 m,P1=1.2×105N,P2=1.2×104N,r=7.8 t/m3,[σ]=140 MPa,[f]=L/700。
3.2 实例验证
根据所建立数学模型,分别采用基本萤火虫算法GSO、改进变步长萤火虫算法CGGSO[7]和本文改进萤火虫算法GAGSO 进行优化求解,其中算法部分参数设置为:萤火虫种群大小设为100,最大迭代次数tmax=100,荧光素挥发因子ρ=0.4,荧光素更新率γ=0.6,决策域更新率β=0.08,邻域集内萤火虫数目的阈值Nt=5,萤火虫初始荧光素量l0=5,决策半径rd=2.048,感知半径rs=2.048,固定步长s0=0.03,最大移动步长smax=1,最小移动步长smin=0.01。优化结果与各算法迭代曲线如表1、图3 所示。
表1 起重机箱形主梁截面积设计参数优化结果
图3 各优化算法迭代曲线
由表1 可知,本文提出的GAGSO 算法在搜索全局最优值时普遍优于其余2 种算法。此外,由图3 可以看出,在优化过程中GAGSO 算法能找到最优解前的迭代次数明显更少,而其余2 种算法需要更多的迭代次数才能找到全局最优值。从全局最优值来看,GAGSO 算法在收敛过程中搜寻到的全局最优值更小,更接近真实的最优值。即本文改进的萤火虫算法在求解精度与收敛速度上效果更好,说明通过对基础算法的改进使算法在求解性能上得到了提升,并在起重机箱形主梁优化设计实例上验证了算法的可靠性。
4 结论
1)提出了一种改进的萤火虫算法,通过将萤火虫邻域集内所有萤火虫的荧光素与距离因素考虑在内,给出一种基于引力导向的移动方向选取策略,提高了算法的全局搜索能力。根据萤火虫所受吸引力大小与迭代次数提出了自适应步长策略,进一步提高了算法的收敛性能并降低了迭代次数。
2)分别将改进萤火虫算法和其余优化方法应用于起重机箱形主梁优化设计实例进行优化对比,结果表明,改进后的萤火虫算法在求解精度和收敛速度上均有较大程度的提升,解决了起重机箱形主梁优化设计问题。