基于具有量子行為的粒子群優(yōu)化算法慣性權(quán)重研究及應用
粒子群優(yōu)化(PSO)算法是一種群智能優(yōu)化算法,最早由Kennedy和Eberhart于1995年共同提出,其基本思想是對鳥群捕食行為的仿生模擬,通過鳥群之間的集體協(xié)作,快速搜尋并找到最優(yōu)解。其基本的進化方程如下:
其中,r1,r2∈[0,1]為均勻分布的隨機數(shù);C1,C2均是正常數(shù);t表示進化代數(shù);Vt,Xt分別表示每個粒子的速度和位置;Pg,Pt分別是粒子群的全局最優(yōu)和個體最優(yōu)。
為了改善基本PSO算法的收斂性能,Y?Shi等人提出了慣性權(quán)重的方法和用模糊控制器來動態(tài)自適應地改變慣性權(quán)重的技術(shù)。之后Jun Sun等人提出的具有δ函數(shù)形式的粒子群算法(QDPSO)使粒子群算法的計算更加簡單容易。最近一種新的QDPSO算法考慮了速度對位置的影響,通過速度的更新選擇位置的更新方程。在經(jīng)典粒子群算法的可調(diào)整參數(shù)中,慣性權(quán)重是非常重要的參數(shù),較大的權(quán)重有利于提高算法的全局搜索能力,而較小的權(quán)重會增強算法的局部搜索能力。因此,對這種新的QDPSO算法的速度項引用慣性權(quán)重ω,通過研究4種方案,發(fā)現(xiàn)慣性權(quán)重ω的變化對具有量子行為的粒子群算法的收斂性具有很大改善??梢哉f慣性權(quán)重的適當設置對新的QDPSO算法性能也起著重要的作用。
1 量子行為的粒子群優(yōu)化算法及其改進
1.1 QDPS0算法
文獻[4]的作者認為,若是在PSO系統(tǒng)下的個體粒子具有量子行為,則該粒子將會以與基本PSO算法中的粒子不同的方式運動。在量子空間,粒子的速度和位置不能再依據(jù)“不確定原理”被同時確定,所以提出了QDPSO算法。該算法改變了基本PSO算法的粒子更新策略,只用了粒子的位置向量。QDPSO算法的粒子進化方程如下:
其中,a,b,u∈[0,1]為均勻分布的隨機數(shù);pid是第i個粒子在第d維空間找到的局部最優(yōu)解,pgd是群體在第d維空間找到的全局最優(yōu)解;xid表示第i個粒子在第d維空間找到的當前值;而g必須滿足條件:,才能保證算法的收斂。
1.2 改進的粒子群算法
新的QDPSO算法利用個體粒子的速度產(chǎn)生一個介于[0,1]之間的數(shù)來代替原算法中的由計算機隨機產(chǎn)生的數(shù),用以選擇該粒子的位置更新方程。更新方程和參數(shù)設定參考文獻[5]。
本文考慮到慣性權(quán)重隨粒子的迭代次數(shù)變化影響個體粒子的速度引導該粒子向最優(yōu)解靠攏,所以采用4種方案對該改進算法進行研究。通過使慣性權(quán)重隨粒子的迭代次數(shù)變化,從而影響速度的更新方程:
其中,采用4種慣性權(quán)重ω方案來影響速度的更新,然后與QDPSO算法進行性能比較:
方案1 ω為從(1,0.875)遞減的函數(shù)ω=1-k?0.125/genmax。采用這種方案的QDPSO算法稱為ω1-QDPSO;
方案2 ω為從(0.9,0.4)遞減的函數(shù)甜ω=0.9-k?0.5/genmax。采用這種方案的QDPSO算法稱為ω2-QDPSO;
方案3 ω為一定值0.729 8,采用這種方案的QDPSO算法稱為ω3-QDPSO;
方案4 ω為一凹函數(shù)(ωstart-ωend)(t/tmax)2+(ω-ωend)(2t/tmax)+ωstart,其中ωstart=0.95,ωend=0.4,tmax為最大的迭代次數(shù)。采用這種方案的QDPSO算法稱為ω4-QDPOS。
綜上所述,選擇測試函數(shù)F1(x)和F2(x)分別為Sphere和Rastrigin(參數(shù)設置見文獻[4]),改進后的算法流程如下:
Step 1 初始化種群粒子的速度和位置;
Step 2 通過對兩個測試函數(shù)進行初始化計算,得到每個粒子的當前位置為粒子最佳位置Pbest,初始群體粒子位置的最優(yōu)值為群體最佳位置gbest;
Step 3 重新把粒子的位置代入測試函數(shù)進行計算,得到每個粒子新的適應值,將其與Pbest比較,若較好,則將Pbest設置為新位置;并將其與gbest比較,若較好,則將gbest設置為新位置;
Step 4 根據(jù)公式(6)更新粒子的速度;[!--empirenews.page--]
Step 5 用個體粒子的速度產(chǎn)生用以選擇該粒子位置的更新方程的數(shù)據(jù);
Step 6 由Step 5產(chǎn)生的數(shù)據(jù)選擇更新粒子位置的方程;
Step 7 若未達到終止條件(足夠小的適應值或預設的最大迭代次數(shù)),則返回Step 3。
更新粒子速度時需要注意:如果粒子的速度超出預設的范圍,則采取使粒子反向運動的策略,從而保證算法有效進行。
1.3 算法的結(jié)果及數(shù)據(jù)分析
目標函數(shù)為F1(x)和F2(x),基本參數(shù)是:c1=c2=2.05,g=0.968 5,每種算法都在同一臺計算機,同一環(huán)境下用Matlab 7.1.0軟件運行。結(jié)果如表1所示。
表1的數(shù)值是對每個函數(shù)在粒子數(shù)為20個的條件下,測試50次,然后取平均得到的結(jié)果。從表中可以看出,對于函數(shù)F1(x),比較結(jié)果可以明顯得知:在隨粒子群維數(shù)增加的情況下,ω1-QDPSO是比QDPSO得到更好的解,其他幾種改進方案的解都比較差;函數(shù)F2(x)在隨粒子群維數(shù)增加的情況下,4種改進方案和QDPSO都能得出比較好的解。
通過實驗,可以看出:對于單峰函數(shù)F1(x),ω的遞減不能太小,從方案ω1-QDPSO和ω2-QDPSO的結(jié)果就可以比較出來,而方案ω3-QDPSO和ω4-QDPSO的結(jié)果不好,可能是因為它們搜索的區(qū)域太小,從而陷入局部最優(yōu)解。
對于多峰函數(shù)F2(x),ω的變化對測試函數(shù)的解的精確度沒有太大影響,說明了改進方案在此方面沒有明顯提高。接下來,我們還對算法的收斂速度進行了比較。結(jié)果如表2所示。
表2是對函數(shù)測試50次后取得平均值的結(jié)果??梢妼τ诤瘮?shù)F1(x),ω1-QDPSO和QDPSO都在10維的情況下收斂,而20維時只有ω1-QDPSO收斂,其他函數(shù)都沒有收斂,導致這種結(jié)果的原因有2種:[!--empirenews.page--]
(1)各種方案隨ω的變化,削弱或失去了調(diào)節(jié)能力,在達到最大迭代次數(shù)時也未收斂;
(2)即使在算法已搜索到最優(yōu)解附近時,由于局部搜索能力太差,跳過了最優(yōu)解。對于函數(shù)F2(x),ω3-QDPSO,ω4-QDPSO,QDPSO收斂速度都比較快,ω1=QDPSO和ω2-QDPSO的收斂速度就相對較慢一些。這是由于對多峰函數(shù)測試時,各種方案的初始化范圍附近可能存在最優(yōu)解,所以減少了迭代次數(shù),加快了算法速度。
通過對4種方案的研究,這里選取方案1應用于0-1背包問題,并得到理想的結(jié)果。
2 對改進算法應用到0-1背包問題
2.1 0-1背包問題的數(shù)學描述
0-1背包問題是一種典型的組合優(yōu)化問題。0-1背包問題的描述如下:假設有n個物品,其大小和價值分別為wi和ci(其中wi>0,ci>0,i=1,2,…,n),背包的容量假設為V(V>0)。要求在背包的容量限制內(nèi),使所裝物品的總價值最大。該問題的數(shù)學模型可表示為:
其中,當將物品i裝入背包時xi=1;否則xi=0。
2.2 0-1背包問題的改進粒子群算法
改進粒子群算法應用到0-1背包問題的思想:粒子群中粒子的個數(shù)與每個粒子的維數(shù)相等。先定義二進制數(shù)x,x只能取0和1。再把粒子的種群數(shù)看作背包的個數(shù)n,對于每個粒子xi(其中i=1,2,…,n表示粒子個數(shù))有n個維數(shù),即1個粒子有n個位置。然后初始化每個粒子的速度vij,(其中j=1,2,…,n表示每個粒子位置的維數(shù)),每個粒子的每一維都對應一個初始化了的速度。對公式(8)進行變化:
解決背包問題的步驟:
(1)初始化粒子的速度和位置;
(2)將初始化的位置向量代人式(9),在所得每個粒子的解中找到最優(yōu)解pbest,并令pbest=gbest;
(3)通過式(6)更新粒子的速度,對所得最優(yōu)解進行修正,然后再次代入函數(shù)方程中繼續(xù)尋找新的最優(yōu)解;
(4)若達到終止條件,則結(jié)束迭代,輸出到存儲向量,即為所求結(jié)果;否則,k=k+1,轉(zhuǎn)步驟(3)。
2.3 實驗仿真
為了驗證ω1-QDPSO求解0/1背包問題的可行性及有效性,這里進行了2組實驗,每組實驗用ω1-QDPSO算法進行測試,每組算法運行50次。
實驗一:取參數(shù)popsize=10,dimsize=10,c1=c2=2.05,genmax=1 000,g=0.968 5;N=10,V=269,W={95,4,60,32,23,72,80,62,65,46},C={55,10,47,5,4,50,8,61,85,87),得到實驗結(jié)果是max f=295,收斂平均迭代次數(shù)11。
實驗二:取參數(shù)popsize=20,dimsize=20,c1=c2=2.05,genmax=1 000,g=0.968 5;N=20,V=878,W={92,4,43,83,84,68,92,82,6,44,32,18,56,83,25,96,70,48,14,58},C={44,46,90,72,91,40,75,35,8,54,78,40,77,15,61,17,75,29,75,63},得到實驗結(jié)果是max f=1024,收斂平均迭代次數(shù)23。
ω1-QDPSO算法求解0-1背包問題,與文獻[9]中提出的用帶有死亡罰函數(shù)的粒子群優(yōu)化算法求解0-1背包問題相比,其運行速度明顯提高。
3 結(jié) 語
本文通過采用4種方案對具有量子行為的粒子群優(yōu)化算法的慣性權(quán)重研究分析表明,QDPSO改進算法中慣性權(quán)重的改變對性能的影響與經(jīng)典PSO算法相比既具繼承性又具發(fā)展性,在算法精度上ω1-QDPSO的結(jié)果比較優(yōu),而在計算速度上ω3-QDPSO和ω4-QDPSO的結(jié)果更優(yōu)。選擇其中算法性能相對較好的ω1-QDPSO算法應用于0-1背包問題,可以看出改進算法性能的改善在應用中得到更好的體現(xiàn)