楊俊勝,沈航馳,葛 鵬,代永強
(甘肅農業大學信息科學技術學院,甘肅 蘭州 730070)
粒子群算法是一種啟發式進化計算技術,來源于 對簡化社會群體智能行為模型的模擬,是由Kennedy和 Eberhart提出的一種進化計算方法,由于該算法具有搜索速度快,簡單等一系列特點[1],已經成功應用于單目標優化問題,被認為是求解多目標優化問題最具潛力的方法之一[2],吸引了許多科研人員對該算法的優化,主要通過參數設置,與其他算法融合等方式進行研究,將算法不斷的優化。
pso算法是對生物種群覓食行為的仿真,算法描述了數量為 N的生物在空間中以不同的速度運動,每只鳥的飛行速度和運動方向[3],依賴于自身和生物群體的經驗,在每一維空間中的速度和運動方向按下式調整:
粒子在多維空間中改變速度以及下一次運動方向的公式如下:

可以得到粒子i在第d維空間中的位置如下:

多維空間V中,粒子個數為N;
粒子i的位置為:Xi=Xiv(v=1,2,…,V),將粒子的位置作為參數帶入標準測試函數,其結果作為相應的適應值;
粒子i速度變化為:Vi=Viv(v=1,2,…,V)
粒子i的歷史最優位置:
Pbesti=Pbestiv(v=1,2,…,V)[5]
群體最優位置:Gbest=Gv(v=1,2,…,V)
初始化算法的迭代次數,空間維度,以及種群數量和相應的測試函數參數的設置等等。
個體極值與全局最優解將粒子信息帶入相應測試函數,個體最優為每個粒子找到的最優解,全局最優是從個體最優中通過比較獲得再與歷史全局最優比較,不斷進行更新。
(1)速度更新公式

(1)達到迭代次數
(2)滿足全局最優位置滿足最小界限[6]

圖1 算法流程圖Fig.1 Algorithm flow chart

表1 測試函數Tab.1 Test functions

圖2 維度對平均極值的影響Fig.2 The influence of dimension on average extremum

圖3 種群數量對平均極值的影響Fig.3 The effect of population size on average extremum

圖6 維度對標準差的影響Fig.6 The effect of dimension on standard deviation

圖7 迭代次數對標準差的影響Fig.7 The influence of the number of iterationson the standard deviation

圖8 種群數量對標準差的影響Fig.8 The influence of the number of iterations on the standard deviation
由以上圖示可以看出,通過控制維度,種群數量,迭代次數這三個參數中的任意兩個,改變剩下的一個變量,發現維度,種群數量,迭代次數對四個測試函數的精度和穩定性有明顯的影響。(圖2,圖(5),圖(6)通過控制種群數量和迭代次數不變的方式,改變維度的值,發現測試函數的平均極值和標準差在 0-10之間穩定性較強,當維度大于 10之后平均極值和標準差增大,算法穩定性變差圖(3),圖(8)測試結果顯示在種群數量在100之后,平均極值和標準差趨于穩定。圖(4),圖(7)得出當迭代次數在 100-200之間對平均極值和標準差的影響較為明顯,200之后算法趨于穩定。在改變迭代次數,種群數量以及維度的值的同時,算法求解的解空間逐漸復雜,求解次數也在不斷增加,導致求解問題的時間也在不斷的變長。
粒子群算法(PSO)是人工智能算法之一,PSO算法在搜索高維度復雜解空間時相較于其他優化算法在速度上具有一定優勢,收斂速度較快,但存在容易陷入局部最優的問題[7]。PSO算法在解決單層神經網絡優化問題時,也具有較好的性能。但是在解空間維度極大的問題上(如優化 Inception v3網絡)PSO的優化能力難以達到預期,因此對于這一類問題不建議直接使用PSO進行優化。將問題降維或拆分成簡單子問題求解,可能是一種比較好的解決方案。建議將PSO算法與其他優化算法混用。總體來說PSO是一種很有潛力的優化算法。