【优化求解】基于蝙蝠算法求解最优目标matlab源码
生活随笔
收集整理的這篇文章主要介紹了
【优化求解】基于蝙蝠算法求解最优目标matlab源码
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?1 模型
蝙蝠算法( BA) 是 Yang 教授于 2010 年基于群體智能提出的啟發(fā)式搜索算法,是一種搜索全局最優(yōu)解的有效方法。該算法是一種基于迭代的優(yōu)化技術(shù),初始化為一組隨機(jī)解,然后 通過迭代搜尋最優(yōu)解,且在最優(yōu)解周圍通過隨機(jī)飛行產(chǎn)生局部新解,加強(qiáng)了局部搜索。與其他算法相比,BA 在準(zhǔn)確性和有效性方面遠(yuǎn)優(yōu)于其他算法,且沒有許多參數(shù)要進(jìn)行調(diào)整。
2 部分代碼
?%% Bat Algorithm For Sphere Function %%?%% 開始 %%clear;clc;close all;?%% 初始化參數(shù) %%Iter=1;%初始迭代次數(shù)Iter_Max=50;%最大迭代次數(shù)Dim=2;%問題的維度Pop_Size=30;%種群大小Loud_Min=0;%響度最小值A(chǔ)lpha=0.95;%響度控制參數(shù)Gama=0.95;%脈沖發(fā)射率控制參數(shù)Freq_Min=0;Freq_Max=2;%頻率范圍V_Min=-5;V_Max=5;%速度范圍Pop_Min=-10;Pop_Max=10;%種群個(gè)體大小范圍?%% 初始化種群 %%PR=0.5*ones(Pop_Size,1);%脈沖發(fā)射率初始化Loud=0.9*ones(Pop_Size,1);%響度初始化PR0=PR;%記錄初始脈沖發(fā)射率?Beta=rand(Pop_Size,1);%隨機(jī)化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,:));%評(píng)估當(dāng)前野草對(duì)應(yīng)的適應(yīng)度值end[Fitness_Best,Position_Best]=min(Fitness);%尋找當(dāng)前最優(yōu)適應(yīng)度值Position_Current=find(Fitness==Fitness_Best);%最優(yōu)適應(yīng)度值的位置Trace(Iter)=Fitness_Best;%記錄當(dāng)前代適應(yīng)度值最小值 %% 迭代部分 %%while Iter<=Iter_Max Iter%記錄當(dāng)前迭代次數(shù) Fitness_Best%記錄當(dāng)前最優(yōu)適應(yīng)度值? for i=1:Pop_Size Beta(i)=rand; Freq(i,:)=Freq_Min+(Freq_Max-Freq_Min)*Beta(i);%頻率控制? Trace(Iter)=Fitness_Best;%記錄當(dāng)前代適應(yīng)度值最小值end?%% 數(shù)據(jù)后處理 %%Iter%記錄當(dāng)前迭代次數(shù)Fitness_Best%記錄當(dāng)前最優(yōu)適應(yīng)度值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; endend?subplot(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 仿真結(jié)果
4 參考文獻(xiàn)
[1]劉長(zhǎng)平, 葉春明. 具有Lévy飛行特征的蝙蝠算法[J]. 智能系統(tǒng)學(xué)報(bào), 2013, 000(003):240-246.
?
總結(jié)
以上是生活随笔為你收集整理的【优化求解】基于蝙蝠算法求解最优目标matlab源码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux 驱动面试题总结
- 下一篇: Fragment 键盘弹出方式设置