優(yōu)化算法筆記(十六)混合蛙跳算法

1. 混合蛙跳算法簡介

(以下描述,均不是學術(shù)用語首妖,僅供大家快樂的閱讀)
  混合蛙跳算法(Shuffled Frog Leaping Algorithm)是根據(jù)青蛙在石塊上覓食時的種群分布變化而提出的算法娜庇。算法提出于2003年塔次,時間有點久遠,但相關(guān)的論文并不是特別多名秀,仍有較大的研究和改進空間励负。
  混合蛙跳算法中,每個青蛙的位置代表了一個可行解匕得。青蛙所在的池塘中有數(shù)塊石塊继榆,每一代,青蛙們會被分配到石塊上汁掠。在這一代中略吨,只有石塊上位置最差的青蛙會跳動。該青蛙首先會向著同一個石塊上的最優(yōu)位置的青蛙跳動考阱,如果新的位置比原位置差則向則全局最優(yōu)位置跳動翠忠,若該位置仍舊比原位置差則在解空間內(nèi)隨機跳動一次∑蛘ィ可以看出每只跳動青蛙在每代中至少跳動一次秽之,至多跳動三次当娱,但由于每次跳動的青蛙數(shù)量等于石塊數(shù),故當石塊數(shù)<青蛙數(shù)/3時考榨,每代總跳動次數(shù)小于青蛙總數(shù)跨细。
  (查找文獻追根溯源的時候看到了一個有趣的現(xiàn)象河质,原始的提出論文提出于2000年(Shuffled frog leaping algorithm:a memetic meta-heuristic for combinatorial optimization.)但是到2006年才出版扼鞋,而2003年的論文(Optimization of Water Distribution Network Design Using the Shuffled Frog Leaping Algorithm)引用了2000年的原始論文,并標注為出版中愤诱。到了2006年出版時,原始論文引用了2003年發(fā)表的那篇論文捐友,即這兩篇論文相互引用淫半,真是奇妙。估計是原始論文被拒了后又修改了結(jié)果到2006年才發(fā)表匣砖。)

2. 算法流程

這次的主角就是青蛙了科吭。(沒有石塊就用荷葉代替吧)。


  每一只青蛙只有兩個屬性:位置猴鲫,當前位置的適應度值对人。
  池塘中一共有m片荷葉,青蛙總數(shù)為n拂共。
  每一代中牺弄,將所有的青蛙按位置從優(yōu)到劣排列,并依此放置在m個荷葉上宜狐。舉個栗子势告,有5片荷葉(m1-m5)和21只青蛙(f1-f21,按適應度值從優(yōu)到劣排列)。


  即m1荷葉上的青蛙有{f1,f6,f11,f16,f21},m2荷葉上的青蛙有{f2,f7,f12,f17},依此類推抚恒。
  每代中最差的青蛙會首先向著當前荷葉上最優(yōu)位置的青蛙跳動咱台,即該代中f21會向著f1跳動,f17向著f2跳動俭驮,f18向著f3跳動回溺,f19向著f4跳動,f20向著f5跳動混萝。
  如果f21遗遵、f17、f18逸嘀、f19瓮恭、f20這五只青蛙沒有找到優(yōu)于自己當前位置的位置,則它們會向著全局最優(yōu)位置的青蛙f1跳動厘熟,如果新的位置仍然差于自己的原位置屯蹦,則該青蛙跳到一個隨機的位置维哈。

在D維空間內(nèi)青蛙f1的位置 X_1=(x_1^{1},x_1^{2},...,x_1^{D}),其適應度值為F(X_1) 登澜。

(1)青蛙f17向f2跳動后的新位置為 X_{17\_1}=(x_{17\_1}^{1},x_{17\_1}^{2},...,x_{17\_1}^{D})

x_{17\_1}^qq2ieyc=x_{17\_1}^u2gci6y+rand(0,1)*(x_{2}^aqiwcoy-x_{17}^qmm42ws)(1)

F(X_{17\_1})優(yōu)于F(X_{17})則青蛙f17跳到X_{17\_1}阔挠,否則跳到(2)。

(2)由于f1在全局最優(yōu)位置脑蠕,故在這一步购撼,f17會向f1跳動:

x_{17\_2}^642802q=x_{17\_2}^wgauyam+rand(0,1)*(x_{1}^o28cwik-x_{17}^ekgy2kw)(2)

F(X_{17\_2})優(yōu)于F(X_{17})則青蛙f17跳到X_{17\_2},否則跳到(3)谴仙。

