经典蝙蝠算法MATLAB实现
為什么會(huì)有這么多基于群智能的算法,蟻群、粒子群、魚(yú)群、煙花、炮竹、豬群、牛群、馬群、羊群、猴群、雞群。。。算法。??????
黑人問(wèn)號(hào).jpg
蝙蝠算法( BA) 是 Yang 教授于 2010 年基于群體智能提出的啟發(fā)式搜索算法,是一種搜索全局最優(yōu)解的有效方法。該算法是一種基于迭代的優(yōu)化技術(shù),初始化為一組隨機(jī)解,然后 通過(guò)迭代搜尋最優(yōu)解,且在最優(yōu)解周?chē)ㄟ^(guò)隨機(jī)飛行產(chǎn)生局部新解,加強(qiáng)了局部搜索。與其他算法相比,BA 在準(zhǔn)確性和有效性方面遠(yuǎn)優(yōu)于其他算法,且沒(méi)有許多參數(shù)要進(jìn)行調(diào)整。
BA算法是模擬自然界中蝙蝠利用一種聲吶來(lái)探測(cè)獵物、避免障礙物的隨機(jī)搜索算法即模擬蝙蝠利用超聲波對(duì)障礙物或獵物進(jìn)行最基本的探測(cè)、定位能力并將其和優(yōu)化目標(biāo)功能相聯(lián)系。BA算法的仿生原理將種群數(shù)量為的蝙蝠個(gè)體映射為D維問(wèn)題空間中的NP個(gè)可行解,將優(yōu)化過(guò)程和搜索模擬成種群蝙蝠個(gè)體移動(dòng)過(guò)程和搜尋獵物利用求解問(wèn)題的適應(yīng)度函數(shù)值來(lái)衡量蝙蝠所處位置的優(yōu)劣,將個(gè)體的優(yōu)勝劣汰過(guò)程類(lèi)比為優(yōu)化和搜索過(guò)程中用好的可行解替代較差可行解的迭代過(guò)程。在蝙蝠搜索算法中,為了模擬蝙蝠探測(cè)獵物、避免障礙物,需假設(shè)如下三個(gè)近似的或理想化的規(guī)則:
1)所有蝙蝠利用回聲定位的方法感知距離,并且它們采用一種巧妙的方式來(lái)區(qū)別獵物和背景障礙物之間的不同。
2)蝙蝠在位置xi以速度vi隨機(jī)飛行,以固定的頻率fmin、可變的波長(zhǎng)λ和音量A0來(lái)搜索獵物。蝙蝠根據(jù)自身與目標(biāo)的鄰近程度來(lái)自動(dòng)調(diào)整發(fā)射的脈沖波長(zhǎng)(或頻率)和調(diào)整脈沖發(fā)射率r屬于[0,1]
3)雖然音量的變化方式有多種但在蝙蝠算法中, 假定音量A是從一個(gè)最大值A(chǔ)0(整數(shù))變化到固定最小值A(chǔ)min
偽代碼:
Maltab實(shí)現(xiàn):
主函數(shù)代碼:
評(píng)價(jià)函數(shù):
可以自己改
更多內(nèi)容訪問(wèn) omegaxyz.com
網(wǎng)站所有代碼采用Apache 2.0授權(quán)
網(wǎng)站文章采用知識(shí)共享許可協(xié)議BY-NC-SA4.0授權(quán)
? 2019 ? OmegaXYZ-版權(quán)所有 轉(zhuǎn)載請(qǐng)注明出處
總結(jié)
以上是生活随笔為你收集整理的经典蝙蝠算法MATLAB实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 2020五一建模C题:饲料混合加工问题完
- 下一篇: Linux SD卡驱动开发(五) ——