曹巖楓,徐 誠
(南京理工大學機械工程學院,南京 210094)
果蠅優(yōu)化算法[1]是中國臺灣學者潘文超提出的一種基于果蠅覓食行為的全局優(yōu)化算法。果蠅優(yōu)化算法和其他優(yōu)化算法相比,具有算法簡單、程序?qū)崿F(xiàn)容易、調(diào)節(jié)參數(shù)較少、計算量小、能夠?qū)崿F(xiàn)全局尋優(yōu)且收斂快等特點。近年來,一些學者針對防止算法早熟收斂進行了改進[2-4],果蠅優(yōu)化算法在廣義回歸神經(jīng)網(wǎng)絡(luò)參數(shù)優(yōu)化與支持向量機參數(shù)優(yōu)化等領(lǐng)域應(yīng)用較多[5-7],但目前果蠅優(yōu)化算法在多目標工程問題領(lǐng)域的應(yīng)用還較少。
本文在搜索空間、味道濃度判定值定義以及尋優(yōu)策略等方面,對原始的果蠅優(yōu)化算法進行改進,提出了改進的多目標果蠅算法,使得改進后的算法性能大大提高。并將改進的多目標果蠅優(yōu)化算法成功應(yīng)用于全彈道優(yōu)化設(shè)計中,效果較好。
果蠅優(yōu)化算法是一種源于對果蠅覓食行為模擬的全局優(yōu)化算法。果蠅擁有優(yōu)于其他物種的嗅覺及視覺,能夠通過嗅覺器官搜集空氣中的各種氣味,飛近食物后再用靈敏的視覺確定食物的位置,最后飛向食物。根據(jù)果蠅搜尋食物的特性,果蠅優(yōu)化算法可歸納為以下幾個必要的步驟:
1)初始化種群規(guī)模N,最大迭代次數(shù)gmax,隨機初始化果蠅種群初始位置(Xaxis,Yaxis);
2)隨機設(shè)定果蠅個體的搜索方向Rrandom和搜索距離h:

其中,Rrandom為0到1之間的隨機數(shù)。
3)由于無法得知食物源的位置,因此,先估算果蠅個體與原點的距離D,再求倒數(shù)計算得到味道濃度判定值S:

4)將味道濃度判定值S代入味道濃度判定函數(shù),計算出果蠅個體當前位置的味道濃度:

5)找出果蠅種群中味道濃度最佳的果蠅:

6)保留果蠅群體的最佳味道濃度及其對應(yīng)的坐標,此時果蠅群體利用視覺定位后飛向該位置:

7)進入迭代尋優(yōu),重復(fù)執(zhí)行步驟2)~5),并判斷最佳味道濃度是否優(yōu)于前一迭代最佳味道濃度,若是則執(zhí)行步驟6)。
果蠅優(yōu)化算法利用果蠅尋找食物的群體協(xié)作和信息共享機制搜索最優(yōu)解,全局尋優(yōu)能力較強;算法采用實數(shù)編碼,程序簡單,計算量較小;果蠅優(yōu)化算法需要調(diào)節(jié)的參數(shù)只有3個,與其他優(yōu)化算法相比明顯減少了由于參數(shù)選取不當對算法性能產(chǎn)生影響的機會。盡管果蠅優(yōu)化算法自提出以來就得到了國內(nèi)外學者的廣泛關(guān)注,并在一些工程應(yīng)用中表現(xiàn)良好,但仍存在一些缺陷需要改進。
原始的果蠅優(yōu)化算法中味道濃度判定值S定義為果蠅個體與原點的距離D的倒數(shù),D為坐標X和Y的算術(shù)平方根,如此定義的S存在2個缺陷:1)由于果蠅飛行的坐標系是對稱的,對稱位置的坐標計算得到的味道濃度判定值S是相等的,這會導(dǎo)致浪費計算時間;2)由于S>0,因此,果蠅優(yōu)化算法不能求解定義域包含負數(shù)的優(yōu)化問題。原始的果蠅優(yōu)化算法會將每一代果蠅群體中最佳味道濃度個體對應(yīng)的坐標作為下一代群體的起始位置,并且只有一個群體,這在解決復(fù)雜問題時會導(dǎo)致陷入局部最優(yōu)。此外,實際工程問題往往要考慮多個優(yōu)化目標,原始的果蠅優(yōu)化算法不能很好地適應(yīng)多目標優(yōu)化問題。
針對以上的缺陷,本文對原始的果蠅優(yōu)化算法做了如下改進:
1)原始果蠅優(yōu)化算法中果蠅的飛行空間是對稱的,整個空間可以分為8個部分。為了減少重復(fù)的計算結(jié)果,節(jié)省計算時間,僅保留圖1中陰影部分所示的一個部分作為果蠅的飛行空間。果蠅個體的位置由式(7)確定:


