结构优化旨在使结构在满足功能的条件下找到材料用量最省的设计方案[1].随着土木工程结构向大型化和复杂化发展,设计参数爆炸性增长,为获得经济合理的设计方法,结构优化成为工程领域中最重要的研究方向之一.然而结构优化模型通常为非凸优化问题,这对数学规划技术、最优性准则法和基于梯度的优化算法等传统方法带来了挑战[2],因此,近年来具有全局搜索能力的元启发式算法在结构优化领域越来越受欢迎[3].与此同时,许多新型元启发式算法的涌现也为算法的选择提供了更多的方案[4].和声搜索(HS)算法[5]是基于音乐演奏中乐师们凭借自己的记忆调整乐队中各乐器的音调,最终达到一个美妙的和声状态而提出的一种元启发式算法.和声搜索算法因其概念简单、易实现且性能优异的特点,近年来在结构优化领域中取得了许多成就,例如Azizi等[6]将和声搜索算法用作主要算法,将其分为三个阶段对三种建筑结构进行优化设计.为继续提高和声搜索算法的性能,研究者提出了许多改进方法,例如徐文星等[7]采用两段组合的编码方式并加入智能变异算子,以提高和声搜索算法的搜索能力.然而不同于其他群搜索算法,和声搜索算法采用的是一种串行的和声生成机制,使其不具备并行计算特性,当处理大规模复杂问题时,计算效率不高.研究表明结合并行策略可明显提高和声搜索算法的效率,Jiang等[8]通过在迭代过程中动态调整和声的数量,结合并行计算策略以增强和声的多样性,并减少和声搜索算法的优化时间.Li等[9]在和声搜索算法迭代过程中结合自编的并行计算程序实现了线性加速比,并结合轮盘赌和动态权衡因子策略,动态设置和声搜索算法的参数以提高搜索精度.Jaber等[10]利用并行计算的多线程功能开发了两种多核技术程序,并将其与基于和声搜索的社会力量模型(HS-SFM)框架融合,提出一种基于并行和声搜索的社会力量模型(P-HS-SFM)框架.上述研究采用并行策略提高了和声搜索算法的优化效率,然而其各组和声之间在迭代过程中缺少有效的信息共享策略.综合和声搜索算法的特点和并行和声搜索算法的不足,本研究提出一种结合并行策略和粒子群优化(PSO)算法的种群信息共享策略的并行和声搜索(PHS)算法.与标准和声搜索算法相比,提出的并行和声搜索算法有如下两点特色:利用初始和声记忆库(HM)构建多个子和声记忆(SHMs)以增加种群多样性,每个子和声记忆包含数量相同的从和声记忆库中随机选取的和声.迭代过程中这些子和声记忆同时进行演化,实现并行运算以减少优化时间和提高算法全局搜索能力;基于粒子群优化算法的种群信息共享策略提出一种新和声生成算子,用于实现子和声记忆间的信息传递,以平衡标准和声搜索算子中过多的随机性,并增强算法的开发能力.最后通过6个经典基准测试函数和600杆桁架优化问题验证了提出的算法的性能和效率.1 结构优化与标准和声搜索算法1.1 结构优化结构优化一般通过调整结构的材料分配等方法来寻找结构的最小质量等目标.以n个构件组成的结构系统为研究对象,假设基本参数(包括弹性模量、密度、最大允许应力和位移等)已知,以在给定的约束条件下找出结构的最优截面面积使结构质量W最轻作为优化目标.目标函数的数学模型可表示为min W=∑i=1nρiAiLi,式中:A=[A1,A2,…,An]为设计变量,表示n个构件的截面面积;参数Ai,ρi和Li分别为第i个构件的截面面积、密度和长度.结构优化的约束条件一般可用应力和位移来表示s.t. σi≤[σi], ujk≤[ujk]; Alb≤Ai≤Aub,式中:σi和[σi]分别为第i组构件的各种工况下的最不利应力值和应力允许值;ujk和[ujk]分别为第k个节点在j方向上的各工况下最不利位移值和位移允许值;Alb和Aub分别为构件截面面积的下界和上界.本研究采用Deb规则[11]处理约束条件,Deb规则是一种常用的无参数约束处理方法,它从可行性的角度确保解决方案满足约束条件.1.2 标准和声搜索算法和声搜索算法是模拟音乐创作中乐师们凭借记忆反复调整乐队中各乐器的音调的过程而提出的一种元启发算法,其搜索步骤如下.步骤1 定义问题和初始化参数.假设求解一个有D维变量X=[x1,x2,…,xD],目标函数为f(X)的最小值的问题.设定和声的创作次数Tmax、和声记忆库的规模(SHM)、和声记忆考虑概率(RHMC)、音调微调概率(RPA)和音调微调带宽(WB).步骤2 初始化和声记忆库.和声记忆库中的和声在设计空间内随机生成.步骤3 产生新和声.和声搜索算子的步骤为:对于新和声的每一维变量,以RHMC的概率从和声记忆库中随机选取一个变量;以1-RHMC的概率在设计空间中随机生成一个变量.若得到的和声变量是从和声记忆库中提取的,则以RPA的概率根据WB对该和声变量进行微调,得到一个新的和声变量,否则不做调整.步骤4 更新和声记忆库.评估新和声的适应度值,若优于和声记忆库中最差的和声的适应度值,则将最差的和声替换为新和声,否则保留原来和声记忆库.步骤5 终止迭代判断.重复步骤3和步骤4,直至满足迭代终止标准.2 并行和声搜索算法元启发式算法通常需要多轮优化来获得问题的全局最优解,这个过程须要尽可能搜索更多的可行区域,实现这一目标的关键是种群具有良好的多样性.然而,具有串行机制的和声搜索算法使用单个和声记忆库,并在每个迭代步骤仅生成一个新和声,这可能会减少种群的多样性,并导致优化过早收敛.此外,当处理大量数据或需要高性能的任务时,串行机制可能会阻碍和声搜索的优化效率.因此,本研究结合并行策略和粒子群优化算法的种群信息共享策略,提出一种并行和声搜索算法.2.1 并行策略多个种群是应用并行策略的前提,为克服和声搜索算法在并行计算方面的不足,提出的并行和声搜索算法构建了多个子和声记忆库.初始化种群过程中,该算法先生成一个包含多个和声向量的初始和声记忆种群,每个子和声记忆库均从中随机选取相同数量的和声.子库的规模小于初始和声记忆库,在每次迭代中,所有子库同时进行搜索,以提高算法的全局搜索能力.有SHMk=x11x21⋯xD-11xD1x12x22⋯xD-12xD2⋮x1SHM-1x2SHM-1⋯xD-1SHM-1xDSHM-1x1SHMx2SHM⋯xD-1SHMxDSHM,式中:SHMk为第k个子和声记忆库,SHM为子和声记忆库的规模,k∈[1,2,…,NHM],NHM为子和声记忆库的数量;xDSHM为第SHM个和声的第D维变量.2.2 基于种群信息共享策略的新和声生成算子采用多个种群同时搜索可提高算法的全局搜索能力和种群多样性,但种群间信息交流不足可能会导致收敛速度降低.为实现子和声记忆间的信息共享并提高搜索质量,提出一种基于粒子群优化算法的新和声生成算子―种群信息共享(SIS)算子.粒子群优化算法是一种基于群体的算法,模拟了鸟群中个体之间在搜索食物时的合作和信息共享行为,以更高效地探索全局最优解.粒子群优化算法的数学模型为 Vid(t+1)=ωVid(t)+c1R(pbid(t)-Xid(t))+c2R(gbd(t)-Xid(t));Xid(t+1)=Xid(t)+Vid(t),式中:Vid(t)和Xid(t)分别为第t次迭代时第i个粒子的第d维变量的速度和位置;ω为惯性系数;c1和c2分别为个体学习因子和全局学习因子;R为0到1的随机数;pbid(t)为第i个粒子历史最优位置的第d维变量;gbd(t)为当前全局最优解的第d维变量.提出的种群信息共享算子为Xknew=Xkr+c1R(pbhk-Xkr)+c2R(gbh-Xkr),式中:Xknew为第k个子库生成的新和声;Xkr为第k个子库中随机选择的和声,不同于pbhk和gbh;r为1到SHM的随机整数;pbhk为当前迭代次数中第k个子库中的最优和声;gbh为当前迭代次数中所有子库中的最优和声.该式将gbh的位置共享给每个子库,gbh引导各子库向全局最优解决方案接近以避免陷入局部最优解.pbhk则促进和声更加集中地搜索子库所在的局部区域,以更有效地利用各子库的历史经验和信息.在标准和声搜索算子中,随机项在早期迭代中可以增强算法的勘探能力.然而,随着迭代次数增加,随机项可能会限制开发性能和收敛速度.种群信息共享算子减少了随机性,并增强了迭代后期的开发能力.为平衡并行和声搜索算法的勘探和开发,两种算子的选择由动态概率G决定,G=Gmin+(Gmax-Gmin)(Tmax-Iter)/Tmax,式中:Gmin和Gmax分别为G的下界和上界,默认设定为0.2和0.8;Tmax为最大迭代次数;Iter为当前迭代次数.每次迭代生成一个0至1的随机数,当其小于G时,新和声按标准和声搜索算子生成;反之按种群信息共享算子生成新和声.随着迭代次数增加,G的值线性减小,种群信息共享算子被选中的概率增大,有助于增加后期的开发能力,加快算法收敛.新和声生成后,评估其适应度值,若优于所在子库中最差和声的适应度值,则将最差和声替换,否则不做处理.综上所述,并行和声搜索算法的步骤如下.步骤1 定义问题和初始化参数.步骤2 初始化一个和声记忆库.初始和声记忆库中的和声变量在设计空间内随机生成.步骤3 构建多个子和声记忆库.子和声记忆库中的和声由初始和声记忆中随机选取的等量和声构成.步骤4 生成概率G.步骤5 生成新和声.各子和声记忆库利用并行运算程序,同时根据概率G选取标准和声搜索算子或种群信息共享算子,生成一个新和声.步骤6 更新子和声记忆库.将每个子和声记忆库生成的新和声与该库中的最差和声进行对比,若新和声优于最差和声,则将最差和声替换,否则不做处理.步骤7 终止迭代判断.重复步骤4~6直至满足迭代终止标准,输出全局最优和声.3 基准函数算例本研究使用3个单峰基准函数(F1~F3)[12],3个多峰基准函数(F4~F6)[12],共6个基准测试函数评估并行和声搜索算法的性能,各基准函数的名称和相关说明见表1.10.13245/j.hust.241217.T001表1基准函数说明函数名称维度搜索区间F1Beale2[-4.5,4.5]F2Matyas2[-10,10]F3Schaffer No. 42[-100,100]F4Xin-She Yang30[-5,5]F5Ackley30[-32,32]F6Salomon30[-100,100]3.1 基准函数实验设计将并行和声搜索和标准和声搜索与其他四种常用的元启发式算法对比,分别为人工蜂群(ABC)算法[13]、蜻蜓算法(DA)[14]、萤火虫算法(FA)[15]和粒子群优化算法.各算法均选取常用参数设置(见表2),其中Tmax和Pop分别为最大迭代次数和种群数量.10.13245/j.hust.241217.T002表2算法参数设置算法参数设置标准和声搜索Tmax=2.0×104,SHM=100,RHMC=0.9,RPA=0.3,WB=0.2粒子群优化Tmax=2 000,Pop=10,c1=1.5,c2=1.5,w=0.729蜻蜓Tmax=2 000,Pop=10,e=[0.10→0.05],f =2rand(0,1),w=[0.9→0.4]人工蜂群Tmax=2 000,Pop=10萤火虫Tmax=2 000,Pop=10,γ=1,β=1,α=0.2并行和声搜索Tmax=4 000,NHM=5,SHM=10,RHMC=0.9,RPA=0.3为保证对比实验的公平性,将所有算法的目标函数评估次数限定为2.0×104次,并以此作为迭代的终止条件.为了对比分析提出的并行和声搜索算法与其他算法在收敛精度和鲁棒性等方面的优势,所有测试函数均独立进行30次计算,以每次最优值的标准差、平均值和30次运行所获得的最优值作为评价指标.3.2 实验结果与分析单峰函数被认为可以有效评估算法的开发能力,3个单峰基准函数对比结果见表3.从表3中可以看出:并行和声搜索算法在F1和F3函数中均获得了最好或与其他算法同时获得最好的标准差、最小值和平均值;并行和声搜索算法仅在F2函数中稍弱于粒子群优化算法和蜻蜓算法,但其优化结果仍优于标准和声搜索算法,表现出较强的竞争力;可知并行和声搜索算法拥有较出色的开发能力.10.13245/j.hust.241217.T003表3六种算法的寻优结果对比函数结果并行和声搜索标准和声搜索粒子群优化蜻蜓萤火虫人工蜂群F1标准差0.0004.466×10-63.729×10-13.738×10-22.903×10-16.593×10-4最小值0.0005.452×10-90.0001.274×10-80.0001.485×10-5平均值0.0003.804×10-62.667×10-11.532×10-21.188×10-16.100×10-4F2标准差4.874×10-655.376×10-75.500×10-1373.251×10-62.508×10-411.166×10-5最小值5.055×10-718.365×10-109.829×10-1510.0005.928×10-422.013×10-7平均值1.198×10-653.714×10-71.910×10-1372.732×10-63.363×10-411.319×10-5F3标准差6.239×10-177.885×10-41.599×10-29.680×10-58.204×10-31.460×10-4最小值2.926×10-12.926×10-12.926×10-12.926×10-12.926×10-12.926×10-1平均值2.926×10-12.932×10-12.983×10-12.926×10-12.944×10-12.928×10-1F4标准差2.668×10-11.823×10-15.435×1046.810×1052.339×1032.505×107最小值3.988×10-62.391×10-22.594×10-22.999×10-11.1322.645×104平均值1.166×10-12.708×10-12.862×1051.247×1046.133×1024.629×107F5标准差6.625×10-16.650×10-11.2071.8721.2799.690×10-1最小值3.605×10-51.073×10-49.5617.1626.8829.874平均值1.1851.4591.167×1011.229×1019.8171.159×101F6标准差7.798×10-23.490×10-11.4931.2641.3541.235最小值3.999×10-12.3106.6003.6002.9991.120×101平均值9.065×10-12.9809.4209.5506.1991.318×101多峰函数拥有多个局部最优值,因此多峰函数被认为可以有效评估算法的勘探能力.通过优化3个多峰函数并与其他算法对比,以评估并行和声搜索算法的勘探能力,结果显示:并行和声搜索算法获得了F5和F6函数最优的标准差、最小值和平均值;此外,并行和声搜索算法获得了F4函数最优的最小值和平均值,仅在标准差方面稍弱于标准和声搜索算法.分析原因是因为F4函数较为复杂,将并行和声搜索算法的子和声记忆数量定为5过高,导致迭代次数不够,降低了算法的部分鲁棒性.但综合以上结果可以看出:并行和声搜索算法依然获得了大部分最优结果,证明其拥有较强的勘探性能.图1为并行和声搜索算法、标准和声搜索算法和其他四种对比算法对一随机抽取的F6函数的优化平均收敛曲线,结果显示并行和声搜索算法能更快速收敛到较好的结果,证明了并行和声搜索算法有较好的收敛性.10.13245/j.hust.241217.F001图1各算法对F6函数优化平均收敛曲线本研究以6个函数测试了并行和声搜索算法的性能,并与标准和声搜索算法和其他算法进行对比,结果证明并行和声搜索算法拥有较强的开发能力、勘探能力和收敛能力.这归因于算法的以下特征:在一次迭代过程中同时更新多个解的策略,增加了该算法寻找到全局最优的能力,有助于算法尽早收敛;新解生成方式对历史最优解的利用使其能够获得更好的解.3.3 参数敏感性分析本研究分析了调整并行和声搜索算法中的两个新参数(即NHM和SHM)对算法性能的影响.大量测试证明当NHM在1~20之间,SHM在10~30之间时效果较好,因此将NHM的评估值定为1,3,5,10,15和20,SHM的评估值定为10,20和30.随机选择F6函数作为测试函数,从图2可以看出构建子和声记忆可明显提升算法性能.当SHM=10时,继续增加NHM对算法无明显影响;且当SHM较大时,NHM不宜过大;当NHM=5~10,并行和声搜索算法能获得更好的结果,并且此时SHM对算法的影响较小.因此,建议使用NHM=5和SHM=10作为并行和声搜索算法的默认参数值.10.13245/j.hust.241217.F002图2F6参数敏感性分析结果4 工程算例选取600杆桁架优化问题对并行和声搜索算法进行测试,以进一步验证其在复杂结构优化问题中的性能和效率.在实际工程中,桁架通常采用型钢构成,其截面是非连续变量,为简化起见,文中算例的截面为连续变量.将优化所得的结构最轻质量的标准差、均值和所获得的所有质量中的最轻质量作为评价指标.设置子库数量为2,5和10的三种并行和声搜索算法以对比该变量对算法的影响.测试在一台装有AMD Ryzen Threadripper 3990X的计算机上进行,该计算机运行频率为2.90 GHz,内存为256 GiB,Matlab版本为R2016b.600杆桁架结构由216个节点和600个单元组成,参见文献[16]中的图10.该结构径向对称,横截面积变量共25个.各自由节点附有一个100 kg的非结构质量.杆件的弹性模量和材料密度分别为200 GPa和7 850 kg/m3.横截面积设计范围为1~100 cm2.频率约束为f1≥5 Hz和f3≥7 Hz.将并行和声搜索算法与标准和声搜索算法及其他文献中的DPSO[17]、ECBO[18]和ECBO-Cascade[18]算法的结果进行对比.为保证公平性,将目标函数的评估次数限定为2.4×104并作为迭代终止条件.表4对比了并行和声搜索算法与标准和声搜索算法在独立运行30次后的结果.当NHM=5时,并行和声搜索算法得到了最轻的结构质量,比标准和声搜索算法结果轻约300 kg,并优于对比算法(DPSO算法为6 344.55 kg,ECBO算法为6 171.51 kg,ECBO-Cascade算法为6 140.51 kg).10.13245/j.hust.241217.T004表4600杆桁架优化结果对比评价指标标准和声搜索算法并行和声搜索算法NHM=2NHM=5NHM=10最轻质量6 350.526 079.976 072.746 098.55平均质量6 619.926 224.086 097.786 192.14标准差407.24403.6415.88218.24kg图3为三种并行和声搜索算法和标准和声搜索算法的平均收敛曲线,当子库数量分别为2和10时,并行和声搜索算法搜索能力下降,子库数量等于5时并行和声搜索算法拥有最强的搜索能力.三种情况下并行和声搜索算法都获得了比标准和声搜索算法更轻的平均质量,其中子库数量为5时标准差最低为15.88 kg,并低于标准和声搜索算法的407.24 kg,此时并行和声搜索算法表现出较强的鲁棒性.10.13245/j.hust.241217.F003图3600杆桁架优化平均收敛曲线表5对比了标准和声搜索算法和不同子库时并行和声搜索算法的优化时间,结果表明:三种并行和声搜索算法的优化时间分别为标准和声搜索算法的59.41%,26.21%和13.42%,验证了其在大规模复杂结构优化问题中的高效性.表5还说明并行和声搜索算法的优化成本会随着子库的增加而明显下降,原因为该问题十分复杂,并行运算减少了大量的结构分析.然而,过量的子库数量会导致并行和声搜索算法性能恶化,因此当面临不同的问题时,须选择合适的子数量以平衡其搜索能力和计算效率.10.13245/j.hust.241217.T005表5600杆桁架优化时间算法NHM优化时间/(104s)并行和声搜索215.073 24556.651 035103.405 064152.580 052202.110 863标准和声搜索—25.371 7385 结论本研究提出了一种并行和声搜索算法,以解决标准和声搜索算法串行迭代无法并行计算及在大型结构优化设计中全局搜索能力不足的问题,得到的主要结论如下.a.基准函数优化结果验证了并行和声搜索算法较标准和声搜索算法有更强的搜索能力,拥有较好的稳定性的同时保证了收敛精度和速度,并且与其他四种算法相比也有较强的竞争力.b.参数敏感性分析表明,当子和声记忆库数量为5,子和声记忆库的规模为10时,并行和声搜索算法的搜索能力较强.c.桁架结构优化结果验证了并行和声搜索算法可以获得比标准和声搜索算法更好和更稳定的最优解,且计算效率也有大幅提升.d.增加子和声记忆库的数量对优化效率有积极影响,但可能会恶化并行和声搜索算法的搜索能力,因此对于不同的结构优化设计问题,须要设置不同数量的子和声记忆库以平衡算法的优化成本和精度.本研究提出的改进算法也存在局限性,即在搜索过程中并行和声搜索可能因某个种群生成的新解较差而浪费该次并行计算.未来的研究将从生成新解的数量或约束处理方法等方面开展,以进一步提高新解的质量并充分利用并行计算资源.
使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,
确定继续浏览么?
复制成功,请在其他浏览器进行阅读
复制地址链接在其他浏览器打开
继续浏览