優(yōu)化算法筆記(二十四)帝王蝶算法

1. 帝王蝶算法簡(jiǎn)介

(以下描述,均不是學(xué)術(shù)用語(yǔ),僅供大家快樂(lè)的閱讀)
  上一篇記錄了蝴蝶算法(Butterfly Algorithm),這一篇接著記錄帝王蝶算法(Monarch butterfly optimization)。
  介紹之前我們先看看帝王蝶的百科,了解其特性,這將有利于我們對(duì)算法的理解和記憶。

圖片來(lái)自百度

  帝王蝶算法(Monarch butterfly optimization)是根據(jù)帝王蝶的遷徙行為提出的優(yōu)化算法。帝王蝶算法也是于2015年提出,相關(guān)的論文也比較多了(這兩個(gè)蝴蝶算法都有這么多人關(guān)注嗎?)。其流程相對(duì)蝴蝶算法來(lái)說(shuō)有點(diǎn)復(fù)雜,不過(guò)其論文對(duì)算法描述非常的清晰,大家可以去閱讀原文。
  帝王蝶算法中,每只蝴蝶的位置代表一個(gè)可行解,蝴蝶群體將會(huì)被分布在兩個(gè)大陸上,這兩塊大陸上的帝王蝶分別有不同的行為:1.遷徙,2適應(yīng)環(huán)境。帝王蝶算法組合了這兩種行為來(lái)搜索解空間中的最優(yōu)位置。

2.算法流程

帝王蝶算法中每只蝴蝶的為X={x^1,x^2,...,x^D},該位置的優(yōu)劣由其適應(yīng)度函數(shù)F(X)計(jì)算得出。
帝王蝶群體分布在兩塊大陸上,分別是land1和land2上。對(duì)于一只隨機(jī)帝王蝶來(lái)說(shuō),它位于land1上的概率為p,位于land2上的概率為1-p。以此可以將總?cè)悍譃?個(gè)群體,論文中p取值維5/12。
  Land1上的群體的行為為遷徙,而land2上的群體的行為為適應(yīng)環(huán)境。

2.1遷徙

位于land1上的群體的行為為遷徙,這部分個(gè)體在種群中的比例為p。其計(jì)算公式如下:


  其中x_{new}^d為新個(gè)體的第d維,r1為land1中的隨機(jī)個(gè)體,r2為land2中的隨機(jī)個(gè)體,rand為0-1之間的均勻隨機(jī)數(shù),peri為常數(shù),取值為1.2,p的值也是5/12。公式的含義即新產(chǎn)生的個(gè)體每一維由選自種群中的其他個(gè)體,其中有 (5/(12*1.2)=34.7%的維度來(lái)自land1中的個(gè)體, 1-5/(12*1.2)= 65.3%的維度來(lái)自land2中的個(gè)體?;蛘咭部梢哉f(shuō)從兩個(gè)群體中各選了D/2個(gè)個(gè)體的不同的維度組成了新個(gè)體。
  新個(gè)體屬于land1群體,如果該個(gè)體優(yōu)于對(duì)應(yīng)的父類個(gè)體則取代父類位置,否則將被拋棄。
  從公式中也可以看出,這是一個(gè)無(wú)法脫離局部最優(yōu)的操作,沒(méi)有產(chǎn)生新的位置,當(dāng)群體收斂于一點(diǎn)后新個(gè)體將不會(huì)有太大變化,有點(diǎn)類似遺傳算法的交叉操作。

2.2適應(yīng)環(huán)境

不同與land1上的群體,land2上的群體的行為為適應(yīng)環(huán)境,其計(jì)算公式如下:


  其中x_{best}^d為最優(yōu)個(gè)體的第d維,r3為land2中的隨機(jī)個(gè)體,S_max為帝王蝶的最大步長(zhǎng),一般取值為1,t為當(dāng)前的迭代次數(shù),levy為列維飛行隨機(jī),rand1和rand2為為0-1之間的均勻隨機(jī)數(shù),BAR為一個(gè)常數(shù),取值為5/12。
  計(jì)算可以得出新維度取上述3個(gè)值的概率為5/12=41.7%, (7/12)*(5/12)=24.3%, (7/12)*(7/12)=34.0%。
  論文中的常數(shù)取的非常的不對(duì)稱,其來(lái)源是根據(jù)帝王蝶在各地停留、活動(dòng)的月數(shù)站全年的比例計(jì)算而來(lái),非常的寫(xiě)實(shí)。

2.3總體流程

從2.2和2.3可看出,帝王蝶算法的流程也非常的簡(jiǎn)單,過(guò)程中也只有兩個(gè)公式。


  可以看出,帝王蝶算法的流程和蝴蝶算法的流程幾乎一模一樣(廢話,流程圖直接copy的,當(dāng)然一樣),兩個(gè)算法的個(gè)體都是擁有兩種行為,蝴蝶算法的行為比較整體,宏觀操作,新個(gè)體由2-3個(gè)個(gè)體得出,而帝王蝶算法的行為比較零散,微觀操作,每一維來(lái)自一個(gè)個(gè)體。兩個(gè)算法也都使用了levy飛行,考慮到兩個(gè)算法竟然還是同一年的,莫非,難道……
  不過(guò)從細(xì)節(jié)來(lái)看,兩個(gè)算法差異還是比較大的,不過(guò)兩個(gè)算法的性能也都算是中規(guī)中矩的那種,沒(méi)有特別突出的特點(diǎn)。

3.實(shí)驗(yàn)

適應(yīng)度函數(shù)f(x_1,x_2)=(x_1-a)^2+(x_2-b)^2,a=b=90
實(shí)驗(yàn)一

問(wèn)題維度(維度) 2
總?cè)簲?shù)量(種群數(shù)) 20
最大迭代次數(shù) 50
取值范圍 (-100,100)
實(shí)驗(yàn)次數(shù) 10
p 5/12
peri 1.2
BAR 5/12
S_max 1
最優(yōu)值 6.616787285876675E-7
最差值 0.2237125217553702
平均值 0.02237985875889385

