智能優(yōu)化算法:螢火蟲算法-附代碼
@[toc]
摘要:螢火蟲算法(Fire-fly algorithm废境,F(xiàn)A)由劍橋大學(xué) Yang 于 2009 年提出 , 作為最新的群智能優(yōu)化算法之一 , 該算法具有更好的收斂速度和收斂精度 , 且易于工程實(shí)現(xiàn)等優(yōu)點(diǎn)沫勿。
1.算法原理
在FA 中 , 螢火蟲發(fā)出光亮的主要目的是作為一個(gè)信號(hào)系統(tǒng) , 以吸引其他的螢火蟲個(gè)體 , 其假設(shè)為 : 1) 螢火蟲不分性別 , 它將會(huì)被吸引到所有其他比它更亮的螢火蟲那去 ; 2) 螢火蟲的吸引力和亮度成正比 , 對(duì)
于任何兩只螢火蟲 , 其中一只會(huì)向著比它更亮的另一只移動(dòng) , 然而 , 亮度是隨著距離的增加而減少的 ;3) 如果沒有找到一個(gè)比給定的螢火蟲更亮 , 它會(huì)隨機(jī)移動(dòng) 。
如上所述 , 螢火蟲算法包含兩個(gè)要素 , 即亮度和吸引度 . 亮度體現(xiàn)了螢火蟲所處位置的優(yōu)劣并決定其移動(dòng)方向 , 吸引度決定了螢火蟲移動(dòng)的距離 , 通過亮度和吸引度的不斷更新 , 從而實(shí)現(xiàn)目標(biāo)優(yōu)化 . 從數(shù)學(xué)角度對(duì)螢火蟲算法的主要參數(shù)進(jìn)行如下描述 :
螢火蟲的相對(duì)熒光亮度為:
其中 ,為螢火蟲的最大螢光亮度 , 與目標(biāo)函數(shù)值相關(guān) , 目標(biāo)函數(shù)值越優(yōu)自身亮度越高 ; 為光強(qiáng)吸收系數(shù) , 熒光會(huì)隨著距離的增加和傳播媒介的吸收逐漸減弱 ; 為螢火蟲 與 之間的空間距離 叉橱。螢火蟲的吸引度為
其中 , 為最大吸引度 ; 為光強(qiáng)吸收系數(shù) ; 為螢火蟲 與 之間的空間距離。螢火蟲 i 被吸引向螢火蟲 j 移動(dòng)的位置更新公式如式 (3) 所示 :
其中 , 為螢火蟲 和 所處的空間位置 ; 為步長因子 ; 為 [0,1] 上服從均勻分布的隨機(jī)數(shù) 痴颊。
算法步驟如下:
(1) 初始化螢火蟲算法參數(shù).
(2) 計(jì)算各螢火蟲的亮度并排序得到亮度最大的螢火蟲位置.
(3)判斷迭代是否結(jié)束:判斷是否達(dá)到最大迭代次數(shù) T 赏迟,達(dá)到則轉(zhuǎn)(4),否則轉(zhuǎn)(5).
(4) 輸出亮度最大的螢火蟲位置及其亮度.
(5) 更新螢火蟲位置:根據(jù)式(3)更新螢火蟲的位置蠢棱,對(duì)處在最佳位置的螢火蟲進(jìn)行隨機(jī)擾動(dòng)锌杀,搜索次數(shù)增加1 ,轉(zhuǎn)(2)泻仙,進(jìn)行下一次搜索.
2.算法結(jié)果
3.參考文獻(xiàn)
[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. 螢火蟲算法智能優(yōu)化粒子濾波[J]. 自動(dòng)化學(xué)報(bào), 2016, 42(001):89-97.