【摘 要】為了避免粒子群優化算法早熟收斂,本文提出了一種改進的粒子群優化算法。為保持解的多樣性,采用種群分組策略,并根據鄰域內粒子的選擇概率,選擇粒子。仿真實驗結果表明,本文算法優于GPSO算法。
【關鍵詞】粒子群;多峰問題;鄰域
粒子群優化算法(PSO)是一種模擬鳥群社會行為的群體搜索算法[1],是由Kennedy和Eberhart在1995年提出。粒子群的概念的最初意圖是形象地模擬鳥群的優雅而不可預測的行為,目的是發現統御鳥群同步飛行的模式,以及在最優形式重組時突然改變方向的模式。PSO的應用十分簡單,已經廣泛地應用于科學,工程等領域。
雖然PSO算法在解決多數優化問題時表現出色,但在解決復雜的多峰值優化問題時,標準PSO很容易陷入局部最優[2]。在全連接PSO算法中(GPSO),每個粒子都可以跟其他粒子通信,算法的收斂速度快,但容易陷入局部最優。一些學者的研究表明,LPSO中每個粒子只與最近的鄰居溝通,算法需要更長的迭代次數,但是求得解得質量會更好。因此本文將GPSO和LPSO相結合,提出基于分組策略的改進的粒子群算法,避免算法陷入局部最優。
1 標準粒子群算法
一個由m粒子組成的群體在D維搜索空間中以一定的速度飛行,每個粒子在搜索時,考慮到了自己搜索到的歷史最好點和群體內其他粒子的歷史最好點,在此基礎上進行位置的變化。
粒子的位置和速度根據如下方程進行變化:
其中,第i個粒子的位置表示為:xi=(xi1,xi2,…,xiD);第i個粒子的速度表示為:vi= (vi1,vi2,…,viD),1≤i≤m,1≤d≤D。c1和c2為學習因子,r1j(t)和r2j(t)是[0,1]的隨機數。yi是粒子i的個體最佳位置,j 表示群內粒子所經過的最好位置。
2 改進的PSO算法
在全連接PSO算法中(GPSO),每個粒子都可以跟其他粒子通信,算法的收斂速度快,但容易陷入局部最優。而LPSO中每個粒子只與最近的鄰居溝通,算法求解質量高,但是收斂速度慢[3]。為進一步提高收斂速度,避免陷入局部最優,本文提出一種改進的粒子群算法。
本文算法是將粒子群分成若干個組,每組找出最優粒子形成鄰域,計算每個粒子被鄰域內各個粒子吸引的概率,通過輪盤賭的方式選擇向哪個最佳粒子移動。
定義1 鄰域:每組中最優粒子組成。其中粒子采用隨機分組的方式。
定義2 每個粒子被鄰域內各個粒子的吸引概率:
本文算法的基本步驟為:
步驟1:初始化粒子種群n 為50,搜索空間維數D,慣性權重ω =0.5,學習因子c1 = c2 =1.494,最大迭代次數200。初始化分組,子種群個數m。
步驟2:找出每組中位置最好的粒子形成鄰域。
步驟3:對種群中每一個粒子i,執行以下操作:
1)利用公式(3)計算,粒子移向每組中最優粒子的概率pij;
2)利用輪盤賭的方法選個體j;
3)利用公式(4)更新速度公式;
4)利用公式(1)更新位置公式。
步驟4 :判斷算法是否到達指定的最大迭代次數,如果是則轉向步驟5,否則轉向步驟2。
步驟5: 輸出結果,程序結束。
3 實驗結果
參數設置:種群規模50,每組粒子5,慣性權重ω=0.5,學習因子c1=c2=1.494,最大迭代次數200,維度D=30。
測試函數:
測試結果表明,對于多峰值函數,本文提出的算法能夠避免陷入局部最優,具有較好的尋優能力。
4 結束語
本文提出了一種新的改進的粒子群優化算法,將粒子種群隨機分組,并引入擇優概率。該算法能更好的平衡局部搜索和全局搜索能力,避免算法陷入局部最優,提高了求解精度。(下轉第202頁)
【參考文獻】
[1]Andries, P, Engelbrecht.計算智能導論[M].北京:清華大學出版社,2010:221-223.
[2]Liang J J,Qin A K,Suganthan P N,et al.Comprehensive learning particle swarm optimizer for global optimization of multimodal functions[J]. IEEE Transactions on Evolutionary,2006,10(3):281-295.
[3]石松,陳云.層次環形拓撲結構的動態粒子群算法[J].計算機工程與應用,2013,49(8):1-5.
[責任編輯:丁艷]