智能優化算法:螢火蟲算法-附代碼
@[toc]
摘要:螢火蟲算法(Fire-fly algorithm,FA)由劍橋大學 Yang 于 2009 年提出 , 作為最新的群智能優化算法之一 , 該算法具有更好的收斂速度和收斂精度 , 且易于工程實現等優點。
1.算法原理
在FA 中 , 螢火蟲發出光亮的主要目的是作為一個信號系統 , 以吸引其他的螢火蟲個體 , 其假設為 : 1) 螢火蟲不分性別 , 它將會被吸引到所有其他比它更亮的螢火蟲那去 ; 2) 螢火蟲的吸引力和亮度成正比 , 對
于任何兩只螢火蟲 , 其中一只會向著比它更亮的另一只移動 , 然而 , 亮度是隨著距離的增加而減少的 ;3) 如果沒有找到一個比給定的螢火蟲更亮 , 它會隨機移動 。
如上所述 , 螢火蟲算法包含兩個要素 , 即亮度和吸引度 . 亮度體現了螢火蟲所處位置的優劣并決定其移動方向 , 吸引度決定了螢火蟲移動的距離 , 通過亮度和吸引度的不斷更新 , 從而實現目標優化 . 從數學角度對螢火蟲算法的主要參數進行如下描述 :
螢火蟲的相對熒光亮度為:
其中 ,為螢火蟲的最大螢光亮度 , 與目標函數值相關 , 目標函數值越優自身亮度越高 ;
為光強吸收系數 , 熒光會隨著距離的增加和傳播媒介的吸收逐漸減弱 ;
為螢火蟲
與
之間的空間距離 。
螢火蟲的吸引度為
其中 ,為最大吸引度 ;
為光強吸收系數 ;
為螢火蟲
與
之間的空間距離。
螢火蟲 i 被吸引向螢火蟲 j 移動的位置更新公式如式 (3) 所示 :
其中 ,為螢火蟲
和
所處的空間位置 ;
為步長因子 ;
為 [0,1] 上服從均勻分布的隨機數 。
算法步驟如下:
(1) 初始化螢火蟲算法參數.
(2) 計算各螢火蟲的亮度并排序得到亮度最大的螢火蟲位置.
(3)判斷迭代是否結束:判斷是否達到最大迭代次數 T ,達到則轉(4),否則轉(5).
(4) 輸出亮度最大的螢火蟲位置及其亮度.
(5) 更新螢火蟲位置:根據式(3)更新螢火蟲的位置,對處在最佳位置的螢火蟲進行隨機擾動,搜索次數增加1 ,轉(2),進行下一次搜索.
2.算法結果
3.參考文獻
[1] Yang X S, Deb S. Eagle strategy using l′ evy walk and firefly algorithms for stochastic optimization. Nature Inspired Cooperative Strategies for Optimization (NICSO 2010), Berlin Heidelberg: Springer, 2010. 101?111
[2] 田夢楚, 薄煜明, 陳志敏, et al. 螢火蟲算法智能優化粒子濾波[J]. 自動化學報, 2016, 42(001):89-97.