2022年遗传算法及蚂蚁算法作业 .pdf
《2022年遗传算法及蚂蚁算法作业 .pdf》由会员分享,可在线阅读,更多相关《2022年遗传算法及蚂蚁算法作业 .pdf(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、题目 1:z=2-exp-(x2+y2), x,y-5,+5,求函数最小值(1)用遗传算法来做:第一步:确定决策变量及其约束条件s.t. -5=x=5 第二步:建立优化模型y.2)+exp(-(x.2-(2)(maxxf第三步:确定编码方法,用长度为50 位的二进制编码串来表示决策变量 x 第四步:确定解码方法yx12)5(550第五步:确定个体评价方法个体的适应度取为每次迭代的最小值的绝对值加上目标函数值,即)(|)(min|)(xfxfxF第六步:确定参数本题种群规模n=30,迭代次数ger=200,交叉概率pc=0.65,变异概率pm=0.05 代码:clear all; close a
2、ll; clc; tic; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 22 页 - - - - - - - - - n=30; ger=200; pc=0.65; pm=0.05; % 生成初始种群v=init_population(n,50); N,L=size(v); disp(sprintf(Number of generations:%d,ger); disp(sprintf(Population size:%d,N); disp(sprintf(Cross
3、over probability:%.3f,pc); disp(sprintf(Mutation probability:%.3f,pm); % 待优化问题xmin=-5; xmax=5; ymin=-5; ymax=5; f=-(2-exp(-(x.2+y.2); x,y=meshgrid(xmin:0.1:xmax,ymin:0.1:ymax); vxp=x; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 22 页 - - - - - - - - - vyp=y;
4、vzp=eval(f); figure(1); mesh(vxp,vyp,-vzp); hold on; grid on; % 计算适应度,并画出初始种群图形x=decode(v(:,1:25),xmin,xmax); y=decode(v(:,26:50),ymin,ymax); fit=eval(f); plot3(x,y,-fit,k*); title(a)染色体的初始位置 ); xlabel(x); ylabel(y); zlabel(f(x,y); % 迭代前的初始化vmfit=; vx=; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - -
5、 - - - - - 名师精心整理 - - - - - - - 第 3 页,共 22 页 - - - - - - - - - it=1; % 迭代计数器% 开始进化while it=ger % Reproduction(Bi-classist Selection) vtemp=roulette(v,fit); % Crossover v=crossover(vtemp,pc); % Mutation M=rand(N,L)=pm; %M(1,:)=zeros(1,L); v=v-2.*(v.*M)+M; % Results x=decode(v(:,1:25),xmin,xmax); y=de
6、code(v(:,26:50),ymin,ymax); fit=eval(f); sol,indb=max(fit); % 每次迭代中最优目标函数值v(1,:)=v(indb,:); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 22 页 - - - - - - - - - fit_mean=mean(fit); % 每次迭代中目标函数值的平均值vx=vx sol; vmfit=vmfit fit_mean; it=it+1; end % 最后结果disp(sprint
7、f(n); %空一行% 显示最优解及最优值disp(sprintf(Maximum foundx,f(x):%.4f,%.4f,%.4f,x(indb),y(indb),-sol); % 图形显示最优结果figure(2); mesh(vxp,vyp,-vzp); hold on; grid on; plot3(x,y,-fit,r*); title( 染色体的最终位置 ); xlabel(x); ylabel(y); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 22
8、 页 - - - - - - - - - zlabel(f(x,y); % 图形显示最优及平均函数值变化趋势figure(3); plot(-vx); %title(最优,平均函数值变化趋势 ); xlabel(Generations); ylabel(f(x); hold on; plot(-vmfit,r); hold off; runtime=toc 运行结果: Maximum foundx,f(x):0.0033,0.0017,1.0000 (2)用蚁群算法来做代码: % Ant main program clear all; close all; clc; 名师资料总结 - - -精
9、品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 22 页 - - - - - - - - - tic; Ant=100; Ger=50; xmin=-5; xmax=5; ymin=-5; ymax=5; tcl=0.05; f=-(2-exp(-(x.2+y.2); % 待优化的目标函数x,y=meshgrid(xmin:tcl:xmax,ymin:tcl:ymax); vxp=x; vyp=y; vzp=eval(f); figure(1); mesh(vxp,vyp,-vzp); hold
10、on; % 初始化蚂蚁位置名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 22 页 - - - - - - - - - for i=1:Ant X(i,1)=(xmin+(xmax-xmin)*rand(1); X(i,2)=(ymin+(ymax-ymin)*rand(1); % T0- 信息素 ,函数值越大 ,信息素浓度越大T0(i)=exp(-(X(i,1).2+X(i,2).2)-2; end plot3(X(:,1),X(:,2),-T0,k*); hold o
11、n; grid on; title( 蚂蚁的初始分布位置 ); xlabel(x); ylabel(y); zlabel(f(x,y); % 开始寻优for i_ger=1:Ger P0=0.2; % P0- 全局转移选择因子P=0.8; % P - 信息素蒸发系数lamda=1/i_ger; % 转移步长参数T_Best(i_ger),BestIndex=max(T0); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 22 页 - - - - - - - - - fo
12、r j_g=1:Ant % 求取全局转移概率r=T0(BestIndex)-T0(j_g); Prob(i_ger,j_g)=r/T0(BestIndex); end for j_g_tr=1:Ant if Prob(i_ger,j_g_tr)P0 temp1=X(j_g_tr,1)+(2*rand(1)-1)*lamda; temp2=X(j_g_tr,2)+(2*rand(1)-1)*lamda; else temp1=X(j_g_tr,1)+(xmax-xmin)*(rand(1)-0.5); temp2=X(j_g_tr,2)+(ymax-ymin)*(rand(1)-0.5); en
13、d if temp1xmax temp1=xmax; end if temp2ymax temp2=ymax; end if -(2-exp(-(temp1.2+temp2.2)-(2-exp(-(X(j_g_tr,1).2+X(j_g_tr,2).2) X(j_g_tr,1)=temp1; X(j_g_tr,2)=temp2; end end %信息素更新for t_t=1:Ant T0(t_t)=(1-P)*T0(t_t)-(2-exp(-(X(t_t,1).2+X(t_t,2).2); end c_iter,i_iter=max(T0); maxpoint_iter=X(i_iter,1
14、),X(i_iter,2); max_local(i_ger)= -(2-exp(-(X(i_iter,1).2+X(i_iter,2).2);%将每代全局最优解存到max_global矩阵中名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 22 页 - - - - - - - - - if i_ger=2 if max_local(i_ger)max_global(i_ger-1) max_global(i_ger)=max_local(i_ger); else max
15、_global(i_ger)=max_global(i_ger-1); end else max_global(i_ger)=max_local(i_ger); end end % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % figure(2); mesh(vxp,vyp,-vzp); hold on; x=X(:,1); y=X(:,2); plot3(x,y,-eval(f),b*); hold on; grid on; title( 蚂蚁的最终分布位置 ); 名师资料总结 - - -精品资料欢迎下载 -
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年遗传算法及蚂蚁算法作业 2022 遗传 算法 蚂蚁 作业
限制150内