胡 克
(合肥工業(yè)大學(xué) 土木與水利工程學(xué)院,安徽 合肥 230009)
蝙蝠算法(bat algorithm,BA)是一種基于微型蝙蝠超聲波回音定位特征的新型群體智能優(yōu)化算法;全世界一共有超過一千種不同類型的蝙蝠,絕大多數(shù)蝙蝠都以昆蟲類動物作為食物[1]。它們能夠發(fā)出高頻的超聲波脈沖,并聽到從周圍物體反射的回聲。依據(jù)回聲定位這種獨特的功能,蝙蝠個體能夠識別不同種類的獵物并判斷距離的遠近;這可以幫助它們更好地捕食獵物和躲避天敵,甚至可以讓它們在黑暗環(huán)境中的陡峭懸崖上找到棲生地。近年來,有關(guān)蝙蝠算法的研究在工程優(yōu)化領(lǐng)域中得到了廣泛的應(yīng)用。賴錦輝[2]采用蝙蝠算法來優(yōu)化無線傳感器的網(wǎng)絡(luò)節(jié)點定位,減小了平均定位誤差,提升了定位精度。陳媛媛等[3]在蝙蝠算法中引入萊維飛行策略,再進行離散化改進,并將其用于紅外光譜特征選擇的問題;經(jīng)實驗發(fā)現(xiàn)蝙蝠算法能有效提升波長選擇的準確性和穩(wěn)定性。李玉虎等[4]將蝙蝠算法與最小二乘法的孿生有界支持向量機相結(jié)合,對橋式起重機的主梁進行了輕量化研究。丁芳等[5]利用蝙蝠算法去優(yōu)化粒子群算法,并對飛機地面的空調(diào)系統(tǒng)進行了優(yōu)化仿真,試驗結(jié)果表明溫控系統(tǒng)的動態(tài)性能得到了明顯的增強。吳忠強等[6]使用蝙蝠算法去識別永磁同步電機的多個參數(shù),并很好地實現(xiàn)了對電機運作狀態(tài)的監(jiān)控。朱興統(tǒng)[7]采用蝙蝠算法優(yōu)化相關(guān)向量機,然后對軸承故障進行辨析,發(fā)現(xiàn)該方法的診斷準確率非常高。李帆等[8]使用離散蝙蝠算法對柔性作業(yè)車間調(diào)度問題進行優(yōu)化求解,有效增強了車間的調(diào)度水平及精度。杜健健等[9]將蝙蝠算法應(yīng)用到多種無人機協(xié)同偵查的規(guī)劃問題當(dāng)中,并與其他傳統(tǒng)智能算法優(yōu)化結(jié)果進行對比;發(fā)現(xiàn)蝙蝠算法穩(wěn)定性更好,處理速度更快。為了使蝙蝠算法能夠更好地應(yīng)用到工程優(yōu)化領(lǐng)域當(dāng)中,本文先使用單峰和多峰基準測試函數(shù)來驗證蝙蝠算法的優(yōu)化性能;再以空間二十五桿桁架結(jié)構(gòu)作為優(yōu)化模型進行迭代求解,驗證了蝙蝠算法作為一種高效的群體智能優(yōu)化算法在多變量離散優(yōu)化問題中的良好性能。
蝙蝠算法是通過觀察自然界中微型蝙蝠發(fā)射超聲波的特性進而研究出的一種生物啟發(fā)式算法,由學(xué)者楊新社于2010年提出[10]。為了將自然界中蝙蝠的生存行為抽象成數(shù)學(xué)模型,必須設(shè)置以下理想化的條件。第一,所有的蝙蝠個體均通過回聲定位的特征去判斷食物和阻礙物體之間的細微差別。第二,蝙蝠以特定速度和固定的頻率進行隨機運動,它們會根據(jù)自身與食物的距離大小自動調(diào)整超聲頻率。第三,蝙蝠的音量隨迭代次數(shù)的增加會逐漸從一個較大的正數(shù)過渡到一個較小的正數(shù)。在滿足這些假設(shè)情況之下,蝙蝠算法的基本執(zhí)行步驟可描述如下:
首先,在d維搜索空間內(nèi)以隨機分布的方式產(chǎn)生一組初始解,然后設(shè)定以下算法參數(shù)的初始值:最大超聲波音量A0、最大脈沖發(fā)射率r0、音量衰減因子α、脈沖發(fā)射率增強因子γ和頻率系數(shù)fi。
fi=fmin+(fmax-fmin)β
(1)
(2)
(3)
式中:fmin和fmax為蝙蝠超聲頻率f的下界和上界,取值分別為0和1,它主要控制蝙蝠移動的步長大??;β為一個服從均勻分布的隨機向量;上標t為當(dāng)前迭代次數(shù);下標i為蝙蝠個體的編號;x*為當(dāng)前蝙蝠群體的全局最優(yōu)位置,它是通過對所有蝙蝠搜索到的解進行比較而得到的坐標值。
對于局部搜索部分,一旦從當(dāng)前最優(yōu)解當(dāng)中選擇了一個解,那么每只蝙蝠都要按照隨機游走的法則產(chǎn)生一個局部新解:
(4)
式中:ε是均勻分布在[-1,1]區(qū)間上的一個隨機數(shù);At是所有蝙蝠在同一時間段的平均音量值。另外,蝙蝠群體的音量Ai和脈沖發(fā)射率ri將通過下列公式進行迭代更新
(5)
(6)
最后,對種群中所有蝙蝠個體的適應(yīng)度函數(shù)值按照從大到小的順序進行排列以找到全局最優(yōu)解及其相對應(yīng)的位置坐標。
為了驗證蝙蝠算法的準確性和高效性,首先使用測試函數(shù)進行性能測試,再以桿件的截面積作為優(yōu)化變量,分別對十桿平面桁架結(jié)構(gòu)和二十五桿空間桁架結(jié)構(gòu)進行尺寸優(yōu)化。首先對蝙蝠算法的初始參數(shù),種群規(guī)模和總迭代次數(shù)進行設(shè)定。
蝙蝠算法(BA)的參數(shù)大小設(shè)置如下:最大超聲響度A0= 0.75;最大脈沖發(fā)射率r0= 0.1;音量衰減因子α= 0.9;脈沖發(fā)射率增強因子γ= 0.9。蝙蝠種群規(guī)模為N=50,最大迭代次數(shù)T=500。
為了檢測蝙蝠算法尋優(yōu)能力的好壞,需要先使用函數(shù)算例對蝙蝠算法的收斂精度和抗干擾能力進行測試。本文將分別選取一個單峰基準測試函數(shù)和多峰基準測試函數(shù)作為算例;對于單峰測試函數(shù),其只有唯一的全局最小值但沒有局部極小值,它主要是用來測試算法的收斂精度。而對于多峰測試函數(shù),其擁有多個局部極小值,尋優(yōu)較為困難;因此主要用于測試算法的魯棒性強弱。測試函數(shù)的名稱、表達式等具體信息見表1。
表1 基準測試函數(shù)表
接下來使用蝙蝠算法進行優(yōu)化;對每個函數(shù)都進行30次的獨立實驗,測試結(jié)果見表2,表中記錄了測試函數(shù)的平均優(yōu)化精度及算法運行的平均時間。由表2可知,對于Sphere單峰測試函數(shù),蝙蝠算法平均用時為2.851 3 s,平均優(yōu)化精度達到了7.879 2×10-18;算法精度較高,收斂速度較快;表明該算法收斂能力較強。而對于Alpine多峰測試函數(shù),蝙蝠算法平均用時3.368 1 s,平均精度達到2.491 8×10-10;算法能在較短時間內(nèi)跳出局部最優(yōu)解,表明其擁有較強的抗干擾能力。在測試了蝙蝠算法的性能之后,現(xiàn)將該算法應(yīng)用于桁架結(jié)構(gòu)的尺寸優(yōu)化中。
表2 函數(shù)測試結(jié)果
十桿平面桁架結(jié)構(gòu)如圖1所示,圖中標注了該平面桁架的所有桿件編號和節(jié)點編號,同時還展現(xiàn)了桁架的尺寸信息。設(shè)定組成該平面桁架的所有桿件的彈性模量均是E=68 948 MPa,所有組件材料的密度都為ρ=2.77×10-5kg/mm3,桁架的每個節(jié)點在二維平面方向上的最大容許位移均為±50.80 mm。所有桿件的最大容許應(yīng)力值為±172.37 MPa,再將組成該平面桁架的十根桿件的橫截面積作為優(yōu)化變量,并對這十組變量按順序進行編號,分別為A1~A10。接下來以該平面桁架的總體質(zhì)量作為目標函數(shù),其對應(yīng)著算法中個體粒子的適應(yīng)度函數(shù)值;然后應(yīng)用蝙蝠算法來求解受位移和應(yīng)力雙重約束的平面桁架尺寸優(yōu)化問題。該十桿平面桁架的荷載工況已在圖1中標明;節(jié)點2和節(jié)點4分別承載著沿Y軸負方向的荷載,其力的大小為P=444.82 kN;將構(gòu)成平面桁架桿件的橫截面積作為優(yōu)化變量,這些變量都將從以下離散空間S1中進行選取,其中S1={1 045.16, 1 161.29, 1 283.87, 1 374.19, 1 535.48, 1 690.32, 1 696.77, 1 858.06, 1 890.32, 1 993.54, 2 019.35, 2 180.64, 2 238.71, 2 290.32, 2 341.93, 2 477.41, 2 496.77, 2 503.22, 2 696.77, 2 722.58, 2 896.77, 2 961.28, 3 096.77, 3 206.45, 3 303.22, 3 703.22, 4 658.06, 5141.93, 7 477.40, 8 709.66, 8 967.72, 9 161.27,9 999.98, 10 322.56, 10 903.20, 12 129.01, 12 838.68, 14 193.52, 14 774.16, 17 096.74, 19 354.80, 21 612.86} (mm2)。
圖1 十桿平面桁架
應(yīng)用蝙蝠算法(BA)對十桿平面桁架進行質(zhì)量優(yōu)化,并繪制該桁架結(jié)構(gòu)的質(zhì)量優(yōu)化迭代曲線,如圖2所示 其中橫軸表示整體迭代次數(shù),縱軸則代表桁架所有構(gòu)件的總體質(zhì)量大小。
圖2 十桿桁架質(zhì)量優(yōu)化迭代曲線
由圖2可知,應(yīng)用蝙蝠算法對十桿平面桁架結(jié)構(gòu)進行優(yōu)化的過程中間,迭代前期算法收斂很快,表明蝙蝠算法有著較好的收斂能力;同時由迭代曲線圖可知,迭代次數(shù)在360代時,曲線達到穩(wěn)定狀態(tài),表示蝙蝠算法已經(jīng)收斂完成。另外優(yōu)化前后各桿件的橫截面積對比,優(yōu)化前后十桿桁架的質(zhì)量大小比較及優(yōu)化前后桁架的最大位移和應(yīng)力對比見表3。
表3 優(yōu)化前后桿件橫截面積及平面桁架質(zhì)量對比
由表3可知,優(yōu)化前十桿平間桁架的總質(zhì)量為3 625.09 kg,經(jīng)優(yōu)化后桁架的總質(zhì)量降到了2 500.58 kg,總質(zhì)量減輕了1 124.51 kg,優(yōu)化率為31.02%;且優(yōu)化后桁架在荷載工況下節(jié)點的最大位移為50.60 mm,沒有超過最大容許位移;桁架桿件的最大應(yīng)力為107.61 MPa,也沒有超過最大容許應(yīng)力。因此,該十桿平面桁架經(jīng)過蝙蝠算法優(yōu)化之后,既保證了結(jié)構(gòu)整體的安全性,又極大降低了桁架的總體質(zhì)量。
二十五桿空間桁架結(jié)構(gòu)如圖3所示,圖中展示了該空間桁架的節(jié)點編號,不同的桿件編號以及桁架各部分的尺寸數(shù)據(jù)。假設(shè)構(gòu)成該空間桁架的所有構(gòu)件的彈性模量均是E=68 948 MPa,并且材料的密度都是ρ=2.77×10-5kg/mm3,所有節(jié)點在空間三個維度的方向上受到的位移約束均為±8.89 mm。所有構(gòu)件的應(yīng)力約束為±275.79 MPa,現(xiàn)將該桁架結(jié)構(gòu)的二十五根桿件的橫截面積作為自變量,并在圖中以不同的顏色進行區(qū)分;將其劃分為8組:① A1;②A2~A5;③A6~A9;④A10~A11;⑤A12~A13;⑥A14~A17;⑦A18~A21;⑧A22~A25。同時以桁架的總質(zhì)量作為目標函數(shù),使用蝙蝠算法對帶約束條件的空間桁架的質(zhì)量進行優(yōu)化。該空間桁架的荷載工況見表4,將桁架的橫截面積作為優(yōu)化變量,并從以下離散空間S2中進行選取,其中S2={64.52, 129.03, 193.55, 258.06, 322.58, 387.10, 451.61, 516.13, 580.64, 645.16, 709.68, 774.19, 838.71, 903.22, 967.74, 1 032.26, 1 096.77, 1 161.29, 1 225.80, 1 290.32, 1 354.84, 1 419.35, 1 483.87, 1 548.38, 1 677.42, 1 806.45, 1 935.48, 2 064.51, 2 193.54}(mm2)。
圖3 二十五桿空間桁架
表4 二十五桿空間桁架荷載表
使用蝙蝠算法(BA)對二十五桿空間桁架進行質(zhì)量優(yōu)化,并記錄該桁架結(jié)構(gòu)的質(zhì)量優(yōu)化迭代曲線,如圖4所示;其中橫軸代表總體迭代次數(shù),縱軸代表桁架的質(zhì)量。另外,優(yōu)化前后不同組分桿件的橫截面積對比,優(yōu)化前后該桁架的質(zhì)量大小比較、優(yōu)化前后桁架構(gòu)件的最大位移和應(yīng)力對比均見表5。
由圖4可知,蝙蝠算法在對二十五桿空間桁架結(jié)構(gòu)進行迭代優(yōu)化的過程中,其前期收斂速度較快,反映出該優(yōu)化算法收斂能力較強;同時通過觀察算法的迭代圖像,可以得知蝙蝠算法能夠在較少的步數(shù)之內(nèi)跳出局部最優(yōu)陷阱,這反映出蝙蝠算法有較好的魯棒性和穩(wěn)健性。到300代左右迭代曲線達到穩(wěn)定狀態(tài),表明算法已經(jīng)完成收斂。
圖4 二十五桿桁架質(zhì)量優(yōu)化迭代曲線
表5 優(yōu)化前后桿件橫截面積及空間桁架質(zhì)量對比
由表5可知,在優(yōu)化之前,該二十五桿空間桁架的總體質(zhì)量是277.92 kg,經(jīng)過優(yōu)化之后,桁架的總體質(zhì)量減輕到了221.08 kg,總質(zhì)量減輕了56.84 kg,優(yōu)化率為20.45%;且優(yōu)化之后桁架在承受外力荷載時節(jié)點的最大位移為8.88 mm,雖很接近位移限制邊界但仍在容許位移范圍之內(nèi);桁架內(nèi)部桿件的最大應(yīng)力為64.49 MPa,沒有超過最大容許應(yīng)力。因此,該二十五桿空間桁架經(jīng)過蝙蝠算法優(yōu)化之后,在保證了結(jié)構(gòu)的安全性和穩(wěn)定性的前提下,又大大降低了桁架的整體質(zhì)量,達到了桁架輕量化的目的。
本文使用蝙蝠算法對十桿平面桁架和二十五桿空間桁架結(jié)構(gòu)的構(gòu)件進行了截面尺寸優(yōu)化,經(jīng)過程序計算,其結(jié)果表明,蝙蝠算法收斂速度較快,優(yōu)化效果顯著,優(yōu)化效率較高。通過對平面和空間桁架算例的探究和分析,驗證了蝙蝠算法作為一種性能優(yōu)良的群體智能算法,在針對受位移約束和應(yīng)力約束條件下的多變量離散化桁架優(yōu)化問題方面的有效性。進一步的研究工作是將蝙蝠算法應(yīng)用于更復(fù)雜的實際工程桁架優(yōu)化問題,以實現(xiàn)更多結(jié)構(gòu)的輕量化和省材節(jié)能的目標。