%主程序 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
![avatar](https://profile-avatar.csdnimg.cn/2588731bac124b388c4a87fce0b1493c_m0_53407570.jpg!1)
![avatar-vip](https://csdnimg.cn/release/downloadcmsfe/public/img/user-vip.1c89f3c5.png)
阿里matlab建模师
- 粉丝: 4972
- 资源: 2903
最新资源
- 模拟芯片行业分析合集2022
- 办公软件+待办事项+桌面挂件+桌面小工具
- 环形放大器Ring Amplifier的低功耗性能及其在流水线ADC中的实际应用(适用于MDAC,前仿真无版图技术),Ring Amplifier环形放大器MDAC的低功耗优势及其在流水线ADC中的应
- 多传感器与多源信息融合技术在目标识别中的应用:探究DS融合框架与贝叶斯融合框架对于人类与车辆的识别实践,两种目标识别框架下的多传感器与多源信息融合技术探讨,多传感器融合 多源信息融合识别 两个传感器
- 台达PLC高效智能追剪系统:自动计算编码器追踪送料,精准稳定运行两年的程序化解决方案,“台达PLC智能化追剪控制程序:编码器追踪、自动计算与成熟可靠的算法”,台达PLC追剪追剪追剪加+剪切 ,编码器追
- 电子工程领域半波整流器电路设计及应用介绍
- 《深入解析三菱PLC Q系列QD77MS16六轴编程学习手册:思路清晰、注解详实的编程指南》,《三菱PLC Q系列之QD77MS16六轴编程解析:PLC注解详实、思路清晰,通俗易懂学习范本》,三菱pl
- 模拟芯片行业分析合集2021
- 零基础入门转录组下游分析-机器学习算法之lasso(筛选特征基因)教程配套资源
- 三菱FX3U结构化编程详解:涵盖ST、FBD与FB块,变频器通信及伺服动作控制实践指南,三菱FX3U结构化编程详解:ST、FBD与FB块应用,变频器通信与伺服控制实践指南,三菱FX3U的结构化编程编成
- 运算放大器电路设计中的反相放大器分析与应用
- 异步电机与感应电机的恒压频比VF控制:原理、调制方式与参考文献解析,异步电机与感应电机的恒压频比VF控制:核心原理、调制方式与参考文献,异步电机 感应电机恒压频比控制VF 恒压频比控制的核心就
- DeepSeek小白使用指南,99%+的人都不知道的使用技巧
- 伺服系统机械特性分析(含双惯性系统)的频率特性辨识与Matlab仿真研究,基于Matlab的伺服系统机械特性与频率特性分析仿真研究,涵盖开闭环频率特性辨识与双惯性系统参数计算 ,伺服系统机械特性分析频
- 电子工程中反相求和放大器的工作原理和技术分析
- SMART200模拟量输出功能库:斜坡阶梯时间比例输出,助力工艺优化与节能,SMART200模拟量输出斜坡功能库文件:阶梯时间比例输出,优化工艺扰动,节约编程时间,适用于多种工程应用,SMART200
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
评论18