群體智慧型演算法之蝙蝠演算法

2021-10-05 10:39:22 字數 2804 閱讀 8787

4. 具體應用

5. 引數選擇的原則

小結參考文獻

蝙蝠演算法(bat algorithm,ba)是yang受自然界蝙蝠回聲定位的方式進行搜尋、捕食行為的啟發,於2023年提出的一種新型的群智慧型仿生優化演算法。ba演算法具有結構簡單、引數較少、搜尋能力較強、穩定性較強、便於實現等優點,在函式優化、排程問題、模式識別、影象處理、故障診斷等等方面表現出極大的優勢。ba演算法目前主要在連續域函式優化問題上進行求解,較少的地方用來求解組合優化問題,例如揹包問題、tsp問題求解、可靠性冗餘分配問題等等。蝙蝠回聲定位原理為:蝙蝠以脈衝的形式以一定的發射率進行發射一定量的頻率和音量的超聲波,當超聲波在傳播過程中遇到三維空間中的物體之後就會以回聲的形式返回,通過對自身回聲的接收和處理,蝙蝠不僅能夠探測到運動物體與自身的距離和飛行方向,還可以判斷其運動速率、大小、形態以及結構,從而避開障礙物。

蝙蝠演算法有兩種不同的形式,一種是用於連續型計算的演算法,一種是基於連續型計算方法而提出的一種離散型的ba演算法。這兩種演算法具有很大的不同點,下面就這兩種不同的演算法進行學習。

蝙蝠是通過其發出超聲波的頻率、速度來確定物體的位置資訊。所以,為了便於模擬蝙蝠的回聲定位行為。yang給出了兩個理想化的規則:

在以上的假設的基礎上,ba演算法的步驟如下所示:

步驟一:初始化相關引數,包括蝙蝠的種群數量n

nn、蝙蝠種群的位置和速度。

步驟二:根據目標函式和初始位置計算適應度值,從而得出初始解;

步驟三:對於每只蝙蝠k

kk,根據下列公式更新脈衝頻率、速度和位置資訊,從而產生後代個體:

f_=f_+(f_-f_)\cdot\\ v_^=v_^+(x_^-x^)\cdot}\\ x_^=x_^+v_^\\ \end

⎩⎪⎨⎪⎧​

fk​=

fmin​+

(fma

x​−f

min​

)⋅βv

kt+1

​=vk

t​+(

xkt​

−x∗)

⋅fk​

xkt+

1​=x

kt​+

vkt​

​ 其中,fkf_

fk​表示第k

kk只蝙蝠的脈衝頻率資訊,f

max⁡

f_fmax​和f

min⁡

f_fmin

​分別表示脈衝頻率的最大值和最小值,β∈[

0,1]

\beta\in

β∈[0,1

]是均勻分布的隨機數,xkt

,vkt

x_^,v_^

xkt​,v

kt​表示第t

tt個迭代過程中蝙蝠k

kk所在的位置和速度,x∗x^

x∗表示當前全域性的最優解。

步驟四:生成隨機數rand1

\text

rand1

,如若rand1

>rk

t\text>r_^

rand1

>rk

t​,則在當前最優解附近進行鄰域位置的搜尋,搜尋方式如下公式所確定:

x

new=

xold+ϵ

⋅a

tx_}=x_}+\epsilon\cdot}

xnew​=

xold​+

ϵ⋅at

其中,rkt

r_^rk

t​表示第t

tt代蝙蝠k

kk的脈衝發射率,x

newx_}

xnew

​表示隨機擾動得到的新解,x

oldx_}

xold​即x∗x^

x∗,a ta^

at表示第t

tt迭代中所有蝙蝠群體音量的平均值,ϵ

\epsilon

ϵ表示均勻分布的隨機數ϵ∈[

−1,1

]\epsilon\in

ϵ∈[−1,

1]。步驟五:生成隨機數rand2

\text

rand2

,如若rand2

t\text

rand2

t​並且x

newx_}

xnew

​的適應度優於x

oldx_}

xold

​,則接受xne

wx_

xnew

​並且更新rkt

r_^rk

t​和a kt

a_^ak

t​,更新的公式如下所示:

a_^=\alpha\cdot^}\\ r_^=r_^(1-e^)\\ \end

{akt+1

​=α⋅

akt​

rkt+

1​=r

k0​(

1−e−

γt)​

其中,0

<

α<1,

γ>

00<\alpha<1,\gamma>0

0<

α<1,

γ>0,α,γ

\alpha,\gamma

α,γ均為常量;

步驟六:計算出當前所有蝙蝠的適應度並找出當前最優解;

步驟七:重複步驟三至步驟六,直到達到迴圈條件,退出演算法。

ba演算法在離散化的領域內的應用比較少,為拓寬ba演算法的應用領域,便將連續化的蝙蝠演算法經過改進,應用到了離散型的蝙蝠演算法。下面來介紹tsp求解問題中的蝙蝠演算法。

[1] 一種求解tsp問題的離散蝙蝠演算法

[2] 蝙蝠演算法及其在cvrptw-sdp問題中的應用

[3] 旅行商問題的混沌混合離散蝙蝠演算法

智慧型演算法 OEMACS

該演算法是基於蟻群演算法,加上命令轉換遷移技術融合而成。主要用於解決虛擬機器的放置問題 vmp 該演算法的突出之處在於能夠考慮多種資源,如cpu,記憶體等,而不僅僅只是單一條件。除此之外,在處理瓶頸情況時,即有些資源需求較多,而另一中較少,有較好的表現。同時,還可以應對伺服器均質,異質的情況,即伺服...

智慧型演算法 GA

變異不再是隨機地生成乙個範圍內的數,而是通過高斯分布 正態分佈 在原有點的周圍產生乙個新的點,然後繼續計算。這改進可以有效提高演算法效能。不同以往的選擇。改進的選擇方式是 每次挑選兩組解,然後比較哪一組的適應值更好,好的進入新的種群,直到到達數目。這只是最簡單的隨機競標賽,還可以進一步改進。但可以提...

智慧型演算法 蟻群演算法

1 蟻群演算法及其基本思想 蟻群演算法是一種智慧型優化演算法,通過蟻群優化求解複雜問題,aco在離散優化問題方面有比較好的優越性。基本思想 以旅行商問題為例 設定多隻螞蟻,分頭並行搜尋。每只螞蟻完成一次周遊後,在行進的路上釋放資訊素,資訊素量與解的質量成正比。螞蟻路徑的選擇根據資訊素強度大小 初始資...