楊俊勝,沈航馳,葛 鵬,代永強(qiáng)
(甘肅農(nóng)業(yè)大學(xué)信息科學(xué)技術(shù)學(xué)院,甘肅 蘭州 730070)
粒子群算法是一種啟發(fā)式進(jìn)化計(jì)算技術(shù),來源于 對(duì)簡(jiǎn)化社會(huì)群體智能行為模型的模擬,是由Kennedy和 Eberhart提出的一種進(jìn)化計(jì)算方法,由于該算法具有搜索速度快,簡(jiǎn)單等一系列特點(diǎn)[1],已經(jīng)成功應(yīng)用于單目標(biāo)優(yōu)化問題,被認(rèn)為是求解多目標(biāo)優(yōu)化問題最具潛力的方法之一[2],吸引了許多科研人員對(duì)該算法的優(yōu)化,主要通過參數(shù)設(shè)置,與其他算法融合等方式進(jìn)行研究,將算法不斷的優(yōu)化。
pso算法是對(duì)生物種群覓食行為的仿真,算法描述了數(shù)量為 N的生物在空間中以不同的速度運(yùn)動(dòng),每只鳥的飛行速度和運(yùn)動(dòng)方向[3],依賴于自身和生物群體的經(jīng)驗(yàn),在每一維空間中的速度和運(yùn)動(dòng)方向按下式調(diào)整:
粒子在多維空間中改變速度以及下一次運(yùn)動(dòng)方向的公式如下:
可以得到粒子i在第d維空間中的位置如下:
多維空間V中,粒子個(gè)數(shù)為N;
粒子i的位置為:Xi=Xiv(v=1,2,…,V),將粒子的位置作為參數(shù)帶入標(biāo)準(zhǔn)測(cè)試函數(shù),其結(jié)果作為相應(yīng)的適應(yīng)值;
粒子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ù)量和相應(yīng)的測(cè)試函數(shù)參數(shù)的設(shè)置等等。
個(gè)體極值與全局最優(yōu)解將粒子信息帶入相應(yīng)測(cè)試函數(shù),個(gè)體最優(yōu)為每個(gè)粒子找到的最優(yōu)解,全局最優(yōu)是從個(gè)體最優(yōu)中通過比較獲得再與歷史全局最優(yōu)比較,不斷進(jìn)行更新。
(1)速度更新公式
(1)達(dá)到迭代次數(shù)
(2)滿足全局最優(yōu)位置滿足最小界限[6]
圖1 算法流程圖Fig.1 Algorithm flow chart
表1 測(cè)試函數(shù)Tab.1 Test functions
圖2 維度對(duì)平均極值的影響Fig.2 The influence of dimension on average extremum
圖3 種群數(shù)量對(duì)平均極值的影響Fig.3 The effect of population size on average extremum
圖6 維度對(duì)標(biāo)準(zhǔn)差的影響Fig.6 The effect of dimension on standard deviation
圖7 迭代次數(shù)對(duì)標(biāo)準(zhǔn)差的影響Fig.7 The influence of the number of iterationson the standard deviation
圖8 種群數(shù)量對(duì)標(biāo)準(zhǔn)差的影響Fig.8 The influence of the number of iterations on the standard deviation
由以上圖示可以看出,通過控制維度,種群數(shù)量,迭代次數(shù)這三個(gè)參數(shù)中的任意兩個(gè),改變剩下的一個(gè)變量,發(fā)現(xiàn)維度,種群數(shù)量,迭代次數(shù)對(duì)四個(gè)測(cè)試函數(shù)的精度和穩(wěn)定性有明顯的影響。(圖2,圖(5),圖(6)通過控制種群數(shù)量和迭代次數(shù)不變的方式,改變維度的值,發(fā)現(xiàn)測(cè)試函數(shù)的平均極值和標(biāo)準(zhǔn)差在 0-10之間穩(wěn)定性較強(qiáng),當(dāng)維度大于 10之后平均極值和標(biāo)準(zhǔn)差增大,算法穩(wěn)定性變差圖(3),圖(8)測(cè)試結(jié)果顯示在種群數(shù)量在100之后,平均極值和標(biāo)準(zhǔn)差趨于穩(wěn)定。圖(4),圖(7)得出當(dāng)?shù)螖?shù)在 100-200之間對(duì)平均極值和標(biāo)準(zhǔn)差的影響較為明顯,200之后算法趨于穩(wěn)定。在改變迭代次數(shù),種群數(shù)量以及維度的值的同時(shí),算法求解的解空間逐漸復(fù)雜,求解次數(shù)也在不斷增加,導(dǎo)致求解問題的時(shí)間也在不斷的變長(zhǎng)。
粒子群算法(PSO)是人工智能算法之一,PSO算法在搜索高維度復(fù)雜解空間時(shí)相較于其他優(yōu)化算法在速度上具有一定優(yōu)勢(shì),收斂速度較快,但存在容易陷入局部最優(yōu)的問題[7]。PSO算法在解決單層神經(jīng)網(wǎng)絡(luò)優(yōu)化問題時(shí),也具有較好的性能。但是在解空間維度極大的問題上(如優(yōu)化 Inception v3網(wǎng)絡(luò))PSO的優(yōu)化能力難以達(dá)到預(yù)期,因此對(duì)于這一類問題不建議直接使用PSO進(jìn)行優(yōu)化。將問題降維或拆分成簡(jiǎn)單子問題求解,可能是一種比較好的解決方案。建議將PSO算法與其他優(yōu)化算法混用??傮w來說PSO是一種很有潛力的優(yōu)化算法。