智能優化算法:飛蛾撲火優化算法-附代碼
@[toc]
摘要:飛餓撲火優 化 算 法 ( Moth-flame optimization algorithm,MFO) 是Seyedali Mirjalili等于2015年提出的一種新型智能優化算法[1]。該算法具有并行優化能力強,全局性優且不易落入局部極值的性能特征,逐漸引起了學術界和工程界的關注。
1.算法原理
飛蛾在夜間飛行時采用橫向定位的特殊導航機制。在這種機制中,飛蛾通過維持自身相對月亮的角度固定進行飛行,由于月亮距離飛蛾非常遙遠,飛蛾利用這種近似的平行光可以保持直線飛行。雖然這種導航機制對飛蛾非常有效,但實際中存在許多人工或自然點光源,這種光源與月亮相比距離飛蛾非常近,當飛蛾依然與光源保持固定的角度飛行時,就會導致導航失效并且產生致命的螺旋式飛行路徑。
在 MFO 算法中,假設飛蛾是求解問題的候選解,待求變量是飛蛾在空間的位置。因此,通過改變其自身的位置向量,飛蛾可以飛行在一維、二維、三維、甚至更高維度的空間。由于 MFO 算法本質上是一種群體智能優化算法,所以飛蛾種群在矩陣中可以表示如下:
其中:代表飛蛾的個數;
代表待求控制變量的個數(問題的維度)。對于這些飛蛾,同樣假設存在與之對應的一列適應度值向量,表示如下:
MFO 算法中要求每只飛蛾僅利用與之對應的唯一火焰更新其自身位置,從而避免算法陷入局部極值情況,大大增強了算法的全局搜索能力。因此,搜索空間中飛蛾位置與火焰位置是相同維度的變量矩陣:
在迭代過程中,2 個矩陣中變量的更新策略有所不同。飛蛾實際上是在搜索空間內移動的搜索個體,而火焰則是目前為止所對應的飛蛾能夠達到的最優位置。每一只飛蛾個體環繞在一個火焰的周圍,一旦搜索到更好的解,便更新為下一代中火焰的位置。
為了對飛蛾撲火的飛行行為進行數學建模,每只飛蛾相對火焰的位置更新機制可采用方程表示 :
其中:表示第 i 只飛蛾;
表示第
個火焰;
表示螺旋函數。該函數滿足以下條件:
1)螺旋函數的初始點應從飛蛾開始;
2)螺旋的終點為火焰的位置;
3)螺旋的波動范圍不應超過其搜索空間。
其中:表示第 i 只飛蛾與第
個火焰之間的距離;
為所定義的對數螺旋形狀常數,路徑系數
為[-1,1]中的隨機數。
的表達式如下:
其中:代表第
只飛蛾;
代表第
個火焰;
表示第
只飛蛾與第
個火焰的距離。
式(6)模擬了飛蛾螺旋飛行的路徑,可以看出,飛蛾更新的下一個位置由其圍繞的火焰確定。如 圖 1 所示,螺旋函數中系數
1)通過修改參數 ,一只飛蛾可以收斂到火焰的任意的鄰域范圍內。
2) 越小,飛蛾距離火焰越近。
3)隨著飛蛾越來越接近火焰,其在火焰周圍更新的頻率越來越快。
上述的火焰位置更新機制能夠保證飛蛾在火焰周圍的局部開發能力。為了提高找到更優解的概率,將當前找到的最優解作為下一代火焰的位置。因此,火焰位置矩陣
若
其中:
2.算法流程
1)MFO 算法初始化,設置輸入最優潮流控制變量維度 d,飛蛾種群搜索規模 n,最大迭代次數 T以及對數螺旋形狀常數 b 等參數。
2)待求變量初始化,在搜索空間中隨機生成飛蛾位置,并評估每只飛蛾對應的適應度值。
3)將飛蛾空間位置以適應度值遞增的順序排序后賦值給火焰,作為第一代中火焰的空間位置。
4)采用式(5)更新當前代飛蛾的位置。
5)將更新后的飛蛾位置與火焰位置的適應度值重新排序,選取適應度值更優的空間位置更新為下一代火焰的位置。
6)以式(8)自適應機制減少火焰的數量。
7)返回步驟 6)進入下一代,直至迭代次數滿足算法要求。
10)輸出并顯示優化結果,程序結束。
3.算法結果
4.參考文獻
[1]Seyedali Mirjalili. Moth-flame optimization algorithm: A novel nature-inspired heuristic paradigm[J]. Knowledge-Based Systems,2015,89.
[2]王子琪,陳金富,張國芳,楊琪,代宇涵.基于飛蛾撲火優化算法的電力系統最優潮流計算[J].電網技術,2017,41(11):3641-3647.
5.MATLAB代碼
https://mianbaoduo.com/o/bread/Z5iZl50=
文獻復現:基于Levy飛行的飛蛾撲火優化算法(LMFO)
[1]李志明,莫愿斌.基于Lévy飛行的飛蛾撲火優化算法[J].計算機工程與設計,2017,38(03):807-813.
文獻復現:基于交叉算子和非均勻變異算子的飛蛾撲火優化算法(CNMFO)
[1]張保東,張亞楠,郭黎明,江進禮,趙嚴振.基于交叉算子和非均勻變異算子的飛蛾撲火優化算法[J].計算機與數字工程,2020,48(11):2622-2627.
文獻復現:結合重心反向變異的飛蛾撲火優化算法(IMFO)
[1]宋婷婷,張琳娜.結合重心反向變異的飛蛾撲火優化算法[J].智能計算機與應用,2020,10(12):104-107+115.