⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 a6.m

📁 遗传算法工具箱
💻 M
字号:
% Define GA Parameters
GGAP = 0.8; % Generation gap
XOVR = 1; % Crossover rate
NVAR = 45; % No. of variables
MUTR = 1/NVAR; % Mutation rate
MAXGEN = 200; % Maximum no. of generations
INSR = 0.9; % Insertion rate
SUBPOP =12; % No. of subpopulations
MIGR = 0.2; % Migration rate
MIGGEN = 20; % No. of gens / migration
NIND =20;    % No. of individuals / subpop
SEL_F = 'sus';     % 选择函数名
XOV_F ='recdis';   % 重组函数名
MUT_F ='mutbga';   % 变异函数名
OBJ_F ='objlinq';  % 目标函数名
FieldDR=feval(OBJ_F,[],1);
Chrom=crtrp(SUBPOP*NIND,FieldDR);% Fitness assignment to whole population
gen = 0; % counter
trace=zeros(MAXGEN,2);%遗传算法性能跟踪
ObjV=feval(OBJ_F,Chrom); %computer 
% Generational loop
while gen < MAXGEN,
trace(gen+1,1)=min(ObjV);trace(gen+1,2)=mean(ObjV);%最优解和平均值,I为序号
FitnV = ranking(ObjV,[2,0],SUBPOP);
SelCh = select(SEL_F,Chrom,FitnV, GGAP,SUBPOP);% Select individuals from population
SelCh=recombin(XOV_F, SelCh,XOVR,SUBPOP);% Recombine selected individuals
SelCh = mutate(MUT_F,SelCh,FieldDR,[MUTR],SUBPOP);% Mutate offspring
ObjVOff=feval(OBJ_F,SelCh);
% Insert best offspring replacing worst parents
[Chrom, ObjV] = reins(Chrom, SelCh, SUBPOP,[1 INSR], ObjV, ObjVOff);
gen=gen+1;% Increment counter
end
[Y,I]=min(ObjV)
subplot(211);plot(Chrom(I,:));hold on;plot(Chrom(I,:),'.');grid  %最优控制向量分布图
legend('最优控制向量')
subplot(212);plot(trace(:,1));hold on;plot(trace(:,2),'-.');grid%遗传算法性能跟踪分布图
legend('解的变化','种群均值的变化');xlabel('迭代次数')

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -