国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于蝙蝠算法的花粉算法改進

2020-07-27 09:48第五楊萌賀興時
河南科學 2020年6期
關(guān)鍵詞:測試函數(shù)蝙蝠全局

第五楊萌, 賀興時

(西安工程大學理學院,西安 710600)

花粉算法(Flower Pollination Algorithm,F(xiàn)PA)是英國劍橋大學學者Yang[1]提出的模擬花授粉的新型元啟發(fā)算法. 該算法所用參數(shù)少、易編碼,算法中的Lévy飛行機制[2]使得算法搜索路徑更優(yōu)等特點,已廣泛應用到經(jīng)濟、管理、軍事、科學和工程設(shè)計等[3-4]領(lǐng)域的優(yōu)化問題.

近年來,國內(nèi)外學者為了提高花粉算法的全局搜索能力和收斂速度,對該算法進行大量研究. 在改進收斂速度方面,高昂等[5]通過種群所有個體信息的交流協(xié)作、逐維比較和更新當前迭代產(chǎn)生的最優(yōu)解,從而加快算法收斂速度;李前等[6]改進步長因子,同時在迭代過程中加入差分進化,提高算法尋優(yōu)能力;肖輝輝等[7]提出了基于單純形法和自適應步長的花粉算法,該算法利用單純形法提高局部搜索能力,通過自適應步長提高收斂速度. 上述幾種改進雖然使算法能很快收斂,但是收斂精度較低. 在全局搜索能力改進方面,張新明等[8]將共享機制的小生境策略融合到花粉算法中,增強算法跳出局部最優(yōu)的能力;吳文斌等[9]通過在較優(yōu)位置引入遺傳算法[10]的改進交叉和變異策略,增強了全局搜索能力;喬現(xiàn)偉等[11]通過立方映射產(chǎn)生的混沌[12]序列,初始化花粉種群,增強了算法的全局搜索能力;卞京紅等[13]提出基于螢火蟲算法的自適應花粉算法,改進了花粉算法初始種群的質(zhì)量. 這4 種改進方法雖然提高了算法的尋優(yōu)精度,但是收斂速度一般.

為了同時提高花粉算法的收斂速度和收斂精度,本文提出一種基于蝙蝠算法(Bat Algorithm,BA)的改進花粉算法(BA-FPA),因為蝙蝠算法[14]通過隨機飛行在最優(yōu)解附近會產(chǎn)生局部的新解,用其初始化[15-16]花粉配子,可以改進花粉算法收斂性能,仿真實驗結(jié)果證明改進后的BA-FPA 收斂速度和收斂精度都優(yōu)于基本BA和FPA.

1 算法改進

1.1 花粉算法(FPA)

基礎(chǔ)的花粉算法包括自花授粉過程和交叉授粉過程.

交叉授粉即全局授粉過程,

1.2 蝙蝠算法(BA)

在局部搜索中,如果蝙蝠個體選擇了一個最優(yōu)解,那么將在此最優(yōu)解附近隨機生成一個新解:

其中:α 和γ 是常數(shù),并且有:0<α <1,0<γ .蝙蝠算法步驟:

Step 1:種群初始化,即蝙蝠以隨機方式在D維空間中擴散分布一組初始解. 最大脈沖音量A0,最大脈沖率r0,搜索脈沖頻率范圍[ ]fmin,fmax,音量的衰減系數(shù)α,搜索頻率的增強系數(shù)γ,最大迭代次數(shù)iter_max.

Step 2:隨機初始化蝙蝠的位置xi,并根據(jù)適應度值的優(yōu)劣找到當前最優(yōu)解x*.

Step 3:蝙蝠的搜索脈沖頻率、速度和位置分別按照公式(3)~(5)進行更新.

Step 4:隨機生成[0,1]間的隨機數(shù)rand,如果rand>r,則對當前最優(yōu)解進行隨機擾動,按照公式(6)產(chǎn)生一個新解.

Step 5:隨機生成[0,1]間的隨機數(shù)rand,如果rand<Ai且f(xi)<f(x*),則接受Step 4產(chǎn)生的新解,然后按公式(7)進行更新.

Step 6:對所有蝙蝠的適應度值進行排序,找出當前的最優(yōu)解和最優(yōu)值.

Step 7:重復Step 2~Step 5直至滿足設(shè)定的最大迭代次數(shù).

Step 8:輸出全局最優(yōu)值和最優(yōu)解.

1.3 基于蝙蝠算法的花粉算法(BA-FPA)

蝙蝠算法通過隨機飛行在最優(yōu)解附近產(chǎn)生局部的新解,能使花粉算法在初始時刻有較大的搜索范圍,加強了算法整體的局部搜索能力. 因此用蝙蝠算法優(yōu)化花粉算法的初值,來改進花粉算法初始化種群的質(zhì)量.

BA-FPA算法步驟:

Step 1:用蝙蝠算法初始化花粉配子.

Step 2:定義一個轉(zhuǎn)移概率p,最大迭代次數(shù)N.

