云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > gatbx遗传算法工具箱之gaSVMcgForClass详细例子讲解

gatbx遗传算法工具箱之gaSVMcgForClass详细例子讲解

  • 62 次阅读
  • 3 次下载
  • 2025/5/22 23:48:00

⑤谢尔菲德遗传算法工具箱应用举例

sin(10?x),x?[1,2]的最小值。 x遗传算法参数设置 种群规模 最大遗传代数 个体长度 代沟 交叉概率 40 20 20 0.95 0.7 程序清单如下:

例1. 用遗传算法求f(x)?变异概率 0.01 clc

clear all close all

%% 画出函数图 figure(1); hold on;

lb=1;ub=2; %函数自变量范围[1,2]

ezplot('sin(10*pi*X)/X',[lb,ub]); %画出函数曲线 xlabel('自变量/X') ylabel('函数值/Y')

%% 定义遗传算法参数 NIND=40; %个体数目

MAXGEN=20; %最大遗传代数 PRECI=20; %变量的二进制位数 GGAP=0.95; %代沟 px=0.7; %交叉概率 pm=0.01; %变异概率

trace=zeros(2,MAXGEN); %寻优结果的初始值 FieldD=[PRECI;lb;ub;1;0;1;1]; %区域描述器 Chrom=crtbp(NIND,PRECI); %产生初始种群 %% 优化

gen=0; %代计数器

X=bs2rv(Chrom,FieldD); %计算初始种群的十进制转换 ObjV=sin(10*pi*X)./X; %计算目标函数值 while gen

FitnV=ranking(ObjV); %分配适应度值

SelCh=select('sus',Chrom,FitnV,GGAP); %选择 SelCh=recombin('xovsp',SelCh,px); %重组 SelCh=mut(SelCh,pm); %变异

X=bs2rv(SelCh,FieldD); %子代个体的十进制转换 ObjVSel=sin(10*pi*X)./X; %计算子代的目标函数值

[Chrom,ObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel); %重插入子代到父代,得到新种群 X=bs2rv(Chrom,FieldD); gen=gen+1; %代计数器增加

%获取每代的最优解及其序号,Y为最优解,I为个体的序号

5

[Y,I]=min(ObjV);

trace(1,gen)=X(I); %记下每代的最优值 trace(2,gen)=Y; %记下每代的最优值 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'])

例2. 用遗传算法求f(x,y)?xcos(2?y)?ysin(2?x),x,y?[?2,2]的最大值。

变异概率 0.01 遗传算法参数设置 种群规模 最大遗传代数 个体长度 代沟 交叉概率 40 50 40(2个,每个长20) 0.95 0.7 程序清单如下:

clc

clear all close all

%% 画出函数图 figure(1);

lbx=-2;ubx=2; %函数自变量x范围[-2,2] lby=-2;uby=2; %函数自变量y范围[-2,2]

ezmesh('y*sin(2*pi*x)+x*cos(2*pi*y)',[lbx,ubx,lby,uby],50); %画出函数曲线 hold on;

%% 定义遗传算法参数 NIND=40; %个体数目

MAXGEN=50; %最大遗传代数 PRECI=20; %变量的二进制位数 GGAP=0.95; %代沟 px=0.7; %交叉概率 pm=0.01; %变异概率

trace=zeros(3,MAXGEN); %寻优结果的初始值

FieldD=[PRECI PRECI;lbx lby;ubx uby;1 1;0 0;1 1;1 1]; %区域描述器 Chrom=crtbp(NIND,PRECI*2); %初始种群

6

%% 优化

gen=0; %代计数器

XY=bs2rv(Chrom,FieldD); %计算初始种群的十进制转换 X=XY(:,1);Y=XY(:,2);

ObjV=Y.*sin(2*pi*X)+X.*cos(2*pi*Y); %计算目标函数值 while gen

FitnV=ranking(-ObjV); %分配适应度值

SelCh=select('sus',Chrom,FitnV,GGAP); %选择 SelCh=recombin('xovsp',SelCh,px); %重组 SelCh=mut(SelCh,pm); %变异

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'])

⑥作业:用遗传算法求函数

2x12?x2cos2?x1?cos2?x2f(x)??20exp(?0.2)?exp()?20?2.71289

22的最小值。

7

clc

clear all close all

%% 画出函数图 figure(1);

lbx1=-2;ubx1=2; %函数自变量x1范围[-2,2] lbx2=-2;ubx2=2; %函数自变量x2范围[-2,2]

ezmesh('-20*exp(-0.2*sqrt((x1^2+x2^2)/2))-exp((cos(2*pi*x1)+cos(2*pi*x2))/2)+20+2.71289',[lbx1,ubx1,lbx2,ubx2],50); %画出函数曲线 hold on;

%% 定义遗传算法参数 NIND=40; %个体数目

MAXGEN=50; %最大遗传代数 PRECI=20; %变量的二进制位数 GGAP=0.95; %代沟 px=0.7; %交叉概率 pm=0.01; %变异概率

trace=zeros(3,MAXGEN); %寻优结果的初始值

FieldD=[PRECI PRECI;lbx lby;ubx uby;1 1;0 0;1 1;1 1]; %区域描述器 Chrom=crtbp(NIND,PRECI*2); %初始种群 %% 优化

gen=0; %代计数器

XY=bs2rv(Chrom,FieldD); %计算初始种群的十进制转换 X=XY(:,1);Y=XY(:,2);

ObjV=Y.*sin(2*pi*X)+X.*cos(2*pi*Y); %计算目标函数值 while gen

FitnV=ranking(-ObjV); %分配适应度值

SelCh=select('sus',Chrom,FitnV,GGAP); %选择 SelCh=recombin('xovsp',SelCh,px); %重组 SelCh=mut(SelCh,pm); %变异

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'); %画出最后一代的种群

8

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

⑤谢尔菲德遗传算法工具箱应用举例 sin(10?x),x?[1,2]的最小值。 x遗传算法参数设置 种群规模 最大遗传代数 个体长度 代沟 交叉概率 40 20 20 0.95 0.7 程序清单如下: 例1. 用遗传算法求f(x)?变异概率 0.01 clc clear all close all %% 画出函数图 figure(1); hold on; lb=1;ub=2; %函数自变量范围[1,2] ezplot('sin(10*pi*X)/X',[lb,ub]); %画出函数曲线 xlabel('自变量/X') ylabel('函数值/Y') %% 定义遗传算法参数 NIND=40; %个体数目 MAXGEN=20; %最大遗传代数 PRECI=20

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com