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

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

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

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

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

表1 測試函數(shù)Tab.1 Test functions

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

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

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

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

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