從圖像中可以看出,帝王蝶算法收斂的非常之快,幾乎在10代以內(nèi)就聚集在了目標(biāo)解附近。從結(jié)果中也可以看出,10次結(jié)果中僅有一次較差,其它結(jié)果也都很接近0。效果比較好,我總覺(jué)得參數(shù)的設(shè)置不太對(duì)稱,改成對(duì)稱試試結(jié)果。

實(shí)驗(yàn)二:修改參數(shù)p=0.5,peri = 1,BAR=0.5,即遷徙操作兩個(gè)種群各占一半維度,適應(yīng)環(huán)境操作最優(yōu)個(gè)體站一半維度,1/4進(jìn)行l(wèi)evy飛行。

問(wèn)題維度(維度) 2
總?cè)簲?shù)量(種群數(shù)) 20
最大迭代次數(shù) 50
取值范圍 (-100,100)
實(shí)驗(yàn)次數(shù) 10
p 1/2
peri 1
BAR 1/2
S_max 1
最優(yōu)值 5.316420564900669E-8
最差值 305.487133867145
平均值 46.55311876057846

從結(jié)果可以看出,將參數(shù)改為對(duì)稱后效果差了不少。圖像我選取一副較差的圖像,從圖像可以看出在最后,種群收斂到了目標(biāo)解外的一點(diǎn)。收斂的過(guò)程很像遺傳算法和差分進(jìn)化算法,個(gè)體的運(yùn)動(dòng)軌跡在一個(gè)類似十字架的圖案上。但是這個(gè)適應(yīng)度函數(shù)非常簡(jiǎn)單,不存在局部最優(yōu)解,問(wèn)題應(yīng)該出在步長(zhǎng)上。整個(gè)算法只有l(wèi)evy飛行那一步會(huì)產(chǎn)生新的位置,其他步驟都是現(xiàn)有位置的組合。
下面將最大步長(zhǎng)改大試試。

實(shí)驗(yàn)三:在實(shí)驗(yàn)二的基礎(chǔ)上,將S_max改為100。

問(wèn)題維度(維度) 2
總?cè)簲?shù)量(種群數(shù)) 20
最大迭代次數(shù) 50
取值范圍 (-100,100)
實(shí)驗(yàn)次數(shù) 10
p 1/2
peri 1
BAR 1/2
S_max 100
最優(yōu)值 0.03327980532491267
最差值 1.372619091077949
平均值 0.2681765191162244

結(jié)果比實(shí)驗(yàn)二好了不少,但精度有所下降,但是比不上實(shí)驗(yàn)一。最大步長(zhǎng)設(shè)的太大會(huì)影響精度,設(shè)得太小又會(huì)讓種群提前收斂。實(shí)驗(yàn)三中最大步長(zhǎng)為100,最大迭代次數(shù)為50,則由最大步長(zhǎng)影響的精度為100/(50*50)=0.04,這與實(shí)驗(yàn)結(jié)果相差不太多。權(quán)衡利弊,S_max的取值還是大一點(diǎn)的好,否則,種群未在正解附近收斂得到的結(jié)果會(huì)很差,結(jié)果會(huì)很不穩(wěn)定。

實(shí)驗(yàn)四: 在實(shí)驗(yàn)一的基礎(chǔ)上將S_max修改為100,與實(shí)驗(yàn)三比較原文其他參數(shù)是否合適。

