MATLAB_智能算法30个案例分析 有目录(5)
发布时间:2021-06-05
发布时间:2021-06-05
XY=bs2rv(SelCh,FieldD); %子代个体的十进制转换 X=XY(:,1);Y=XY(:,2);
ObjVSel=Y.*sin(2*pi*X)+X.*cos(2*pi*Y); %计算子代的目标函数值
[Chrom,ObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel); %重插入子代到父代,得到新种群 XY=bs2rv(Chrom,FieldD);
gen=gen+1; %代计数器增加
%获取每代的最优解及其序号,Y为最优解,I为个体的序号 [Y,I]=max(ObjV);
trace(1:2,gen)=XY(I,:); %记下每代的最优值 trace(3,gen)=Y; %记下每代的最优值 end
plot3(trace(1,:),trace(2,:),trace(3,:),'bo'); %画出每代的最优点 grid on;
plot3(XY(:,1),XY(:,2),ObjV,'bo'); %画出最后一代的种群 hold off
%% 画进化图 figure(2);
plot(1:MAXGEN,trace(3,:)); grid on
xlabel('遗传代数') ylabel('解的变化') title('进化过程') bestZ=trace(3,end); bestX=trace(1,end); bestY=trace(2,end);
fprintf(['最优解:\nX=',num2str(bestX),'\nY=',num2str(bestY),'\nZ=',num2str(bestZ), '\n'])
第 2 章 基于遗传算法和非线性规划的函数寻优算法
1.1案例背景 1.1.1 非线性规划方法
非线性规划是20世纪50年代才开始形成的一门新兴学科。1951年H.W.库恩和A.W.塔克发表的关于最优性条件(后来称为库恩.塔克条件)的论文是非线性规划正式诞生的一个重要标志。
非线性规划研究一个n元实函数在一组等式或不等式的约束条件下的极值问题,且目标函数和约束条件至少有一个是未知量的非线性函数。非线性规划的一