sexual_reproduction.asv

来自「遗传算法」· ASV 代码 · 共 73 行

ASV
73
字号
% Sexual_Reproduction function
clear;clc;
GAInitial;

fi(1,BOAT_NUM) = 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
           % averageFitness(1,q) = sum(fi) / BOAT_NUM;
            sumFitnessEachGeneration(1,k) = sum(fi);
            
 %       if k == MAX_GEN
 %           for n = 1:BOAT_NUM
  %              fi(1,n) = Fitness(n,ROWER,boat);
  %          end
  %          averageFitness(1,q) = sum(fi) / BOAT_NUM;
  %          maxFitness(1,q) = fi(1,1);
   %         for n = 2:BOAT_NUM
   %             if maxFitness(1,q) < fi(1,n)
    %                maxFitness(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 + =
减小字号Ctrl + -
显示快捷键?