APP下载

基于改进引力搜索算法的桁架结构优化设计

2020-05-22李彦苍杨宗瑾

计算机技术与发展 2020年5期
关键词:测试函数搜索算法桁架

李彦苍,杨宗瑾

(河北工程大学,河北 邯郸 056038)

0 引 言

对于桁架结构,在给定结构形式、材料和形状的情况下,优化各个杆件的尺寸,使结构在满足约束条件的同时达到结构总质量最轻、设计合理性最佳、工程成本质量最轻,即为结构优化[1-2]。结构优化设计变量多,采用传统的计算方法解决这些问题面临着计算复杂度高、计算时间长等问题,对具有启发式特征的计算智能方法的研究越来越活跃。而过去十年里,一系列智能算法正在兴起,如遗传算法(genetic algorithm,GA)、粒子群优化算法(particle swarm optimization,PSO)、蚁群优化(ant colony optimization,ACO)、模拟退火(simulated annealing,SA)、和声搜索(harmony search,HS)和萤火虫算法(firefly algorithm,FA)[3-8]。这些方法不需要传统的数学假设,因此与传统方法相比,增加了全局最优的定位概率。元启发式优化方法的随机性质可以允许在比传统优化方法中更大部分的搜索空间中进行探索。国内外学者也将智能算法应用到桁架结构优化中,如混沌增强碰撞体算法(enhanced chaotic colliding bodies algorithms,ECBO)[9]、改进二元蝙蝠柔性抽样算法(improved binary bat flexible sampling algorithm,IBBA)[10]、模拟植物生长算法等均对桁架进行结构优化[11],有效推动了桁架结构优化的发展。但在算法收敛速度、稳定性方面还有研究的空间。

Rashedi等人根据引力定律与运动定律,提出新的元启发式方法,即引力搜索算法(gravitational search algorithm,GSA)[12]。之后国内外学者对GSA进行了研究和改进,如文献[13]引入人工蜂群搜索机制,帮助算法跳出局部最优值;文献[14]通过动态调整引力常数,平衡全局搜索能力;文献[15]提出了一种神经和模糊重力搜索算法,加快了算法的收敛速度,改善了全局搜索能力。GSA已被应用于无人机航路规划、电力控制、医学等领域[16-20]。虽然GSA具有高精度和稳定性的特点,但它具有易陷入局部最优、搜索精度低和收敛速度低的缺点。当种群中找到其当前的最佳位置时,其他群体将迅速收集到它。因此,GSA陷入局部最优。

在该研究中,提出了改进引力搜索算法,用于桁架结构尺寸优化。提出的IGSA旨在消除GSA的缺点,并提高其对GSA的局部搜索能力。为了达到这个目的,通过引入混沌映射使GSA初始种群遍历整个搜索空间,提高算法找出最优解的可能性。通过引入粒子群算法中的粒子运动方程,提高粒子间的信息交流和记忆能力,以帮助算法逃出局部最优解,找到全局最优解。文中采用了6个典型的测试函数以验证IGSA的性能,优化结果表明,改进后的引力搜索算法收敛速度更快,收敛精度更高,更有可能找到全局最优解。文中对72杆空间桁架进行尺寸优化,用IGSA优化后的尺寸比GSA和其他算法得出的结果要小,说明IGSA是一种具有高全局搜索能力的强大优化算法。

1 基本引力搜索算法

引力搜索算法是从万有引力公式和牛顿第二定律中得到灵感,由Rashedi等人于2009年提出[12]。引力搜索算法(GSA)是一种新的群体优化智能算法。每一个粒子都有4个属性:位置,惯性质量,被动和主动引力质量。粒子的位置代表问题的潜在解,引力和惯性质量则用于适应度函数。

算法中每个粒子的被动和主动引力质量和惯性质量相等,均为Mi,i=1,2,…,N,N为种群规模。Mi的定义如下:

(1)

(2)

其中,fiti(t)为粒子i在第t次迭代时的适应度函数值,best(t)与worst(t)为第t次迭代时所有粒子中最优与最差适应度函数值。

(3)

其中,Rij(t)为粒子i与粒子j之间的Euclidean距离,ε为极小的常数,防止分母为0。G(t)为第t次迭代时引力常量取值,G是时间的递减函数。必须指出的是,G(t)对于确定GSA的性能很重要,定义如下:

(4)

其中,G0和β分别是G的初始值和常数,tmax是最大迭代次数。

在第d维空间中,粒子i收到的总作用力来自于其他所有粒子的施加的力矢量和:

(5)

