(本文參考自:戴朝華. 粒子群優(yōu)化算法綜述. Available at: http://www.sciencetimes.com.cn/u/dchzyf/.)
PSO算法的問題:
1. PSO收斂快,特別是在算法的早期,但存在著精度較低,易發(fā)散等缺點(diǎn)。加速系數(shù)、最大速度等參數(shù)太大,粒子可能錯(cuò)過最優(yōu)解--------------->不收斂; 收斂的情況下,由于所有粒子都向最優(yōu)的方向飛去,所有粒子趨向同一化(失去多樣性)--------->使得后期收斂速度明顯變慢,搜索能力變?nèi)?/b>,同時(shí)算法收斂到一定精度時(shí),無法繼續(xù)優(yōu)化。
2. 缺乏數(shù)學(xué)理論支持,PSO算法本質(zhì)上是一種隨機(jī)搜索算法,因此可靠性上讓人存疑;
3. 尋找一種好的拓?fù)浣Y(jié)構(gòu),加強(qiáng)PSO算法的泛化能力;
4. 平衡全局搜索和局部搜索能力;
PSO算法優(yōu)化方向:粒子群初始化、領(lǐng)域拓?fù)?、參?shù)選擇和混合策略四個(gè)方面。
(1)粒子群初始化:粒子群初始化對(duì)算法性能有一定的影響,分為粒子位置初始化和速度初始化。
? ? ? ? ?粒子群位置初始化的理想效果:初始種群盡可能均勻覆蓋整個(gè)搜索空間。
? ? ? ? ?一、不推薦的初始化:a. 均勻分布隨機(jī)數(shù)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 缺點(diǎn):1. 對(duì)搜索空間的覆蓋不夠好;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2. 當(dāng)維度D增大時(shí)候,所有的粒子都傾向于靠近搜索空間的邊緣:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?b. 偽隨機(jī)數(shù)初始化:造成粒子在參數(shù)空間的不均勻分布和聚集效應(yīng);
? ? ? ? ? 二、推薦的初始化:a.?基于centroidal voronoi tessellations (CVTs)的種群初始化方法(這東西是啥沒搞懂);
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?b. 采用正交設(shè)計(jì)方法對(duì)種群進(jìn)行初始化;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?c. 類隨機(jī)采樣方法中的sobol序列:使得粒子群在參數(shù)空間更加均勻;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?d. Hammersley方法:感覺這個(gè)類似于類隨機(jī)采樣方法(具體我也沒搞清楚);
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?e. 將粒子建立為帶電(positive charged)的模型,通過建立一個(gè)平衡方程,求解該方程的最小解獲得粒子初始化位置;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?f. 設(shè)置偏向的隨機(jī)分布(推薦):即:我們通過對(duì)評(píng)價(jià)函數(shù)等一系列先驗(yàn)信息進(jìn)行分析,得出最優(yōu)解的可能存在空間范圍,然后在這些范圍內(nèi),著重撒點(diǎn)。就算再不濟(jì),也可以根據(jù)評(píng)價(jià)函數(shù)遵循Nearer is Better class(最優(yōu)解更加可能在搜索空間的中心位置準(zhǔn)則),在搜索空間的中心位置著重撒點(diǎn)。比如:

粒子群速度初始化:主要有如下五種方式:(根據(jù)實(shí)驗(yàn)表明,One-rand的效果最好。喂!??!這里One-rand的表達(dá)式是不是寫錯(cuò)了???)

(2)領(lǐng)域拓?fù)洌毫W拥耐負(fù)?,決定了粒子所接受到的信息來源。
? ? ? ? ?一、全局模型gbest:最早的粒子群優(yōu)化版本是全局PSO,使用全局拓?fù)浣Y(jié)構(gòu),社會(huì)只能通過種群中,最優(yōu)的那個(gè)粒子,對(duì)每個(gè)粒子施加影響。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?1. 優(yōu)點(diǎn):具有較快的收斂速度。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2. 缺點(diǎn):粒子間的交流不夠充分,但更容易陷入局部極值。

