function trace = GA_P1( )
clc
clear all
close all
load('raw_data.mat');
%% 定义遗传算法参数
X=39; %角度1
Y=20 ; %角度2
N=32; %天线数量
NIND=10; %个体数目
MAXGEN=5; %最大遗传代数
PRECI=4; %变量的N进制位数
GGAP=0.7; %代沟
px=0.9; %交叉概率
pm=0.01; %变异概率
trace=zeros(5,MAXGEN); %寻优结果的初始值
Chrom=crtbp_yaoqiu3(NIND); %初始种群
%% 优化
gen=0; %代计数器
% ObjV=Objv_P_gene(Chrom,X,Y,N); %计算目标函数值
ObjV=target1(Chrom); %计算目标函数值
while gen<MAXGEN
FitnV=ranking(ObjV); %分配适应度值
SelCh=select('sus',Chrom,FitnV,GGAP); %选择
SelCh=recombin('xovsp',SelCh,px); %重组
SelCh=mut(SelCh,pm,[20 20 20 20]); %变异
% ObjVSel=Objv_P_gene(SelCh,X,Y,N); %计算子代的目标函数值
ObjVSel=target1(SelCh); %计算子代的目标函数值
[Chrom,ObjV]=reins(Chrom,SelCh,1,[1,0.5],ObjV,ObjVSel); %重插入子代到父代,得到新种群
gen=gen+1; %代计数器增加
%获取每代的最优解及其序号,Y为最优解,I为个体的序号
[Zhi,I]=min(ObjV);
trace(1,gen)=Zhi; %记下每代的最优值
trace(2,gen)=Chrom(I,1);
trace(3,gen)=Chrom(I,2);
trace(4,gen)=Chrom(I,3);
trace(5,gen)=Chrom(I,4);%记下每代的最优值
end
% plot(trace(1,:),trace(2,:),'bo'); %画出每代的最优点
% grid on;
% plot(X,ObjV,'b*'); %画出最后一代的种群
% hold off
% %% 画进化图
% figure(2);
% plot(1:MAXGEN,trace(2,:));
% grid on
% xlabel('遗传代数')
% ylabel('解的变化')
% title('进化过程')
% bestY=trace(2,end);
% bestX=trace(1,end);
% fprintf(['最优解:\nX=',num2str(bestX),'\nY=',num2str(bestY),'\n'])
end