首页 > 编程知识 正文

matlab遗传算法工具箱怎么用(遗传算法工具箱使用1)

时间:2023-05-05 18:47:04 阅读:122869 作者:3817

使用谢菲尔德大学的MATLAB遗传算法工具箱

1 .简单项函数优化:计算函数最小值f(x) =sin(10*pi*x)/x , x范围[1,2]

clcclear allclose all%%为函数图figure(1); 保持接通; lb=1; ub=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; %计算目标函数值whilegenmaxgenfitnv=秩(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为个体序号[Y,I]=min(objv ); 跟踪(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,跟踪) 2, ); grid onxlabel (遗传代数) (ylabel )解变化) (title ) (进化过程) ) bestY=trace(2) 2,end ); bestx=跟踪(1,end ); frintf([最佳解:nX=',num2str(bestx ),'nY=',num2str(bestx ),'n'] )2.运行结果:

http://www.Sina.com/http://www.Sina.com /

http://www.Sina.com/http://www.Sina.com /

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。