日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

智能优化算法:蝙蝠算法-附代码

發布時間:2023/12/9 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 智能优化算法:蝙蝠算法-附代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

智能優化算法:蝙蝠算法-附代碼

文章目錄

  • 智能優化算法:蝙蝠算法-附代碼
    • 1.算法原理
    • 2.算法流程
    • 3.算法結果
    • 4.參考文獻
    • 5.MATLAB代碼
    • 6.python代碼

摘要:蝙蝠算法(Bat Algorithm,BA)[1] 是受蝙蝠回聲定位捕食行為啟發,提出的一種基于迭代優化技術的新型群智能優化算法。該算法自2010年由Yang教授提出以來,因其具有模型簡單、收斂速度快、參數少等優點 ,已在工程優化 、模型識別等問題中得到較好的應用,很快得到了國內外學者的廣泛關注,成為智能優化算法領域新的研究熱點。

1.算法原理

蝙蝠使用回聲定位技術檢測獵物、避開障礙物以及在黑暗的環境中找到棲息地。其可以發出非常響亮的脈沖并聽取從周圍物體反彈回來的回聲,根據回聲到雙耳的不同時間與強度判斷物體所在的方向和位置;還可以根據目標獵物或者障礙物的特征發出不同性質的
脈沖。
大多數蝙蝠使用恒定頻率信號進行回聲定位,信號的大小取決于目標獵物。蝙蝠發出的脈沖持續時間很短,一般在8~10 ms之間,其頻率通常在25~150 kHz的范圍內。正常飛行的過程中,蝙蝠每秒發射10~20個脈沖;而在尋找獵物的過程中,尤其在靠近獵物飛行時,每秒可以發射約200個脈沖。對處在典型頻率范圍[25 kHz,150 kHz]的脈沖,由公式(1)可知,其對應的波長范圍為[2 mm,14 mm],這
個范圍正好與蝙蝠尋找的獵物大小范圍一致。這將有利于蝙蝠準確捕捉獵物。
λ=v/f(1)λ=v/f \tag{1} λ=v/f(1)

其中 vvv 為空氣中聲音的傳播速度,取值為340 m/s。

如果以理想化的方式研究蝙蝠的回聲定位特征,就可以更方便地模擬蝙蝠算法。在模擬蝙蝠算法的過程中,使用以下近似理想化的規則:

(1)所有蝙蝠都使用回聲定位感知距離。

(2)蝙蝠在位置 x i 隨機飛行,并具有固定的頻率f ,同時根據其與目標獵物的接近程度自動調整波長和脈沖響度來搜索獵物。

(3)脈沖響度變化方式多樣,算法假設其從最大值AoA_oAo?變化到最小的恒定值 AminA_{min}Amin? ,變化區間視問題而定。

在模擬蝙蝠算法的過程中,假設蝙蝠的搜索空間是D維,每一代中每個蝙蝠的位置 xitx_i^txit? 和速度vitv_i^tvit?更新規則由公式(2)~(4)給出:
fi=fmin+(fmax?fmin)?β(2)f_i=f_{min}+(f_{max}-f_{min})*\beta \tag{2} fi?=fmin?+(fmax??fmin?)?β(2)

vit=vit?1+(xit?X?)fi(3)v_i^t=v_i^{t-1}+(x_i^t-X_*)f_i \tag{3} vit?=vit?1?+(xit??X??)fi?(3)

xit=xit?1+vit(4)x_i^t=x_i^{t-1}+v_i^t\tag{4} xit?=xit?1?+vit?(4)

其中 β∈[0,1]β∈ [0,1]β[01],是一個隨機向量, X?X_*X?? 是群體中當前局部最優解(位置), fif_ifi? 是蝙蝠發出的聲波頻率,調整區間為 [fmin,fmax][f_{min}, f_{max} ][fmin?,fmax?] 。在實驗過程中,可以根據問題的需要設置相應的頻率變化區間。

對于局部搜索,一旦在當前最佳解決方案中選擇了一個解決方案,新的局部解使用隨機游走方式生成。
xnew=xold+εAt(5)x_new=x_{old}+\varepsilon A^t\tag{5} xn?ew=xold?+εAt(5)
其中, ε∈[?1,1]ε∈ [?1,1]ε[?11],是一個隨機數,AtA^tAt 是整個群體在同一代中的平均響度。