(3)f17會跳到解空間內(nèi)的隨機位置:

x_{17\_3}^sg2uqei=rand(d_{min},d_{max})(3)

F(X_{17\_3})優(yōu)于F(X_{17})則青蛙f17跳到X_{17\_3}迂求。

混合蛙跳算法流程

  可以看出混合蛙跳算法的流程灰常的簡單,跳動的算子也非常的簡單晃跺,而且每次跳動的青蛙的數(shù)量等于荷葉的數(shù)量揩局,所有其迭代次數(shù)會快于多數(shù)其他的優(yōu)化算法。
  我自己特別喜歡這個優(yōu)化算法掀虎,總能從中體會出分治的思想凌盯。下面我們來看看實驗,看看其效果如何烹玉。

3. 實驗

適應度函數(shù)f(x1,x2)=(x1-a)^2+(x2-b)^2,a=b=0驰怎。
實驗一:

問題維度(維度) 2
總?cè)簲?shù)量(種群數(shù)) 20
搜索次數(shù)(最大迭代次數(shù)) 100
m(荷葉數(shù)) 1,2二打,4县忌,10
取值范圍 (-100,100)
實驗次數(shù) 10

荷葉數(shù)為1的圖像及結(jié)果如下:


m=1
最優(yōu)值 0.023209109446482593
最差值 12.56527503075393
平均值 2.0119782854952026

荷葉數(shù)為2的圖像及結(jié)果如下:


m=2
最優(yōu)值 9.786662841552858E-6
最差值 0.909941793259207
平均值 0.18964954333340095

荷葉數(shù)為3的圖像及結(jié)果如下:


m=3
最優(yōu)值 3.705970484841431E-12
最差值 0.13434773104427947
平均值 0.01706666675136372

荷葉數(shù)為4的圖像及結(jié)果如下:


m=4
最優(yōu)值 1.6384458958451075E-23
最差值 0.05824511047185952
平均值 0.005824518466248725

從上述的四個實驗可以看出继效,隨著荷葉數(shù)的增加芹枷,算法的收斂速度在不斷的加快。同時莲趣,隨著荷葉數(shù)的增加鸳慈,每代青蛙跳動的次數(shù)也在不斷的增加。荷葉數(shù)為1時喧伞,每代青蛙總共會跳動1-3次走芋,荷葉數(shù)為2時每代青蛙總共跳動2-6次,當荷葉數(shù)為10時潘鲫,每代青蛙會跳動10-30次翁逞。由于每片荷葉上至少得有2只青蛙,所以荷葉數(shù)最多為總?cè)簲?shù)的一半溉仑。
  算法的效果比較穩(wěn)定挖函,但好像沒有體現(xiàn)出其跳出局部最優(yōu)能力,在種群收斂后其全搜索能力較弱浊竟,大多在進行局部搜索怨喘。
  看了看算法的結(jié)構(gòu)津畸,其跳出局部最優(yōu)操作為第三段跳動,而這次跳動仍舊按照貪心算法跳到優(yōu)于當前位置的隨機位置”亓現(xiàn)在我將其增強為:如果進行了第三段跳動(隨機跳動)肉拓,則無論該位置的好壞,青蛙都將跳到該隨機位置梳庆。

實驗二: 永遠接受公式(3)得到的隨機位置

問題維度(維度) 2
總?cè)簲?shù)量(種群數(shù)) 20
搜索次數(shù)(最大迭代次數(shù)) 100
M(荷葉數(shù)) 10
取值范圍 (-100暖途,100)
實驗次數(shù) 10
實驗二
最優(yōu)值 1.5226434010299623E-13
最差值 0.003331701036538269
平均值 9.012756655715343E-4

可以看出在種群收斂后,仍然會有一些個體隨機出現(xiàn)在解空間內(nèi)膏执,并繼續(xù)收斂驻售。比較結(jié)果可以看出實驗二的結(jié)果中的最優(yōu)值不如實驗一,但是其均值和最差值均優(yōu)于實驗一更米,說明對原算法進行修改后算法更加穩(wěn)定欺栗,且算法的性能和全局搜索能力有一定的提升,算法跳出局部最優(yōu)能力更強壳快。

4. 總結(jié)

