《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 螢火蟲算法研究綜述
螢火蟲算法研究綜述
2015年微型機與應(yīng)用第8期
王沈娟1,高曉智1,2
(1.上海海事大學(xué) 信息工程學(xué)院,上海 201306;2.阿爾托大學(xué) 自動化與系統(tǒng)技術(shù)系,赫爾辛基 FI-00076)
摘要: 作為一種新興的群智能優(yōu)化方法,螢火蟲算法具有簡單易懂、參數(shù)少和易實現(xiàn)等優(yōu)點,已經(jīng)在諸多領(lǐng)域取得了較好的應(yīng)用。為了使該算法能夠更有效地解決不同的優(yōu)化問題,需要對標準螢火蟲算法進行改進或混合其他算法。介紹了螢火蟲算法的原理及其應(yīng)用領(lǐng)域,重點分析了算法的改進策略,并提出了算法進一步研究的方向。
Abstract:
Key words :

  摘  要: 作為一種新興的群智能優(yōu)化方法,螢火蟲算法具有簡單易懂、參數(shù)少和易實現(xiàn)等優(yōu)點,已經(jīng)在諸多領(lǐng)域取得了較好的應(yīng)用。為了使該算法能夠更有效地解決不同的優(yōu)化問題,需要對標準螢火蟲算法進行改進或混合其他算法。介紹了螢火蟲算法的原理及其應(yīng)用領(lǐng)域,重點分析了算法的改進策略,并提出了算法進一步研究的方向。
  關(guān)鍵詞: 群智能;螢火蟲算法;混合算法;優(yōu)化
0 引言
  群智能是一種通過簡單個體的行為,以某種形式聚集協(xié)同,使群體在沒有集中控制的情況下所表現(xiàn)出的智能行為[1]。群智能優(yōu)化算法是一種對自然界中生物的群體行為的模擬,并用數(shù)學(xué)形式表達出來的方法。典型的群智能優(yōu)化算法有兩個,即蟻群優(yōu)化算法(Ant Colony Optimization,ACO)和粒子群優(yōu)化算法(Particle Swarm Optimization,PSO)。
  劍橋?qū)W者Yang Xinshe根據(jù)螢火蟲個體的發(fā)光特性和相互吸引的行為,于2008年提出了螢火蟲算法(Firefly Algorithm,F(xiàn)A)[2]。FA是繼PSO和ACO之后,又一新穎的群智能啟發(fā)式優(yōu)化算法,具有概念簡單、需要調(diào)整的參數(shù)少、易于應(yīng)用和實現(xiàn)等優(yōu)點。螢火蟲算法是一種高效的優(yōu)化算法,已成為眾多學(xué)者研究的熱點,在諸多領(lǐng)域得到了較好的應(yīng)用。但標準螢火蟲算法無法有效解決不同的優(yōu)化問題,因此需要對其進行改進研究。
1 標準螢火蟲算法
  螢火蟲算法是基于以下三個理想化的特征提出的:(1)螢火蟲不分性別,即螢火蟲之間的相互吸引只考慮個體發(fā)光的亮度;(2)吸引力與發(fā)光亮度成正比,與個體之間的距離成反比;(3)螢火蟲的亮度由待優(yōu)化的目標函數(shù)值決定,即Ii=f(xi)。
  FA的關(guān)鍵思想是亮度小的螢火蟲被亮度大的螢火蟲吸引而向其移動,并更新自身的位置。螢火蟲的發(fā)光亮度取決于自身所處位置的目標值,亮度越高所表示的目標值越好,吸引其他螢火蟲的能力也越強。若相鄰的個體亮度相同,螢火蟲則隨機移動。為了方便算法模型的建立,給出如下定義[2]:
  定義1 亮度

1.png

       其中,I0為初始光強度,即在光源(r=0)處的光強度。
  定義2 吸引力
