基于matlab的函数优化遗传算法程序

基于matlab的函数优化遗传算法程序

ID:17408561

大小:35.00 KB

页数:9页

时间:2018-08-31

基于matlab的函数优化遗传算法程序_第1页
基于matlab的函数优化遗传算法程序_第2页
基于matlab的函数优化遗传算法程序_第3页
基于matlab的函数优化遗传算法程序_第4页
基于matlab的函数优化遗传算法程序_第5页
资源描述:

《基于matlab的函数优化遗传算法程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、基于Matlab的函数优化遗传算法程序function[BestPop,Trace]=fmaxga(FUN,LB,UB,eranum,popsize,pcross,pmutation,options)%[BestPop,Trace]=fmaxga(FUN,LB,UB,eranum,popsize,pcross,pmutation)%Findsamaximumofafunctionofseveralvariables.%fmaxgasolvesproblemsoftheform:%maxF(X)subjectto:LB<=X<=UB%BestPo

2、p--------最优的群体即为最优的染色体群%Trace-----------最佳染色体所对应的目标函数值%FUN------------目标函数%LB--------------自变量下限%UB--------------自变量上限%eranum----------种群的代数,取100--1000(默认1000)%popsize---------每一代种群的规模;此可取50--100(默认50)%pcross-----------交叉的概率,此概率一般取0.5--0.85之间较好(默认0.8)%pmutation------变异的概率,该概

3、率一般取0.05-0.2左右较好(默认0.1)%options--------1×2矩阵,options(1)=0二进制编码(默认0),option(1)~=0十进制编码,option(2)设定求解%精度(默认1e-4)%%如测试Shaffer's(f=0.5-((sin(sqrt(x(1)^2+x(2)^2)))^2-0.5)/(1+0.001*(x(1)^2+x(2)^2))^2)函数,自变量下限%%[-100,-100],上限[100,100],当x=[00]时,取得理想最优MaxF6=1%运行得到相当好的结果:自变量为0.0003337

4、9-4.7684e-005时,最优值1.000000%对应染色体是:10000000000000000001101111%1111111111111111T1=clock;ifnargin<3,error('FMAXGArequiresatleastthreeinputarguments');endifnargin==3,eranum=1000;popsize=50;pcross=0.8;pmutation=0.1;options=[01e-4];endifnargin==4,popsize=50;pcross=0.8;pmutation=0.

5、1;options=[01e-4];endifnargin==5,pcross=0.8;pmutation=0.1;options=[01e-4];endifnargin==6,pmutation=0.1;options=[01e-4];endifnargin==7,options=[01e-4];endiffind((LB-UB)>0)error('数据输入错误,请重新输入(LB

6、p(s);bounds=[LB;UB]';bits=[];precision=options(2);%由求解精度确定二进制编码长度bits=ceil(log2((bounds(:,2)-bounds(:,1))'./precision));[Pop]=initpop(popsize,bits);%初始化种群[m,n]=size(Pop);pm0=pmutation;BestPop=zeros(eranum,n);Trace=zeros(eranum,length(bits)+1);%分配初始解空间i=1;whilei<=eranumforj=1

7、:mvalue(j)=feval(FUN(1,:),(b2f(Pop(j,:),bounds,bits)));%计算适应度end[MaxValue,Index]=max(value);BestPop(i,:)=Pop(Index,:);Trace(i,1)=MaxValue;Trace(i,(2:length(bits)+1))=b2f(BestPop(i,:),bounds,bits);[selectpop]=selectchrom(FUN,Pop,bounds,bits);%选择[CrossOverPop]=CrossOver(select

8、pop,pcross);%交叉[NewPop]=Mutation(CrossOverPop,pmutation);%变异Pop=NewPop;%更新p

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

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

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