當前位置:編程學習大全網 - 編程語言 - 優化算法筆記(十四)水波算法

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

(以下描述,均不是學術用語,僅供大家快樂的閱讀)

水波算法(Water wave optimization)是根據水波理論提出的優化算法。什麽是水波理論?簡單來說就是水波的寬度越小,其頻率越高,頻率與水波寬度的平方根成反比(具體細節我也不懂,物理方面的)。水波算法也算是壹種受物理現象(理論)啟發而提出的算法,提出時間並不長,還有大量的研究和應用可以深入進行。

在水波算法中,水波有三種形式來對空間進行搜索。1.傳播,2.折射,3.碎浪。傳播即水波向周圍擴散開來,折射是水波的高度趨近與0時改變了傳播的方向(我是真的理解不能,光可以折射,水也能折射的咯?),碎浪即水波的高度較高時,水波破碎形成浪花。可以看出水波的傳播是貫穿整個算法流程的,而折射只會發生在水波高度減少至0時,碎浪則發生在水波過高時。

(強行解釋最為致命,作者開心就好)。

將每壹個水波想象成壹個獨立的個體,那麽每個水波將擁有3個屬性:位置X,波長 以及波高h。

在每壹次叠代過程中,每個水波都會通過傳播的形式來對空間進行搜索同時水波的高度h會減少1。其位置更新公式如下:

其中 為該水波的波長, 為當前搜索空間的上下界。 的值會隨著叠代的進行而改變:

其中 為波長的衰減系數, 為壹個較小的數以保證分母不為0。

每次傳播後,如果當前的水波優於傳播前的水波,則傳播到該位置,否則波浪的高度h會減少1,即:

上式中適應度函數值越大,表明位置越優。

在壹個水波進行傳播之後,該水波有可能進行折射。每次傳播,水波的高度h會減少1,當h減少到0時,該水波將發生折射,同時其高度和波長也會改變,折射及高度波長改變公式如下:

折射後的位置正態分布在以當前水波和最優水波中點為均值,當前水波與最優水波距離為方差的位置。

在折射後水波的高度將會重新初始化為最大高度:

折射後, 會重新計算該水波的波長 :

在水波進行傳播之後,到達了壹個優於當前最優水波的位置,則該水波將會進行碎浪,並將當前最優水波傳播到碎浪產生的位置。

碎浪位置的產生公式如下:

k為壹個隨機數,每次碎浪將會隨機選擇k個維度來進行改變。 為壹個常數。如果碎浪得到的結果優於當前最優水波,則改變當前最優水波到碎浪的位置。

是不是感覺流程圖有點復雜,其實算法沒有那麽復雜,整個過程壹***只有三個操作,壹個水波在壹代中最多只會執行兩種方式。每個水波可能的搜索方式有三種:1.傳播,2.先傳播後碎浪,3.先傳播後折射。

適應度函數

由於水波算法收斂較慢,所以最大叠代次數使用100。

實驗壹

從圖像中可以看出,個體在向著中心不斷的收斂,其收斂速度不算很快。其結果也相對穩定。

從圖像可以推測出,水波算法的核心參數其實是水波的最大高度,水波的最大高度決定了算法的收斂速度和精度,就像人工蜂群算法中的蜜源最大開采次數壹樣。若壹個個體連續多代沒有找到優於當前的位置,它將改變自己的策略。

從算法的具體實現可以看出,傳播是壹個在自身周圍的全局搜索的過程,折射則屬於壹個大概率局部搜索,小概率跳出局部最優的操作,而碎浪則是進壹步的局部搜索。那麽水波的最大高度越高,則水波算法的全局搜索能力越強,但收斂速度越慢,反正,算法的收斂速度越快。

實驗二 :減少算法的水波最大高度至5

從圖像可以看出算法的收斂速度明顯比實驗壹要快,在第30代時已經快收斂於壹個點了。從結果來看,實驗二的結果也優於實驗壹,由於水波的最大高度較小,算法進行碎浪和折射的次數增加了,即算法的局部搜索能力增強了。

同樣之前的算法中也提到過多次,收斂速度越快,群體越容易聚集到同壹個區域,算法也越容易陷入局部最優,而適應度函數對優化算法來說是壹個黑盒函數,無法得知其復雜程度。所以對於實驗所使用的較為簡單的測試函數,水波的最大高度越小,結果的精度越高,而面對未知的問題時,應該選取較大的水波高度以避免陷入局部最優。同樣物極必反,水波的最大高度過大可能會使算法的局部搜索較弱,我們可以選取壹個動態的水波最大高度。

實驗三 :水波最大高度隨叠代次數增加由12遞減至2

看圖像和結果感覺和實驗壹差別不大,唯壹的區別就是最優值要好於實驗壹。在這個簡單的測試函數中無法表現出其應有的特點,由於算法後期群體已經較為集中,也無法明顯的看出算法的收斂速度是否隨著叠代次數增加而加快。

水波算法也是壹個新興算法,算法的流程較為復雜且可修改參數較多。算法的流程和思想與蜂群算法有點類似,但水波算法更為復雜。水波算法的三個搜索策略,傳播是壹個全局搜索行為,也有壹定的跳出局部最優能力;折射則是壹個局部搜索過程,由於正態分布的原因,有較小的概率產生跳出局部最優的操作;碎浪則是壹個更進壹步的局部搜索,只在最優位置附近搜索。

其搜索策略使算法在整個流程中都擁有全局搜索和局部搜索能力,全局搜索與局部搜索之間的平衡由水波的最大高度決定,最大高度約大,全局搜索能力越強,收斂速度越慢,反之,局部搜索能力越強,收斂速度越快。

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

參考文獻

Zheng, Yu-Jun. Water wave optimization: A new nature-inspired metaheuristic[J]. Computers & Operations Research, 2015, 55:1-11. 提取碼:fo70

目錄

上壹篇 優化算法筆記(十三)鯨魚算法

下壹篇 優化算法筆記(十五)蝙蝠算法

優化算法matlab實現(十四)水波算法matlab實現

  • 上一篇:lenovo電腦如何偽裝成黑客
  • 下一篇:兒童腦筋急轉彎謎語
  • copyright 2024編程學習大全網