其中,kbest定义为粒子质量按降序从最佳值到第k个粒子的集合,k在开始时初始化为k0并随时间减小。这里,k0设定为N,并且线性减小到单位1。randj为[0,1]中均匀分布的随机数。

根据牛顿第二定律,粒子的加速度如下:

(6)

粒子的速度和位置如下式:

(7)

(8)

其中,randi是区间[0,1]中均匀分布的随机数。

2 算法的改进

2.1 混沌初始化策略

混沌理论是指对混沌动力系统的研究。混沌系统是对其初始条件高度敏感的非线性动力系统。在初始条件导致系统的结果变化很大。混沌具有遍历性和均匀性的特点,利用混沌的良好的特征对GSA初始化,可以使GSA初始种群遍历整个搜索空间,提高算法找出最优解的可能性。文中采用Logistic映射进行种群初始化,其方程如下:

f(k+1)=af(k)(1-f(k))(k=0,1,2…,

0≤f(k)≤1)

(9)

当变量a=4时,该模式进入完全混沌状态。

混沌算法的步骤如下:

(1)将n个初始值分别赋予式(9),可以得到n个不同的混沌值,令当前的最优适应值的粒子为x*,g(x*)为当前最佳适应值。

(2)利用混沌变量进行搜索。

(10)

其中,pj和qj为常数且大于0。通过对其值的调整,可以把混沌变量的取值范围转化为其对应的优化变量的取值范围。

根据下式计算性能指标:

g(k)=g(x(k)),x(k)=(x1(k),x2(k),…,xn(k))

(11)

(3)如果g(k)

利用混沌算法产生初始解的过程如下:

step1:随机产生N个初始解,并将其映射到Logistic方程的定义域内。

step2:用Logistic方程进行迭代产生混沌序列。

step3:将产生的混沌序列映射到原来的定义域内。

step4:将两类初始解进行排序,将适应度较优的解作为种群的初始解。

2.2 PSO-GSA混合优化算法

基本的引力搜索算法GSA是依靠粒子间的相互作用力来传递信息和更新位置,然而,缺少对历史最优解和群体最优解的保存和学习功能,可能会丢失一些更好的解,不利于算法的收敛速度。

粒子群算法PSO是Kenndy和Eberhart提出的一种进化算法[21]。粒子群算法的灵感来源于鸟群的社会行为。它使用许多粒子在搜索空间中飞行,以找到最佳解。同时,粒子都会看到它们路径中的最佳粒子。粒子会考虑它们自己的最佳解,以及到目前为止发现的最佳解。

粒子群算法中的每一个粒子都要考虑当前位置、当前速度、距离到最优和距离到最优的距离,才能对粒子群的位置进行修正。

文中将粒子群算法中对个体历史最优解和群体最优解的记忆和学习的思想用于引力搜索算法,将式(7)改进为:

(12)

式(12)可能会影响到算法的探索阶段,因为该式是一个恒定的速度更新公式,为了防止新的更新速度法降低勘探能力,将c1,c2改为动态的变量。自适应地减少c1,增加c2,使得当算法到达开发阶段时,粒子趋向于向最优解快速移动。由于进化算法中勘探阶段和开发阶段没有明显的界限,因此这种自适应方法适应于这两个阶段。此外,这种自适应方法强调在第一个迭代中进行探索,在最后一个迭代中进行开发。

c1较高时,算法偏向于标准GSA,而较高的c2体现PSO在执行搜索过程中粒子之间的传递信息的能力。动态的c1,c2使得算法可以像标准GSA探索搜索空间,并像PSO一样保存和利用在探索阶段搜索到的个体最优解和种群最优解。

2.3 改进算法的流程

文中所提出的改进引力搜索算法的流程如下:

step1:利用混沌初始化粒子的位置X,设定种群规模N,维度dim和最大迭代次数。

step2:由目标函数计算每个粒子的适应度值。并保存、更新pbest和gbest。

step4:根据式(12)更新粒子的速度,根据式(8)更新粒子的位置。

step5:保存、更新pbest和gbest。

step6:判断算法是否满足结束条件,若不满足,则返回step2,满足条件时,结束算法,输出最佳值。

图1为改进引力搜索算法的流程。

3 试验验证

为验证文中改进算法的有效性,将改进后的引力搜索算法IGSA与标准引力搜索算法GSA进行对比试验。

3.1 参数设置

种群规模N=50;最大迭代次数max it=1 000;β=20;G0=100;种群维度dim=30;c1=(-2t3/T3)+2;c2=2t3/T3,其中t为当前迭代次数,T为最大迭代次数,曲线如图2所示。

图1 改进引力搜索算法的流程

图2 系数曲线

3.2 测试函数

