肖楊
摘 要:針對(duì)粒子群算法收斂速率慢,多樣性差的缺陷,文中提出了一種簡(jiǎn)化的混合粒子群算法。首先利用簡(jiǎn)化的粒子群算法和細(xì)菌群體趨藥性算法共同優(yōu)化粒子的個(gè)體最優(yōu)位置,同時(shí)采用精英保留策略以保存粒子的最優(yōu)位置,算法后期再添加全局?jǐn)_動(dòng)算子使得粒子跳出局部最優(yōu)。經(jīng)典測(cè)試函數(shù)的實(shí)驗(yàn)結(jié)果表明,與其他粒子群優(yōu)化算法相比,此算法在尋找優(yōu)化解的質(zhì)量、收斂速度及魯棒性等方面具有優(yōu)異的性能。
關(guān)鍵詞:簡(jiǎn)化粒子群算法;細(xì)菌群體趨藥性算法;全局?jǐn)_動(dòng);精英保留
中圖分類號(hào):TP301 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2017)02-00-02
0 引 言
粒子群算法(Particle Swarm Optimization,PSO)具有參數(shù)少、收斂速度快、計(jì)算簡(jiǎn)單等優(yōu)點(diǎn),尤其是在解決復(fù)雜的多峰問題上表現(xiàn)出良好的優(yōu)化性能,但其仍然存在早熟收斂的缺陷。為了解決這些問題,各種改進(jìn)算法被陸續(xù)提出,可將這些算法大致分為如下幾類:
(1)對(duì)PSO參數(shù)的更改[1]。主要是針對(duì)線性權(quán)重、學(xué)習(xí)因子的更改;
(2)混合粒子群算法[2];
(3)二進(jìn)制粒子群算法[3];
(4)協(xié)同粒子群算法[4];
(5)簡(jiǎn)化粒子群算法[5,6]。
本文在簡(jiǎn)化粒子群算法的基礎(chǔ)上引入細(xì)菌群體趨藥性算法(Bacterial Colony Chemotaxis algorithm,BCC)增加粒子的多樣性。通過與幾種經(jīng)典算法比較,發(fā)現(xiàn)該改進(jìn)算法能夠提高收斂精度,收斂速度快。
1 簡(jiǎn)化的混合粒子群算法
1.1 簡(jiǎn)化粒子群優(yōu)化算法
傳統(tǒng)的粒子群算法通過速度和位置兩個(gè)變量更新本身位置。胡旺[7]等人證明了粒子的更新與速度無關(guān)。
1.2 細(xì)菌群體趨藥性算法
在BCC算法中,由于其速度設(shè)為恒定值,通常取速度為常數(shù),默認(rèn)其搜索與速度無關(guān),所以BCC算法也只有位置項(xiàng)。因此我們可以把它和PSO算法結(jié)合起來,共同更新粒子的位置信息。
1.3 改進(jìn)的混合粒子群算法
其中,ω采用隨機(jī)慣性權(quán)重的策略。Gbest是全局?jǐn)_動(dòng)算子,式中δ1=0.4,δ2=0.001,itermax為最大迭代次數(shù),α取值0.4,學(xué)習(xí)因子c1=c2=1.494 45。
為了避免傳統(tǒng)算法的隨機(jī)性而丟失一些位置較好的點(diǎn),本文引入精英保留策略,在每次迭代中,改變位置最差粒子的位置,引導(dǎo)其移動(dòng)到位置最好的粒子附近。
1.4 簡(jiǎn)化的混合粒子群算法PSOBCC
具體的更新粒子位置信息過程如下:
(1)均勻初始化初始種群;
(2)按照式(1)、(2)更新粒子位置,選取前sz/2粒子直接進(jìn)入下一次迭代;
(3)用BCC算法更新表現(xiàn)較差的sz/2個(gè)粒子,并與原適應(yīng)度值進(jìn)行比較,更新得到粒子的最好位置;
(4)將表現(xiàn)優(yōu)秀的前sz/2個(gè)粒子和BCC算法更新后的后sz/2個(gè)粒子一起進(jìn)入下一代;
(5)更新全局最優(yōu)值,并利用公式(3)對(duì)全局最優(yōu)值進(jìn)行擾動(dòng);
(6)采用精英保留策略,將最差粒子的位置移動(dòng)到最好粒子的附近;
(7)若滿足判斷終止條件,則輸出優(yōu)化解,否則轉(zhuǎn)到(2)。
2 仿真實(shí)驗(yàn)及結(jié)果分析
為了驗(yàn)證算法的可行性,本文選用5個(gè)復(fù)雜高維多峰函數(shù)進(jìn)行測(cè)試。并引用“區(qū)域尺度”和“中心偏移”方法對(duì)5個(gè)函數(shù)進(jìn)行旋轉(zhuǎn)和偏移。相對(duì)于原始函數(shù),旋轉(zhuǎn)偏移后的函數(shù)局部最優(yōu)點(diǎn)極多且不確定,求解也變得更加復(fù)雜。
2.1 算法參數(shù)設(shè)置
在本實(shí)驗(yàn)中,仿真軟件為Matlab R2014a,仿真運(yùn)行環(huán)境為Windows 7操作系統(tǒng),Intel i3 處理器,4 GB內(nèi)存,所得的測(cè)試結(jié)果用PSOBCC表示,并同時(shí)與PSO、超球面加速效應(yīng)粒子群算法(HAEP-SO)、指數(shù)分布粒子群優(yōu)化算法(EPSO)、維分區(qū)和自適應(yīng)速度控制協(xié)同粒子群算法(CPSO-DA)和適應(yīng)度距離比率粒子群算法(FDRPSO)進(jìn)行對(duì)比(此處所用數(shù)據(jù)出自文獻(xiàn)[8])。為了保證結(jié)果的可對(duì)比性,每個(gè)實(shí)驗(yàn)迭代1 000次,每個(gè)函數(shù)獨(dú)立運(yùn)行25次,選取粒子數(shù)目為25個(gè),空間維數(shù)30維。其中Mean表示平均值,Std表示標(biāo)準(zhǔn)差。
2.2 測(cè)試函數(shù)
測(cè)試函數(shù)見表1所列。
2.3 測(cè)試結(jié)果
6種算法在原始測(cè)試函數(shù)上的測(cè)試結(jié)果對(duì)比見表2所列。在表2中可以直觀看到,PSOBCC在函數(shù)f1,f3,f4,f5上表現(xiàn)較好,其平均值和標(biāo)準(zhǔn)差均優(yōu)于其他函數(shù)。在f2上CPSO-DA表現(xiàn)較好??傮w而言,在原始測(cè)試函數(shù)上,PSOBCC整體性能最優(yōu),每次運(yùn)行結(jié)果也最為穩(wěn)定。
為了證明本文算法的普遍適用性,對(duì)表1中的5個(gè)函數(shù)進(jìn)行旋轉(zhuǎn)和偏移,在相同測(cè)試條件下,表3列出了PSOBC和其他對(duì)比算法對(duì)旋轉(zhuǎn)偏移函數(shù)的測(cè)試結(jié)果。從表3可以看出,PSOBC在f2,f3,f4函數(shù)上平均值表現(xiàn)較好,在f1上PSOBCC的標(biāo)準(zhǔn)差最為穩(wěn)定。雖然在f5上表現(xiàn)不足,但總體而言,PSOBCC整體表現(xiàn)優(yōu)異。
3 結(jié) 語
本文可通過去掉速度項(xiàng)來有效降低算法對(duì)可調(diào)參數(shù)的敏感程度,同時(shí)粒子位置更新策略有效提升了算法的種群多樣性,保存了高性能的粒子,增強(qiáng)了算法搜索到全局最優(yōu)解的能力。
由于本文算法中增加了細(xì)菌群體趨藥性算法,算法計(jì)算復(fù)雜度有所提高,但考慮算法在大部分測(cè)試函數(shù)上都能得到理想的結(jié)果。接下來的研究工作包括提高粒子的搜索精度。
參考文獻(xiàn)
[1]溫濤,盛國(guó)軍,郭權(quán),等.基于改進(jìn)粒子群算法的Web服務(wù)組合[J].計(jì)算機(jī)學(xué)報(bào),2013,36(5):1031-1046.
[2]黃凱鋒,李莉,李永亮.多種群粒子群與人工蜂群融合的改進(jìn)算法[J].計(jì)算機(jī)工程與設(shè)計(jì),2014,35(6): 2250-2254.
[3] Mirjalili S,Lewis-A.S-shaped versus V-shaped transfer functions for binary Particle Swarm Optimization[J].Swarm & Evolutionary Computation,2013(9): 1-14.
[4] Hu Y F,Ding Y S,Ren L H,et al.An endocrine cooperative particle swarm optimization algorithm for routing recovery problem of wireless sensor networks with multiple mobile sinks[J].Information Sciences,2015(300):100-113.
[5]周丹,南敬昌,高明明.改進(jìn)的簡(jiǎn)化粒子群算法優(yōu)化模糊神經(jīng)網(wǎng)絡(luò)建模[J].計(jì)算機(jī)應(yīng)用研究,2015,32(4):1000-1003.
[6]雷敏,楊萬里,彭曉波,等.基于改進(jìn)簡(jiǎn)化粒子群算法的含DG的配電網(wǎng)無功優(yōu)化[J].華北電力大學(xué)學(xué)報(bào)(自然科學(xué)版),2015,42(1): 39-44.
[7]胡旺,李志蜀.一種更簡(jiǎn)化而高效的粒子群優(yōu)化算法[J].軟件學(xué)報(bào),2007,18(4):861-868.
[8]陳偉,項(xiàng)鐵銘,徐捷.基于PSO的隊(duì)伍演化算法[J].模式識(shí)別與人工智能,2015,28(6): 521-527.
[9]李威武,王慧,鄒志君,等.基于細(xì)菌群體趨藥性的函數(shù)優(yōu)化方法[J].新能源進(jìn)展,2005, 10(1): 58-63.