當前位置:首頁 » 操作系統 » 火焰演算法

火焰演算法

發布時間: 2023-05-31 08:09:30

❶ 優化演算法筆記(二十五)飛蛾撲火演算法

(以下描述,均不是學術用語,僅供大家快樂的閱讀)
飛蛾撲火演算法(Moth-Flame Optimization)是受飛蛾圍繞火焰飛行啟發而提出的演算法。演算法提出於2015年5月(投稿日期),雖可算作一個新演算法,不過無數研究者就像飛蛾見了火一樣,發表了如此之多的論文,驚了。
飛蛾撲火演算法中有兩種個體,飛蛾和火焰,飛蛾選擇並圍繞火焰以螺線方式飛行搜索,搜索完後,火焰將移動位置,以保持火焰是飛蛾和火焰群體中最優的位置。
演算法的流程簡單,螺線搜索在之前的鯨魚演算法中也出現過,這里會較為詳細的記錄記錄螺線搜索的具體情況。

顯然,飛蛾撲火演算法中有兩種角色,飛蛾與火焰。初始時飛蛾與火焰的數量均為N。為了方便查看,將飛蛾的位置表示為XM ,火焰的位置為 XF。
初始化時,會在解空間內初始化N個飛蛾與M(M=N)個火焰。在演算法過程中,飛蛾將會圍繞它所選擇的火焰飛行,之後將這N個飛蛾與M個火焰按優劣排序,並將M個火焰移動到較優的前M個個體的位置。其中火焰的數量M會隨著迭代次數的改變而不斷變化,論文中階梯遞減至1。
演算法的主要步驟如下:
1. 飛蛾選擇火焰(將火焰分配給飛蛾)。
2. 飛蛾圍繞火焰飛行。
3. 移動火焰到相應位置。
從步驟可以看出,演算法中飛蛾的飛行是一種無貪心演算法的操作,而火焰的移動則是一種變相的貪心操作。

初始化時,會有N個飛蛾和N個火焰(M=N),故每隻飛蛾都可以選擇互不相同的火焰。隨著迭代次數的遞增,火焰的數量會遞減。其數量根據以下公式計算得出:

其圖像如下圖所示:

其實就是將火焰數量M線性遞減到1,由於火焰數量是正數,故圖像呈階梯狀。
隨著迭代次數增加,火焰數量遞減,每隻飛蛾無法選擇互不相同的火焰,此時可以隨機選擇火焰或者飛蛾群體按順序依次往後選取,類似於取模。兩種方式的差別不大。

該步驟是演算法的核心計算步驟。
對於飛蛾 ,它圍繞火焰 飛行後到達的新位置XM_new根據以下公式計算得出:

其圖像如下

而演算法中的飛行軌跡應該是這樣的:

取出一維看看

其中i為計算次數。

圖像就是cos函數圖像的變形。考慮到飛蛾與火焰之間的距離會越來越短,其飛行圖像應該與上圖相反,即振幅越來越小,局部搜索能力越來越強。

N只飛蛾圍繞M個火焰飛行後,會到N個新位置,計算這N個新位置的適應度值,將這N個新位置與M個火焰這(N+M)個位置按優劣排序,並將其中較優的M個位置作為下一輪中火焰的位置。

其飛蛾撲火演算法流程圖如下:

由於飛蛾撲火演算法可以說是對蟻獅演算法和鯨魚演算法的結合,這里就看看演算法的圖像,不再做其他處理了。
適應度函數 。

實驗一:

從結果看來,飛蛾撲火演算法的性能穩定也優於蟻獅演算法,從圖像看演算法收斂性不如蟻獅演算法但局部搜索性能要強於蟻獅演算法。
可見螺線的局部搜索能力還是強於隨機遊走的,不過其全局搜索要弱於隨機遊走。相比蟻獅演算法,飛蛾撲火演算法更容易陷入局部最優(其實與蟻獅差不多,只要火焰/蟻獅陷入局部最優基本完蛋,不過蟻獅數量恆定,火焰數量遞減,所有火焰更容易局部最優)。

飛蛾撲火演算法是根據飛蛾圍繞火焰飛行的行為而提出的演算法。演算法的結構比較簡單,與蟻獅演算法類似,只是搜索步驟將隨機遊走替換成了螺線搜索(當然還有跟多細節上的不同,可以看看原文)。演算法的局部搜索能力非常強,依靠螺線就提供了全局搜索和局部搜索能力,其全局搜索和局部搜索能力強弱由其極半徑決定,演算法中由b決定。不過演算法缺少跳出局部最優的能力,在平滑函數中的效果非常好,在局部最優較多的函數中效果中規中矩。

參考文獻
Mirjalili S . Moth-flame optimization algorithm: A novel nature-inspired heuristic paradigm[J]. Knowledge-Based Systems, 2015, 89(NOV.):228-249.. 提取碼:koy9
以下指標純屬個人yy,僅供參考

目錄
上一篇 優化演算法筆記(二十四)帝王蝶演算法
下一篇 優化演算法筆記(二十六)和聲搜索演算法

熱點內容
scratch少兒編程課程 發布:2025-04-16 17:11:44 瀏覽:640
榮耀x10從哪裡設置密碼 發布:2025-04-16 17:11:43 瀏覽:368
java從入門到精通視頻 發布:2025-04-16 17:11:43 瀏覽:86
php微信介面教程 發布:2025-04-16 17:07:30 瀏覽:310
android實現陰影 發布:2025-04-16 16:50:08 瀏覽:794
粉筆直播課緩存 發布:2025-04-16 16:31:21 瀏覽:346
機頂盒都有什麼配置 發布:2025-04-16 16:24:37 瀏覽:213
編寫手游反編譯都需要學習什麼 發布:2025-04-16 16:19:36 瀏覽:816
proteus編譯文件位置 發布:2025-04-16 16:18:44 瀏覽:367
土壓縮的本質 發布:2025-04-16 16:13:21 瀏覽:594