2.png

  其中,m值通常取2;RLFWZATWRB6[B(Y[2H]XM8U.jpg為最大吸引力,即光源(r=0)處的吸引力,對于大多數(shù)的應(yīng)用問題,RLFWZATWRB6[B(Y[2H]XM8U.jpg可取為1;參數(shù)TN5CM91]EU0Y])MPH`60~XH.png是空氣對光的吸收率,影響吸引力的變化,TN5CM91]EU0Y])MPH`60~XH.png值的選取對算法性能有很大的影響,理論上TN5CM91]EU0Y])MPH`60~XH.png∈[0,∞),但在實際應(yīng)用中,常取TN5CM91]EU0Y])MPH`60~XH.png∈[0.1,10]。rij為螢火蟲i到j(luò)的笛卡爾距離,表達式為:
3.png

  參考文獻[2]指出,在實際應(yīng)用中,吸引力函數(shù){33$RYKN{IEIBW8@AN93C[L.jpg可以是任何一種單調(diào)遞減函數(shù),例如:
4.png

  定義3 位置更新公式
  螢火蟲j被螢火蟲i吸引而向i移動更新自己的位置:
5.png

  其中,t為算法迭代次數(shù);xi、xj為螢火蟲和j所處的位置;IAE(}~CR3NU38SHL@E38(JP.png為隨機步長,一般取值范圍為[0,1];εj通常是由高斯分布、均勻分布或其他分布生成的隨機數(shù)向量。標準螢火蟲算法需要執(zhí)行算法初始化、螢火蟲位置更新、螢火蟲亮度更新、解的評估等操作,算法流程如圖1所示。

Image 001.png

2 螢火蟲算法的研究與改進
  FA的提出吸引了很多學(xué)者對其進行研究。Yang Xinshe用FA優(yōu)化帶有奇點的測試函數(shù),結(jié)果顯示FA能有效解決這類優(yōu)化問題[3],并將FA成功應(yīng)用到壓力管道設(shè)計優(yōu)化問題中。但是,標準FA中的參數(shù)都是事先設(shè)定的,會導(dǎo)致算法收斂早熟,或因參數(shù)設(shè)置不當而導(dǎo)致算法無法收斂。為了使算法具有較好的優(yōu)化性能,需要對標準FA進行改進。
  Yang Xinshe首先把Levy Flight引入到式(5)的隨機部分,構(gòu)建了具有Levy Flight的螢火蟲算法(Levy-Flight Firefly Algorithm,LFA)[4]。分別用LFA和遺傳算法(Genetic Algorithm,GA)優(yōu)化標準測試函數(shù),結(jié)果顯示LFA能更高效、準確地搜索全局最優(yōu)值。FATEEN S E K等人提出智能螢火蟲算法(Intelligent Firefly Algorithm,IFA)[5],該算法將螢火蟲按亮度排列后,確定適應(yīng)度較好的個體的比例I7U5H{5YKIV6Z0_(GG{3AQ5.jpg及頂部螢火蟲數(shù)量A(_IBSY{IL])EZCVA@T61DH.pngPA6__DVDEU6{4CG{W(AFD)8.jpg,每次迭代螢火蟲都向頂部螢火蟲移動并更新位置。實驗證明IFA能高效解決全局優(yōu)化問題,避免算法收斂早熟。此外,學(xué)者們還提出了各自不同的改進方法。
  2.1 基于自適應(yīng)策略的FA
  FARAHANI S M等人[6]采用自適應(yīng)步長改進了FA的隨機部分,給隨機步長定義一個依賴于迭代次數(shù)的系數(shù),迭代初期采用較大的步長,搜索較大的區(qū)域,迭代后期減小步長,使算法快速收斂于全局最優(yōu)點。同時還提出了螢火蟲的定向移動,即在沒有局部更亮的個體時,螢火蟲向全局最優(yōu)點移動。這種改進提高了算法精度,也減少了螢火蟲的無效運動。實驗結(jié)果表明,改進算法的優(yōu)化效果優(yōu)于標準FA。
  FA對寬搜索區(qū)域和高維度優(yōu)化問題存在吸引力很弱難以影響位置更新的現(xiàn)象。據(jù)此,董靜提出根據(jù)rij調(diào)節(jié)隨機參數(shù)的方法,用2rij(rand-1/2)取代式(5)中的隨機部分@G7RCZ_62[L8ZTW@83I$WYQ.jpg。隨機步長隨rij變化,當rij較大時,吸引力則較小,螢火蟲本身在[-rij,rij]范圍內(nèi)自由移動,加強了算法的探索能力;當rij較小時,算法進行局部尋優(yōu),此時吸引力對位置更新占主導(dǎo)作用。這種改進提高了算法的尋優(yōu)精度和收斂速度。Yan Xiaohui等人則提出壓縮距離的方法[8]。式(2)中,令m∈(0,1),此時若rij值很大,則rijm的值就會相應(yīng)變小,保證在合理范圍之內(nèi)。其中XE$YKD`AO(GG3B(0M([L5C8.jpg,k是常數(shù),通常取O(1),D代表維度,R代表搜索范圍,對于不同的優(yōu)化問題,m值各不相同。改進后的FA在解決高維優(yōu)化問題時,效果明顯優(yōu)于標準FA、PSO和差分進化算法(Differential Evolution,DE)。
  Yu Shuhao等人提出了根據(jù)每只螢火蟲的歷史信息和當前位置信息來確定隨機步長的策略[9],使靠近最優(yōu)解的個體具有較小的步長,而遠離最優(yōu)解的個體具有大一些的步長,從而更新螢火蟲的位置。因此,每只螢火蟲下一次迭代的步長都是自適應(yīng)的,且由當前最優(yōu)值與群體最優(yōu)值之間的差異決定。這種改進方法能避免算法收斂早熟,提高了螢火蟲算法的準確度。
  2.2 基于參數(shù)調(diào)節(jié)的FA
  dos Santos Coelho L在標準FA中引入混沌思想,用混沌序列調(diào)節(jié)參數(shù)[~5YL7{G~HAH0J}0OO7}KR9.png,避免算法陷入局部最優(yōu),并用該算法優(yōu)化可靠性冗余分配問題,取得了更好的結(jié)果。FARAHANI S M等人在標準FA中引入自動學(xué)習(xí)機調(diào)節(jié)參數(shù)],使得算法能夠根據(jù)環(huán)境隨時調(diào)整參數(shù)值。實驗結(jié)果表明,改進后的FA在優(yōu)化性能上有很大提升?;趨?shù)調(diào)節(jié)的FA在解決動態(tài)優(yōu)化問題方面取得了比PSO更好的結(jié)果。
  2.3 混合螢火蟲算法
  FARAHANI S M等人將GA混合到FA中來提高螢火蟲算法的全局搜索能力[11]?;旌纤惴▽⒎N群分為兩個子群,分別執(zhí)行FA和GA操作,在每次迭代的最后,兩個子群相互交換并進入下一次迭代,同時采用高斯隨機步長使螢火蟲在搜索空間移動,克服了標準FA中隨機步長固定不變的缺點。GA的引入使FA的勘探和開采能力得到平衡,該改進算法具有優(yōu)于標準FA和PSO的優(yōu)化能力。
  ABDULLAH A等人將DE算法融入標準FA中[12]。該混合算法將螢火蟲個體按適應(yīng)度值分為兩個子群,第一個子群中包含適應(yīng)度較好的個體,執(zhí)行標準FA操作;第二個子群中則包含適應(yīng)度不好的個體,執(zhí)行DE算法的交叉、變異、選擇操作,最后從兩個子群中選取最優(yōu)解。該混合算法增加了螢火蟲之間的信息共享,避免算法陷入局部最優(yōu),提高了算法搜索效率。
  Guo Lihong等人融合了標準FA與和聲搜索(Harmony Search,HS)算法[13],將HS的勘探能力與標準FA的開采能力相結(jié)合,HS的引入可以看作是變異操作,保證了種群的多樣性,使得算法具有更好的尋優(yōu)性能。同時,還采用了頂部螢火蟲方案,降低了算法復(fù)雜度。經(jīng)實驗驗證,混合HS的螢火蟲算法比其他優(yōu)化算法能更好地利用有用信息來發(fā)現(xiàn)最優(yōu)解。
  2.4 其他形式的FA
  SAYADI M等人提出用于解決離散優(yōu)化問題的離散螢火蟲算法(Discrete Firefly Algorithm,DFA)[14],并用其成功解決了置換流水車間調(diào)度中最小化完工時間問題,其處理結(jié)果比ACO得到的結(jié)果更優(yōu),實驗結(jié)果顯示DFA能很好地優(yōu)化不同規(guī)模的調(diào)度問題。
  FARAHANI S M針對動態(tài)優(yōu)化問題提出了一種基于多群體的螢火蟲算法[15]。該算法將螢火蟲種群分為一系列相互影響的子群體,由排斥因子和抗收斂因子分別控制進行局部尋優(yōu)和全局尋優(yōu),這樣可以保證每個子群的群體多樣性,有效避免算法陷入局部最優(yōu)。用多群螢火蟲算法處理動態(tài)優(yōu)化問題,其能力優(yōu)于PSO。
  Yang Xinshe提出了多目標螢火蟲算法[16](Multiobjective Firefly Algorithm,MOFA),該算法根據(jù)Pareto支配關(guān)系確定螢火蟲的亮度大小,在迭代過程中求得Pareto最優(yōu)解。用MOFA處理焊接梁工程優(yōu)化問題,優(yōu)化結(jié)果表明,MOFA是一種有效的優(yōu)化器。董靜也提到了MOFA,用外部檔案保存Pareto解,并用自適應(yīng)網(wǎng)格法維護外部檔案[7]。此方法為多目標螢火蟲優(yōu)化提供了方向。
3 螢火蟲算法的應(yīng)用
  螢火蟲算法主要應(yīng)用于優(yōu)化、工程應(yīng)用及分類問題。優(yōu)化問題又分連續(xù)優(yōu)化、組合優(yōu)化、約束優(yōu)化、多目標優(yōu)化及動態(tài)或含噪聲優(yōu)化。MAUDER T等人用FA解決連鑄工藝優(yōu)化問題[17],在滿足約束條件的情況下,得到了滿意的結(jié)果;FISTER Jr I等人用混合局部搜索的FA解決圖三著色問題,并取得較好的結(jié)果[18],該結(jié)果顯示了FA在解決其他組合優(yōu)化問題方面的潛力。SENTHILNATH J等人用螢火蟲算法解決聚類問題[19],并得出FA是處理聚類的有效方法。作為一種優(yōu)化工具,F(xiàn)A及其改進算法還成功地應(yīng)用于圖像處理、路徑規(guī)劃、天線設(shè)計等領(lǐng)域,均取得了較好的結(jié)果。隨著螢火蟲算法的不斷完善,其應(yīng)用領(lǐng)域也將會不斷擴大。
4 結(jié)論
  FA是一種高效的啟發(fā)式優(yōu)化算法,但仍有許多方面需要進一步研究。參數(shù)的設(shè)置會影響FA的性能,很多文獻都提出了有效的改進方法,對參數(shù)進行選擇和控制,提高了算法的優(yōu)化能力。尋找高效的參數(shù)控制方法,是FA研究的一個重要方向。混合螢火蟲算法能在一定程度上克服FA自身的缺點,大大提高算法的性能。目前FA已與GA、DE、HS等算法融合,尋找能夠有效結(jié)合的混合算法也是研究熱點之一。在應(yīng)用方面,F(xiàn)A及其改進算法已廣泛應(yīng)用到諸多領(lǐng)域,但在分類與識別問題方面的應(yīng)用偏少。將FA與機器學(xué)習(xí)結(jié)合應(yīng)用也是很有意義的。此外,如何用FA更好地解決動態(tài)優(yōu)化問題也是值得研究的。最后,F(xiàn)A的數(shù)學(xué)理論尚不完善,算法的復(fù)雜度和收斂性分析仍然具有研究性。
  參考文獻
  [1] CHRISTIAN B, DANIEL M(Eds).群智能[M].龍飛,譯,北京:國防工業(yè)出版社,2011.
  [2] Yang Xinshe. Nature-inspired metaheuristic algorithms[M]. Luniver press, 2010.
  [3] Yang Xinshe. Firefly algorithm, stochastic test functions and design optimisation[J]. International Journal of Bio-Inspired Computation, 2010,2(2):78-84.
  [4] Yang Xinshe. Firefly algorithm, Levy flights and global optimization[M]. Research and Development in Intelligent Systems XXVI, London: Springer, 2010.
  [5] FATEEN S E K, BONILLA-PETRICIOLET A. Intelligent firefly algorithm for global optimization[M]. Cuckoo Search and Firefly Algorithm, Springer International Publishing, 2014.
  [6] FARAHANI S M, ABSHOURI A A, NASIRI B, et al. An improved firefly algorithm with directed movement[C]. Proceedings of 4th IEEE International Conference on Computer Science and Information Technology, Chengdu, 2011: 248-251.
  [7] 董靜.螢火蟲算法研究及其在水下潛器路徑規(guī)劃中的應(yīng)用[D].哈爾濱:哈爾濱工程大學(xué),2013.
  [8] Yan Xiaohui, Zhu Yunlong, Wu Junwei, et al. An improved firefly algorithm with adaptive strategies[J]. Advanced Science Letters, 2012, 16(1): 249-254.
  [9] Yu Shuhao, Yang Shanlin, Su Shoubao. Self-adaptive step firefly algorithm[J]. Journal of Applied Mathematics, 2013.
  [10] dos Santos Coelho L, de Andrade Bernert D L, Mariani V C. A chaotic firefly algorithm applied to reliability-redundancy optimization[C]. 2011 IEEE Congress on Evolutionary Computation(CEC), IEEE, 2011: 517-521.
  [11] FARAHANI S M, ABSHOURI A A, NASIRI B, et al. Some hybrid models to improve firefly algorithm performance[J]. International Journal of Artificial Intelligence, 2012, 8(S12): 97-117.
  [12] ABDULLAH A, DERIS S, MOHAMAD M S, et al. A new hybrid firefly algorithm for complex and nonlinear problem[M]. Distributed Computing and Artificial Intelligence, Berlin Heidelberg Springer: 2012.
  [13] Guo Lihong, Wang Gaige, Wang Heqi, et al. An effective hybrid firefly algorithm with harmony search for global numerical optimization[J]. The Scientific World Journal,2013, Article ID 125625,9.
  [14] SAYADI M, RAMEZANIAN R, GHAFFARI-NASAB N. A discrete firefly meta-heuristic with local search for makespan minimization in permutation flow shop scheduling problems[J]. International Journal of Industrial Engineering Computations, 2010,1(1):1-10.
  [15] FARAHANI S M, NASIRI B, MEYBODI M R. A multiswarm based firefly algorithm in dynamic environments[C].Third International Conference on Signal Processing Systems(ICSPS2011), 2011,3:68-72.
  [16] Yang Xinshe. Multiobjective firefly algorithm for continuous optimization[J]. Engineering with Computers, 2013,29(2): 175-184.
  [17] MAUDER T, SANDERA C, STETINA J, et al. Optimization of the quality of continuously cast steel slabs using the firefly algorithm[J]. Materials and technology, 2011,45(4):347-350
  [18] FISTER Jr I, Yang Xinshe, FISTER I, et al. Memetic firefly algorithm for combinatorial optimization[J]. arXiv preprint arXiv:1204.5165, 2012.
  [19] SENTHILNATH J, OMKAR S N, MANI V. Clustering using firefly algorithm: Performance study[J]. Swarm and Evolutionary Computation, 2011,1(3):164-171.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。