問(wèn)題維度(維度) 2
總?cè)簲?shù)量(種群數(shù)) 20
最大迭代次數(shù) 50
取值范圍 (-100,100)
實(shí)驗(yàn)次數(shù) 10
p 5/12
peri 1.2
BAR 5/12
S_max 1
最優(yōu)值 0.0041091205735400115
最差值 0.6353414477079234
平均值 0.1801414787350149

從結(jié)果可以看出,這次的結(jié)果要好于實(shí)驗(yàn)三的結(jié)果,這說(shuō)明原文中給出的這一系列不對(duì)稱的參數(shù)效果還是好于實(shí)驗(yàn)二實(shí)驗(yàn)三中的對(duì)稱參數(shù)。圖像與實(shí)驗(yàn)三的圖像類似,步長(zhǎng)改大之后個(gè)體很容易飛出邊界,然后由越界的處理方法使其留在邊界上,所以在算法開(kāi)始后不久就可以看到群體都停留在了邊界上,不過(guò)問(wèn)題不大,最終還是會(huì)收斂與正解附近。
  與實(shí)驗(yàn)一相比,實(shí)驗(yàn)四的結(jié)果差了不少,這是因?yàn)闇y(cè)試函數(shù)比較簡(jiǎn)單,當(dāng)選用較為復(fù)雜的測(cè)試函數(shù)后,較大的步長(zhǎng)能夠提高算法的全局搜索能力,讓算法的結(jié)果更加穩(wěn)定。

4.總結(jié)

帝王蝶算法是根據(jù)帝王蝶的遷徙行為提出的算法。位于兩塊大陸上的帝王蝶群體有著不同的行為,遷徙行為類似于進(jìn)化算法的雜交操作,適應(yīng)環(huán)境行為類似于進(jìn)化算法的變異操作,不過(guò)其變異位置在當(dāng)前最優(yōu)個(gè)體附近。算法中的levy飛行是其變異操作的具體實(shí)現(xiàn),不過(guò)由于受最大步長(zhǎng)的影響,levy飛行的作用并不明顯。帝王蝶的最大飛行步長(zhǎng)對(duì)結(jié)果的影響較為明顯,步長(zhǎng)較小時(shí)算法的全局搜索能力較差,局部搜索能力較強(qiáng),精度較高,反之,全局搜索能力較強(qiáng),局部搜索能力較差,精度較低但是更加穩(wěn)定。
  帝王蝶算法的參數(shù)非常奇特,按論文中所說(shuō)是根據(jù)蝴蝶在各地活動(dòng)的月數(shù)而設(shè)定的。雖然不是最佳參數(shù),但也優(yōu)于均勻?qū)ΨQ的參數(shù)。有興趣的同學(xué)可以試試怎么設(shè)置能讓算法的性能達(dá)到最佳。
  接連兩篇筆記記錄了都是蝴蝶算法,它們的總體流程結(jié)構(gòu)相差不大,一個(gè)是宏觀行為,個(gè)體之間互動(dòng),一個(gè)是微觀行為,維度之間互動(dòng)。這兩個(gè)蝴蝶算法的性能也相差不多,中規(guī)中矩,沒(méi)有太亮眼的地方,而且都用了levy飛行來(lái)提供跳出局部最優(yōu)的能力。不過(guò)levy作為非常規(guī)武器,不應(yīng)該在原始算法中給出,其操作與levy飛行不搭且沒(méi)有提供相應(yīng)的能力(可能我看到的不是原始論文)。

參考文獻(xiàn)
Monarch butterfly optimization[J]. Neural Computing and Applications, 2015, 31:1995-2014. 提取碼:fg2m
Wang G G , Zhao X , Deb S . A Novel Monarch Butterfly Optimization with Greedy Strategy and Self-adaptive Crossover Operator[C]// 2015 2nd Intl. Conference on Soft Computing & Machine Intelligence (ISCMI 2015). IEEE, 2015. 提取碼:9246

以下指標(biāo)純屬個(gè)人yy,僅供參考

指標(biāo) 星數(shù)
復(fù)雜度 ★★☆☆☆☆☆☆☆☆
收斂速度 ★★★★★★★☆☆☆
全局搜索 ★★★☆☆☆☆☆☆☆
局部搜索 ★★★★★☆☆☆☆☆
優(yōu)化性能 ★★★☆☆☆☆☆☆☆
跳出局部最優(yōu) ★★★☆☆☆☆☆☆☆
改進(jìn)點(diǎn) ★★★☆☆☆☆☆☆☆

目錄
上一篇 優(yōu)化算法筆記(二十三)蝴蝶算法
下一篇 優(yōu)化算法筆記(二十五)飛蛾撲火算法

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請(qǐng)通過(guò)簡(jiǎn)信或評(píng)論聯(lián)系作者。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容