圖1 改進后的果蠅飛行空間
2)原始的果蠅優(yōu)化算法中,味道濃度判定值S不能取負值并且不能約束取值范圍,不能夠適應(yīng)實際工程問題求解的需求。改進后的味道濃度判定值S由式(8)確定:

其中,[L,U]為 Si的取值范圍。
3)原始的果蠅優(yōu)化算法在找出果蠅種群中味道濃度最佳的果蠅位置后,果蠅群體利用視覺定位后飛向該位置,算法只有一個果蠅種群,這使得在求解復(fù)雜問題時搜索全局最優(yōu)解的表現(xiàn)不夠理想。本文引入若干個子種群代替單一的果蠅種群,每個子種群都在飛行空間中獨立地搜索味道濃度最佳的位置,從而有效提高算法全局搜索的能力。在求解多目標優(yōu)化問題時,引入多個子種群可以有效提高最優(yōu)解集中解的多樣性。
4)求解多目標優(yōu)化問題的過程就是尋找Pareto最優(yōu)解的過程。本文將快速非支配排序以及擁擠距離排序的方法引入果蠅優(yōu)化算法。快速非支配排序能夠幫助算法提高收斂速度,擁擠距離排序的方法能夠避免早熟以及提高最優(yōu)解集中解的多樣性。
基于以上改進,能夠解決多目標優(yōu)化問題的改進果蠅優(yōu)化算法的步驟如下:
1)初始化子種群數(shù)Ns,各子種群的個體數(shù)Np,最大迭代次數(shù)gmax,在設(shè)計空間中均勻隨機初始化果蠅各子種群初始位置(Xi_axis,Yi_axis),初始非支配前沿解集F0=?;
2)隨機設(shè)定果蠅個體的搜索方向Rrandom和搜索距離h,計算出第i個子種群中第j個果蠅個體的位置(Xij,Yij):

3)計算果蠅個體的味道濃度判定值Sij:

其中,(L,U)為 Sij的取值范圍。
4)將果蠅個體的味道濃度判定值Sij代入味道濃度判定函數(shù),計算出果蠅個體當前位置的味道濃度Smellij:

其中,M為目標函數(shù)的數(shù)量。
5)對每個子種群中的個體進行非支配排序,將第g代所有子種群的非支配解存放到Qg中,將Qg與上一代非支配前沿解集Fg-1合并產(chǎn)生Tg;

