一、粒子群算法的概念
粒子群優化算法的基本思想:是通過群體中個體之間的協作和信息共享來尋找最優解.
PSO的優勢:在於簡單容易實現並且沒有許多參數的調節。目前已被廣泛應用於函數優化、神經網絡訓練、模糊系統控制以及其他遺傳算法的應用領域。
二、粒子群算法分析
1、基本思想
粒子群算法通過設計一種無質量的粒子來模擬鳥群中的鳥,粒子僅具有兩個屬性:速度和位置,速度代表移動的快慢,位置代表移動的方向。每個粒子在搜索空間中單獨的搜尋最優解,並將其記為當前個體極值,並將個體極值與整個粒子群里的其他粒子共享,找到最優的那個個體極值作為整個粒子群的當前全局最優解,粒子群中的所有粒子根據自己找到的當前個體極值和整個粒子群共享的當前全局最優解來調整自己的速度和位置。
2、粒子群算法的主要步驟如下:
(1)對粒子群的隨機位置和速度進行初始設定,同時設定迭代次數。第二步:計算每個粒子的適應度值。
(2)對每個粒子,將其適應度值與所經歷的最好位置Pbest;的適應度值進行比較,若較好,則將其作為當前的個體最優位置。
(3)對每個粒子,將其適應度值與全局所經歷的最好位置Gbestg的適應度值進行比較,若較好,則將其作為當前的全局最優位置。
(4)根據公式(1), (2)對粒子的速度和位置進行優化,從而產生新的粒子。
(5)如未達到結束條件(通常為最大循環數或最小誤差要求),則返回第二步。
3、本案例群體的初始參數列表:
maxgen:一般為最大迭代次數以最小誤差的要求滿足的。粒子群算法的最大迭代次數,也是終止條件數。
c1,c2:加速常數,取隨機2左右的值。
w:慣性權重產生的。
4、初始運行:
(1)首先測試c1、c2、w的迭代影響:
利用函數來表示各變量:
運行得:
逐漸迭代得:
可以看出迭代收斂最早。隨着不斷的迭代,最優適應度承不穩定狀態。
(2)dim與sizepop的影響:
適應度函數維數dim=12:
適應度函數維數dim=8:
適應度函數維數dim=5:
適應度函數維數dim=3:
種群規模sizepop=220:
種群規模sizepop=200:
種群規模sizepop=150:
種群規模sizepop=130:
將種群規模sizepop調制到<130時,迭代次數無法收斂到接近於0,所以判別種群規模sizepop在200最佳。
結論:
較大的w有利於跳出局部極值。而較小的w有利於算法收斂。相較於傳統算法計算速度非常快,全局搜索能力也很強;
對於適應度函數維數dim的不斷改變值(初始值為10的情況下),分別測試>10和<10的迭代可以看出,dim的值越小,迭代收斂次數越小。最優值在3~5之間最佳。
PSO對於種群大小不十分敏感,所以初始種群往往設為500-1000,不同初值速度影響也不大;
粒子群算法適用於連續函數極值問題,對於非線性、多峰問題均有較強的全局搜索能力。