蝙蝠算法(Bat Algorithm,縮寫 BA),是一種元啟發式優化算法,是楊新社(音譯自:Xin-She Yang)在2010年提出的算法[1]。這個蝙蝠算法以微蝙蝠(microbats)回聲定位行為的基礎,採用不同的脈衝發射率和響度[2][3]

算法描述

編輯

把蝙蝠的回聲定位理想化,可以總結如下:每個虛擬蝙蝠有隨機的飛行速度 在位置 (問題的解),同時蝙蝠具有不同的頻率波長、響度 和脈衝發射率r。蝙蝠狩獵和發現獵物時,它改變頻率、響度和脈衝發射率,進行最佳解的選擇,直到目標停止或條件得到滿足。這本質上就是使用調諧技術來控制蝙蝠群的動態行為,平衡調整算法相關的參數,以取得蝙蝠算法的最優。

算法方程

編輯

根據Yang (2010)的文章, 新的解 和速度 更新方程:

 
 
 

其中,隨機數為均勻分布。 是目前找到最優解。

A和r應該在迭代中變換:

 
 

其中,   是常數。

算法應用

編輯

蝙蝠算法已用於工程設計[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).

延伸閱讀

編輯