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

📄 a2.m

📁 遗传算法工具箱
💻 M
字号:
% 定义遗传算法参数
NIND = 40;         % 个体数目(Number of individuals)
MAXGEN =100;       % 最大遗传代数(Maximum number  of generations)
NVAR = 20;       	% 变量的维数
PRECI = 20;      	% 变量的二进制位数(Precision of variables)
GGAP = 0.9;       	% 代沟(Generation gap)
trace=zeros (MAXGEN,2);
% 建立区域描述器(Build field descriptor)
FieldD = [rep([PRECI],[1,NVAR]);rep([-512;512],[1,NVAR]); rep([1;0;1;1],[1,NVAR])];
Chrom = crtbp (NIND, NVAR*PRECI);      	% 创建初始种群
gen = 0;                                % 代计数器
ObjV = objfun1(bs2rv (Chrom,FieldD));   % 计算初始种群个体的目标函数值
while gen < MAXGEN,                    	% 迭代
FitnV = ranking (ObjV);                 	% 分配适应度值(Assign fitness values)
SelCh = select ('sus', Chrom, FitnV, GGAP); 	% 选择 
SelCh = recombin ('xovsp',SelCh,0.7);       	% 重组 
SelCh = mut (SelCh);                   	        % 变异
ObjVSel = objfun1 (bs2rv (SelCh,FieldD));  	    % 计算子代目标函数值
[Chrom ObjV]=reins (Chrom,SelCh,1,1,ObjV,ObjVSel);  % 重插入
gen = gen+1;                           	% 代计数器增加
% 输出最优解及其对应的20个自变量的十进制值,Y为最优解,I为种群的序号
trace (gen,1)=min (ObjV);                % 遗传算法性能跟踪
trace (gen,2)=sum (ObjV)/length (ObjV); 
end
plot (trace (:,1));hold on;
plot (trace (:,2),'-.');grid;
legend ('种群均值的变化','解的变化')

⌨️ 快捷键说明

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