賈鶴鳴,劉宇翔,劉慶鑫,王 爽,鄭 榮
1.三明學院 信息工程學院,福建 三明365004
2.福州大學 物理與信息工程學院,福州350108
3.海南大學 計算機科學與技術(shù)學院,海口570228
隨著科技的不斷創(chuàng)新發(fā)展,近年來不同領(lǐng)域的工程問題產(chǎn)生了諸多優(yōu)化求解的需求,而如牛頓法、梯度下降法等傳統(tǒng)優(yōu)化方法已經(jīng)無法滿足實際需求。因此,通過模仿生物或物理現(xiàn)象而提出的元啟發(fā)式算法不斷涌現(xiàn),元啟發(fā)式算法概念和框架簡單,無需梯度更新信息,常見的算法有:粒子群優(yōu)化算法(particle swarm optimization,PSO)、樽海鞘群優(yōu)化算法(salp swarm algorithm,SSA)、黏菌優(yōu)化算法(slime mould algorithm,SMA)、算術(shù)優(yōu)化算法(arithmetic optimization algorithm,AOA)、灰狼優(yōu)化算法(grey wolf optimization,GWO)、鯨魚優(yōu)化算法(whale optimization algorithm,WOA)、哈里斯鷹優(yōu)化算法(Harris hawks optimization,HHO)等,但無免費午餐(no-free-lunch,NFL)理論證明不存在一種優(yōu)化算法能解決所有的工程問題,每種已存在的優(yōu)化算法都存在其優(yōu)勢與不足。因此,基于混合模式和融合改進策略對傳統(tǒng)優(yōu)化算法進行升級是迫切且必要的。
SMA 是由Li 等人于2020 年提出的一種模擬黏菌在覓食過程中的行為和形態(tài)變化的新型群體智能優(yōu)化算法,其靈感啟發(fā)來源于模擬多頭絨泡菌的覓食行為和形態(tài)變化,利用權(quán)值的變化模擬覓食過程中黏菌本體產(chǎn)生的正反饋和負反饋過程,進而產(chǎn)生三種階段覓食形態(tài)。該算法具有一定的收斂精度和較好的穩(wěn)定性,因此已被廣泛應用于優(yōu)化應用領(lǐng)域。Kouadri 等人提出利用SMA 優(yōu)化算法研究優(yōu)化潮流控制變量,以此探索發(fā)電機燃油成本和損耗最小化的問題。Zhao 等人提出將SMA 與HHO 算法相混合,利用多復合選擇機制提高算法的選擇性和隨機性,提高個體位置更新的隨機性和算法求解的效率。Sun 等人提出融合布朗運動和錦標賽機制對傳統(tǒng)SMA 策略進行改進,并且結(jié)合自適應爬山法進一步提升了算法的搜索進度。上述改進策略在不同程度上提高了原算法的尋優(yōu)性能,但上述文獻多為復合策略的疊加或兩種混合算法的簡單結(jié)合,未考慮改進策略并結(jié)合混合模式來提高SMA 的算法性能。AOA 算法是在2021 年由Abualigah 等人提出的基于四則混合運算思想設(shè)計的元啟發(fā)式優(yōu)化算法,該算法利用數(shù)學中的乘除運算提高位置更新的全局分散性,利用加減運算提高位置更新在局部區(qū)域的精確性,由于該算法提出的時間較短,需對其進行進一步改進和完善,以適應更多領(lǐng)域工程問題的優(yōu)化求解。
本文基于SMA 和AOA 的優(yōu)勢和不足,將兩種算法結(jié)合,同時引入隨機反向?qū)W習策略,提出了一種性能優(yōu)越的黏菌與算術(shù)混合優(yōu)化算法。該混合算法結(jié)合了SMA 與AOA 的尋優(yōu)特性,有效增強了算法的尋優(yōu)性能和避免局部最優(yōu)能力,提升了收斂速度與收斂精度,并通過標準測試函數(shù)和工程問題的測試驗證了所提混合算法的有效性和工程適用性。
黏菌優(yōu)化算法是根據(jù)黏菌的覓食行為得到的一種優(yōu)化算法。黏菌在覓食過程中發(fā)現(xiàn)食物時,會有振蕩收縮的特性。同時,在多個食物源之間會形成粗細不一的靜脈網(wǎng)絡(luò),并且靜脈網(wǎng)絡(luò)的粗細與食物源的質(zhì)量有關(guān)。此外,黏菌在獲取食物源時,仍會有一定的概率對未知區(qū)域進行搜索。
黏菌根據(jù)空氣中的氣味接近食物,靜脈接觸到的食物濃度越高,內(nèi)部生物振蕩器產(chǎn)生的波越強,細胞質(zhì)流動得越快,靜脈越粗,其位置更新公式為:
其中,為0 到1 之間的隨機數(shù),X()表示目前適應度最優(yōu)的個體位置,()與()為兩個隨機個體位置,為[-,]之間的隨機數(shù),是從1 到0 線性遞減的參數(shù),代表黏菌的權(quán)重系數(shù),代表當前迭代次數(shù)。
控制參數(shù)、參數(shù)與權(quán)重系數(shù)的更新公式如下:
其中,參數(shù)根據(jù)當前個體適應度值和最優(yōu)值進行計算,∈1,2,…,,為種群規(guī)模,()代表當前個體適應度值,為當前取得的最佳適應度值。為均勻分布于0 到1 之間的隨機數(shù),是最大迭代次數(shù)。condition 表示種群中適應度排在前一半個體,others 表示剩下的個體,代表當前迭代獲取的最佳適應度值,代表當前迭代最差適應度值。()為適應度值序列(求極小值問題為遞增序列)。
盡管黏菌找到了更好的食物源,它們?nèi)詴蛛x部分個體探索其他領(lǐng)域試圖尋找更高質(zhì)量的食物源。因此SMA 整體更新位置的公式為:
式中,與為上下界;為均勻分布在0 到1之間的隨機數(shù);代表值為0.03 的常量。
算術(shù)優(yōu)化算法是一種根據(jù)算術(shù)操作符的分布特性來實現(xiàn)全局尋優(yōu)的元啟發(fā)式優(yōu)化算法。算法分為三部分,通過數(shù)學優(yōu)化器加速函數(shù)選擇優(yōu)化策略,乘法策略與除法策略進行全局搜索,提高解的分散性,增強算法的全局尋優(yōu)與克服早熟收斂能力,實現(xiàn)全局探索尋優(yōu)。開發(fā)階段利用加法策略與減法策略降低解的分散性,有利于種群在局部范圍內(nèi)充分開發(fā),加強算法的局部尋優(yōu)能力。
AOA 通過數(shù)學優(yōu)化器加速函數(shù)(math optimizer accelerated,MOA)選擇搜索階段,當>時,AOA 進行全局探索;當<時,AOA 進入局部開發(fā)階段。
其中,代表0 到1 之間的隨機數(shù),與分別是加速函數(shù)的最小值和最大值,為0.2 和1.0。
AOA 通過乘法運算與除法運算實現(xiàn)全局搜索,當<0.5 時,執(zhí)行除法搜索策略;當>0.5 時,執(zhí)行乘法搜索策略,其位置更新公式如下:
其中,∈[0,1],是調(diào)整搜索過程的控制參數(shù),值為0.499,為極小值,數(shù)學優(yōu)化器概率(math optimizer probability,MOP)曲線如圖1 所示,計算公式如下:
圖1 數(shù)學優(yōu)化器概率曲線圖Fig.1 Curve of math optimizer probability
式中,是敏感參數(shù),定義了迭代過程中的局部開發(fā)精度,取值為5。
AOA 利用加法運算與減法運算實現(xiàn)局部開發(fā),位置更新公式如下:
其中,為0 到1 之間的隨機數(shù)。
反向?qū)W習策略(opposition-based learning,OBL)是Tizhoosh于2005 年提出的群智能領(lǐng)域中的一種改進策略,其思想是:在種群尋優(yōu)的過程中,根據(jù)當前解產(chǎn)生一個反向解,比較當前解與反向解的目標函數(shù)值,擇優(yōu)進入下一次迭代。
反向解定義:存在維坐標系內(nèi)一點,同時滿足∈[,],則反向解計算公式如下:
由于反向?qū)W習策略生成的反向解與當前解距離為一定值,缺乏隨機性,無法有效增強搜索空間內(nèi)種群多樣性。因此,Long 等人提出了改進的隨機反向?qū)W習策略(random opposition-based learning,ROBL),進一步增強種群多樣性,提高種群避免局部最優(yōu)的能力(如圖2),計算公式如下:
圖2 任意解與它的隨機反向解Fig.2 Arbitrary solution and its randomly opposite solution
如前所述,SMA 會根據(jù)適應度值調(diào)整不同的搜索模式,適應度較差的黏菌進行全局搜索,和的協(xié)同作用也使黏菌不止向最優(yōu)位置收縮,同時會分離出一部分有機物向其他領(lǐng)域探索,并且的振蕩作用也增加了全局探索的可能性。此外,當隨機數(shù)小于時,黏菌進行隨機初始化。因此,SMA 的多重探索機制使該算法具有強大的全局尋優(yōu)能力。但在迭代后期,的振蕩作用大幅減弱,使算法不能有效跳出局部最優(yōu),且SMA 利用參數(shù)實現(xiàn)收縮機制,為1 到0 線性遞減的參數(shù),用于描述黏菌與檢測到的食物濃度的反饋關(guān)系,但這種機制較薄弱,容易陷入局部最優(yōu)。AOA 借助乘除算子帶來的高分布性實現(xiàn)位置更新,隨迭代次數(shù)的增加從0.7 線性遞減至0,并且遞減幅度逐漸減小,能夠針對最優(yōu)位置進行放縮,提高后期尋優(yōu)隨機性,提高黏菌算法避免局部最優(yōu)能力。因此,本文將SMA 和AOA 進行了有機融合,提出一種新的混合算法(hybrid algorithm of slime mould algorithm and arithmetic optimization algorithm based on random opposition-based learning,HSMAAOA)。混合算法分別保留了SMA 與AOA 的優(yōu)勢特性,首先保留了SMA 根據(jù)值進行隨機初始化的部分,當<時,黏菌分離出部分個體探索其他食物源,隨后根據(jù)隨機數(shù)與值選擇黏菌的位置更新方式,當<時,通過式(6)進行位置更新,否則通過乘除算子(式(8))進行位置更新。最后利用ROBL 策略產(chǎn)生一個隨機反向位置,使用貪婪策略選出表現(xiàn)最優(yōu)的個體進入下一次迭代,引導黏菌更好地向最優(yōu)個體位置進化,增強算法跳出局部最優(yōu)的能力,使得算法獲得更好的收斂速度。綜上所述,HSMAAOA 偽代碼如下,具體實現(xiàn)流程如圖3 所示。
圖3 HSMAAOA 算法流程Fig.3 Flowchart of HSMAAOA
HSMAAOA 算法主要由種群初始化、種群位置更新以及隨機反向解組成,假設(shè)種群規(guī)模、維度、最大迭代次數(shù),則HSMAAOA 初始階段時間復雜度為(×),計算個體適應度為(),迭代過程中利用SMA 全局探索與AOA 乘除算子進行位置更新,并通過ROBL生成隨機反向解,復雜度為(2×××),更新最優(yōu)解的時間復雜度為(1) 。綜上所述,HSMAAOA 運算復雜度為(2×××)。
本文實驗環(huán)境采用IntelCorei7-4720HQ CPU,主頻為2.60 GHz,內(nèi)存12 GB,操作系統(tǒng)為64 位Windows10的電腦。編程語言為Matlab,版本R2020b。使用23 個標準測試函數(shù)對HSMAAOA 進行性能測試。在這些測試函數(shù)中,1~7 為單峰測試函數(shù),只有一個全局最優(yōu)解,用于檢驗算法的局部開發(fā)能力與收斂速度。8~13 為多峰測試函數(shù),具有多個局部最優(yōu)值和一個全局最優(yōu)值,可驗證算法的全局搜索能力與跳出局部最優(yōu)的能力。14~23 是固定維多峰測試函數(shù),檢驗算法平衡探索與開發(fā)能力之間的性能。利用三種不同類型的測試函數(shù),可充分驗證算法的尋優(yōu)性能。
為了更好地驗證HSMAAOA 算法性能,選取了7種算法進行對比:SMA、AOA、HHO、WOA、SSA、GWO 和PSO。這些算法被證實具有良好的尋優(yōu)性能。為了更準確地驗證所提算法與對比算法的優(yōu)劣性,設(shè)定種群規(guī)模=30,空間維度=30,最大迭代次數(shù)500 次,各算法獨立運行30 次,算法中相關(guān)參數(shù)設(shè)置如表1 所示。選取平均值、標準差與Wilcoxon 秩和檢驗作為評價指標。其中,平均值和標準差越小,則證明算法的性能越佳。
表1 各算法參數(shù)設(shè)置Table 1 Setting of each algorithm parameters
HSMAAOA 及其對比算法的適應度平均值與標準差見表2,Mean 代表平均適應度值,Std 為標準差,加粗的實驗數(shù)據(jù)為最佳結(jié)果。在求解1~7 單峰測試函數(shù)中,HSMAAOA 能夠在1~4 測試中達到理論最優(yōu)值,方差最小。對于5,HSMAAOA 雖然沒有收斂到全局最優(yōu)值,但求解精度僅次于HHO 與SMA,位居第三。在6 中,尋優(yōu)能力僅次于HHO,且超過其他算法。對于7,HSMAAOA 能夠達到全局最優(yōu)值,且方差最小。由此可知,HSMAAOA 在局部開發(fā)階段引入乘除算子更新公式與隨機反向?qū)W習帶來優(yōu)越的開發(fā)能力,提高算法收斂精度,且具有一定的穩(wěn)定性。在多峰測試函數(shù)中,HSMAAOA 也能取得不錯的效果。對于8、9、11,HSMAAOA達到理論最優(yōu)值,對于12、13,算法效果僅次于HHO,超過了原始SMA 算法與AOA 算法。在10中,HSMAAOA 與SMA、AOA 和HHO 均達到了全局最優(yōu)值。從中可知,HSMAAOA 的探索能力和避免局部最優(yōu)能力均強于原始SMA 和AOA 算法,僅有個別測試函數(shù)效果弱于HHO,但整體的效果仍是最優(yōu)。在固定維度多峰測試函數(shù)中,對于14、17、21 與22,HSMAAOA 平均適應度極度靠近理論最優(yōu)值,方差最小。在15 中,效果不及HHO。針對16、18、23 測試函數(shù),HSMAAOA 能夠達到理論最優(yōu)值。對于19,雖然達到了全局最優(yōu)值,但標準差不如SSA。對于20,HSMAAOA 平均值與PSO 相同,次于GWO,標準差不及SSA,但超越了其余算法。對于大多數(shù)固定維度多峰測試函數(shù),HSMAAOA 的統(tǒng)計結(jié)果都是最優(yōu),結(jié)合測試函數(shù)的復雜性,證實了HSMAAOA 在避免早熟收斂方面具有優(yōu)秀的性能,且平衡探索階段和局部階段的能力得到了增強。
表2 各算法標準函數(shù)測試結(jié)果Table 2 Test results of benchmark functions of each algorithm
為了更直觀地展示各算法的收斂速度及跳出局部最優(yōu)能力,圖4 為部分測試函數(shù)的收斂曲線。對于1 和3 函數(shù),PSO、SSA、WOA、GWO 收斂精度較低,HHO、AOA 收斂效果稍強于上述算法,SMA 收斂精度高,但收斂速度過慢,迭代450 次后才能達到理論最優(yōu)值,而HSMAAOA 從迭代開始收斂曲線明顯下降且收斂速度快,僅需要80 次迭代即可達到理論最優(yōu)值,收斂速度快。對于5 函數(shù),HSMAAOA 雖然沒有收斂到全局最優(yōu)值,但能快速跳出局部最優(yōu)值,并且收斂精度更接近全局最小值,證明了此算法引入AOA 位置更新公式與隨機反向?qū)W習策略所帶來卓越的跳出局部最優(yōu)能力。對于多峰測試函數(shù)8和10,HSMAAOA 收斂速度快于SMA 與AOA,在迭代初期達到全局最優(yōu)解,體現(xiàn)出優(yōu)秀的全局探索能力。對于固定維多峰測試函數(shù)(15、20 與23),HSMAAOA 出現(xiàn)多次分界點,停滯的次數(shù)少于其他算法,證明了算法的探索與開發(fā)能力得到較好的平衡。
圖4 各種算法收斂曲線Fig.4 Convergence curves of various algorithms
僅通過平均值與方差無法精確分析每次運行的結(jié)果,因此本文采用Wilcoxon 秩和檢驗來驗證整體結(jié)果的顯著性差別。秩和檢驗在5%的顯著性水平下進行,當<0.05 時,可以證明兩種算法性能存在顯著差異,否則說明兩種算法的尋優(yōu)性能相差不大。因此,本文將8 種算法作為樣本,各算法獨立求解30次,種群規(guī)模=30,空間維度=30 的環(huán)境下求解23 個標準測試函數(shù)來判斷HSMAAOA 所得結(jié)果與7種對比算法所得結(jié)果的顯著性區(qū)別。Wilcoxon 統(tǒng)計檢驗值結(jié)果如表3 所示,因為算法無法與自身對比,故表中不再列出HSMAAOA 的值。表中N/A表示數(shù)據(jù)無效,即實驗樣本數(shù)據(jù)相同,算法性能相當,當值小于0.05 時,說明兩種對比算法具有顯著性差異。
由表3 可知,大部分值均小于5%,表明算法HSMAAOA 與其余7 種對比算法之間存在顯著性差異。對于函數(shù)9 與11,HSMAAOA 與對比算法之間的顯著性差異不明顯,算法的性能相當。
通過分析表2、表3 以及圖4,可以得出結(jié)論:融合隨機反向?qū)W習策略的黏菌與算術(shù)混合優(yōu)化算法(HSMAAOA)全局與局部能力均得到加強,優(yōu)于原始SMA、AOA 及其他5 種優(yōu)化算法,表現(xiàn)出更優(yōu)秀的收斂精度、收斂速度以及穩(wěn)定性。
表3 各算法Wilcoxon 秩和檢驗結(jié)果Table 3 Wilcoxon rank sum test results of each algorithm
為了驗證HSMAAOA 算法在解決工程問題上的性能與可行性,選用焊接梁設(shè)計問題與壓力容器問題進行測試。在本次實驗中,設(shè)置種群規(guī)模=30,維度=30,最大迭代次數(shù)=500。
該問題的目標是使焊接梁設(shè)計的總成本最小化。如圖5 所示,需要優(yōu)化的變量有4 個:焊縫寬度,連接梁厚度,連接梁長度與梁高度。該問題的目標函數(shù)、自變量范圍和約束條件如下所示:
圖5 焊接梁設(shè)計問題Fig.5 Welded beam design problem
表4 列出了HSMAAOA 與對比算法求解焊接梁設(shè)計問題實驗結(jié)果,其中加粗表示較好結(jié)果??梢钥闯?,SMAAOA 在=0.202 6,=3.319 7,=9.034 5,=0.205 8 處得到的最小代價為1.699 9,不僅優(yōu)于原始SMA 與AOA 算法,且小于其余對比算法,說明本文算法對于求解這類工程問題具有良好的性能。
表4 各算法應用焊接梁設(shè)計問題優(yōu)化結(jié)果Table 4 Optimization results of each algorithm applied to welded beam design problem
壓力容器設(shè)計問題是一個常用的工程設(shè)計問題。如圖6 所示,該問題試圖使圓柱形壓力容器的總成本最小化,以滿足壓力要求。需要優(yōu)化4 個變量:容器壁厚度T、頂蓋壁厚度T、內(nèi)徑、容器管身長度。目標函數(shù)、自變量范圍和約束條件如下所示:
圖6 壓力容器設(shè)計問題Fig.6 Pressure vessel design problem
表5 統(tǒng)計了8 種算法在求解壓力容器問題時得到的實驗數(shù)據(jù)??梢钥闯? 種算法均能求出較好值,但HSMAAOA 算法求解出的最優(yōu)值仍是最小結(jié)果,表現(xiàn)出對壓力容器設(shè)計問題優(yōu)良可信的求解能力。
表5 各算法應用壓力容器設(shè)計問題優(yōu)化結(jié)果Table 5 Optimization results of each algorithm applied to pressure vessel design problem
通過對上述兩種著名工程設(shè)計問題的測試,可以看出基本SMA 與AOA 算法因自身機制局限性導致容易陷入局部最優(yōu)值,而本文算法HSMAAOA 混合了SMA 與AOA 的優(yōu)勢特性,結(jié)合隨機反向?qū)W習策略提高了算法的尋優(yōu)性能。在求解工程優(yōu)化設(shè)計問題能夠找到更優(yōu)的解,充分說明了HSMAAOA 在處理不同復雜程度工程設(shè)計問題具有較好的應用潛力,能夠提供優(yōu)秀的解決方案。
本文充分綜合考慮SMA 和AOA 兩種優(yōu)化算法的優(yōu)勢和不足,提出了一種新型黏菌與算術(shù)混合優(yōu)化算法。HSMAAOA 融合兩種算法的全局搜索策略,極大地提高了算法的隨機性和全局搜索能力,有效避免了局部最優(yōu)停滯。引入ROBL 策略有效增強種群多樣性,提高算法避免早熟收斂能力,保持較快的收斂速度。HSMAAOA 有效地增強并平衡了全局探索和局部開發(fā)過程,23 個標準函數(shù)測試結(jié)果表明,不論對于單峰函數(shù)還是多峰函數(shù),均具有更佳的收斂速度和精度。最后選擇驗證的兩個工程設(shè)計問題測試表明,HSMAAOA 可用于解決實際問題并具有良好的工程應用前景。本文僅是對兩種新近提出的優(yōu)化算法混合改進的嘗試,未來將進一步融合不同的改進策略,并結(jié)合實際工程的解決需求,以期改進出更為有效的智能優(yōu)化算法。