📄 sexual_reproduction.asv
字号:
% Sexual_Reproduction function
clear;clc;
GAInitial;
fi(1,BOAT_NUM) = 0;
sumFitnessAfter30(1,MAX_GEN) = 0;
averageFitnessAfter30(1,MAX_GEN) = 0;
% maxFitness(1,Run_Time) = 0;
% averageFitness(1,Run_Time) = 0;
for q = 1:Run_Time
GenerateBoat;
for k = 1:MAX_GEN
As_Tournament_Best;
E = max;
As_Tournament_Best;
F = max;
Crossover;
S_Mutation;
As_Tournament_Worst;
G = min;
As_Tournament_Worst;
H = min;
for i = 1:ROWER
boat(G,i) = boat(E,i);
end
for i = 1:ROWER
boat(H,i) = boat(F,i);
end
for n = 1:BOAT_NUM
fi(1,n) = Fitness(n,ROWER,boat);
end
if k == MAX_GEN
for n = 1:BOAT_NUM
fi(1,n) = Fitness(n,ROWER,boat);
end
maxFitnessEachRun(1,q) = fi(1,1);
for n = 2:BOAT_NUM
if maxFitnessEachRun(1,q) < fi(1,n)
maxFitnessEachRun(1,q) = fi(1,n);
end
end
end
end
for n = 1:MAX_GEN
sumFitnessAfter30(1,n) = sumFitnessEachGeneration(1,n) + sumFitnessAfter30(1,n);
end
end
for n = 1:MAX_GEN
averageFitnessAfter30(1,n) = sumFitnessAfter30(1,n) / (BOAT_NUM * Run_Time);
end
b = 1:MAX_GEN;
figure,plot(b,averageFitnessAfter30);
xlabel('generation');
ylabel('the average fitness');
% a = 1:Run_Time;
% plot(a,maxFitness);
% xlabel('running times');
% ylabel('the best fitness');
% b = 1:Run_Time;
% figure,plot(b,averageFitness);
% xlabel('running times');
% ylabel('the average fitness');
clear n;
clear b;
clear m;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -