1 / 6
文档名称:

遗传算法求解函数最大值.docx

格式:docx   大小:96KB   页数:6页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

遗传算法求解函数最大值.docx

上传人:changjinlai 2019/2/22 文件大小:96 KB

下载得到文件列表

遗传算法求解函数最大值.docx

文档介绍

文档介绍:S311067019李麒星用遗传算法通过复制交叉过程循环求解函数f(x)=x^2在[0,31]区间上的最大值点x。代码如下:usingSystem;;;;namespaceProject2{classClass1{publicintff(inta){returna*a;}publicintMax(int[]args){ints=0;intm=args[0];for(inti=0;i<;i++){if(m<args[i]){m=args[i];s=i;}}returns;}publicintMin(int[]args){ints=0;intm=args[0];for(inti=0;i<;i++){if(m>args[i]){m=args[i];s=i;}}returns;}staticvoidMain(String[]args)S311067019李麒星{string[]A=newstring[4];A[0]="01101";A[1]="11000";A[2]="01000";A[3]="10011";Class1cl=newClass1();Randoma=newRandom();int[]x=newint[4];//存储x值float[]C=newfloat[4];//存储每个适配值所占比例int[]B=newint[4];//存储x对应的y值intk1=0;//交叉时所需的随机整数范围在0-4之间intk2=0;//交叉时所需的随机整数范围在0-4之间intmax=0;//适配值总最大的值在x中的下标intsum=0;//所有适配值对应的函数值的总和intmin=0;//适配值总最小的值在x中的下标intt1=0;//初始最大值intave1=0;//初始平均值intt2=0;//每次循环得出的最大值intave2=0;//每次循环得出的平均值intsmax=20;//循环最大次数for(intl=1;l<smax;l++){for(inti=0;i<4;i++){x[i]=(A[i],2);//x[i]=(A[i]);//怎么把二进制数转化为十进制数}for(inti=0;i<4;i++){B[i]=(x[i]);//求出f(x)=x^2的值存入B中sum+=B[i];}for(inti=0;i<4;i++){C[i]=B[i]/sum;}max=(x);min=(x);t2=x[max];//用来记录每次循环的最大值ave2=sum/4;//用来记录每次循环的平均值S311067019李麒星if(t2<t1&&ave2<ave1){break;}else{t1=t2;ave1=ave2;}for(inti=0;i<4;i++)//输出每次循环的结果{(x[i]);//('');}("\n");//换行A[min]=A[max];//适配值较小的被淘汰,由最大的取代k1=a.