%主程序 gamain.m
clear all
%定义全局变量
global POPSIZE
global POPULATION
global BEATINDIVIDUAL
global CURRENTBEST
global P0 P01 P02 P03
global T
global PC
global PM
global BINDEX WINDEX
global FAVER
global FMAX
POPSIZE=20;
T=30;
PC=0.95;
PM=0.3;
t=1;
bound=[-4 4];
%% 初始化种群
P01=initga(POPSIZE,bound);
P02=initga(POPSIZE,bound);
%% 计算个体适应值
[P01,x2]=gafit(P01,P02,POPSIZE,1);
[P02,x1]=gafit(P02,P01,POPSIZE,1);
%% 最有个体保留
fitne1=P01(:,2);
fitne2=P02(:,2);
fitne=[fitne1,fitne2];
fma1=max(fitne1);
fma2=max(fitne2);
in1=find(fma1==fitne1);
in2=find(fma2==fitne2);
best{t,1}=[P01(in1(1),:),x2;P02(in2(1),:),x1];
%% 搜索最优个体适应值
fmaa=[fma1,fma2];
fma=max(fmaa);
in=find(fma==fmaa);
fmi1=min(fitne1);
fmi2=min(fitne2);
fav=mean(fitne);
BINDEX1=strfind(fitne1',fma1);
BINDEX2=strfind(fitne2',fma2);
WINDEX1=strfind(fitne1',fmi1);
WINDEX2=strfind(fitne2',fmi2);
Bestin1=P01(BINDEX1,:);
Bestin2=P02(BINDEX2,:);
CURRENTBEST1{1,1}=Bestin1;
CURRENTBEST2{1,1}=Bestin2;
while t<T
t=t+1;
P011=selectga(P01,POPSIZE,1);
P012=crossga(P011,POPSIZE,PC,1);
P013=uniformMutate(P012,bound,PM);
P021=selectga(P02,POPSIZE,1);
P022=crossga(P021,POPSIZE,PC,1);
P023=uniformMutate(P022,bound,PM);
[P01,x2]=gafit(P01,P02,POPSIZE,1);
[P02,X1]=gafit(P02,P01,POPSIZE,1);
fitne1=P01(:,2);
fitne2=P02(:,2);
fitne=[fitne1,fitne2];
fma1=max(fitne1);
fma2=max(fitne2);
in1=find(fma1==fitne1);
in2=find(fma2==fitne2);
best{t,1}=[P01(in1(1,1),:),x2(1,1);P02(in2(1,1),:),x1(1,1)];
fmaa=[fma1,fma2];
fma=max(fmaa);
in=find(fma==fmaa);
fmi1=min(fitne1);
fmi2=min(fitne2);
fav=mean(fitne);
BINDEX1=strfind(fitne1',fma1);
BINDEX2=strfind(fitne2',fma2);
WINDEX1=strfind(fitne1',fmi1);
WINDEX2=strfind(fitne2',fmi2);
Bestinl=P01(BINDEX1(1,1),:);
Bestin2=P02(BINDEX2(1,1),:);
if Bestinl(:,2)>CURRENTBEST1{t-1, 1}(:,2)
CURRENTBEST1{t,1}=Bestinl;
else P01(WINDEX1(1, 1),:)=CURRENTBEST1{t-1,1};
CURRENTBEST1{t,1}=CURRENTBEST1{t-1,1};
end
if Bestin2(:,2)>CURRENTBEST2{t-1, 1}(:,2)
CURRENTBEST2{t,1}=Bestin2;
else P02(WINDEX2(1, 1),:)=CURRENTBEST2{t-1,1};
CURRENTBEST2{t,1}=CURRENTBEST2{t-1,1};
end
end
[P013, x2]=gafit(P013,P023,POPSIZE,1);
P1=P013;
[P023, x1]=gafit(P023,P013,POPSIZE,1);
PO2=P023;
best
for i=1:T
a(:,:,i)=best{i,1};
end
阿里matlab建模师
- 粉丝: 4306
- 资源: 2846
最新资源
- HTML5实现好看的网络视频分享平台网站模板.zip
- HTML5实现好看的小清新电商家具商城模板.zip
- HTML5实现好看的物流运输公司网站模板.zip
- HTML5实现好看的舞蹈学院官网网站模板.zip
- HTML5实现好看的新闻资讯播报网站模板.zip
- HTML5实现好看的新闻杂志资讯网站模板.zip
- HTML5实现好看的新车销售平台网站模板.zip
- HTML5实现好看的牙齿护理医疗网站模板.zip
- HTML5实现好看的医疗科技公司网站模板.zip
- HTML5实现好看的眼睛护理医院网站模板.zip
- 基于单片机的指纹考勤机系统设计.zip
- 可以直接复制网页内容的工具
- 前端开发中的HTML和CSS圣诞树绘制方法
- 基于单片机的厨房安全检测系统.zip
- 车灯后罩冲压机工程图机械结构设计图纸和其它技术资料和技术方案非常好100%好用.zip
- IMDB前250电视剧数据集,电视剧排行数据,电视剧数据集
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论18