蝙蝠算法_总结
蝙蝠算法(Bat Algorithm,縮寫 BA),是一種元啟發式優化算法,是楊新社(音譯自:Xin-She Yang)在2010年提出的算法[1]。這個蝙蝠算法以微蝙蝠(microbats)回聲定位行為的基礎,采用不同的脈沖發射率和響度[2][3]。
算法描述
把蝙蝠的回聲定位理想化,可以總結如下:每個虛擬蝙蝠有隨機的飛行速度vi在位置xi(問題的解),同時蝙蝠具有不同的頻率或波長、響度Ai和脈沖發射率r。蝙蝠狩獵和發現獵物時,它改變頻率、響度和脈沖發射率,進行最佳解的選擇,直到目標停止或條件得到滿足。這本質上就是使用調諧技術來控制蝙蝠群的動態行為,平衡調整算法相關的參數,以取得蝙蝠算法的最優。
算法方程
根據Yang (2010)的文章, 新的解xti和速度vti更新方程:
fi=fmin+(fmax?fmin)β,vti=vti+(xt?1i?x?)fi,xti=xt?1i+vti.
其中,隨機數為均勻分布。x?是目前找到最優解。
A和r應該在迭代中變換:
At+1i=αAti,rt+1i=r0i[1?exp(?γt)].
其中,0<α<1和γ>0是常數。
算法應用
蝙蝠算法已用于工程設計[4]、分類[5]等應用。把蝙蝠算法(BA)與遺傳算法(GA)、PSO等方法進行比較,并用于訓練神經網絡,得出的結論清楚顯示:蝙蝠算法比其他算法有很好優勢[6]。
參考文獻
[1] X. S. Yang, A New Metaheuristic Bat-Inspired Algorithm, in: Nature Inspired Cooperative Strategies for Optimization (NISCO 2010), Studies in Computational Intelligence, Springer Berlin, 284, Springer, 65-74 (2010). http://arxiv.org/abs/1004.4170
[2] J. D. Altringham, Bats: Biology and Behaviour, Oxford University Press, (1996).
[3] P. Richardson, Bats. Natural History Museum, London, (2008)
[4] X. S. Yang and A. H. Gandomi, Bat algorithm: a novel approach for global engineering optimization, Engineering Computations, Vol. 29, No. 5, pp. 464-483 (2012).
[5] S. Mishra, K. Shaw, D. Mishra, A new metaheuristic classification approach for microarray data,Procedia Technology, Vol. 4, pp. 802-806 (2012).
[6] K. Khan and A. Sahai, A comparison of BA, GA, PSO, BP and LM for training feed forward neural networks in e-learning context, Int. J. Intelligent Systems and Applications (IJISA), Vol. 4, No. 7, pp. 23-29 (2012).
延伸閱讀
1.蝙蝠算法的詳細的介紹:Yang, X. S., Nature-Inspired Metaheuristic Algoirthms, 2nd Edition, Luniver Press, (2010).
2.蝙蝠算法Matlab/Octave程序
總結
- 上一篇: MSSQLSERVER启动不了,报SQL
- 下一篇: 51CTO各位博友大家好!