蝙蝠在尋找獵物的過程中,會根據距目標獵物的方位不斷調整發出聲波的響度和頻度,以提高捕食效率。在逐漸靠近獵物的過程中,蝙蝠尋找獵物的空間范圍也在逐漸減小,因此它會逐漸減小響度到一個定值同時不斷增大頻度,以便快速、動態地掌握目標獵物的方位。第iii 只蝙蝠的聲波響度 Ait+1A_i^{t+1}Ait+1? 和頻度rit+1r_i^{t+1}rit+1?使用公式(6)和(7)更新。
Ait+1=αAit(6)A_i^{t+1}=\alpha A_i^t\tag{6} Ait+1?=αAit?(6)

rit+1=ri0[1?exp(?γt)](7)r_i^{t+1}=r_i^0[1-exp(-\gamma t)]\tag{7} rit+1?=ri0?[1?exp(?γt)](7)

其中, α∈(0,1)α∈ (0,1)α01,是聲波響度衰減系數; γ>0γ >0γ>0,是脈沖頻度增強系數;ri0r_i^0ri0? 表示蝙蝠 iii 初始脈沖頻率。

對于任意的 αααγγγ ,當 t→∞t→∞t 時,有 Ait→0A_i^t →0Ait?0rit→ri0r^t_i →r^0_irit?ri0? 。當 AtiA_t^iAti? 趨于0時,可以認為蝙蝠找到了獵物暫時不發出脈沖,脈沖的變化范圍可以根據問題的需要設置不同的數值區間。只有當蝙蝠的位置得到優化后,脈沖的響度和頻率才會更新,這暗示著蝙蝠正朝著最佳位置移動。

2.算法流程

步驟1: 參數初始化:蝙蝠種群規模 mmm ,迭代次數NNN ,目標函數 f(X)f(X)f(X) ,蝙蝠位置 xi(i=1,2,…,m)x_i (i=1,2,…,m)xi?(i=1,2,,m) 和速度viv_ivi? ,聲波頻率 fif_ifi? ,聲波響度 AiA_iAi? 和頻度 rir_iri? 。
步驟2: 找出當前種群中最優蝙蝠位置 X?X_*X?? ,并根據公式(2)~(4)更新速度和位置。
步驟3: 生成隨機數 rand1rand_1rand1?rand1rand_1rand1? 是[0,1]上的隨機數。如果 rand1>rirand_1>r_irand1?>ri? ,在最佳蝙蝠中選一個最優個體,再在選擇的最優個體附近通過公式(5)生成一個局部解,否則按照公式(4)更新蝙蝠位置。

步驟4: 再生成一個隨機數 rand2rand_2rand2?rand2rand_2rand2? 是[0,1]上的隨機數。如果 rand2<Airand_2<A_irand2?<Ai? ,并且此時目標函數的適應度優于步驟 3 中的新解,則接受該位置,并根據公式(6)、(7)調整AiA_iAi? (減小)和 rir_iri? (增大)。
步驟5: 對該種群中所有個體的適應度值進行排序,并找到當前最佳 X?X_*X?? 。
步驟6: 重復步驟(2)~(5)。判斷是否滿足最大迭代次數,然后輸出全局最優值。

3.算法結果

4.參考文獻

[1] Yang X S.A new metaheuristic bat-inspired algorithm[J].Computer Knowledge & Technology,2010,284:65-74.

[2]許德剛,趙萍.蝙蝠算法研究及應用綜述[J].計算機工程與應用,2019,55(15):1-12+31.

[3]馬祥麗,張惠珍,馬良.蝙蝠算法在物流配送車輛路徑優化問題中的應用[J].數學的實踐與認識,2015,45(24):80-86.

5.MATLAB代碼

蝙蝠優化算法
算法相關應用

名稱說明或者參考文獻
蝙蝠優化的BP神經網絡(預測)https://blog.csdn.net/u011835903/article/details/112149776(原理一樣,只是優化算法是蝙蝠算法)
蝙蝠優化的BP神經網絡(分類)https://blog.csdn.net/u011835903/article/details/112149394(原理一樣,只是優化算法是蝙蝠算法)

6.python代碼

個人資料介紹

總結

以上是生活随笔為你收集整理的智能优化算法:蝙蝠算法-附代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。