6)對集合Tg中的個體進行非支配排序,得到的非支配解存放到新的非支配前沿解集Fg中。然后對Fg中的個體進行擁擠距離排序,取排序得到的前Ns個個體的位置作為各子種群新的起始位置;
7)進入迭代尋優(yōu),如果 g≥gmax,輸出 Fgmax作為Pareto最優(yōu)解集;否則,重復(fù)執(zhí)行步驟2)~6)。
全彈道優(yōu)化設(shè)計模型是將內(nèi)彈道、外彈道及終點效應(yīng)等多個分系統(tǒng)結(jié)合成一個有機整體,對其進行全局的優(yōu)化設(shè)計,尋求滿足最優(yōu)目標性能時的各設(shè)計參數(shù)。本文應(yīng)用改進的多目標果蠅算法對其進行尋優(yōu)。
全彈道仿真模型涉及的各分系統(tǒng)的分析模型較為復(fù)雜,公式繁多,可參考相關(guān)文獻,本文僅對各分系統(tǒng)模型作簡要描述。
3.1.1 內(nèi)彈道仿真模型
內(nèi)彈道仿真模型[8]采用混合裝藥經(jīng)典內(nèi)彈道模型,采用4階龍格-庫塔法求解內(nèi)彈道微分方程,計算在給定薄火藥質(zhì)量mω1、厚火藥質(zhì)量mω2及藥室容積V0的條件下,彈丸在內(nèi)彈道時期的最大膛壓pmax及其出炮口時的初速v0。
3.1.2 外彈道仿真模型
采用包括彈丸自轉(zhuǎn)在內(nèi)的4自由度外彈道計算模型[8],計算在給定彈丸初速 v0、射角 θ0、彈丸尾錐長度H1以及頭部高度H3的條件下,彈丸飛行至終點時的速度vc、落角θc及射程L。
3.1.3 彈丸終點效應(yīng)仿真模型
采用殺傷威力計算模型[9],計算在給定彈丸有效殼體結(jié)構(gòu)參數(shù)(如圖2)、給定落角θc及落速vc時彈丸的殺傷面積A。同時,由彈丸結(jié)構(gòu)尺寸與炸藥質(zhì)量mzy計算出的彈丸質(zhì)量也作為內(nèi)、外彈道計算時的輸入。計算殺傷面積時,假設(shè)彈丸爆炸后所產(chǎn)生的破片均為自然破片,選用A-S殺傷準則,并采用球形靶對彈丸殺傷面積進行積分。

圖2 彈丸有效殼體結(jié)構(gòu)尺寸示意圖
對于火炮來講,殺傷面積與射程是重要的戰(zhàn)術(shù)技術(shù)指標,本文以彈丸的殺傷面積A與火炮射程L作為全彈道優(yōu)化的目標函數(shù)。
以殺傷面積與射程作為全彈道模型靈敏度分析時的響應(yīng),采用拉丁立方法,對各設(shè)計參數(shù)進行靈敏度分析,綜合考慮各參數(shù)對殺傷面積和射程的影響,選取薄火藥質(zhì)量 mω1、厚火藥質(zhì)量 mω2、藥室容積 V0、彈丸結(jié)構(gòu)參數(shù) R1、R2、r2、H2、H3等 8 個參數(shù)作為全彈道優(yōu)化模型的設(shè)計變量。
多目標果蠅算法參數(shù)選擇:子種群數(shù)Ns=10,各子種群的個體數(shù)Np=50,最大迭代次數(shù)gmax=500,為了平衡算法全局搜索和局部搜索的能力,每一代果蠅個體中有80%的搜索距離h=100,其余個體的搜索距離h=1。運用Matlab編程,對該模型進行優(yōu)化求解,得到Pareto前沿如圖3所示,可以看出,改進的多目標果蠅算法全局搜索能力強,求得的Pareto前沿解分布均勻,解的多樣性好。根據(jù)工程經(jīng)驗選取其中一個最優(yōu)解如表1所示。與初始設(shè)計[8]對比,彈丸的殺傷面積A從1 352.20 m2提高到2 021.62 m2,提高了49.51%,與此同時,火炮射程L從15.90 km提高到22.77 km,提高了43.21%,性能得到了明顯提升。優(yōu)化結(jié)果表明,改進多目標果蠅算法能夠滿足實際工程問題求解的需求。

圖3 Pareto最優(yōu)解集
本文提出了一種改進的多目標果蠅算法,通過對味道濃度判定值的改進、引入多個子種群以及引入對多目標解集進行快速非支配排序和擁擠距離排序的方法,提高了果蠅算法解決實際工程問題的能力。同時,將改進的多目標果蠅算法應(yīng)用到全彈道優(yōu)化設(shè)計當中,進一步證明了該算法的有效性。

表1 優(yōu)化前后各參數(shù)對比