%% 多种群遗传算法
clear;
clc
close all
NIND=40; %个体数目
NVAR=2; %变量的维数
PRECI=20; %变量的二进制位数
GGAP=0.9; %代沟
MP=10; %种群数目
FieldD=[rep(PRECI,[1,NVAR]);[-3,4.1;12.1,5.8];rep([1;0;1;1],[1,NVAR])]; %译码矩阵
for i=1:MP
Chrom{i}=crtbp(NIND, NVAR*PRECI); %创建初始种群
end
pc=0.7+(0.9-0.7)*rand(MP,1); %在【0.7,0.9】范围内随机产生交叉概率
pm=0.001+(0.05-0.001)*rand(MP,1); %在【0.001,0.05】范围内随机产生变异概率
gen=0; %初始遗传代数
gen0=0; %初始保持代数
MAXGEN=10; %最优个体最少保持代数
maxY=0; %最优值
for i=1:MP
ObjV{i}=ObjectFunction(bs2rv(Chrom{i}, FieldD));%计算各初始种群个体的目标函数值
end
MaxObjV=zeros(MP,1); %记录精华种群
MaxChrom=zeros(MP,PRECI*NVAR); %记录精华种群的编码
while gen0<=MAXGEN
gen=gen+1; %遗传代数加1
for i=1:MP
FitnV{i}=ranking(-ObjV{i}); % 各种群的适应度
SelCh{i}=select('sus', Chrom{i}, FitnV{i},GGAP); % 选择操作
SelCh{i}=recombin('xovsp',SelCh{i}, pc(i)); % 交叉操作
SelCh{i}=mut(SelCh{i},pm(i)); % 变异操作
ObjVSel=ObjectFunction(bs2rv(SelCh{i}, FieldD)); % 计算子代目标函数值
[Chrom{i},ObjV{i}]=reins(Chrom{i},SelCh{i},1,1,ObjV{i},ObjVSel); %重插入操作
end
[Chrom,ObjV]=immigrant(Chrom,ObjV); % 移民操作
[MaxObjV,MaxChrom]=EliteInduvidual(Chrom,ObjV,MaxObjV,MaxChrom); % 人工选择精华种群
YY(gen)=max(MaxObjV); %找出精华种群中最优的个体
if YY(gen)>maxY %判断当前优化值是否与前一次优化值相同
maxY=YY(gen); %更新最优值
gen0=0;
else
gen0=gen0+1; %最优值保持次数加1
end
end
%% 进化过程图
plot(1:gen,YY)
xlabel('进化代数')
ylabel('最优解变化')
title('进化过程')
xlim([1,gen])
%% 输出最优解
[Y,I]=max(MaxObjV); %找出精华种群中最优的个体
X=(bs2rv(MaxChrom(I,:), FieldD)); %最优个体的解码解
disp(['最优值为:',num2str(Y)])
disp(['对应的自变量取值:',num2str(X)])

且行好事莫问前程
- 粉丝: 2w+
最新资源
- 基于ROS的TEB局部路径规划算法仿真包_包含Stage和Gazebo双仿真环境下的TEB算法实现_支持阿克曼转向模型与差速底盘运动学验证_提供完整仿真场景与可视化工具_用于移动机.zip
- 微信小程序商城,微信小程序微店.zip
- 使用Python实现磁场定向控制算法的仿真模拟项目_磁场定向控制FOC_电机驱动_无刷直流电机BLDC_永磁同步电机PMSM_空间矢量调制SVPWM_Clarke变换_Park变换.zip
- 微信小程序日历.zip
- 微信小程序 & 个人博客 & WordPress & WordPress REST API.zip
- 垃圾分类微信小程序.zip
- 微信小程序解密并反编译.zip
- 微信小程序--我来投票.zip
- 淘宝客项目,支持App,微信小程序,QQ小程序(1).zip
- 商城、商店批发或零售,pc管理端 + 微信小程序 + 后端服务.zip
- 微慕小程序开源版-WordPress版微信小程序.zip
- wxSearch-微信小程序优雅的搜索框.zip
- 微信小程序实现watch监听.zip
- 微信小程序中的股票分时图、K线图.zip
- 咩咩单词:简易背单词的微信小程序.zip
- 针对微信小程序使用的protoBuffer库.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


