【摘 要】針對微粒群算法在尋優(yōu)后期出現(xiàn)早熟收斂、收斂速度慢的不足,在慣性權重中引入自適應機制以平衡算法的全局和局部收斂能力;在位置迭代公式中引入飛行時間策略,以減少粒子在最優(yōu)解附近 “振蕩”來提高算法收斂速度。最后將非線性共軛梯度算法尋優(yōu)思想融合到微粒群算法中以提高算法的收斂精度,函數(shù)測試結果表明,基于非線性共軛梯度法的自適應微粒群算法提高了收斂速度和精度。
【關鍵詞】微粒群算法 非線性共軛梯度算法 函數(shù)優(yōu)化
一、微粒群算法
微粒群算法(PSO) [1]是對鳥群覓食行為模擬而得到的,主要通過粒子間的競爭與協(xié)作來實現(xiàn)對最優(yōu)化問題的求解。該算法具有易實現(xiàn)、需調控參數(shù)少等優(yōu)點。在函數(shù)優(yōu)化、智能控制領域有著廣泛應用。其數(shù)學模型描述如下:
上式中,是慣性權重;和是隨機數(shù),其取值范圍是;和是個體和群體的加速權值;粒子運行速度在之間、位置在之間。從式(1)和(2)看出:當時,,粒子停止尋優(yōu),算法陷入局部極值就出現(xiàn)了早熟收斂現(xiàn)象。式中慣性權重不變,不能平衡好算法的局部與全局收斂能力,因此會影響算法的收斂能力。
二、微粒群算法的改進
針對算法出現(xiàn)“振蕩”而出現(xiàn)收斂速度慢,在算法的慣性權重中引入自適應機制并對位置迭代公式進行改進:
針對算法出現(xiàn)早熟收斂的現(xiàn)象,本文將非線性共軛梯度法[2]的求解思想引入到微粒群算法中即在Ptgd點附近進行超高精度尋優(yōu)。充分利用非線性共軛梯度法收斂快、穩(wěn)定性好和占空間不大的優(yōu)點。該算法先依照給定點處的梯度生成一組共軛方向,再沿著該方向來搜索便可找到最優(yōu)解。
基于非線性共軛梯度法的自適應微粒群算法(NCGPSO)算法步驟:
Step 1 算法的參數(shù)初始化;
Step 2 計算粒子個體的函數(shù)適應度值,根據(jù)(4)、(5)以找到當前狀態(tài)下的全局最優(yōu)值;
Step 3 在全局最優(yōu)值點附近按以下步驟進行非線性共軛梯度法尋優(yōu),
(1) 生成初始的搜索方向,設,計算,k=0.
(2) 根據(jù)進行相應的一維搜索,求出與
(3)判斷,是則令,轉(2);否則轉到(4)
(4)判斷算法是否達到算法最大的迭代次數(shù),若達到算法的最大迭代次數(shù)則轉step4,否則令,,k=k+1,然后轉到(2)繼續(xù)尋優(yōu)。
Step 4 判斷算法是否達到算法的總迭代次數(shù),是則停止搜索,否則轉Step2。
三、測試函數(shù)
為驗證本文算法的性能,對兩個經(jīng)典的測試函數(shù)測試。
四、測試結果
每個函數(shù)迭代200次,優(yōu)化結果取平均值。函數(shù)F1和F2以平均值作為優(yōu)化結果。
五、結論
對基本微粒群算法的迭代公式進行改進,提高算法收斂速度,當算法尋優(yōu)后期出現(xiàn)早熟收斂,利用非線性共軛梯度法的精確尋優(yōu),從而提高算法的收斂精度。
參考文獻:
[1]Kennedy J,Eberhart R.C. Particle Swarm Optimization. In: Pro.IEEE Int’1. Conf. on Neurral Networks,IV.Piscataway[J],NJ:IEEE Service Center,1995, 1992-1948.
[2]吳敏,丁雷,曹衛(wèi)華等.一種克服粒子群早熟的混合優(yōu)化算法[J].控制與決策,2008,23(5):511-514,519.
[3]吳華麗,吳進華,汪秀莉.基于動態(tài)改變慣性權值的粒子群算法.理論與方法,2008,27(10):6-8