【优化求解】基于蝙蝠算法求解最优目标matlab源码

 1 模型

蝙蝠算法( BA) 是 Yang 教授于 2010 年基于群体智能提出的启发式搜索算法,是一种搜索全局最优解的有效方法。该算法是一种基于迭代的优化技术,初始化为一组随机解,然后 通过迭代搜寻最优解,且在最优解周围通过随机飞行产生局部新解,加强了局部搜索。与其他算法相比,BA 在准确性和有效性方面远优于其他算法,且没有许多参数要进行调整。

2 部分代码

%%     Bat Algorithm For Sphere Function     %%%%     开始     %%clear;clc;close all;%%     初始化参数     %%Iter=1;%初始迭代次数Iter_Max=50;%最大迭代次数Dim=2;%问题的维度Pop_Size=30;%种群大小Loud_Min=0;%响度最小值Alpha=0.95;%响度控制参数Gama=0.95;%脉冲发射率控制参数Freq_Min=0;Freq_Max=2;%频率范围V_Min=-5;V_Max=5;%速度范围Pop_Min=-10;Pop_Max=10;%种群个体大小范围%%     初始化种群     %%PR=0.5*ones(Pop_Size,1);%脉冲发射率初始化Loud=0.9*ones(Pop_Size,1);%响度初始化PR0=PR;%记录初始脉冲发射率Beta=rand(Pop_Size,1);%随机化Beta值Freq=Freq_Min+(Freq_Max-Freq_Min)*Beta;%频率初始化V=V_Min+(V_Max-V_Min)*rand(Pop_Size,Dim);%速度初始化% V=zeros(Pop_Size,Dim);Pop=Pop_Min+(Pop_Max-Pop_Min)*rand(Pop_Size,Dim);%种群初始化for i=1:Pop_Size    Fitness(i)=Sphere_Function(Pop(i,:));%评估当前野草对应的适应度值end[Fitness_Best,Position_Best]=min(Fitness);%寻找当前最优适应度值Position_Current=find(Fitness==Fitness_Best);%最优适应度值的位置Trace(Iter)=Fitness_Best;%记录当前代适应度值最小值    %%     迭代部分     %%while Iter<=Iter_Max    Iter%记录当前迭代次数    Fitness_Best%记录当前最优适应度值    for i=1:Pop_Size        Beta(i)=rand;        Freq(i,:)=Freq_Min+(Freq_Max-Freq_Min)*Beta(i);%频率控制    Trace(Iter)=Fitness_Best;%记录当前代适应度值最小值end%%     数据后处理     %%Iter%记录当前迭代次数Fitness_Best%记录当前最优适应度值figure('Position',[269   240   660   290])%Draw search spacesubplot(1,2,1);X1=linspace(-10,10,101);X2=linspace(-10,10,101);for i=1:length(X1)    for j=1:length(X2)        Y(i,j)=X1(i)^2+X2(j)^2;    endendsubplot(1,2,1),surf(X1,X2,Y);title('Parameter space')xlabel('x_1');ylabel('x_2');zlabel('( x_1 , x_2 )')subplot(1,2,2);,plot(Trace);xlabel('Iteration');ylabel('Best score obtained so far');

3 仿真结果

4 参考文献

[1]刘长平, 叶春明. 具有Lévy飞行特征的蝙蝠算法[J]. 智能系统学报, 2013, 000(003):240-246.

 

  • 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、付费专栏及课程。

余额充值