馮 騁
(貴州民族大學(xué)建筑工程學(xué)院,貴州 貴陽 550025)
基于改進(jìn)人工魚群算法的空間桁架結(jié)構(gòu)優(yōu)化研究
馮 騁
(貴州民族大學(xué)建筑工程學(xué)院,貴州 貴陽 550025)
以工程應(yīng)用為目標(biāo),針對基本人工魚群算法在優(yōu)化過程中存在的很多不足,對人工魚的搜索視野和移動步長進(jìn)行了改進(jìn),提出了一種改進(jìn)的自適應(yīng)人工魚群算法,并結(jié)合對一個25桿空間桁架結(jié)構(gòu)進(jìn)行形狀優(yōu)化設(shè)計,比較詳細(xì)的介紹了運(yùn)用該方法進(jìn)行優(yōu)化的思想和策略,表明了改進(jìn)的魚群算法的可行性。
魚群算法,自適應(yīng),桁架,形狀優(yōu)化
結(jié)構(gòu)優(yōu)化設(shè)計是結(jié)構(gòu)工程中的一個重要研究方面,工程師可以通過合理的優(yōu)化來達(dá)到節(jié)能節(jié)材的目的[1]。桁架結(jié)構(gòu)在工程應(yīng)用中很廣泛,特別是鋼桁架在輸電塔、大跨度橋梁、大空間屋蓋、交錯桁架等結(jié)構(gòu)體系中應(yīng)用量非常大。因此在工程設(shè)計中如何在滿足結(jié)構(gòu)安全、可靠、經(jīng)濟(jì)的前提下對其進(jìn)行優(yōu)化設(shè)計以使結(jié)構(gòu)最節(jié)省材料是一個很有意義的研究問題。近年來仿生型優(yōu)化算法在工程結(jié)構(gòu)設(shè)計領(lǐng)域開始興起,最具有代表性的有遺傳算法、蟻群算法和粒子群算法等,目前這些算法在桁架結(jié)構(gòu)優(yōu)化方向的研究已比較成熟。人工魚群算法是李曉磊[2,3]等通過研究魚類的行為而提出的一種基于動物自治體[4,5]的優(yōu)化方法,它能很好地解決尋優(yōu)過程中出現(xiàn)的局部極值問題。人工魚群算法也存在缺點(diǎn),就是后期盲目搜索的概率大、尋優(yōu)結(jié)果精度不高、運(yùn)算速度緩慢。鑒于它的這么多缺點(diǎn),近年來部分學(xué)者已經(jīng)從不同的方面對該算法進(jìn)行了一些研究與改進(jìn),提出過一些改進(jìn)的人工魚群算法[6,7],但是這些改進(jìn)并沒有完全解決人工魚群算法運(yùn)算速度慢與尋優(yōu)穩(wěn)定性差的問題,只是在一定程度上改善了基本人工魚群算法在優(yōu)化問題中的缺陷。
人工魚群算法是一種基于人工魚群行為的隨機(jī)搜索算法,是一種新型的群體智能尋優(yōu)方法。該算法的基本思想是:在一片水域中,魚類往往能通過尾隨其他魚或者靠自己各處游動找到食物比較豐富的地方,因而一片水域中食物最豐富的地方一般也是魚類聚集數(shù)量最多的地方,同樣,魚群數(shù)量最多的地方食物也很多。根據(jù)魚類的這一特點(diǎn)構(gòu)造人工魚,結(jié)合魚類的覓食、聚群、追尾等行為動作,每條人工魚通過與環(huán)境的交流反饋來實(shí)現(xiàn)尋優(yōu)。
人工魚群行為的算法描述如下:
1)覓食行為:在一片水域內(nèi)人工魚個體自由游動,其當(dāng)前位置狀態(tài)為Xi,在其感知范圍Visual內(nèi)隨機(jī)選擇一個狀態(tài)Xj(本文以結(jié)構(gòu)優(yōu)化為目標(biāo),都是討論求最小值問題),如果Yj (1) 否則,需要再次在感知范圍內(nèi)隨機(jī)選擇一個新的位置狀態(tài),經(jīng)過反復(fù)嘗試在有限的次數(shù)Try_number后,如果還不能滿足前進(jìn)條件,則執(zhí)行隨機(jī)行為。 2)群聚行為:人工魚利用該行為趨利避害,設(shè)人工魚當(dāng)前位置狀態(tài)Xi,首先探索當(dāng)前感知范圍內(nèi)的伙伴數(shù)目nf及中心位置Xc,然后進(jìn)行比較,如果Ycnf (2) 否則執(zhí)行覓食行為。 3)追尾行為:魚群數(shù)量中的個體眾多,當(dāng)魚群中的一條或者幾條人工魚發(fā)現(xiàn)食物時,其他魚會迅速尾隨而來,當(dāng)前人工魚首先探索當(dāng)前位置狀態(tài)Xi感知范圍內(nèi)的伙伴中Yj為最小的伙伴Xmin,并且必須保證該新位置狀態(tài)不能過度擁擠而且食物的量足夠多,所以若滿足Yminnf (3) 否則執(zhí)行覓食行為。 4)隨機(jī)行為:人工魚在不能執(zhí)行以上三種行為時,人工魚不會原地不動,可以在感知范圍內(nèi)隨機(jī)選擇一個新的位置狀態(tài),然后向該方向游動,為: Xnext=Xi+Visual×step×randO (4) 實(shí)際上,隨機(jī)行為是覓食行為的一個默認(rèn)缺省行為[8]。 5)公告板:主要記錄優(yōu)化過程中最優(yōu)人工魚個體的狀態(tài)。 2.1 視野的改進(jìn) 視野參數(shù)Visual對于算法的收斂性能有著較大的影響,在視野參數(shù)固定的情況下,人工魚逐漸接近最優(yōu)解時,只有很少的人工魚位置狀態(tài)與最優(yōu)值的位置狀態(tài)不同,所以人工魚在最優(yōu)解附近以原始的視野進(jìn)行搜索是一種盲目行為。如果視野范圍取值較大,人工魚在開始搜索的時候,具有較強(qiáng)的全局搜索能力和收斂速度,到了后期穩(wěn)定性差;如果視野范圍取值較小,在魚群尋優(yōu)的前期,其覓食行為和隨機(jī)游動兩種行為比較突出。提出視野按下式調(diào)整: (5) 2.2 步長的改進(jìn) 采用固定的步長step,在算法運(yùn)行后期,人工魚都是以較大的步長進(jìn)行尋優(yōu),這使得人工魚在最優(yōu)值附近來回尋優(yōu),產(chǎn)生震蕩現(xiàn)象。如果step較小,震蕩幅度也會相應(yīng)變小,尋優(yōu)精度提高,但是收斂速度會下降,在局部極值比較明顯的情況下容易陷入局部最優(yōu)解。為了減小固定步長step對尋優(yōu)帶來的不利影響,采用兩種步長:step1和step2,覓食行為、聚群行為、追尾行為和隨機(jī)行為分別根據(jù)step1和step2移動來更新位置,各自選擇出各種行為的最優(yōu)位置為當(dāng)前的最新狀態(tài)。 step2>step1 (6) 其中,Visual0為搜索視野初值;step1為移動步長初值;t為當(dāng)前迭代次數(shù),T為最大迭代次數(shù)。 2.3 人工魚群算法的計算流程 1)設(shè)置初始化參數(shù),包括人工魚的群體數(shù)量D,人工魚的初始視野Visual0,移動步長step1和step2,擁擠度因子δ,最大重復(fù)嘗試次數(shù)Try_number,當(dāng)前尋優(yōu)迭代次數(shù)t,尋優(yōu)的最大迭代次數(shù)T等參數(shù)。 2)計算每個個體的適應(yīng)度函數(shù)值,并取最優(yōu)人工魚狀態(tài)及其值賦給公告牌。 3)對每個個體進(jìn)行評價,對其要執(zhí)行的行為進(jìn)行選擇,包括覓食、聚群、追尾和隨機(jī)行為。 4)執(zhí)行人工魚已經(jīng)選擇好的行為,每種行為都分別用步長step1和step2更新一次當(dāng)前位置,對比選擇每種行為更新結(jié)果的最優(yōu)位置,生成新魚群。 5)評價并且比較所有人工魚個體,若個體優(yōu)于公告牌,該個體取代公告板上的賦值。 6)檢查終止條件,如果滿足停止條件,則比較公告板上的函數(shù)值,選取最適宜的并輸出最優(yōu)解,算法終止;否則轉(zhuǎn)流程2)。 25桿空間桁架如圖1所示,E=6.897 4×1010N/m2,ρ=27 688 N/m3。由對稱性,將25根桿分為8組,即有8個截面設(shè)計變量,位移約束是節(jié)點(diǎn)1和節(jié)點(diǎn)2在(x,y)方向上的位移不超過0.889 cm。截面離散集S={0.774,1.355,2.142,3.348,4.056,4.632,6.542,7.742,9.032,10.839,12.671,14.581,21.483,34.839,44.516,52.903,60.258,65.226},單元編號分組與許用應(yīng)力及荷載工況如表1,表2所示。 表1 單元分組與許用應(yīng)力 N/cm2 改進(jìn)的魚群算法優(yōu)化后的25桿桁架模型見圖2,基本魚群算法與改進(jìn)的魚群算法收斂曲線見圖3,可見改進(jìn)的魚群算法收斂速度加快,收斂精度明顯提高。改進(jìn)的算法迭代次數(shù)不到30次就已經(jīng)搜索到全局最優(yōu)解,而基本魚群算法超過40次才穩(wěn)定下來,并且搜索到的是局部最優(yōu)值。收斂精度也得到明顯提高?;爵~群算法、改進(jìn)的魚群算法、標(biāo)準(zhǔn)遺傳算法、改進(jìn)遺傳算法的優(yōu)化結(jié)果比較如表3所示,形狀設(shè)計變量的單位是cm。約束條件均滿足要求。從表3可以看出本文采用的改進(jìn)魚群算法與基本魚群算法相比,重量下降2.66%;與標(biāo)準(zhǔn)遺傳算法和改進(jìn)的遺傳算法相比,重量分別下降了2.80%和0.83%;和文獻(xiàn)[9]相比,重量下降2.57%,可見改進(jìn)的魚群算法進(jìn)行形狀優(yōu)化是有效的。 表2 荷載工況 kN 表3 25桿桁架優(yōu)化結(jié)果比較 針對基本魚群算法因固定的參數(shù)視野和固定的步長在結(jié)構(gòu)優(yōu)化中不變而導(dǎo)致算法后期收斂速度慢、精度結(jié)果差、易陷入局部最優(yōu)解的缺陷,本文提出了改進(jìn)視野和步長的自適應(yīng)魚群算法。通過引入兩種步長step1和step2,使得每種行為分別按兩種步長移動尋優(yōu),算法初期利用較大步長step2能快速搜索到最優(yōu)的區(qū)域,算法后期較小的步長step1顯出在最優(yōu)值附近尋優(yōu)的優(yōu)勢,避免了在最優(yōu)值附近來回震蕩,可以得到穩(wěn)定的收斂過程。通過算例表明,該改進(jìn)的魚群算法能夠很好的平衡算法的全局尋優(yōu)能力與局部尋優(yōu)能力,有效的提高了算法的自適應(yīng)能力、優(yōu)化速度、精度和收斂穩(wěn)定性。 [1] 錢令希.工程結(jié)構(gòu)優(yōu)化設(shè)計[M].北京:中國水利電力出版社,1983. [2] 李曉磊,錢積新.人工魚群算法自下而上的尋優(yōu)模式[A].過程系統(tǒng)工程年會論文集[C].2001:76-82. [3] 李曉磊,邵之江,錢積新.一種基于動物自治體的尋優(yōu)模式:魚群算法[J].系統(tǒng)工程理論與實(shí)踐,2002,22(11):32-38. [4] W LSON S.The Animal Path to A I[A].Proceedings of the First Intemational Conference on the Simulation of Adaptive Behavior[C].Cambridge:M IT Press,1991. [5] JEFFREY D.Animals and What They can Tell us[J].Trdnds in Cognitive Science,1998,2(2):60-67. [6] 張梅鳳,邵 誠,甘 勇.基于變異算子與模擬退火混合的人工魚群優(yōu)化算法[J].電子學(xué)報,2006,34(8):1381-1385. [7] 馬憲民,劉 妮.自適應(yīng)視野的人工魚群算法求解最短路徑問題[J].通信學(xué)報,2014,35(1):1-6. [8] 王翠茹,周春雷.基于人工魚群算法的0-1背包問題的優(yōu)化算法及其改進(jìn)[A].2005年中國模糊邏輯與計算智能聯(lián)合學(xué)術(shù)會議論文集(下)[C].合肥:中國科學(xué)技術(shù)大學(xué)出版社,2005:255-264. [9] 王躍方,孫煥純.離散變量桁架結(jié)構(gòu)的布局優(yōu)化設(shè)計[J].大連理工大學(xué)學(xué)報,1995,22(35):458-462. [10] 朱朝艷.離散變量結(jié)構(gòu)優(yōu)化設(shè)計中遺傳算法的研究和應(yīng)用[D].沈陽:東北大學(xué)博士學(xué)位論文,2004. Study on spatial truss structure optimization of improved AFSA Feng Cheng (CollegeofBuildingEngineering,GuizhouUniversityofNationality,Guiyang550025,China) Taking engineering application as the target, in light of AFSA optimizing failures, the paper improves AFSA visual field and shift step length, puts forward improved self-adaption AFSA, carries out optimal design of 25-poles spatial truss structure, specifically introduces its optimizing concept and strategy, and finally proves the feasibility of improved AFSA. fish swarm algorithm, self-adaption, truss, shape optimization 2014-11-30 馮 騁(1979- ),男,碩士,講師 1009-6825(2015)04-0032-03 TU378.6 A2 人工魚群算法的改進(jìn)
3 算例
4 結(jié)語