【智能优化算法-蝙蝠算法】基于混合粒子群和蝙蝠算法求解单目标优化问题附matlab代码
1 內容介紹
PSO?能夠實現在全局搜索最大功率點,搜索偏差小,但?收斂時間較長,而?BA?也具有全局搜索功能,前期搜索速度?快,但后期搜索時間長,搜索精度低。鑒于這兩種算法的特?點,結合兩種算法在搜索不同時期的優勢,BA?應用于混合算?法前期,提升前期的搜索效果,PSO?應用于算法中后期,提升?算法的搜索精度,并分別對兩種算法進行改進。
蝙蝠的速度更新式(4)的第一部分和粒子群的速度更新?式(2)的第一部分均為上代個體速度項,粒子群可以通過慣性?權重?w調節個體慣性對速度的影響,為了平衡混合算法前期?的全局搜索能力和后期的局部搜索能力,在前期蝙蝠算法中?引入中后期?PSO?的?w。蝙蝠的速度更新式(4)的第二部分和?粒子群的速度更新式(2)的第三部分都為群體認知項,蝙蝠是?通過頻率而粒子是通過社會學習因子?c2調節群體經驗對速度?的影響,兩者可以共用參數?c2。為了進一步提升收斂速度,w和?c2會隨著迭代次數而改變,因此改進后蝙蝠算法的速度更?新式為:
2 仿真代碼
<span style="color:#333333"><span style="background-color:rgba(0, 0, 0, 0.03)"><code>?</code><code><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span></code><code>% HRPBV source codes version <span style="color:#0e9ce5">1.0</span> %</code><code><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span><span style="color:#dd1144">%%%</span></code><code>?</code><code>clear all </code><code>close all</code><code>clc</code><code>?</code><code>CostFunction=@(x) MyCost(x); % Modify <span style="color:#ca7d37">or</span> replace Mycost.m according to your cost funciton</code><code>?</code><code>Max_iter=<span style="color:#0e9ce5">500</span>; % Maximum number of iterations</code><code>n=<span style="color:#0e9ce5">30</span>; % Number of agents</code><code>d=<span style="color:#0e9ce5">100</span>;</code><code>?</code><code>?</code><code>% HRPBV with V-shaped transfer function</code><code>[gBest, gBestScore, ConvergenceCurve]=HRPBV(n, d, Max_iter, CostFunction);</code><code>?</code><code>plot(ConvergenceCurve,<span style="color:#dd1144">'DisplayName'</span>,<span style="color:#dd1144">'HRPBV'</span>,<span style="color:#dd1144">'Color'</span>, <span style="color:#dd1144">'b'</span>);</code><code>hold on</code><code>?</code><code>?</code><code>title([<span style="color:#dd1144">'\fontsize{12}\bf Convergence curve'</span>]);</code><code>xlabel(<span style="color:#dd1144">'\fontsize{12}\bf Iteration'</span>);ylabel(<span style="color:#dd1144">'\fontsize{12}\bf Average Best-so-far'</span>);</code><code>legend(<span style="color:#dd1144">'\fontsize{10}\bf HRPBV'</span>);</code><code>grid on</code><code>axis tight</code><code>?</code><code>save resuls</code><code>?</code><code>?</code></span></span>3 運行結果
4 參考文獻
[1]陳志敏, 吳盤龍, 薄煜明,等. 基于自控蝙蝠算法智能優化粒子濾波的機動目標跟蹤方法[J]. 電子學報, 2018, 46(4):9.
[2]唐海東, 芮鈞, 吳正義. 基于混合蝙蝠算法的梯級水電站群優化調度研究[J]. 水電自動化與大壩監測, 2015(6):5.
博主簡介:擅長智能優化算法、神經網絡預測、信號處理、元胞自動機、圖像處理、路徑規劃、無人機等多種領域的Matlab仿真,相關matlab代碼問題可私信交流。
部分理論引用網絡文獻,若有侵權聯系博主刪除。
總結
以上是生活随笔為你收集整理的【智能优化算法-蝙蝠算法】基于混合粒子群和蝙蝠算法求解单目标优化问题附matlab代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 群体智能算法之蝙蝠算法
- 下一篇: matlab人脸追踪,求大神帮助我这个菜