李志明+莫愿斌+張森
摘要 飛蛾撲火優(yōu)化(MFO)算法是一種新穎的群智能優(yōu)化算法,該算法的主要靈感來源于飛蛾在自然界中被稱為橫向定位的飛行方式。作為一種新提出的仿生群智能優(yōu)化算法,分析了飛蛾撲火優(yōu)化算法的生物學(xué)原理,對(duì)算法的實(shí)現(xiàn)過程建立了數(shù)學(xué)模型。通過典型的函數(shù)優(yōu)化對(duì)算法進(jìn)行了仿真測(cè)試,結(jié)果顯示飛蛾撲火優(yōu)化算法是可行性的、有效的。最后,對(duì)將來的工作做進(jìn)一步的展望。
關(guān)鍵詞 最優(yōu)化;橫向定位;飛蛾撲火優(yōu)化;函數(shù)優(yōu)化
中圖分類號(hào):TP301 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)31-0172-05
Abstract: The Moth-flame Optimization (MFO) algorithm is a novel swarm intelligence optimization algorithm. The main inspiration of this algorithm is the navigation method of moths in nature called transverse orientation. As a novel bionic swarm intelligence optimization algorithm, this paper analyzed the bionic principle of moth-flame optimization algorithm and built mathematical modelling for the process of the realization. By means of 10 typical benchmark functions are tested, the results demonstrate that MFO is effecitive and feasible. Finally, the future prospects for further work.
Key words: Optimization; Transverse orientation; Moth-flame optimization; Function optimization
優(yōu)化是工程數(shù)學(xué)問題,優(yōu)化過程就是對(duì)特定問題找到最優(yōu)解決方案的過程。優(yōu)化方法大致可以分為確定性優(yōu)化和隨機(jī)優(yōu)化兩大類。確定性優(yōu)化研究雖相對(duì)成熟,卻具有對(duì)工程應(yīng)用條件較為苛刻等缺點(diǎn)。正因如此,隨機(jī)優(yōu)化方法得到了迅速發(fā)展。其中,群智能優(yōu)化算法便屬于隨機(jī)優(yōu)化方法的范疇。群智能算法一般來源于對(duì)自然界中一些生物群體行為的模仿,具有操作簡(jiǎn)單,易于并行處理,魯棒性強(qiáng)等特點(diǎn),已發(fā)展成為優(yōu)化問題中的研究熱點(diǎn)。比較典型的群智能算法有粒子群優(yōu)化算法(Particle Swarm Optimization, PSO)[1]、螢火蟲算法(Firefly Algorithm, FA)[2,3]、蝙蝠算法(Bat Algorithm, BA)[4]、布谷鳥優(yōu)化算法(Cuckoo OpAtimization algorithm, COA)[5]、人工蜂群算法(Artificial Bee Colony algorithm, ABC)[6]、灰狼優(yōu)化算法(Grey Wolf Optimizer, GWO)[7]等。這些算法將待優(yōu)化問題的可能解看做解空間,具有不受搜索空間連續(xù)或可微的限制等諸多優(yōu)點(diǎn),因此,群智能算法已在模式識(shí)別[8]、路徑規(guī)劃[9]、組合優(yōu)化[10]等諸多領(lǐng)域得到了較為廣泛的應(yīng)用。
在自然界具有很多巧妙的運(yùn)行機(jī)制,其蘊(yùn)含的智慧寶庫(kù),為人類解決復(fù)雜的問題提供了充足的靈感。飛蛾撲火優(yōu)化(Moth-flame optimization, MFO)[11] 算法是由澳大利亞格里菲斯大學(xué)Mirjalili提出的一種新型的群智能優(yōu)化算法,其靈感來源于在夜間飛蛾的一種稱為橫向定位的導(dǎo)航方式。本文分析了飛蛾撲火算法的仿生原理,并通過10個(gè)典型函數(shù)優(yōu)化的測(cè)試,對(duì)該算法的可行性和有效性進(jìn)行驗(yàn)證。
1 飛蛾撲火優(yōu)化算法
1.1 仿生原理
飛蛾是非常類似于蝴蝶家族的昆蟲,在自然界中像這樣的昆蟲有160000種之多。比較有趣的是飛蛾在夜里特殊的導(dǎo)航方式——利用月光來飛行。它們利用一個(gè)叫做橫向定位的機(jī)制來進(jìn)行導(dǎo)航飛行。在這種導(dǎo)航方式中,飛蛾相對(duì)于月亮保持一個(gè)固定的角度來飛行。這種方式在直線軌道上長(zhǎng)距離的飛行是一個(gè)非常有效的機(jī)制。由于月亮距飛蛾較遠(yuǎn),所以這種機(jī)制能確保其沿直線飛行。
在現(xiàn)實(shí)世界里,我們時(shí)??吹斤w蛾圍繞著人造光做螺旋形飛行,這是因?yàn)楫?dāng)飛蛾遇到一束人造光時(shí),它們?cè)噲D與人造光維持一個(gè)同樣的角度沿直線飛行。而由于這樣一束人造光與飛蛾之間距離較近,所以,與這樣一束光維持一個(gè)相同的角度便導(dǎo)致了飛蛾做無(wú)用的螺旋飛行。飛蛾被人造光誤導(dǎo)而表現(xiàn)出這樣的行為說明了橫向定位的低效性。橫向定位的低效性決定了僅當(dāng)光源非常遠(yuǎn)的時(shí)候進(jìn)行直線飛行時(shí)才是可行的。
1.2 MFO算法
在MFO算法中,假設(shè)飛蛾是候選解,矩陣表示飛蛾的集合,數(shù)組用于存儲(chǔ)相應(yīng)的適應(yīng)度值。該算法的另外一個(gè)核心組件是火焰,火焰矩陣用表示,且數(shù)組和的維數(shù)相等,數(shù)組用來存儲(chǔ)相應(yīng)的適應(yīng)度值。在這里,飛蛾和火焰都是解。它們之間不同之處就是在每一次迭代過程中對(duì)待和更新它們的方式不同。飛蛾是在搜索空間里移動(dòng)的實(shí)際搜索主體,而火焰是飛蛾到目前為止獲取的最佳位置。因此,倘若找到一個(gè)更好的解,每只飛蛾便在標(biāo)記附近搜索并更新它。通過此機(jī)制,飛蛾永遠(yuǎn)不會(huì)錯(cuò)過它的最優(yōu)解。
2 仿真實(shí)驗(yàn)
2.1 實(shí)驗(yàn)環(huán)境與參數(shù)設(shè)置
為了驗(yàn)證飛蛾撲火算法的有效性與可行性,文中采用10個(gè)基準(zhǔn)測(cè)試函數(shù)來驗(yàn)證其性能。在此次仿真實(shí)驗(yàn)中,仿真環(huán)境為Win 7操作系統(tǒng)、Intel處理器3.70 GHz、4G內(nèi)存、仿真軟件Matlab 2012a。除飛蛾撲火優(yōu)化(MFO) [11]算法外,實(shí)驗(yàn)中還用到了蝙蝠算法(BA)[4]、粒子群-引力搜索算法(PSOGSA)[12]。其中算法中參數(shù)作如下設(shè)置:種群規(guī)模為30個(gè)個(gè)體,最大迭代次數(shù)為500次,函數(shù)維數(shù)設(shè)置為20維,最后采用獨(dú)立運(yùn)行20次最優(yōu)值的平均值作為測(cè)試結(jié)果。
2.2 測(cè)試函數(shù)
從表1可以看出,在單峰函數(shù)方面,對(duì)于函數(shù),PSOGSA的最優(yōu)值精度達(dá)到了,其求解精度分別比MFO和BA高出14和23個(gè)數(shù)量級(jí);在平均值方面,MFO的平均求解精度為,分別比PSOGSA和BA高出5和7個(gè)數(shù)量級(jí)。對(duì)于函數(shù),PSOGSA的最優(yōu)值精度達(dá)到了,其求解精度分別比MFO和BA高出5和10個(gè)數(shù)量級(jí);在平均值方面,MFO與PSOGSA的平均求解精度均為,但要稍優(yōu)于PSOGSA,且兩者均比BA提高了2個(gè)數(shù)量級(jí)。對(duì)于函數(shù),MFO的最優(yōu)值精度達(dá)到了,雖在其求解精度和平均值方面與PSOGSA相差不大,但總體還是優(yōu)于PSOGSA的,且在最優(yōu)值求解精度和平均值方面分別比BA提高了3個(gè)和1個(gè)數(shù)量級(jí)。對(duì)于函數(shù),PSOGSA的最優(yōu)值精度達(dá)到了,其求解精度與MFO和BA相差不大;在平均值方面,MFO的平均求解精度為,比PSOGSA和BA分別高出1和2個(gè)數(shù)量級(jí)。對(duì)于函數(shù),PSOGSA的最優(yōu)值精度達(dá)到了,其求解精度比MFO和BA分別高出14和22個(gè)數(shù)量級(jí);在平均值方面,MFO的平均求解精度為,比PSOGSA和BA分別高出5和7個(gè)數(shù)量級(jí)。
多峰函數(shù)方面,對(duì)于函數(shù),BA、PSOGSA、MFO的最優(yōu)值精度均達(dá)到了,平均值方面亦相差不大,但總體而言MFO還是優(yōu)于BA和PSOGSA的。對(duì)于函數(shù),MFO的最優(yōu)值精度達(dá)到了,其求解精度比PSOGSA和BA分別高出3和4個(gè)數(shù)量級(jí);在平均值方面,MFO的平均求解精度為,比PSOGSA和BA均高出1個(gè)數(shù)量級(jí)。對(duì)于函數(shù) ,MFO與PSOGSA的最優(yōu)值精度均達(dá)到了,但還是要優(yōu)于PSOGSA的;在平均值方面,MFO的平均求解精度為,比PSOGSA和BA分別高出2和4個(gè)數(shù)量級(jí)。對(duì)于函數(shù),MFO的最優(yōu)值精度達(dá)到了,其求解精度比PSOGSA和BA分別高出2和6個(gè)數(shù)量級(jí);在平均值方面,MFO的平均求解精度為,比PSOGSA和BA分別高出1和6個(gè)數(shù)量級(jí)。對(duì)于函數(shù),MFO的最優(yōu)值精度達(dá)到了,其求解精度比PSOGSA和BA分別高出4和9個(gè)數(shù)量級(jí);在平均值方面,MFO的平均求解精度為,比PSOGSA和BA分別高出3和8個(gè)數(shù)量級(jí)。
在單峰函數(shù)方面,PSOGSA最優(yōu)值求解精度是優(yōu)于MFO和BA的,而在多峰函數(shù)方面,MFO是優(yōu)于PSOGSA與BA的;而在平均值方面,無(wú)論是單峰函數(shù)還是多峰函數(shù),MFO的平均求解精度均是優(yōu)于PSOGSA和BA的。
圖1-10為BA、PSOGSA、MFO在求解函數(shù)平均最優(yōu)值時(shí)函數(shù)隨迭代次數(shù)變化的曲線圖。
從以上10幅圖可以看到迭代結(jié)束時(shí)MFO是優(yōu)于PSOGSA與BA的。從圖1,3,5,8,9,10可以看出 當(dāng)PSOGSA與BA接近收斂到一個(gè)值時(shí),MFO還有繼續(xù)尋優(yōu)的可能。通過以上各函數(shù)優(yōu)化的結(jié)果可以看出,該算法是可行的、有效的。
3 結(jié)束語(yǔ)
針對(duì)一種新穎的群智能算法——飛蛾撲火優(yōu)化算法(MFO)進(jìn)行了分析。該算法模擬了自然界中飛蛾向人造光源移動(dòng)的生物特性,利用進(jìn)化的方式來實(shí)現(xiàn)智能體的行為以達(dá)到尋優(yōu)的目的。通過函數(shù)優(yōu)化的結(jié)果可以看出,算法是可行的、有效的,且具有良好的應(yīng)用前景。另外,飛蛾撲火優(yōu)化算法在求解一些復(fù)雜函數(shù)時(shí)的收斂率與求解精度存在不足,還需進(jìn)一步研究;而且,二進(jìn)制版本的飛蛾撲火優(yōu)化算法是一個(gè)值得研究的工作。
參考文獻(xiàn):
[1] 趙玉新, (英)楊新社, 劉利強(qiáng). 新興元啟發(fā)式優(yōu)化方法[M]. 科學(xué)出版社, 2013:81-147.
[2] Yang X S. Multi-objective Firefly Algorithm for Continuous Optimization [J]. Engineering with Computers, 2013, 29(2):175-184.
[3] 劉長(zhǎng)平,葉春明. 一種新穎的仿生群智能優(yōu)化算法:螢火蟲算法[J]. 計(jì)算機(jī)應(yīng)用研究,2011,28(9):3295-3297.
[4] Yang X S, A new metaheuristic bat-inspired algorithm, in: Nature Inspired Cooperative Strategies for Optimization [J] Springer, 2010, pp. 65–74.
[5] Rajabioun R, Cuckoo optimization algorithm. Applied Soft Computing [J]. 2011:5508–18.
[6] Karaboga D, Basturk B, A powerful and efficient algorithm for numerical function optimization: artificial bee colony algorithm [J]. J Global Optim 39: 2010: 459–71.
[7] Zhang S, Zhou Y Q. Grey Wolf Optimizer Based on Powell Local Optimization Method for Clustering Analysis[J]. Discrete Dynamics in Nature and Society, 2015: 1-17.
[8] Nezhinsky A E, Verbeek F J. Pattern Recognition for High Throughput Zebrafish Imaging Using Genetic Algorithm Optimization[C]// Iapr International Conference on Pattern Recognition in Bioinformatics. Springer-Verlag, 2010:301-312.
[9] 陳衛(wèi)東, 朱奇光. 基于模糊算法的移動(dòng)機(jī)器人路徑規(guī)劃[J]. 電子學(xué)報(bào), 2011, 39(4):971-974.
[10] 夏亞梅, 程渤, 陳俊亮,等. 基于改進(jìn)蟻群算法的服務(wù)組合優(yōu)化[J]. 計(jì)算機(jī)學(xué)報(bào), 2012, 35(2):270-281.
[11] S. Mirjalili, Moth-flame optimization algorithm: A novel nature-inspired heuristic paradigm [J]. Knowledge-Based Systems, 2015, 228–249.
[12] Mirjalili S, Hashim SZM .A new hybrid PSOGSA algorithm for function optimization. In Computer and information application (ICCIA), international conference on. IEEE, 2010: 374-377.