function[x,y,max_value]=GA
global M T Gen NextGen
pr=initialization();%初始化遗传算法参数
[Gen,NextGen]=initGeneration(pr);%产生父代及子代
for i=1:T
[Fitness,x1,x2]=CalculateFitness(pr);
[OrderFitness,Index]=sort(Fitness);%将适应度从小到大排序
MaxFitness=OrderFitness(M);%找出适应度的最大值
AvgFitness=mean(Fitness);%求出适应度的平均值
Diff=MaxFitness-AvgFitness;
Best_x1=x1(Index(M));
Best_x2=x2(Index(M));
BetterFit=SaveElitist(Index,pr);%保护精英个体
Select(Fitness,pr);%选择操作
Cross(OrderFitness,AvgFitness,Diff,pr);%交叉操作
Mutation(OrderFitness,MaxFitness,AvgFitness,Diff,pr);%变异操作
RestoreElitist(BetterFit,pr);%恢复精英个体
Gen=NextGen;%产生新一代
end
max_value=MaxFitness%输出结果
x=Best_x1
y=Best_x2