通过表1中的6个标准测试函数对改进的引力搜索算法和标准引力搜索算法进行测试,并对结果进行分析。其中f1和f2为单峰值函数,算法对其收敛的速度是检验算法性能好坏的重要指标。f3~f6为复杂的多峰值函数,存在较多的局部最优解,用于检验算法的全局搜索能力。

3.3 仿真与分析

分别用改进引力搜索算法IGSA和标准引力搜索算法GSA对6个测试函数进行求解,得出相应的最优值曲线,如图3~图5所示。由图可知,改进后的算法比标准算法收敛速度更快,收敛精度更高,全局搜索能力更强。

表1 标准测试函数

图3 单峰值测试函数对比

图4 多峰值函数对比

图5 固定维度多峰值函数对比

为进一步验证IGSA的优化性能,分别把2种算法运行30次,并在表2中显示出相应的最小值、平均值、方差。

(1)单峰值函数。对于f1、f2来说,其收敛速度的快慢是检验算法性能的重要特点。在表2中可以看出:对于f1和f2函数,IGSA在最小值、平均值和方差方面均小于GSA。从图3中可以得出,在保证得到较好的全局最优解的情况下,IGSA的收敛速度要比GSA更快,并且精度更高。

表2 IGSA与GSA算法结果对比

(2)多峰值函数。多峰值函数存在较多的局部最优解,寻找全局最优解的难度较大。对于函数f3~f6而言,算法寻优的难点在于搜索到全局最优解。从图4到图5可以看出:IGSA搜索到最优值均小于GSA。可以从表2的结果中看到:在f3~f6中,IGSA搜索到的最小值、平均值和方差都小于GSA。

4 桁架分析

选取了1个典型的桁架优化算例,验证了IGSA在求解约束桁架形状和尺寸优化问题上的有效性与可靠性。并将IGSA的优化结果与GSA和其他优化技术的优化结果进行了比较。提出的IGSA由MATLAB软件实现,版本为9.3.0.713579 (R2017b),操作系统:Microsoft Windows 10专业版 Version 10.0 (Build 17134)。算法最大迭代次数为500。算法计算10次,取其最佳值作为计算最终结果值。

72杆空间桁架结构,杆件分为16组,节点1~6沿x,y的最大位移限值是6.35 mm,最大的许可应力为[-172.375,172.375] MPa,密度ρ=2 678kg/m3,弹性模量E=68 950 MPa,长和宽均为3.048 m,每节的高度为1.524 m,荷载工况及作用位置与文献[22]相同。算法的控制参数设置为:最大迭代次数500,搜索空间维数16,种群总数为75。

在相同约束条件下,与其他文献中的结果进行比较,优化结果见表3,图6给出了IGSA求解72杆桁架结构设计问题的典型收敛曲线。

图6 72杆空间桁架结构的收敛曲线

表3 72杆空间桁架优化结果的比较

注:重量栏的单位为kg,其余项单位为mm2。

从表3可以看出,IGSA得到的72杆空间桁架优化后的重量为172.19 kg,与GSA和文献[22-25]中得到的结果相比较,重量得到不同程度上的减小。从图6可以看出,改进后的引力搜索算法在第220次迭代时收敛到最优解,而标准引力搜索算法在第480次时收敛到相应的最优解,因此可以看出改进引力搜索算法搜寻最优解的能力优于标准引力搜索算法,且更快收敛到最优解。

5 结束语

针对标准引力搜索算法收敛速度慢,易陷入局部最优值的问题,引入混沌映射,使得初始化时,粒子均匀地分布在整个搜索空间,使得算法更快地找到最优解,避免陷入局部最优解。引入粒子群算法中的粒子个体的记忆性和信息交互机制,并动态调整学习因子,以加快算法的运算效率,更快找到较优值,使得算法避免陷入局部最优值,最终找到全局最优值。

通过6个测试函数,表明改进后的算法能够较好地找到全局最优解,寻优能力更强。通过对桁架进行结构优化,说明算法适用于空间桁架结构杆件截面尺寸优化设计。

算法对代理的速度公式和后期收敛速度做了改进,在引力常数方面还有待进一步研究。

猜你喜欢

测试函数搜索算法桁架
改进和声搜索算法的船舶航行路线设计
解信赖域子问题的多折线算法
一种基于精英选择和反向学习的分布估计算法
基于自适应选择的多策略粒子群算法
某大型钢结构厂房桁架制作
改进的非结构化对等网络动态搜索算法
改进的和声搜索算法求解凸二次规划及线性规划
移动皮带机桁架轻量化设计研究*
基于莱维飞行的乌鸦搜索算法
JG/T8—2016钢桁架构件