一种基于自适应布谷鸟与烟花混合算法的压力容器优化设计方法与流程

文档序号:11865450阅读:422来源:国知局
一种基于自适应布谷鸟与烟花混合算法的压力容器优化设计方法与流程
本发明属于智能优化算法的改进及应用领域,涉及到两种新颖的自适应优化算法及多种群并行进化的布谷鸟与烟花混合算法。
背景技术
:压力容器设计一直是优化算法中应用的难点问题,由于容器的结构复杂、影响因素较多以及可行域不规则等多种因素,采用传统的优化算法无法得到理想的结构参数。因此,一些智能算法逐渐被应用到此问题中,如遗传算法、差分进化算法;但是随着现代工业技术的发展,技术人员对于容器设计的精度以及误差有着更高的要求,而基本的智能算法已经无法满足人们的需求,为解决此类问题,一些性能更加优良的新型智能算法逐渐被提出。通过观察布谷鸟寄生孵育雏鸟这一自然现象,剑桥大学Xin-SheYang(杨新社)教授和S.Deb于2009年提出了布谷鸟算法;受烟花在空中爆炸的启发,北京大学的Tan和Zhu于2010年提出了烟花算法。布谷鸟与烟花算法在思想上具有很大程度上的类似,算法思想来源于自然界中普遍的现象,通过计算机编程语言模拟了个体在可行域中寻找函数最优值的过程。然而,基本的布谷鸟算法与烟花算法都是一种贪婪的、随机的搜索算法,可以较好地解决高维的、单峰的函数寻优问题,可是基本的智能算法进化过程中参数固定,个体的自我感知能力以及学习能力较低,对于多峰、多变量的目标函数,单一的算法无法跳出局部最优解,并且算法中固定的参数设置也降低了个体对于不同搜索环境的适应性,对于一些目标函数寻优精度不高。为解决对于多峰、多变量目标函数的寻优问题,有学者采用了两者或者两者以上的混合算法来代替单一的智能算法,从而相继提出了遗传与粒子群混合算法、粒子群与差分进化混合算法等,通过在同一个种群中实现了两种个体搜索方式,巧妙地将两个算法的优势相结合。布谷鸟算法采用了莱维飞行的方式更新了个体的信息,使布谷鸟不断地探索最优值可能存在的区域,经过多次迭代选择之后,个体最终能够确定函数的全局最优解。烟花算法通过炸点向空间各个方向生成大量的火星,同时比较所有火星的适应值,保留最佳炸点位置,不断地提高每一代种群的最优值。通过将布谷鸟与烟花算法相混合,在同一个种群中使用两种进化环境,然后进过一定的时间再混合进化选择,既保证了各个算法的独立性,也有利于不同种群进化方式之间的优势互补。技术实现要素:本发明的目的是为了解决压力容器的优化设计问题,在两个子种群中,布谷鸟算法与烟花算法并行运行,保留各自的进化特性,防止个体陷入局部最优解,保证了种群多样性。本发明采用了自适应布谷鸟与烟花算法,自适应调整了算法中各项参数指标。解决的方法具体包括以下几个步骤:一种基于自适应布谷鸟与烟花混合算法的压力容器优化设计方法,其特征在于,具体包括如下步骤:步骤一:通过对于压力容器的数学建模,确定影响压力容器结构性能的各个变量以及变化范围,建立压力容器结构优化的目标函数;压力容器的优化设计就是通过调节各个结构参数,以最小的成本获得最佳的容器性能,通过对于压力容器参数与性能之间的函数关系,建立如下的函数模型:minf(x)=0.6224x1x3x4+1.7781x2x32+3.1661x12x4+19.84x12x3g1(x)=-x1+0.0193x3≤0g2(x)=-x2+0.00954x3≤0g3(x)=-πx32-43πx32+1296000≤0g4(x)=x4-240≤0.---(1)]]>式中,x1表示容器内壁的厚度,x2代表容器圆形头部厚度,x3为头部圆形的内径,x4为容器圆柱体部分的长;上式中,f(x)为所求的目标函数,而g1(x)、g2(x)、g3(x)、g4(x)为参数的约束条件;步骤二:设置布谷鸟以及烟花算法的初始化参数以及种群;初始化参数:布谷鸟算法中,搜索步长α,布谷鸟鸟蛋的发现概率Pα;烟花算法中,爆炸点的半径Ri,爆炸点的火花数目Mi,爆炸点层数W;根据工业生产中得到的目标函数维数D,种群的规模Np,个体的最大迭代次数GMAX,设置当前迭代次数t=0,种群在第t代第i个个体可表示为:Xit=(xi,1t,xi,2t,...,xi,Dt),i=1,2,...,Np---(2)]]>种群的搜索的可行域为[Xmin,Xmax],个体中每个维度的都必须限定在规定的范围内;种群初始化为:Xi0=Xmin+rand(1,Np)×(Xmax-Xmin),i=1,2,...,Np---(3)]]>rand(1,Np)在算法运行时产生了Np个在(0,1)之间的均匀随机数;步骤三:将算法的种群一分为两个子种群N1=Np/2,N2=Np/2;分别将N1和N2放置在两个完全独立的进化环境中(E1,E2);步骤四:在进化环境E1中,种群按照布谷鸟算法的基本流程进行,包括步骤4.1~步骤4.3:步骤4.1:当代布谷鸟鸟巢的位置为i=1,2,…,N1,布谷鸟个体通过莱维公式来寻找下一代鸟巢从而实现了对空间的随机搜索;步骤4.2:计算备选鸟巢的适应值,比较与的适应值,选出两个种群中适应值排名靠前的个体,形成了布谷鸟的新鸟巢i=1,2,…,N1;步骤4.3:在中的每一个鸟巢(i=1,2,…,N1,j=1,2,…,D)都产生均匀分布随机数pα,作为布谷鸟鸟蛋被原鸟巢主人发现的概率,若pα<Pα,则说明原宿主已经发现了布谷鸟鸟蛋,因此,布谷鸟需要随机寻找新的鸟巢通过对比与两者适应值的大小,淘汰处于劣势的鸟巢位置;若pα≥Pα,则布谷鸟鸟巢不发生变化;最终,布谷鸟鸟巢的位置得到了更新,生成了新一代鸟巢位置步骤五:在进化环境E2中,子种群按照N2按照烟花算法的流程进行操作,具体如步骤5.1~步骤5.4:步骤5.1:对于D维的目标函数寻优问题,烟花爆炸点i=1,2,…,N2,向空间中各个方向,依次生成了新的炸点火星,每一代爆炸点的初始半径为Ri;步骤5.2:烟花算子以炸点为中心向外生成W层的火星炸点,每一层的爆炸点半径为jRi/W(j=1,2,…,W);以一个烟花爆炸点为繁殖母体,生成了Mi个子火星然后比较爆炸点与的最优值,从而确定下一代备选烟花种群步骤5.3:由于采用贪婪选择的策略,烟花炸点之间的差距会逐渐降低;为保持种群的多样性,随机选取烟花种群中50%的个体,加入差分变异操作,如下所示:U‾it+1={S‾it+1+p(S‾jt+1-S‾kt+1)ifrand≤0.5i=1,2,...,N2;S‾it+1otherwiset=1,2,...,GMAX---(4)]]>上式中,p为均匀分布的随机数,且p∈(0,1),j,k是从烟花种群中随机选择的个体,i,j,k之间不能相同;通过rand产生了均匀分布在(0,1)之间的随机数,种群得到了部分具有新性状的候选爆炸点同时若候选爆炸点超出了可行域的范围,应重新对原有炸点进行差分变异操作,直到步骤5.4:选择操作,选出与中的优势个体,组成了新型的下一代种群烟花炸点利用差分变异实现了对整个可行域范围内的搜索;步骤六:子种群之间的信息交流操作;在种群进化过程中,每隔10代,将子种群N1和N2融为一个种群N,设置单一进化环境为E,对布谷鸟个体与烟花个体的适应值进行排序,记录当前最佳个体步骤七:终止检验;判断算法是否满足终止条件,若t<GMAX,则返回步骤二,并且t=t+1;反之,算法结束,输出最优值。本发明的优点和积极效果在于:1)调整了子种群N1中布谷鸟莱维飞行的搜索步长,根据种群中当代个体与最优个体的适应值相对大小,自适应调节布谷鸟跳跃的幅度。当布谷鸟处于种群最优位置领域时,个体会加强局部搜索;当个体适应值与最优值相差很大时,搜索步长就会增大,子代与父代之间的距离增大,种群扩大了寻优范围。2)由于布谷鸟算法中发现概率对子种群N1的多样性以及个体分布密集程度有重要的影响,因此,本发明将发现概率与种群的标准差建立函数关系,布谷鸟个体能够感知当代种群在空间的分布情况,自动调节下一代的发现概率,有效平衡了种群多样性与收敛速度之间的关系。3)本发明中烟花算法的爆炸半径采用分段取值的方法,对比先前的改进方式,初始半径只使用一种调整模式,本方法考虑到了一些多峰、最优值急剧变化的目标函数,分别在前期与后期有足够的时间进行全局与局部搜索,防止了算法进化停滞现象。4)分别将布谷鸟个体与烟花个体置于两个独立的环境进化,同时保留了布谷鸟和烟花炸点的寻优方式。同时经过10代,两个种群进行信息交流,而不是每一代都进行种群融合,有效降低了算法的复杂度,提高了种群多样性。5)受其它智能算法的启发,本发明中烟花算法中个体采用了差分变异方式,取代了基本烟花算法中高斯方式,即简化了进化过程也增加了个体选择的目的性,加大了寻找到更优个体的几率。6)本发明将利用布谷鸟与烟花混合算法较好的解决了压力容器的优化设计问题,混合算法在进化过程中保持了种群多样性,搜索个体能够自适应地根据最优值在可行域分布规律,调整自身的搜索重点;通过基本布谷鸟算法以及烟花算法对比,布谷鸟与烟花混合算法降低了容器设计成本,得到了精度更高的容器参数。附图说明图1是本发明流程示意图。图2是烟花算法中半径变化函数模型曲线。图3是自适应布谷鸟与烟花混合算法(SCSFWA)、基本的布谷鸟算法(CS)、基本的烟花算法(FWA)的收敛曲线图;其中(a)~(j)分别对应函数f1~f10。图4是压力容器结构图。具体实施方式下面结合附图对本发明做出进一步详细说明。本发明中采用了自适应布谷鸟与烟花混合算法,主要的目的是为了解决压力容器的优化设计问题。基本的智能算法对于多峰、多变量、高维的目标函数寻优精度低,个体易陷入局部最优解,算法的成功率低。本发明结合了两种最新颖的、效果优良的优化算法-布谷鸟算法和烟花算法,改进了基本算法的进化参数和策略,实现了两个算法之间的优势互补,提高了算法的收敛性能。与压力容器的优化设计问题类似,技术人员在各种行业中总结出大量的多峰、多变量、高维的目标函数如下所示:表1CEC2014benchmark测试函数表1中函数在可行域内拥有多个局部极值,并且函数值之间跳跃性强,但只有一个全局最优解,若采用基本的优化算法,如牛顿爬山法、遗传算法等,最优值精度低甚至无法收敛。对此类复杂函数的优化,需要算法具有极高的自启发能力,每当个体陷入局部最优解时,种群能够调整自身的参数,促使个体跳出局部最优解,保持种群的多样性。因此,采用混合算法来优化此类问题,可以将不同的搜索特性相融合,对于单一的算法,布谷鸟个体或者烟花个体都无法避免易陷入局部最优解的不足,但是将两者进行结合,实现了两种算法中个体并行在空间进行随机搜索,增大了算法成功的概率。本发明中自适应布谷鸟与烟花混合算法如图1所示,具体的步骤分别为:步骤一:通过对于压力容器的数学建模,确定影响压力容器结构性能的各个变量以及变化范围,建立压力容器结构优化的目标函数。压力容器的优化设计就是通过调节各个结构参数,以最小的成本获得最佳的容器性能,根据附图4中压力容器的图形,在压力容器参数与性能之间建立如下的函数关系:minf(x)=0.6224x1x3x4+1.7781x2x32+3.1661x12x4+19.84x12x3g1(x)=-x1+0.0193x3≤0g2(x)=-x2+0.00954x3≤0g3(x)=-πx32-43πx32+1296000≤0g4(x)=x4-240≤0.---(1)]]>式中,x1表示容器内壁的厚度,x2代表容器圆形头部厚度,x2为头部圆形的内径,x4为容器圆柱体部分的长;上式中,f(x)为所求的目标函数,而g1(x)、g2(x)、g3(x)、g4(x)为参数的约束条件。步骤二:设置布谷鸟以及烟花算法的初始化参数以及种群;初始化参数:布谷鸟的搜索步长α,鸟蛋的发现概率Pα,烟花炸点的半径Ri,每一代中炸点生成的火星数目Mi,炸点的层数W。所求目标函数与的维数D,种群的规模Np,最大的进化代数GMAX,令初始代数t=0,其中第t代中第i个个体可表示为:Xit=(xi,1t,xi,2t,...,xi,Dt),i=1,2,...,Np---(2)]]>同时,种群的搜索范围为[Xmin,Xmax],种群当中的所有个体都应限定在该可行域之内。当t=0,种群初始化为:Xi0=Xmin+rand(1,D)×(Xmax-Xmin),i=1,2,...,Np---(3)]]>其中,rand(1,D)为产生1×D维、在[0,1]之间均匀分布的随机数。结合本发明中的附图,实验中算法的初始化参数固定值为:对于所有的目标函数GMAX=1000;根据本发明中表1中测试函数以及压力容器数学模型,当D=30,Np=45;当D=100,Np=100。步骤三:将算法的种群一分为两个子种群N1=Np/2,N2=Np/2;分别将N1和N2放置在两个完全独立的进化环境中(E1,E2)。步骤四:在进化环境E1中,种群按照布谷鸟算法的基本流程进行,包括步骤4.1~步骤4.3:步骤4.1:当代布谷鸟鸟巢的位置为i=1,2,…,N1,布谷鸟个体通过莱维公式来寻找下一代鸟巢如下所示:其中Lévy(λ)产生了随机游走,其游走步长服从莱维分布:Lévy(λ)~u=t-λ,(1<λ≤3)(5)通过上式可知搜索步长α控制布谷鸟个体搜索的幅度,对于多峰函数的寻优,搜索步长则要随时根据布谷鸟搜索状态的改变进行随时调整,因此步长的调整策略无法与某一种函数变化模型相吻合,而是需要依据种群对于不同的目标函数的搜索过程中随时做出改变,对此,本文中布谷鸟算法的搜索步长调节策略为:step=|fi-fbestfbest-fworst|---(6)]]>α=α‾·step---(7)]]>式中,fbest和fwrost分别为种群中最优个体与最差个体的适应值。其中为一定值,结合附图1,将当前个体与最优个体之间的相对距离作为反馈量,根据个体在搜索过程中所处的不同状态实时调节搜索步长,增加了算法的效率。当种群中的个体与最优个体适应值相差较大时,布谷鸟所选择的下一代鸟巢就会远离父代鸟巢,增大了个体对于全局搜索的力度。若当代个体与最优个体适应值相差较小时,布谷鸟会侧重于局部搜索。以往的布谷鸟搜索步长调整方式只采用一些固定的函数模型,如一次函数、指数函数等,本文中的搜索步长不依据进化的代数来进行调整,而是根据个体的实际需要来进行调整,提高了算法的收敛性能,也是算法更加具有普遍性。步骤4.2:计算备选鸟巢的适应值,比较与的适应值,选出两个种群中适应值排名靠前的个体,形成了布谷鸟的新鸟巢i=1,2,…,N1。步骤4.3:在布谷鸟新鸟巢中,每一个个体都随机产生一个对应的发现概率pα,若pα<Pα,则鸟巢原宿主发现了布谷鸟鸟蛋,布谷鸟个体则需要随机寻找一个新的鸟巢比较与适应值的大小,寻找最优的鸟巢组成布谷鸟下一代种群。若pα≥Pα,则说明原宿主并未发现布谷鸟鸟蛋,鸟巢位置不变。因此,布谷鸟鸟巢设置发现概率的主要目的是引入外来鸟巢,防止种群陷入局部最优解,增加种群多样性。基本的布谷鸟算法发现概率为定值,以往的改进布谷鸟算法采用递减的函数模型,使种群能够在初期全局搜索,后期注重局部搜索。本发明将布谷鸟算法中的个体适应值标准差与发现概率相连接,具体策略如下所示:std(Sit)=1N1(Σj=1N1(fitness(sjt)-μ)2)---(8)]]>Pα=1-std(sjt)max(std(sit)),,t=1,2,...,GMAX,i=1,2,...,N1---(9)]]>上式中,μ为第t代种群中所有个体的平均环境适应值,表示算法以前进化代数中记录到的最大标准差。通过计算每一代种群的标准差,每一代种群都拥有一个最适宜的发现概率,该调节方式实现了个体的发现概率与种群多样性之间形成了一个闭环控制。当个体之间较为分散时,种群适应值标准差较大,布谷鸟鸟蛋发现概率较小,外来的随机鸟巢加入下一代种群的几率较少,加快了算法收敛的速度;若个体之间聚集度较好,种群标准差较小,鸟蛋的发现概率较大,布谷鸟则会注重对于整个空间的搜索,提高了种群多样性。因此,将种群适应值标准差作为反馈量,使搜索个体更加具有灵活性,根据种群每一代的搜索情况,自动调节鸟蛋发现概率,提高了目标函数最优值的精度。步骤五:在进化环境E2中,子种群按照N2按照烟花算法的流程进行操作,具体如步骤5.1~步骤5.4:步骤5.1:烟花炸点可表示为i=1,2,…,N2,由空间中N2个炸点向各自领域范围内部的D个方向生成火星,每一代爆炸点的初始半径为Ri,其中爆炸点初始半径Ri是影响烟花算法搜索效率的重要因素,为兼顾算法最优值精度与收敛速度,炸点在算法初始阶段应尽量覆盖全局范围内部,在进化后期,炸点的半径则要保持较小的数值,加强对于局部最优解邻域范围内的搜索,因此,本发明中烟花炸点的半径采用分段取值:Ri=Rmax,t≤GMAX3R^(t-2GMAX3)2+RminGMAX3<t≤2GMAX3Rmint>2GMAX3---(10)]]>其中,Rmax,Rmin为炸点半径的最大值,为一常数,在本发明中,Rmax=10,Rmin=0.0001,以及结合附图2中半径函数变化曲线可知,炸点在算法初期以及后期为定值,从而保证了个体全局与局部搜索的时间,提高了最优值的精度。在算法中期,爆炸点的半径逐渐降低,实现了个体逐渐从全局搜索到局部寻优的过渡,使个体能够在种群的不同阶段调整火星的搜索范围。步骤5.2:烟花算法中个体爆炸产生W层的火星(实验中W=D),每一层火星的爆炸半径为jr/W(j=1,2,…,W),以炸点为中心,向领域范围内生成Mi个火星计算与中每一个个体的最优值并进行排序,选出N2个最优个体下一代备选烟花种群炸点生成火星的过程中,火星的数目应按照个体搜索能力来确定,因此,Mi计算公式如下:其中,Ri为当前炸点的初始半径,为算法运行过程中记录到的最大半径值,为定值,本实验中火星数目更加的根据炸点的搜索半径来确定,避免了不同个体之间火星的重叠,减少了算法无用爆炸点,确保了个体对于不同搜索空间的均匀分布,提高了算法搜索效率。步骤5.3:选取火星中的优势个体替换适应值较低的父代个体,这种贪婪的进化策略会降低种群的多样性。为增加烟花个体之间的距离,本发明中增加了差分变异操作,具体方法如下所示:U‾it+1={S‾it+1+p(S‾jt+1-S‾kt+1)ifrand≤0.5i=1,2,...,N2;S‾it+1otherwiset=1,2,...,GMAX---(12)]]>其中,p为在[0,1]之间的均匀分布随机数,j、k为种群中随机选择的互异个体,i≠j,i≠k,加入差分变异操作的目的是为了引入具有全新性状的个体,防止算法陷入局部最优解步骤5.4:选择操作;通过比较与的适应值大小,选取最优个体组成了下一代炸点的位置步骤六:子种群之间的信息交流;在两个独立的进化环境中,布谷鸟算法与烟花算法都保持了各自的进化特征。为增强整个种群的信息交流,每隔10代,将子种群N1和N2融合在一个环境中进行选择操作,将当前得到的最优个体适应值作为每个种群的历史最优解。步骤七:终止检验;判断算法是否可以结束,若t<GMAX,则返回步骤二,t=t+1;反之,则算法结束,输出最优解。以上所述为自适应布谷鸟与烟花混合算法的所有步骤与原理。为测试本发明中算法的有效性,分别将FWA算法、CS算法以及SCSFWA算法在表1中的测试函数进行实验,每个测试函数分别进行50组实验,统计每组实验的平均最优值以及标准差,如表2所示:表2三种算法的平均最优值和标准差附图3选取了每组实验中具有代表性的算法收敛曲线;对比CS、FWA算法的实验结果,SCSFWA算法提高了最优值精度的数量级,防止了算法陷入了局部最优解,对于进化的不同阶段与区域算法根据种群的搜索状态动态调节个体的搜索方向,算法的通用性较强。将上述三种算法应用到压力容器的优化设计问题中,容器的结构参数如下所示:表3三种算法得到的压力容器优化参数算法x1x2x3x4g(x1)g(x2)g(x3)g(x4)f(x)FWA12.566.871500.87.222-2.909-2.093-5.42e+05-232.74.66e+06CS9.0585.469461.89.507-0.144-1.063-2.67e+05-230.42.85e+06SCSFWA8.6575.760420.57.218-0.541-1.748-2.47e+02-232.72.45e+06综上所述,SCSFWA算法以最小的成本,得到了最佳的结构参数,提高了压力容器的结构性能。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1