? ? ? ? ?二、局部模型lbest:采用每個(gè)粒子僅在一定的鄰域內(nèi)進(jìn)行信息交換,,粒子之間的交流相對(duì)比較緩慢。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?1. 優(yōu)點(diǎn):粒子更容易搜索問題空間中的不同地區(qū)。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2. 缺點(diǎn):信息傳遞緩慢,設(shè)計(jì)相對(duì)復(fù)雜。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?3. 分類:被動(dòng)模型:微觀領(lǐng)域、宏觀領(lǐng)域、維度劃分;主動(dòng)模型。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(1)微觀鄰域:細(xì)分到每個(gè)粒子。空間鄰域(spatial neighborhood)、性能空間(performance space)鄰域、社會(huì)關(guān)系鄰域(sociometric neighborhood)。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? a.?空間鄰域:直接在搜索空間按粒子間的距離(如歐式距離)進(jìn)行劃分。在搜索初始階段,將鄰域定義為每個(gè)粒子自身;隨著迭代次數(shù)的增加,將鄰域范圍逐漸擴(kuò)展到整個(gè)種群。
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?b.?性能空間領(lǐng)域:根據(jù)性能指標(biāo)(如適應(yīng)度、目標(biāo)函數(shù)值)劃分的鄰域,如:適應(yīng)度距離比值(fitness-distance-ratio)來選擇粒子的相鄰粒子。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? c.?社會(huì)關(guān)系鄰域:按粒子存儲(chǔ)陣列的索引編號(hào)進(jìn)行劃分,主要有:環(huán)形拓?fù)?ring or circle topology)、輪形拓?fù)?wheel topology)或星形拓?fù)?star topology)、塔形拓?fù)?pyramid topology)、馮-諾以曼拓?fù)?Von Neumann topology)以及隨機(jī)拓?fù)?random topology)等。(隨機(jī)拓?fù)渫鶎?duì)大多數(shù)問題能表現(xiàn)出較好的性能,其次是馮-諾以曼拓?fù)?。?/p>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(2)宏觀鄰域:對(duì)群體進(jìn)行劃分。比如:使用簇分析將整個(gè)粒子群劃分為多個(gè)簇,然后用簇中心代替帶收縮因子PSO中的粒子歷史最佳位置或群體歷史最佳位置;根據(jù)粒子相似性動(dòng)態(tài)地將粒子群體按種類劃分為多個(gè)子種群,再以每個(gè)子種群的最佳個(gè)體作為每個(gè)粒子的鄰域最佳位置;劃分一個(gè)主群體,多個(gè)仆群體,仆群體進(jìn)行獨(dú)立的搜索,主群體在仆群體提供的最佳位置基礎(chǔ)上開展搜索;每間隔一定代數(shù)將整個(gè)群體隨機(jī)地重新劃分;每個(gè)粒子除了自身和鄰域最佳歷史位置外,還學(xué)習(xí)鄰域內(nèi)其他粒子的成功經(jīng)驗(yàn)(只學(xué)好的,不學(xué)壞的)等等;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(3)維度劃分:想法源自于:搜索空間維數(shù)較高時(shí)往往容易遭受“維數(shù)災(zāi)”的困擾。假設(shè)粒子群的整體維度為D,則可以將D劃分成不同的部分,比如劃分成k份,使用不同的群體,分別優(yōu)化不同的維度。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(4)主動(dòng)模型:主動(dòng)改變粒子鄰域空間,避免碰撞和擁擠。比如:將粒子分為帶電粒子和自然粒子,帶電粒子接近會(huì)產(chǎn)生排斥;為每個(gè)粒子引入與鄰近粒子距離成反比的自組織危險(xiǎn)度,距離越近危險(xiǎn)度越高,當(dāng)危險(xiǎn)度達(dá)到一定閾值,對(duì)粒子進(jìn)行重新初始化,或者彈開;為粒子賦一個(gè)半徑,以檢測(cè)兩個(gè)粒子是否會(huì)發(fā)生碰撞,并且采取碰撞-彈開方式將其分離。
(3)參數(shù)選擇:三種參數(shù):慣性權(quán)重或收斂因子、最大速度、兩個(gè)加速因子。
? ? ? ? ?一、慣性權(quán)重:

? ? ? ? ? ? ? ? ? ? ?a. 慣性權(quán)重大:加強(qiáng)PSO全局搜索能力;慣性權(quán)重?。杭訌?qiáng)PSO局部搜索能力;
? ? ? ? ? ? ? ? ? ? ?b. 矛盾點(diǎn):初始慣性權(quán)重大,局部搜索能力差,可能錯(cuò)過最優(yōu)點(diǎn);后期,慣性權(quán)重小,全局搜索能力不行,導(dǎo)致整個(gè)粒子群就陷入局部最優(yōu)解。
? ? ? ? ? ? ? ? ? ? ?c. 優(yōu)化方向:在適當(dāng)?shù)臅r(shí)候降低權(quán)重w,平衡全局和局部搜索能力;
? ? ? ? ? ? ? ? ? ? ?d. 優(yōu)化建議:w隨著更新代數(shù)的增加從0.9線性遞減到0.4;
? ? ? ? ?二、壓縮因子:

? ? ? ? ? ? ? ? ? ? ?a. 優(yōu)勢(shì):慣性常數(shù)方法通常采用慣性權(quán)值隨更新代數(shù)增加而遞減的策略,算法后期由于慣性權(quán)值過小,會(huì)失去探索新區(qū)域的能力,而收縮因子方法則不存在此不足
? ? ? ? ? ? ? ? ? ? ?b. 優(yōu)化建議:通常φ取4.1,χ得0.729。
? ? ? ? ?三、最大速度的選擇:為了抑制粒子更新的無規(guī)律的跳動(dòng),速度往往被限制在[-Vm,Vm]
? ? ? ? ? ? ? ? ? ? ?a. Vm增大,有利于全局探索(exploration),但可能越過全局最優(yōu)解;Vm減小,有利于局部開發(fā)(exploitation),但可能陷入局部最優(yōu);
? ? ? ? ? ? ? ? ? ? ?b. 優(yōu)化建議:一般設(shè)定為問題空間的10%~20%;或者動(dòng)態(tài)調(diào)整Vm,比如:根據(jù)群體最佳適應(yīng)和最差適應(yīng)來進(jìn)行調(diào)整;
? ? ? ? ?四、兩個(gè)加速常數(shù):加速常數(shù)C1和C2分別用于控制粒子指向自身或鄰域最佳位置的運(yùn)動(dòng)。
? ? ? ? ? ? ? ? ? ? ?a. C1增大,粒子全局搜索能力好;C2增大,粒子向著最優(yōu)靠攏局部能力好,但粒子會(huì)過早收斂;
? ? ? ? ? ? ? ? ? ? ?b. 優(yōu)化建議:C1 = C2 = 2.0,并且C1+C2 <= 4.0;或者根據(jù)自適應(yīng)調(diào)整,比如隨著迭代次數(shù)增加,減小C1增大C2;
(4)混合法:PSO與其他方法結(jié)合。
? ? ? ? ? ? ? ? ? ? ?這點(diǎn)我覺得,主要根據(jù)個(gè)人的學(xué)習(xí)積累來操作??紤]方向:增加粒子群的局部搜索能力。