混合蛙跳算法是提出近20年,其實現(xiàn)的方式與分治的思想有異曲同工之處镇草。由于每次都更新的是每片荷葉上的最差位置的青蛙眶痰,故群體不容易集中于較小的范圍。同時由于“三段跳”的操作梯啤,讓混合蛙跳算法有了一定的跳出局部最優(yōu)能力竖伯。其全局搜索能力和局部搜索能力應該差不多,當最差的部分青蛙跳走后因宇,次差的部分青蛙則會變成了最差的青蛙七婴,此時群體不會過分集中。當群體相對分散時察滑,為搜索范圍較大的全局搜索打厘,反之為搜索范圍較小的局部搜索,由于收斂速度不算很快贺辰,所以進行全局搜索和局部搜索的時間相對均衡户盯。
  混合蛙跳算法的流程非常簡單,幾乎可以說是流程最簡單的優(yōu)化算法饲化。其中的算子也很簡單莽鸭,優(yōu)化的能力由種群的結(jié)構(gòu)提供。算法的文章中比較了“模因”“基因”吃靠,模因類似與思想硫眨,其傳播可以在同代中快速傳播,比如音樂巢块,幾分鐘就可以傳播給其他人礁阁,而基因則只能有父母輩傳遞給子女背巧号,傳遞的時間比較久。這也決定了混合優(yōu)化算法的最重要的部分在于其群體的結(jié)構(gòu)而不是其中的優(yōu)化算子氮兵,實驗說明這樣的效果也不錯裂逐,簡單明了的算法也能有不錯的效果。

參考文獻
Eusuff M , Lansey K , Pasha F . Shuffled frog-leaping algorithm: a memetic meta-heuristic for discrete optimization[J]. Engineering Optimization, 2006, 38(2):129-154.提取碼:ttgx

Eusuff, M.M. and Lansey, K.E., Optimization of water distribution network design using the shuf?ed frog leaping algorithm (SFLA). J.Water Resources Planning Mgmt,Am. Soc. Civ. Engrs, 2003, 129(3), 210–225.提取碼:cyu8

以下指標純屬個人yy,僅供參考

指標 星數(shù)
復雜度 ★☆☆☆☆☆☆☆☆☆
收斂速度 ★★★★☆☆☆☆☆☆
全局搜索 ★★★★☆☆☆☆☆☆
局部搜索 ★★★★★★★☆☆☆
優(yōu)化性能 ★★★★★★☆☆☆☆
跳出局部最優(yōu) ★★★★☆☆☆☆☆☆
改進點 ★★★★★★☆☆☆☆

目錄
上一篇 優(yōu)化算法筆記(十五)蝙蝠算法
下一篇 優(yōu)化算法筆記(十七)萬有引力算法

優(yōu)化算法matlab實現(xiàn)(十六)混合蛙跳算法matlab實現(xiàn)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載泣栈,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者卜高。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市南片,隨后出現(xiàn)的幾起案子掺涛,更是在濱河造成了極大的恐慌,老刑警劉巖疼进,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件薪缆,死亡現(xiàn)場離奇詭異,居然都是意外死亡伞广,警方通過查閱死者的電腦和手機拣帽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嚼锄,“玉大人减拭,你說我怎么就攤上這事∏螅” “怎么了拧粪?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長沧侥。 經(jīng)常有香客問我可霎,道長,這世上最難降的妖魔是什么宴杀? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任癣朗,我火速辦了婚禮,結(jié)果婚禮上旺罢,老公的妹妹穿的比我還像新娘斯棒。我一直安慰自己,他們只是感情好主经,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布荣暮。 她就那樣靜靜地躺著,像睡著了一般罩驻。 火紅的嫁衣襯著肌膚如雪穗酥。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天,我揣著相機與錄音砾跃,去河邊找鬼骏啰。 笑死,一個胖子當著我的面吹牛抽高,可吹牛的內(nèi)容都是我干的判耕。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼翘骂,長吁一口氣:“原來是場噩夢啊……” “哼壁熄!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起碳竟,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤草丧,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后莹桅,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體昌执,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年诈泼,在試婚紗的時候發(fā)現(xiàn)自己被綠了懂拾。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡铐达,死狀恐怖岖赋,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情娶桦,我是刑警寧澤贾节,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布汁汗,位于F島的核電站衷畦,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏知牌。R本人自食惡果不足惜祈争,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望角寸。 院中可真熱鬧菩混,春花似錦、人聲如沸扁藕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽亿柑。三九已至邢疙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背疟游。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工呼畸, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人颁虐。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓蛮原,卻偏偏與公主長得像,于是被迫代替她去往敵國和親另绩。 傳聞我的和親對象是個殘疾皇子儒陨,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355