?

自適應慣性權重優化的粒子群算法

2023-09-21 15:48王賢琳
智能計算機與應用 2023年9期
關鍵詞:測試函數慣性適應度

張 豪, 王賢琳

(武漢科技大學機械自動化學院, 武漢 430081)

0 引 言

粒子群算法(Particle Swarm Optimization, PSO)是由美國學者Kennedy 和Eberhart 于1995 共同提出的,通過對鳥群捕食習慣仿真,利用群體和個體之間信息共享達到捕食的目的,作為智能啟發式算法之一,具有操作簡單、參數少、易實現等優點[1]。 許多學者對粒子群算法進行改進,以加強粒子群尋優性能。 文獻[2]首次提出粒子群慣性權重,慣性權重取0.9~1.2 時,粒子群具有較好的性能;文獻[3]提出線性遞減慣性權重,慣性權重線性下降時,粒子群在運行時可能缺乏全局搜索能力。 近年來,為了提高粒子群算法的穩定性,研究人員主要從慣性權重、學習因子和粒子群拓撲關系分析展開研究。

慣性權重是粒子群算法的核心參數之一,影響著算法的收斂性。 為了加強算法穩定性,改善收斂能力,文獻[4]提出慣性權重一定時,粒子具有較好的收斂性,但是此方法在高維測試函數上求解較弱;文獻[5]提出了正態分布衰減慣性權重粒子群優化,使得算法能很好的平衡全局搜索和局部搜索能力;文獻[6]對粒子運動狀態實施動態監測,并實時調整粒子慣性權重,大大減少粒子無效迭代次數;文獻[7]賦予每個粒子每一維度以不同的線性衰減混沌化慣性權重,夠較大幅度地增強粒子群算法的搜索能力,提高算法的尋優精度。

本文提出一種自適應慣性權重優化的粒子群算法(Adaptive Particle Swarm Optimization,APSO),將慣性權重和迭代次數以及每個粒子適應度聯系起來,自適應的調整粒子群體中各粒子的慣性權重,改善算法性能。

1 基本粒子群算法(PSO)

粒子群算法在D 維空間中將每個粒子當作空間中的一個點,在求解過程中粒子不斷迭代更新改變位置,直到找到最優解,粒子i的位置和速度迭代如公式(1)和公式(2),位置與速度皆為向量。

其中,w為速度的慣性權重;c1,c2為加速因子,一般取值為2;r1,r2為0~1 的隨機數;vdi為粒子上一輪迭代的速度;為社會學習向量;gbestd-為個體學習向量。

2 自適應慣性權重粒子群算法(APSO)

慣性權重是粒子群算法很重要的參數,慣性權重一般取值2,對于取定值的粒子群算法,收斂效果并不理想。 文獻[3]最先加入慣性權重,并分析指出一個較大的慣性權值有利于全局搜索,而一個較小的權值則更利于局部搜索。 為了使粒子群算法更穩定,對粒子群算法慣性權重采取自適應變化,與原始粒子群算法相比,現在慣性權重和迭代次數與每個粒子適應度有關。 對于最小值問題,慣性權重變化規則如式(3);對于最大值問題,慣性權重變化規則如式(4)。

其中,wmin和wmax為預先給定的最小慣性系數和最大慣性系數,一般取0.4 和0.9。

第d次迭代時所有粒子的平均適應度,式(5):

第d次迭代時所有粒子的最小適應度,式(6):

在每次迭代尋優時,總有部分粒子找到更優的位置,也有部分粒子在較優和較差的位置,在結束此次迭代進行下次迭代時,那些處于越優位置的粒子會進一步達到更優的位置,而在較差位置的粒子會越來越差。 經過不斷迭代,越優位置的粒子會更接近或達到全局最優位置。 每次迭代更新時,依據上次迭代粒子的適應度值,在下次迭代時動態調整慣性權重,對粒子全局尋優和快速收斂有很大幫助。

自適應慣性權重粒子群算法流程:

(1)初始化粒子,設置群體規模N,最大迭代次數T,包括粒子的速度和位置,給出個體學習因子和社會學習因子;

(2)計算每個粒子適應度,將單個粒子的最優位置和群體粒子的最優位置分別記為和pbestd;

(3)算法是否收斂,若是,則直接輸出pbestd,否則進入下一步;

(4)通過式(7)計算粒子i在第d次迭代后的適應度值變化:

其中,i=1,2,…,n,t≥2;f() 表示粒子i在第d次迭代后的適應度值;

