资源描述:
《人工智能典型例题matlab仿真实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1.函数优化该二元6次函数式一个多峰函数,共有6个极值,其中有两个极值点对应的函数取值为最小值。试求解函数的极值点。(1)设计思路本题采用遗传算法,遗传算法搜索最优解的方法是模仿生物的进化过程,遗传算法主要使用选择算子、交叉算子与变异算子来模拟生物进化,从而产生一代又一代的种群。遗传算法具有通用、并行、稳健、简单与全局优化能力强等突出优点,适用于解决复杂、困难的全局优化问题。(2)程序流程图(3)实验程序functionobjV=objectFunction(pop)m=size(pop,1);fori=1:
2、mobjV(i,1)=4*pop(i,1)^2-2.1*pop(i,1)^4+(1/3)*pop(i,1)^6+pop(i,1)*pop(i,2)-4*pop(i,2)^2+4*pop(i,2)^4;end%%初始化clc;clear;pc=0.7;%交叉率pm=0.05;%变异率NIND=20;%个体数目MAXGEN=1000;%最大遗传代数NVAR=2;%变量维数PRECI=40;%变量二进制数GGAP=0.9;%代沟trace_min=zeros(MAXGEN,1);%每代极小值trace_max=ze
3、ros(MAXGEN,1);%每代极大值%%种群初始化FieldD=[rep(PRECI,[1,NVAR]);[-1,-1;1,1];rep([1;0;1;1],[1,NVAR])];%区域扫描Chrom=crtbp(NIND,NVAR*PRECI);%创建初始种群%%计算第0代函数适应度,寻找最优个体gen=0;pop=bs2rv(Chrom,FieldD);%将二进制初始种群转化为十进制objV=objectFunction(pop);%计算函数适应度minY=min(objV);%函数适应度最小值即函数
4、最小值maxY=max(objV);POP(:,:,gen+1)=pop(1:end,1:end);%%进化过程whilegen5、算子代目标函数值[Chrom,objV]=reins(Chrom,SelCh,1,1,objV,objVSel);gen=gen+1;ifminY>min(objV)%寻找当前极小值minY=min(objV);[y,i]=min(objV);x=bs2rv(Chrom,FieldD);xmin(1,:)=x(i,:);disp(['对应最小自变量取值:',num2str(x(i,:))])%输出最优个体disp(['对应最小值:',num2str(y)])%输出最优个体endifmaxY6、%寻找当前极大值maxY=max(objV);[Y,I]=max(objV);X=bs2rv(Chrom,FieldD);xmax(1,:)=X(I,:);disp(['对应最大自变量取值:',num2str(X(I,:))])%输出最优个体disp(['对应最大值:',num2str(Y)])%输出最优个体endtrace_min(gen,1)=minY;%保存当前极小值trace_max(gen,1)=maxY;%保存当前极大值end%%画图figure(1)%画进化过程图plot(1:gen,trace
7、_min(:,1));holdonplot(1:gen,-1.031570364,'r-');%目标函数在区间内最小值figure(2)plot(1:gen,trace_max(:,1));holdonplot(1:gen,3.2333,'r-');%目标函数在区间内最大值(4)运行结果优化函数如图所示:由优化函数图可知,此函数存在2个极小值点,4个极大值点。4个最大值为:对应x1,x2最大自变量取值:-0.99543-0.91298对应函数最大值:2.5798对应x1,x2最大自变量取值:-0.92829-
8、0.99328对应函数最大值:2.97对应x1,x2最大自变量取值:-0.989-0.99817对应函数最大值:3.1879对应x1,x2最大自变量取值:-0.99168-0.99925对应函数最大值:3.20472个最小值为:对应x1,x2最小自变量取值:-0.0447820.76447对应函数最小值:-0.99772对应x1,x2最小自变量取值:0.11984-0.66623对应函数最小值:-1