Step 3:對于種群中所有的n個花粉配子進行授粉:隨機產(chǎn)生一個隨機數(shù)rand,若rand<p,則進行全局授粉;否則,進行局部授粉. 評價新解,若新解更好,則更新種群. 找到當前的最優(yōu)解.

Step 4:若算法停止準則滿足,則停止;否則轉(zhuǎn)入Step3.

Step 5:輸出全局最優(yōu)值,算法結(jié)束.

2 仿真與結(jié)果分析

2.1 測試函數(shù)及實驗參數(shù)設(shè)置

仿真實驗使用Matlab 2017版運行,本文從Benchmarks測試函數(shù)[17]中選取6個典型的函數(shù)進行測試. 如表1所示,其中Egg creat函數(shù)、Sphere函數(shù)和Griewank函數(shù)為多峰函數(shù),其他為單峰函數(shù).

FPA算法種群規(guī)模n=20,轉(zhuǎn)換概率p=0.8. BA算法種群規(guī)模n=10,響度A=0.25,脈沖發(fā)射率r=0.5.

表1 測試函數(shù)Tab.1 Test functions

2.2 實驗結(jié)果及分析

圖1~圖6分別是BA-FPA算法、標準BA算法和FPA算法在6種測試函數(shù)上的尋優(yōu)曲線圖,可直觀看出3種算法的收斂性能. 從圖1和圖2可以看出,對于2維的Cube和Egg creat函數(shù),3種算法都能成功收斂,同樣迭代次數(shù)下,BA-FPA的收斂速度明顯快于標準BA和FPA的收斂速度;從圖3可以看出,對于3維的Rosenbrock函數(shù),迭代次數(shù)為1000次時,BA-FPA的收斂速度明顯快于標準BA和FPA的收斂速度,BA-FPA能快速收斂到最優(yōu)值,BA還不能收斂到最優(yōu)值. 從圖4~圖6看出,隨維數(shù)增加,BA-FPA 的收斂性能明顯好于標準BA和FPA的收斂性能.

為了檢驗算法尋優(yōu)的穩(wěn)定性,分別用BA-FPA算法、標準BA算法和FPA算法對每個測試函數(shù)優(yōu)化50次,統(tǒng)計結(jié)果如表2所示.

圖1 Cube函數(shù)尋優(yōu)曲線Fig.1 Optimization curves of Cube function

圖2 Eggcreat函數(shù)尋優(yōu)曲線Fig.2 Optimization curves of Eggcreat function

圖3 Rosenbrock函數(shù)尋優(yōu)曲線Fig.3 Optimization curves of Rosenbrock function

圖4 Sphere函數(shù)尋優(yōu)曲線Fig.4 Optimization curves of Sphere function

圖5 Griewank函數(shù)尋優(yōu)曲線Fig.5 Optimization curves of Griewank function

圖6 Schwefel 2.21函數(shù)收斂曲線Fig.6 Optimization curves of Schwefel 2.21 function

從表2 中仿真實驗結(jié)果可以看出,BA-FPA 算法運行得出的最小值、最大值和均值比標準BA 算法和FPA算法在收斂精度上有較大提升. 而且測試函數(shù)有不同模態(tài)(unimodal,multimodal),還有不同維數(shù)(2維、3維和10維). 因此,改進后的BA-FPA算法收斂性能(收斂速度和收斂精度)比標準BA算法和FPA算法有較大提升.

表2 BA-FPA、BA和FPA算法性能比較Tab.2 Performance comparison among BA-FPA,BA and FPA

3 結(jié)語

本研究將蝙蝠算法引入花粉算法來優(yōu)化花粉配子的初始位置,建立基于蝙蝠算法的花粉改進算法. 通過任意選取6個基準測試函數(shù)對算法進行性能測試,結(jié)果表明改進后的BA-FPA算法比標準的BA和FPA具有更快的收斂速度和更高的收斂精度.

猜你喜歡
測試函數(shù)蝙蝠全局
基于改進空間通道信息的全局煙霧注意網(wǎng)絡(luò)
解信賴域子問題的多折線算法
一種基于精英選擇和反向?qū)W習的分布估計算法
基于自適應調(diào)整權(quán)重和搜索策略的鯨魚優(yōu)化算法
落子山東,意在全局
記憶型非經(jīng)典擴散方程在中的全局吸引子
具有收縮因子的自適應鴿群算法用于函數(shù)優(yōu)化問題
蝙蝠
高超聲速飛行器全局有限時間姿態(tài)控制方法
蝙蝠女
沧州市| 枞阳县| 安溪县| 齐齐哈尔市| 克山县| 宕昌县| 洛阳市| 象州县| 岚皋县| 穆棱市| 富民县| 舟曲县| 巧家县| 加查县| 德江县| 徐闻县| 蓬莱市| 分宜县| 巢湖市| 正定县| 公主岭市| 黔东| 岑溪市| 凤阳县| 积石山| 兴安县| 托克托县| 台北县| 九寨沟县| 石狮市| 西充县| 沽源县| 三亚市| 民乐县| 桐庐县| 内黄县| 凤冈县| 黄陵县| 宜兰市| 汉中市| 射洪县|