《2022年遗传算法求函数极大值.docx》由会员分享,可在线阅读,更多相关《2022年遗传算法求函数极大值.docx(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选学习资料 - - - - - - - - - 精品资料 欢迎下载遗传算法求函数最大值一、 题目:matlab 实现 查找 fx=x 2,当 x 在 031 区间的最大值;二、 源程序:%遗传算法求解函数最大值%本程序用到了英国谢菲尔德高校Sheffield开发的工具箱 GATBX ,该工具箱比 matlab 自带的 GATOOL 使用更加敏捷,但在编写程序方面略微复杂一些Close all; Clear all; figure1; fplotvariable*variable,0,31; %画出函数曲线%以下定义遗传算法参数GTSM=40; %定义个体数目ZDYCDS=20; %定义最大遗
2、传代数EJZWS=5; %定义变量的二进制位数DG=0.9; %定义代沟trace=zeros2, ZDYCDS; %最优结果的初始值名师归纳总结 - - - - - - -第 1 页,共 4 页精选学习资料 - - - - - - - - - 精品资料 欢迎下载FieldD=5;-1;2;1;0;1;1; %定义区域描述器的各个参数%以下为遗传算法基本操作部分,包括创建初始种群、复制、交叉和 变异Chrom=crtbpGTSM, EJZWS; %创建初始种群,即生成给定 规模的二进制种群和结构gen=0; %定义代数计数器初始值variable=bs2rvChrom, FieldD; 进制转
3、换%对生成的初始种群进行十ObjV=variable*variable; %运算目标函数值fx=x2 while genZDYCDS %进行循环掌握, 当当前代数小于定义的最大遗传代数时, 连续循环,直至代数等于最大遗传代数 FitnV=ranking-ObjV; %安排适应度值SelCh=selectsus, Chrom, FitnV, DG; 们的适配值进行复制 SelCh=recombinxovsp, SelCh, 0.7; %挑选,即对个体根据他%交叉,即第一将复制产生的匹配池中的成员随机两两匹配,再进行交叉繁衍SelCh=mutSelCh; %变异,以一个很小的概率随机地转变一个个体
4、串位的值换值variable=bs2rvSelCh, FieldD; %子代个体的十进制转ObjVSel=variable*variable; %运算子代的目标函数名师归纳总结 - - - - - - -第 2 页,共 4 页精选学习资料 - - - - - - - - - 精品资料 欢迎下载Chrom ObjV=reinsChrom, SelCh, 1, 1, ObjV, ObjVSel; %再插入子代的新种群,其中Chrom 为包含当前种群个体的矩阵,SelCh为包好当前种群后代的矩阵variable=bs2rvChrom, FieldD; %十进制转换gen=gen+1; %代数计数器增
5、加%输出最优解及其序号,并在目标函数图像中标出,Y 为最优解 ,I为种群的%序号Y, I=maxObjV;hold on; plotvariableI, Y, bo; trace1, gen=maxObjV; %求出其最大目标函数值%遗传算法性能跟踪trace2, gen=sumObjV/lengthObjV; end %以下为结果显示部分,通过上面运算出的数值进行绘图variable=bs2rvChrom, FieldD; hold on, grid; %最优个体进行十进制转换plotvariable,ObjV,b*; %将结果画出三、运行结果:名师归纳总结 - - - - - - -第 3 页,共 4 页精选学习资料 - - - - - - - - - 精品资料 欢迎下载由图可见该函数为单调递增函数,即当 fx max=961;X=31 时,该取得最大值名师归纳总结 - - - - - - -第 4 页,共 4 页