摘 要: 煙花算法是最近出現的一種優化算法,分析了算法中一個關鍵參數即爆炸半徑。分析表明,由最優煙花所產生的火花由于其爆炸半徑趨于0,所以在計算中幾乎是無用的,而且增加了計算代價。為此,給出了一個改進的爆炸半徑的算法,實驗表明,改進算法在收斂速度和精度方面都優于原始算法。
關鍵詞: 煙花算法; 爆炸半徑; 群體智能; 優化算法
中圖分類號:TP301.6 文獻標志碼:A 文章編號:1006-8228(2013)01-28-02
Study on improvement of explosion radius in fireworks algorithm
Du Zhenxin
(Hanshan Normal University, chaozhou, Guangdong 521041, China)
Abstract: Fireworks algorithm is a new optimization algorithm. The fireworks algorithm is analyzed and the shortage of the crucial parameter explosion radius is pointed out. The analysis manifests that because their explosion radius tends to zero, the sparks produced by the best firework are useless and the computing process is wasted. An improved explosion radius formula is proposed in the paper, and experimental results show that the improved algorithm's performance is better than the original one in convergence velocity and accuracy.
Key words: fireworks algorithm; explosion radius; swarm intelligence; optimization algorithm
0 引言
煙花算法是由Ying Tan和Yuanchun Zhu[1]在2010年提出的一種新的群體智能優化算法,具有卓越的優化性能,因此一經提出就引起了世界范圍內的廣泛關注[2-3]。本文分析了煙花算法中一個重要的爆炸半徑公式,指出最優煙花所產生的火花由于爆炸半徑趨向于0,對算法搜索沒有貢獻,白白浪費了計算量。繼而提出了一個改進的爆炸半徑公式,實驗證明,改進算法沒有增加計算量,而優化效率得到了提高。
1 煙花算法的原理
煙花算法來自于對煙花爆炸過程的模擬。當煙花爆炸后,火花的散落將充滿煙花周圍的局部空間,爆炸產生的火花又作為新的煙花繼續爆炸,從而逐步充滿整個天空。把煙花爆炸過程看作搜索最優解的過程,用算法實現,如圖1所示(求最小值)。
第i(i=1,2,…,n)個煙花爆炸產生的火花數目可以用式⑴表示:
⑴
式⑴中,m表示由n個煙花所產生的火花的總數目,ymax=max(f(xi))(i=1,2,…,n)表示n個煙花對應目標函數的最大值(即最壞值),ξ表示計算機所能表示的最小正常數,用于防止式⑴出現除零錯誤。
第i(i=1,2,…,n)個煙花爆炸的半徑是:……p>