奉中華 李志剛 湖南環(huán)境生物職業(yè)技術(shù)學(xué)院
粒子群算法(Particle Swarm Optimization, PSO)是美國的學(xué)者Kennedy和Eberhart提出的一種群智能優(yōu)化算法,該算法主要是模擬鳥兒覓食行為,粒子間相互學(xué)習(xí)、相互交換信息從而達(dá)到尋優(yōu)的目的。該算法模型中種群規(guī)模為M,xi則表示第i個粒子個體的所在位置,vi表示粒子的速度,粒子群粒子個體最好位置為Pi,微粒群的全局最好位置為Pg。粒子個體通過式(1)和式(2)來調(diào)整自己的速度和位置:
其中,·1和·2表示為學(xué)習(xí)因子。
Step 1:算法的初始化(位置x、速度v、最大迭代次數(shù)N等賦初值)。
Step 2:根據(jù)迭代公式(1)、(2)計(jì)算適應(yīng)度函數(shù)值。
Step 4:判斷是否達(dá)到迭代最大迭代次數(shù),是則輸出最優(yōu)值,否則進(jìn)行尋優(yōu)。
算法運(yùn)行環(huán)境: MATLAB 7.1,主頻 1.9GHZ。函數(shù) F1 和函數(shù)F2數(shù)學(xué)表達(dá)式如下所示:
表 1 各個函數(shù)的表達(dá)式
函數(shù)F1共有4個全局的極大值點(diǎn),其全局最大值位于(-2.81,3.13), (3.0, 2.0),(3.58,-1.85),(-3.78,-3.28),其函數(shù)最優(yōu)值均為是660.0。函數(shù)F2 共有4 個全局極大值點(diǎn), 全局最大值分別是(0.635,0.635),(0.635,-0.635),(-0.635,0.635),(-0.635,-0.635), 其 函數(shù)值為 3.260。
表2 函數(shù)1計(jì)算結(jié)果
表3 函數(shù)2計(jì)算結(jié)果
實(shí)驗(yàn)結(jié)果表明,基于變步長的粒子群算法可以有效克服早熟收斂現(xiàn)象,能夠避免陷入局部極值,引入變步長尋優(yōu)機(jī)制提高了算法的尋優(yōu)精度,同時也收到了較好的搜索效果。