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代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。