📄 gademo1eeval.m
字号:
%编写目标函数
function [sol,eval] =gaDemo1Eeval(sol,options)
x=sol(1);
eval=x*sin(10*pi*x)+10;
%参数说明
%eval:个体的适应度;
%sol:当前个体,n+1个元素的行向量。
%遗传算法求最大值
clc
fplot('x*sin(10*pi*x)+10',[-1 2])
% 生成初始种群,大小为10
initPop=initializega(10,[-1 2],'gaDemo1eeval1');
plot (initPop(:,1),initPop(:,2),'b*')
% 调用遗传函数
% 1次遗传迭代
[x,endPop] = ga([-1 2],'gaDemo1eeval1',[],initPop,[1e-5 1 1],'maxGenTerm',1,...
'normGeomSelect',[0.08],['arithXover'],[2 0], 'nonUnifMutation',[4 1 3]);
plot(endPop(:,1),endPop(:,2),'bo')
% 25次遗传迭代
[x,endPop,bpop,trace]=ga([-1 2],'gaDemo1eeval1',[],initPop, [1e-6 1 1],'maxGenTerm',25,...
'normGeomSelect',[0.08], ['arithXover'],[2 0],'nonUnifMutation',[4 25 3]);
% 120次遗传迭代
[x,endPop,bpop,trace]=ga([-1 2],'gaDemo1eeval1',[],initPop, [1e-6 1 1],'maxGenTerm',120,...
'normGeomSelect',[0.08], ['arithXover'],[2 0],'nonUnifMutation',[4 120 3]);
plot (endPop(:,1),endPop(:,2),'y*')
figure(2)
plot(trace(:,1),trace(:,3),'y-')
hold on
plot(trace(:,1),trace(:,2),'r-')
xlabel('Generation'); ylabel('Fittness');
legend('解的变化','种群平均值的变化');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -