布谷鸟算法求函数最优值.docx

布谷鸟算法求函数最优值.docx

ID:59202832

大小:14.57 KB

页数:6页

时间:2020-09-10

布谷鸟算法求函数最优值.docx_第1页
布谷鸟算法求函数最优值.docx_第2页
布谷鸟算法求函数最优值.docx_第3页
布谷鸟算法求函数最优值.docx_第4页
布谷鸟算法求函数最优值.docx_第5页
资源描述:

《布谷鸟算法求函数最优值.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、主函数(cuckoo_search_improve.m)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%function[huatu,t]=cuckoo_search_improve(n)%t表示为寻优次数,huatu表示寻优次数为t时最优值即fminifnargin<1,%判断输入变量个数的函数,当变量个数为0时默认取n=25%Numberofnests(ordifferentsolutions)n=25;end%Discoveryrateofalieneggs/solutionspa=0.25;%宿主鸟建造新鸟巢的概率,

2、或者说发现外来鸟蛋的概率%%Changethisifyouwanttogetbetterresults%ToleranceTol=1.0e-5;%设置精度%%Simpleboundsofthesearchdomainnd=4;%函数参数(变量)个数%Lb=[0.35,500,0];%Lowerbounds变量下界%Ub=[1,850,40];%%Upperbounds变量上界%Lb=[500,0.35,0];%Lowerbounds变量下界%Ub=[850,1,40];%%Upperbounds变量上界Lb=[pi/6,pi/6,0.3,40];%Lowerbo

3、unds变量下界Ub=[pi/2,pi/3,1,80];%%Upperbounds变量上界%nd=2;%函数参数(变量)个数%Lb=[-5.12,-5.12];%Lowerbounds变量下界%Ub=[5.12,5.12];%%Upperbounds变量上界%%Randominitialsolutions(初始化鸟窝位置,n个鸟窝的初始位置)fori=1:n,nest(i,:)=Lb+(Ub-Lb).*rand(size(Lb));end%Getthecurrentbest%求解当前最优解fitness=10^10*ones(n,1);%函数初值,n个鸟巢的取值

4、都为10^10,意味着取值比较大,因为我们这里是找最小值.[fmin,bestnest,nest,fitness]=get_best_nest(nest,nest,fitness);%两个nestN_iter=0;%%Startingiterations(开始的迭代次数为0)%iteration=input('请输入迭代次数(不输入则默认为25)iteration=');iteration=200;iflength(iteration)==0iteration=25;endhuatu=zeros(1,iteration);%迭代次数200,每次迭代取前面k*n个

5、鸟窝里面最优的,k为迭代次数.初始最优函数值都为0,t=1;whilet<=iteration%Generatenewsolutions(butkeepthecurrentbest)产生新解,但保留目前最优解new_nest=get_cuckoos(nest,bestnest,Lb,Ub);%cockoos随机走动函数(寻找鸟窝的点)(即nest)[fnew,best,nest,fitness]=get_best_nest(nest,new_nest,fitness);%%找到当前最优的鸟巢%Updatethecounter更新鸟窝的总数N_iter=N_ite

6、r+n;%Discoveryandrandomization寻找及随机化new_nest=empty_nests(nest,Lb,Ub,pa);%%构建新鸟巢代替某些鸟巢%Evaluatethissetofsolutions评估解集[fnew,best,nest,fitness]=get_best_nest(nest,new_nest,fitness);%%找到当前最优的鸟巢%Updatethecounteragain再次更新鸟窝的总数N_iter=N_iter+n;%Findthebestobjectivesofar找到当前最优目标iffnew<=fminfm

7、in=fnew;%更新最优目标函数值bestnest=best;%更新最优鸟窝endhuatu(t)=fmin;%第t次迭代的最优目标函数值t=t+1;%下一次迭代end%%Endofiterationsplot(1:iteration,huatu);%%Post-optimizationprocessing后优化处理%%Displayallthenestsdisp(strcat('Totalnumberofiterations=',num2str(N_iter)));%显示迭代总数'显示最优目标函数值',num2str(fmin)'迭代次数',num2str(

8、bestnest)%--

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。