粒子群算法(PSO)是Eberhart和Kennedy于1995年提出的一種模擬鳥類覓食行為的算法[1],具有操作簡(jiǎn)單、速度快等特點(diǎn)。但在實(shí)際應(yīng)用中,許多決策問題都是多目標(biāo)優(yōu)化問題,采用粒子群算法來處理多目標(biāo)優(yōu)化問題是一種有效方法,Coello 等人將粒子群優(yōu)化算法擴(kuò)展到多個(gè)目標(biāo),提出了基于外部存檔思想和 Pareto支配基本原理的多目標(biāo)粒子群算法(MOPSO)[2]
并且,在眾多多目標(biāo)優(yōu)化算法中,多目標(biāo)粒子群算法因其適用范圍廣、設(shè)置參數(shù)少、優(yōu)化結(jié)構(gòu)簡(jiǎn)單,目前在絕大多數(shù)領(lǐng)域都得到了應(yīng)用,對(duì)其的研究也更多,也是種經(jīng)典的多目標(biāo)優(yōu)化算法。因此本文將介紹該算法的原理及其代碼實(shí)現(xiàn)。
00 文章目錄
1 多目標(biāo)粒子群優(yōu)化算法原理
2 代碼目錄
3 算法性能
4 源碼獲取
01 多目標(biāo)粒子群優(yōu)化算法原理
1.1 算法基礎(chǔ)-粒子群
MOPSO較之PSO,雖然多了外部存檔和非支配解的概念,但MOPSO的粒子更新邏輯和PSO一致,因此了解PSO的位置更新方式是必要的。
PSO是一種基于粒子之間信息共享的啟發(fā)式算法,種群中的每個(gè)粒子代表待優(yōu)化問題的一個(gè)潛在解,算法通過粒子在解空間內(nèi)追隨最優(yōu)粒子的行為迭代搜索最優(yōu)解。在PSO中,粒子的位置和速度更新公式如下:
其中,pi(t)代表粒子i的最佳位置,視作粒子的“ 自知部分
”學(xué)習(xí)樣本,而gi(t)是群體中的最佳粒子,視作粒子的“ 社會(huì)部分
”學(xué)習(xí)樣本。w為慣性權(quán)重,協(xié)調(diào)全局/局部搜索能力,c1=r1* ??1和c2=r2 * ??2分別叫做局部和全局加速常數(shù)。
1.2 外部檔案
外部檔案是多目標(biāo)粒子群的精英群體,算法利用網(wǎng)格技術(shù)對(duì)外部檔案進(jìn)行更新
網(wǎng)格技術(shù)即是對(duì)外部檔案中的解集進(jìn)行網(wǎng)格劃分,當(dāng)存檔溢出,則要根據(jù)網(wǎng)格的密度刪除一定數(shù)量的個(gè)體保持檔案規(guī)模。
針對(duì)該策略在前面的MOGWO中作過詳細(xì)講解,這里不再贅述,感興趣的朋友可以點(diǎn)下方鏈接。
MOGWO|多目標(biāo)灰狼優(yōu)化算法原理、改進(jìn)、利用及代碼實(shí)現(xiàn)(Matlab)
1.3 突變算子
雖然PSO具有高收斂速度,但其可能會(huì)導(dǎo)致PSO收斂到虛假的Pareto前沿(局部最優(yōu)),因此原作者為提高粒子的探索能力,引入了突變算子。
1.4 算法流程
MOPSO流程和PSO相似,只是多了對(duì)于最佳粒子的輪盤賭選擇以及網(wǎng)格機(jī)制,同樣,MOPSO也有PSO算法的局限,如搜索精度不高、收斂慢等,針對(duì)這些問題可以對(duì)MOPSO進(jìn)行改進(jìn)
02 代碼目錄
MOPSO代碼邏輯清晰簡(jiǎn)單,KAU已將代碼進(jìn)行詳細(xì)注釋,方便學(xué)習(xí)。
03 算法性能
以Viennet2問題為例,運(yùn)行MOPSO,結(jié)果如下:
04 源碼獲取
公眾號(hào)(KAU的云實(shí)驗(yàn)臺(tái))后臺(tái)回復(fù) MOPSO
參考文獻(xiàn)
[1] Goldberg D E, Genetic algorithms for search, optimization, and machince learning[ M]. Reading; MA: Addison-Wesley,1989: 100-150
[2]Coello CA C, Pulido G T,Lechuga M S.Handling multiple objectives with particle swarm optimization[J].IEEE Transactions on Evolutionary Computation,2004,8(3):256-279.
另:如果有伙伴有待解決的優(yōu)化問題(各種領(lǐng)域都可),可以發(fā)我,我會(huì)選擇性的更新利用優(yōu)化算法解決這些問題的文章。文章來源:http://www.zghlxwxcb.cn/news/detail-838536.html
如果這篇文章對(duì)你有幫助或啟發(fā),可以點(diǎn)擊右下角的贊/在看 (???_??)?(不點(diǎn)也行)文章來源地址http://www.zghlxwxcb.cn/news/detail-838536.html
到了這里,關(guān)于多目標(biāo)粒子群(MOPSO)算法原理及其MATLAB實(shí)現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!