【智能优化算法-蝙蝠算法】基于混合粒子群和蝙蝠算法求解单目标优化问题附matlab代码

本文探讨了一种结合蝙蝠算法(BA)和粒子群优化(PSO)的混合优化策略。通过利用BA的快速搜索与PSO的高精度,算法在前期采用BA提升全局搜索效率,后期采用PSO提高搜索精度。文中还介绍了如何通过调整惯性权重(w)和社会学习因子(c2)来平衡搜索性能,并给出了仿真代码示例展示算法的收敛曲线。
摘要由CSDN通过智能技术生成

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代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值