蝙蝠算法
蝙蝠算法(Bat Algorithm,縮寫 BA),是一種元啟發式優化算法,是楊新社(音譯自:Xin-She Yang)在2010年提出的算法[1]。這個蝙蝠算法以微蝙蝠(microbats)回聲定位行為的基礎,採用不同的脈衝發射率和響度[2][3]。
算法描述
編輯把蝙蝠的回聲定位理想化,可以總結如下:每個虛擬蝙蝠有隨機的飛行速度 在位置 (問題的解),同時蝙蝠具有不同的頻率或波長、響度 和脈衝發射率r。蝙蝠狩獵和發現獵物時,它改變頻率、響度和脈衝發射率,進行最佳解的選擇,直到目標停止或條件得到滿足。這本質上就是使用調諧技術來控制蝙蝠群的動態行為,平衡調整算法相關的參數,以取得蝙蝠算法的最優。
算法方程
編輯根據Yang (2010)的文章, 新的解 和速度 更新方程:
其中,隨機數為均勻分佈。 是目前找到最優解。
A和r應該在迭代中變換:
其中, 和 是常數。
算法應用
編輯蝙蝠算法已用於工程設計[4]、分類[5]等應用。把蝙蝠算法(BA)與遺傳算法(GA)、PSO等方法進行比較,並用於訓練神經網絡,得出的結論清楚顯示:蝙蝠算法比其他算法有很好優勢[6]。
參考文獻
編輯- ^ 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 (頁面存檔備份,存於互聯網檔案館)
- ^ J. D. Altringham, Bats: Biology and Behaviour, Oxford University Press, (1996).
- ^ P. Richardson, Bats. Natural History Museum, London, (2008)
- ^ 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).
- ^ S. Mishra, K. Shaw, D. Mishra, A new metaheuristic classification approach for microarray data,Procedia Technology, Vol. 4, pp. 802-806 (2012).
- ^ 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).
延伸閱讀
編輯- 蝙蝠算法的詳細的介紹:Yang, X. S., Nature-Inspired Metaheuristic Algoirthms, 2nd Edition, Luniver Press, (2010).
- Matlab/Octave程序 (頁面存檔備份,存於互聯網檔案館)