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

📄 a1.asv

📁 遗传算法工具箱
💻 ASV
字号:
figure(1);
fplot ('variable.*sin (10*pi*variable)+2.0',[-1,2]);  %画出函数曲线
% 定义遗传算法参数
NIND = 40;       % 个体数目(Number of individuals)
MAXGEN = 5;     % 最大遗传代数(Maximum number  of generations)
PRECI = 20;      % 变量的二进制位数(Precision of variables)
GGAP = 0.9;      % 代沟(Generation gap)
trace=zeros (2, MAXGEN);                	% 寻优结果的初始值
FieldD = [20;-1;2;1;0;1;1];                 % 区域描述器(Build field descriptor)
Chrom = crtbp(NIND, PRECI);             	% 初始种群
gen = 0;                               	    % 代计数器
variable=bs2rv(Chrom,FieldD);              	% 计算初始种群的十进制转换
ObjV= variable.*sin (10*pi*variable)+2.0;  % 计算目标函数值
hold on
plot(variable,ObjV,'*')
while gen < MAXGEN,    
FitnV = ranking (-ObjV);                	% 分配适应度值(Assign fitness values)
SelCh = select ('sus', Chrom, FitnV, GGAP);  	% 选择
SelCh = recombin ('xovsp',SelCh,0.7);       % 重组
SelCh = mut(SelCh);                     	% 变异
variable=bs2rv(SelCh,FieldD);             	% 子代个体的十进制转换
ObjVSel =variable.*sin(10*pi*variable)+2.0; 		% 计算子代的目标函数值
[Chrom ObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel);   % 重插入子代的新种群
gen = gen+1;                               	% 代计数器增加
% 输出最优解及其序号,并在目标函数图象中标出,Y为最优解,I为种群的序号
[Y,I]=max(ObjV),hold on;
plot(variable(I),Y,'bo');
trace (1,gen)=max (ObjV);                   	%遗传算法性能跟踪
trace (2,gen)=sum (ObjV)/length (ObjV); 
end
variable=bs2rv (Chrom,FieldD);                 	%最优个体的十进制转换
hold on,grid; 
plot(variable',ObjV','b*'); 
figure (2); 
plot(trace (1,:)');
hold on;
plot (trace (2,:)','-.');grid;
legend ('解的变化','种群均值的变化')

⌨️ 快捷键说明

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