遗传算法matlab源代码

遗传算法matlab源代码

ID:9109475

大小:77.50 KB

页数:10页

时间:2018-04-18

遗传算法matlab源代码_第1页
遗传算法matlab源代码_第2页
遗传算法matlab源代码_第3页
遗传算法matlab源代码_第4页
遗传算法matlab源代码_第5页
资源描述:

《遗传算法matlab源代码》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、function[X,MaxFval,BestPop,Trace]=fga(FUN,bounds,MaxEranum,PopSize,options,pCross,pMutation,pInversion)%[X,MaxFval,BestPop,Trace]=fga(FUN,bounds,MaxEranum,PopSize,options,pCross,pMutation,pInversion)%Findsamaximumofafunctionofseveralvariables.%fgasolvesproblemso

2、ftheform:%maxF(X)subjectto:LB<=X<=UB(LB=bounds(:,1),UB=bounds(:,2))%X-最优个体对应自变量值%MaxFval-最优个体对应函数值%BestPop-最优的群体即为最优的染色体群%Trace-每代最佳个体所对应的目标函数值%FUN-目标函数%bounds-自变量范围%MaxEranum-种群的代数,取50--500(默认200)%PopSize-每一代种群的规模;此可取50--200(默认100)%pCross-交叉概率,一般取0.5--0.85之间较好(

3、默认0.8)%pMutation-初始变异概率,一般取0.05-0.2之间较好(默认0.1)%pInversion-倒位概率,一般取0.05-0.3之间较好(默认0.2)%options-1*2矩阵,options(1)=0二进制编码(默认0),option(1)~=0十进制编码,option(2)设定求解精度(默认1e-4)T1=clock;%检验初始参数ifnargin<2,error('FMAXGArequiresatleastthreeinputarguments');endifnargin==2,MaxEra

4、num=150;PopSize=100;options=[11e-4];pCross=0.85;pMutation=0.1;pInversion=0.25;endifnargin==3,PopSize=100;options=[11e-4];pCross=0.85;pMutation=0.1;pInversion=0.25;endifnargin==4,options=[11e-4];pCross=0.85;pMutation=0.1;pInversion=0.25;endifnargin==5,pCross=0.85

5、;pMutation=0.1;pInversion=0.25;endifnargin==6,pMutation=0.1;pInversion=0.25;endifnargin==7,pInversion=0.25;endif(options(1)==0

6、options(1)==1)&find((bounds(:,1)-bounds(:,2))>0)error('数据输入错误,请重新输入:');end%定义全局变量globalmnNewPopchildren1children2VarNum%初始化种群和变量precisi

7、on=options(2);bits=ceil(log2((bounds(:,2)-bounds(:,1))'./precision));%由设定精度划分区间VarNum=size(bounds,1);[Pop]=InitPop(PopSize,bounds,bits,options);%初始化种群[m,n]=size(Pop);fit=zeros(1,m);NewPop=zeros(m,n);children1=zeros(1,n);children2=zeros(1,n);pm0=pMutation;BestPop

8、=zeros(MaxEranum,n);%分配初始解空间BestPop,TraceTrace=zeros(1,MaxEranum);Lb=ones(PopSize,1)*bounds(:,1)';Ub=ones(PopSize,1)*bounds(:,2)';%二进制编码采用多点交叉和均匀交叉,并逐步增大均匀交叉概率%浮点编码采用离散交叉(前期)、算术交叉(中期)、AEA重组(后期)OptsCrossOver=[ones(1,MaxEranum)*options(1);...round(unidrnd(2*(MaxEr

9、anum-[1:MaxEranum]))/MaxEranum)]';%浮点编码时采用两种自适应变异和一种随机变异(自适应变异发生概率为随机变异发生的2倍)OptsMutation=[ones(1,MaxEranum)*options(1);unidrnd(5,1,MaxEranum)]';ifoptions(1)==3D=zero

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

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

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