(5) 根據式(3) 動態調整慣性權重;

(6)根據式(1)和式(2)更新粒子群體速度和位置;

(7)重新計算粒子適應度,存儲和pbestd,并跳轉到步驟(3);

(8)輸出群體最優適應度pbestd,運行結束。

3 仿真試驗

3.1 測試函數

為了驗證自適應慣性權重粒子群算法的有效性,將固定權重的粒子群算法與自適應慣性權重優化的粒子群算法進行性能比對分析。

Sphere 函數為典型的單峰函數,僅有一個極值點;Rosenbrock 具有一個全局最小值點,但其為病態函數, 一般算法難以求得最優解; Rastrigin 和Griewank 為多峰函數,解空間具有多個局部最小值點。 各測試函數的函數表達式、維數、取值范圍、理論極值和誤差目標見表1。

表1 標準測試函數及其參數Tab. 1 Standard test function and its parameters

3.2 參數設置

對于基本PSO 算法,權值固定w=0.9,c1=c2=2;APSO 算法權值wmax=0.9,wmin=0.4,c1=c2=2.05;對于這兩種算法,粒子數量都設置為1 000,變量個數為30,每次求解過程算法迭代的最大次數為1 000 次。

3.3 實驗結果

每個算法對每個測試函數獨立運行30 次,各個函數的適應度及運行時間見表2、表3。

表2 各個函數適應度結果對比Tab. 2 Comparison of fitness results of each function

表3 各個函數運行時間(Time/s)結果對比Tab. 3 Comparison of run time ( Time/s ) results by function

從表2 可以看出粒子群算法在對Sphere 函數和Griewank 函數尋找最低值時明顯優于Rosenbrock函數和Rastrigin 函數,無論是基本PSO 還是APSO算法,對于Sphere 函數和Griewank 函數,其平均適應度小于1,而對于Rosenbrock 函數和Rastrigin 函數,其平均適應度在40~100 之間,表明在測試函數Rosenbrock 和Rastrigin 上,具有不穩定性。 對于基本PSO 和APSO 兩種算法,在測試函數Sphere 和Griewank 上也可以看出APSO 明顯優于基本PSO算法,例如Sphere 函數中,基本PSO 算法的平均適應度為0.142 0,APSO 算法的平均適應度為6.73E-04。 至于Rosenbrock 函數和Rastrigin 函數,APSO的平均適應度稍大于基本PSO,也進一步說明粒子群算法優化的不穩定性。

見表3,Sphere 函數較為簡單,平均運行時間最短,基本PSO 為4.825 3,APSO 為5.699 2,均小于其他函數平均運行時間。 對于所有的測試函數,APSO算法的運行時間全部大于基本PSO 算法,說明APSO 算法的慣性權重為自適應變化,優化性能更好,優化時間也較長。

為了更加清楚的看到兩種算法的收斂性,對測試函數進行收斂性分析,采用基本PSO 和APSO 算法分別求解4 種測試函數成功收斂時的平均最優適應度下降曲線如圖1 所示,可以看出兩種算法在探索階段均可實現有效搜索,其中APSO 算法的平均適應度相比于基本PSO 算法下降較快,迭代次數也明顯少于基本PSO 算法。

圖1 測試函數收斂曲線對比圖Fig. 1 Test function convergence curve comparison diagram

4 結束語

為了改善傳統PSO 算法的收斂性能,本文提出一種自適應慣性權重優化的粒子群算法APSO,慣性權重采取自適應變化,與每個粒子的適應度有關,該算法簡單,推廣性強。 對Sphere、Rosenbrock、Rastrigin 和Griewank 4 個函數進行驗證,結果表明APSO 算法在Sphere 和Griewank 函數上有較好的效果,其最小值分別為6.73E-04 和0.019 6,精度大幅提高,APSO 明顯優于基本PSO 算法。 但APSO 具有一定的不穩定性,后續也可與其他方法融合以提高算法穩定性。

猜你喜歡
測試函數慣性適應度
你真的了解慣性嗎
改進的自適應復制、交叉和突變遺傳算法
沖破『慣性』 看慣性
無處不在的慣性
具有收縮因子的自適應鴿群算法用于函數優化問題
普遍存在的慣性
帶勢函數的雙調和不等式組的整體解的不存在性
基于空調導風板成型工藝的Kriging模型適應度研究
約束二進制二次規劃測試函數的一個構造方法
面向真實世界的測試函數Ⅱ
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合