優(yōu)化算法筆記(十四)水波算法

1. 水波算法簡介

(以下描述,均不是學(xué)術(shù)用語笆制,僅供大家快樂的閱讀)
  水波算法(Water wave optimization)是根據(jù)水波理論提出的優(yōu)化算法绅这。什么是水波理論?簡單來說就是水波的寬度越小在辆,其頻率越高证薇,頻率與水波寬度的平方根成反比(具體細(xì)節(jié)我也不懂,物理方面的)匆篓。水波算法也算是一種受物理現(xiàn)象(理論)啟發(fā)而提出的算法浑度,提出時(shí)間并不長,還有大量的研究和應(yīng)用可以深入進(jìn)行鸦概。
  在水波算法中箩张,水波有三種形式來對空間進(jìn)行搜索。1.傳播,2.折射先慷,3.碎浪饮笛。傳播即水波向周圍擴(kuò)散開來,折射是水波的高度趨近與0時(shí)改變了傳播的方向(我是真的理解不能论熙,光可以折射福青,水也能折射的咯?)脓诡,碎浪即水波的高度較高時(shí)无午,水波破碎形成浪花∽Q瑁可以看出水波的傳播是貫穿整個(gè)算法流程的宪迟,而折射只會發(fā)生在水波高度減少至0時(shí),碎浪則發(fā)生在水波過高時(shí)交惯。
(強(qiáng)行解釋最為致命踩验,作者開心就好)。

2. 算法流程

將每一個(gè)水波想象成一個(gè)獨(dú)立的個(gè)體商玫,那么每個(gè)水波將擁有3個(gè)屬性:位置X箕憾,波長 以及波高h(yuǎn)。
  在每一次迭代過程中拳昌,每個(gè)水波都會通過傳播的形式來對空間進(jìn)行搜索同時(shí)水波的高度h會減少1袭异。其位置更新公式如下:
X_i^{'t}=X_i^{t}+rand(-1,1)\lambda(l_{max}-l{min})
  其中\lambda為該水波的波長,l_{max},l_{min}為當(dāng)前搜索空間的上下界炬藤。\lambda的值會隨著迭代的進(jìn)行而改變:
\lambda = \lambda \alpha^{-(f(X)-f_{min}+\xi)/(f_{max}-f_{min}+\xi)}
  其中 \alpha為波長的衰減系數(shù)御铃,\xi 為一個(gè)較小的數(shù)以保證分母不為0。
每次傳播后沈矿,如果當(dāng)前的水波優(yōu)于傳播前的水波上真,則傳播到該位置,否則波浪的高度h會減少1羹膳,即:
\begin{cases} X_i^{'t}=X_i^{t}+rand(-1,1)\lambda(l_{max}-l{min}) ,f(X_i^{'t})>f(X_i^{t}) \\ h=h-1,f(X_i^{'t}) \leq f(X_i^{t}) \\ \end{cases}
  上式中適應(yīng)度函數(shù)值越大睡互,表明位置越優(yōu)。

2.2折射

在一個(gè)水波進(jìn)行傳播之后陵像,該水波有可能進(jìn)行折射就珠。每次傳播,水波的高度h會減少1醒颖,當(dāng)h減少到0時(shí)妻怎,該水波將發(fā)生折射,同時(shí)其高度和波長也會改變泞歉,折射及高度波長改變公式如下:
X_i^{'t}=randGauss((X_{best}+X_i^t)/2,|X_{best}-X_i^t|/2)
  折射后的位置正態(tài)分布在以當(dāng)前水波和最優(yōu)水波中點(diǎn)為均值逼侦,當(dāng)前水波與最優(yōu)水波距離為方差的位置匿辩。
  在折射后水波的高度將會重新初始化為最大高度:
h=h_{max}
  折射后,\lambda會重新計(jì)算該水波的波長 :
\lambda=\lambda\frac{f(X)}{f(X^{'})}

2.3碎浪

在水波進(jìn)行傳播之后榛丢,到達(dá)了一個(gè)優(yōu)于當(dāng)前最優(yōu)水波的位置撒汉,則該水波將會進(jìn)行碎浪,并將當(dāng)前最優(yōu)水波傳播到碎浪產(chǎn)生的位置涕滋。
  碎浪位置的產(chǎn)生公式如下:
X_i^{'t}= \begin{cases} X_i^{t}+randGauss(0,1)\beta(l_{max}-l{min}) ,d \in {d_{r1},d_{r2},...,d_{k}} \\ X_i^{t},d \notin {d_{r1},d_{r2},...,d_{k}} \\ \end{cases}
  k為一個(gè)隨機(jī)數(shù),每次碎浪將會隨機(jī)選擇k個(gè)維度來進(jìn)行改變挠阁。\beta 為一個(gè)常數(shù)宾肺。如果碎浪得到的結(jié)果優(yōu)于當(dāng)前最優(yōu)水波,則改變當(dāng)前最優(yōu)水波到碎浪的位置侵俗。

是不是感覺流程圖有點(diǎn)復(fù)雜锨用,其實(shí)算法沒有那么復(fù)雜,整個(gè)過程一共只有三個(gè)操作隘谣,一個(gè)水波在一代中最多只會執(zhí)行兩種方式增拥。每個(gè)水波可能的搜索方式有三種:1.傳播,2.先傳播后碎浪寻歧,3.先傳播后折射掌栅。

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

適應(yīng)度函數(shù)
f(x_1,x_2)=(x_1-a)^2+(x_2-b)^2
  由于水波算法收斂較慢,所以最大迭代次數(shù)使用100码泛。
實(shí)驗(yàn)一

參數(shù)
問題維度(維度) 2
總?cè)簲?shù)量(種群數(shù)) 20
搜索次數(shù)(最大迭代次數(shù)) 100
h_{max} 12
\lambda 0.5
\alpha 1.0026
\beta 0.25->0.001
取值范圍 (-100猾封,100)
實(shí)驗(yàn)次數(shù) 10
最優(yōu)值 0.001808651677916917
最差值 0.04375677283916835
平均值 0.015238301700866286

從圖像中可以看出,個(gè)體在向著中心不斷的收斂噪珊,其收斂速度不算很快晌缘。其結(jié)果也相對穩(wěn)定。
  從圖像可以推測出痢站,水波算法的核心參數(shù)其實(shí)是水波的最大高度磷箕,水波的最大高度決定了算法的收斂速度和精度,就像人工蜂群算法中的蜜源最大開采次數(shù)一樣阵难。若一個(gè)個(gè)體連續(xù)多代沒有找到優(yōu)于當(dāng)前的位置岳枷,它將改變自己的策略。
  從算法的具體實(shí)現(xiàn)可以看出呜叫,傳播是一個(gè)在自身周圍的全局搜索的過程嫩舟,折射則屬于一個(gè)大概率局部搜索,小概率跳出局部最優(yōu)的操作怀偷,而碎浪則是進(jìn)一步的局部搜索家厌。那么水波的最大高度越高,則水波算法的全局搜索能力越強(qiáng)椎工,但收斂速度越慢饭于,反正蜀踏,算法的收斂速度越快。
實(shí)驗(yàn)二:減少算法的水波最大高度至5

參數(shù)
問題維度(維度) 2
總?cè)簲?shù)量(種群數(shù)) 20
搜索次數(shù)(最大迭代次數(shù)) 100
h_{max} 5
\lambda 0.5
\alpha 1.0026
\beta 0.25->0.001
取值范圍 (-100掰吕,100)
實(shí)驗(yàn)次數(shù) 10
最優(yōu)值 3.6611061423558655E-4
最差值 0.0023474778938427704
平均值 0.0011350695286915448

從圖像可以看出算法的收斂速度明顯比實(shí)驗(yàn)一要快果覆,在第30代時(shí)已經(jīng)快收斂于一個(gè)點(diǎn)了。從結(jié)果來看殖熟,實(shí)驗(yàn)二的結(jié)果也優(yōu)于實(shí)驗(yàn)一局待,由于水波的最大高度較小,算法進(jìn)行碎浪和折射的次數(shù)增加了菱属,即算法的局部搜索能力增強(qiáng)了钳榨。
  同樣之前的算法中也提到過多次,收斂速度越快纽门,群體越容易聚集到同一個(gè)區(qū)域薛耻,算法也越容易陷入局部最優(yōu),而適應(yīng)度函數(shù)對優(yōu)化算法來說是一個(gè)黑盒函數(shù)赏陵,無法得知其復(fù)雜程度饼齿。所以對于實(shí)驗(yàn)所使用的較為簡單的測試函數(shù),水波的最大高度越小蝙搔,結(jié)果的精度越高缕溉,而面對未知的問題時(shí),應(yīng)該選取較大的水波高度以避免陷入局部最優(yōu)吃型。同樣物極必反倒淫,水波的最大高度過大可能會使算法的局部搜索較弱,我們可以選取一個(gè)動態(tài)的水波最大高度败玉。
實(shí)驗(yàn)三:水波最大高度隨迭代次數(shù)增加由12遞減至2

參數(shù)
問題維度(維度) 2
總?cè)簲?shù)量(種群數(shù)) 20
搜索次數(shù)(最大迭代次數(shù)) 100
h_{max} 12->2
\lambda 0.5
\alpha 1.0026
\beta 0.25->0.001
取值范圍 (-100敌土,100)
實(shí)驗(yàn)次數(shù) 10
最優(yōu)值 6.362096569652954E-4
最差值 0.06803231857237127
平均值 0.015265574050623312

看圖像和結(jié)果感覺和實(shí)驗(yàn)一差別不大,唯一的區(qū)別就是最優(yōu)值要好于實(shí)驗(yàn)一运翼。在這個(gè)簡單的測試函數(shù)中無法表現(xiàn)出其應(yīng)有的特點(diǎn)返干,由于算法后期群體已經(jīng)較為集中,也無法明顯的看出算法的收斂速度是否隨著迭代次數(shù)增加而加快血淌。

4. 總結(jié)

水波算法也是一個(gè)新興算法矩欠,算法的流程較為復(fù)雜且可修改參數(shù)較多。算法的流程和思想與蜂群算法有點(diǎn)類似悠夯,但水波算法更為復(fù)雜癌淮。水波算法的三個(gè)搜索策略,傳播是一個(gè)全局搜索行為沦补,也有一定的跳出局部最優(yōu)能力乳蓄;折射則是一個(gè)局部搜索過程,由于正態(tài)分布的原因夕膀,有較小的概率產(chǎn)生跳出局部最優(yōu)的操作虚倒;碎浪則是一個(gè)更進(jìn)一步的局部搜索美侦,只在最優(yōu)位置附近搜索。
  其搜索策略使算法在整個(gè)流程中都擁有全局搜索和局部搜索能力魂奥,全局搜索與局部搜索之間的平衡由水波的最大高度決定菠剩,最大高度約大,全局搜索能力越強(qiáng)耻煤,收斂速度越慢具壮,反之,局部搜索能力越強(qiáng)哈蝇,收斂速度越快棺妓。

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

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

參考文獻(xiàn)
Zheng, Yu-Jun. Water wave optimization: A new nature-inspired metaheuristic[J]. Computers & Operations Research, 2015, 55:1-11.提取碼:fo70
目錄
上一篇 優(yōu)化算法筆記(十三)鯨魚算法
下一篇 優(yōu)化算法筆記(十五)蝙蝠算法

優(yōu)化算法matlab實(shí)現(xiàn)(十四)水波算法matlab實(shí)現(xiàn)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者买鸽。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市贯被,隨后出現(xiàn)的幾起案子眼五,更是在濱河造成了極大的恐慌,老刑警劉巖彤灶,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件看幼,死亡現(xiàn)場離奇詭異,居然都是意外死亡幌陕,警方通過查閱死者的電腦和手機(jī)诵姜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來搏熄,“玉大人棚唆,你說我怎么就攤上這事⌒睦” “怎么了宵凌?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長止后。 經(jīng)常有香客問我瞎惫,道長,這世上最難降的妖魔是什么译株? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任瓜喇,我火速辦了婚禮,結(jié)果婚禮上歉糜,老公的妹妹穿的比我還像新娘乘寒。我一直安慰自己,他們只是感情好匪补,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布肃续。 她就那樣靜靜地躺著黍檩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪始锚。 梳的紋絲不亂的頭發(fā)上刽酱,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天,我揣著相機(jī)與錄音瞧捌,去河邊找鬼棵里。 笑死,一個(gè)胖子當(dāng)著我的面吹牛姐呐,可吹牛的內(nèi)容都是我干的殿怜。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼曙砂,長吁一口氣:“原來是場噩夢啊……” “哼头谜!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起鸠澈,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤柱告,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后笑陈,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體际度,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年涵妥,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了乖菱。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,040評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蓬网,死狀恐怖窒所,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情帆锋,我是刑警寧澤墩新,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站窟坐,受9級特大地震影響海渊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜哲鸳,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一臣疑、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧徙菠,春花似錦讯沈、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽问慎。三九已至,卻和暖如春挤茄,著一層夾襖步出監(jiān)牢的瞬間如叼,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工穷劈, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留笼恰,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓歇终,卻偏偏與公主長得像社证,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子评凝,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 姓名:李鴻彬 學(xué)號:16040520011 轉(zhuǎn)載自http://blog.csdn.net/u010159842/...
    The_HotBean閱讀 12,893評論 0 6
  • 1. 螢火蟲算法簡介 (以下描述追葡,均不是學(xué)術(shù)用語,僅供大家快樂的閱讀) 螢火蟲算法(Firefly Algor...
    stronghorse閱讀 31,837評論 74 43
  • 大概一個(gè)月前奕短,有位讀者在給我公眾號發(fā)消息宜肉,推薦我看《成長邊緣》,還發(fā)了網(wǎng)盤鏈接篡诽。當(dāng)時(shí)存下了鏈接卻一直找不到時(shí)間看崖飘,...
    Crystor閱讀 181評論 0 0
  • 1.上傳自己6月月計(jì)劃圖 2.初進(jìn)月計(jì)劃行動營的初衷 1.為什么來月計(jì)劃行動營榴捡? 讓自己成為一個(gè)有計(jì)劃杈女,有行動力的...
    王剛_5109閱讀 275評論 0 4
  • 昨天和閨蜜一起去看了前任3达椰。我以為我不會哭,但是當(dāng)看到“孟云裝扮成至尊寶在繁華的街道上不斷地喊著‘林佳项乒,我...
    吳大芳喲閱讀 624評論 2 3