gademo1eeval.m

来自「这是一个人工智能方面的遗传算法工具箱包」· M 代码 · 共 36 行

M
36
字号
%编写目标函数 
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 + =
减小字号Ctrl + -
显示快捷键?