




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
投影寻踪蛙跳程序(c++)(Projectionpursuitleapfrogprocedure(c++))包括Vstdio.h>包括《时间。”包括《窗口。”包括<<数学。”包括<<程序。"定义1/**/试验次数ttdefineG100/*混合迭代次数*/定义P100/**/个体总数定义m10/**/族群数定义我10/**/10因此,一个族群中的个体数是定义V10/**/个体维数定义N10/**/族群内更新次数#定义最大1#定义通用12#定义GNV//双DMAX=10;/*蛙跳的最大值*///双drain=0.4;/*蛙跳的最大值*/intII、12、13、14,II,III,IA,16,17,国旗;int伟志[P];//分组时起始位置;intbanj=l;〃邻域半径;doublenongchangtgm][gn]={209.99,7264769,52.054525,3793349,905658,11799682,227.94,3757344,34595.786,1166437,18.59,1441043,16.75009,536807,85190,3938662,23.79,180016,77517.106,156845,21.41,1592999,11.232336,396336,19779,3997471,16.40,193343,74404.437,186566,49.39,1623252,27.720342,564935,42154,2885713,29.48,400505,32866.005,276422,125.23,1344442,45.918827,690033,74544,969431,44.55,587015,10735.782,177721,102.89,1425515,39.685307,619805,81930,587346,29.88,324571,13854.748,106836,51.63,767347,39.581571,285020,33270,426575,20.80,283468,14862.425,81257,49.63,600216,44.138443,429643,70154,309739,16,12,269275,12093.814,78590,36.42,626843,48.930274,415354,78681,195783,26.90,263852,17211.505,85776,34.51,585226,36.474114,434168,39537,473480,14.68,198431,16958.157,65928,46.57,224369,48.286974,161042,33019,105294,11.60,126341,4817.8871,58150,54.77,251990,56.305806,234607,2400,20767,16.43,107011,4600.8764,39027};//doublenongchang[gm][gn]={0.156,0.133,0.146,//0.157,0.123,0.123,//0.159,0,163,0.033};双TYZLGM]={0,0,0};双市泰泽=0;doubleyueshul=10;双nongchanggy[通用][肾炎];双nongchangmax[GN];双nongchangmin[GN];在E=0;〃电荷;intb=0;〃电荷:doubleD=MAX/10;/*蛙跳的最大值*/doubleC5=0.0;〃随机分组intEl=0;〃是否自适应求惯性及自学习因子doubleC3=0.0;〃惯性学习参数doubleC4=0.0;〃自学习参数doublePrecision=5;〃达优精度intE2=0;〃是否轮转1转0不转intlzcs=3;〃轮转层次;双C1—2.05;双C2=1;〃基本算法参数doubleXM;双XD;国际try_number=0;〃最差例子自学习次数//双C=1;〃加速因子国际trymax=5;doublehelih=0.0;双stepmax=最大/16;双步;doublestepmin=0.002;#定义R((双)(rand()%randmax)/randmax)//1/randmax0T之间的随机数,精度为//#定义RIrandO%100/100静态int;双n=3.14159265358979;双公差=00000000000000001//收敛精度;双C3=0.03;〃扰动幅度双£=2.718281828459;〃自然对数底数int=5;intbz=O;〃扰动因子标志双AW[V];intfztop[M];〃统计极值来自分组的情况国际randpop[M][我];〃随机流行typedefstruct{双D[V];双适应;int型;}个人;typedefstruct{双H[V];}合力;typedefstruct{intTF;在CS;愉;dydayouLS];每个PW[M];/**/族群中个体最差位置每个铅[M];/**/族群中个体最好位置Individalpx;/*全体中历史最好位置*/个人全体中最好位置PX1;/**/个人全体中最坏位置PW0;/**/每个个体[P];/**/全部个体Individalindividualrz[P];/*个体历史最优值*/个人单独[P];/**/邻域历史最优值每个流行[M][我];/**/排序后的群组个人临时[P];每个寺庙[P];个人临时性[M].;Individaltempi[I];单个的TEM;个人把;个体、X-[的];/**/计算标准差合力FW;/**/合力/*归一化处理*/无效guiyi()(intpmax,pmin,i,j;对于(j=0;j<GN;j++){Pmax=0;Pmin=0;对于(i=1;i<;GM;++)i如果(nongchang[Pmax][J]<nongchang[我][J])Pmax=我;if(nongchangLpmin][j]>nongchangLi][j])pmin=i;)nongchangmax[J]nongchangPmax=[][J];nongchangmin[J]nongchangPmin=[][J];)对于(i=0;i<;GM;++)对于(j=0;j<GN;j++)如果(j=0)nongchanggy[我][J]=(nongchangmax[J]-nongchang[我][J])/(nongchangmax[J]-nongchangmin[J]);其他的nongchanggy[我][J]=(nongchang[我][J]-nongchangmin[J])/(nongchangmax[J]-nongchangmin[J]);/*(i=0;i〈通用;++)对于(j=0;j<GN;j++)printf("虬4F,nongchanggy[我][J]);printf("\n");)getchar();*/)选择测试函数为球/**/双适应(双[口])Iinti,j,堤;双和=0;双语=0;双S1=0,Hl=1,H2=0;双XI[V+1];doublerij;双酪氨酸;对于(i=0;i<v;++){[我];)为(i=0;i〈通用;i++)TYZ[我]=0;对于(i=0;i<;GM;++)I对于(j=0;jv;j+)TYZ[我]=TYZ[我]+XI[J]*nongchanggy[我][J];)对于(i=0;i<;GM;++)金额=金额+TYZ[我];市泰泽=金额/总经理;//printf("%。4f**\n",getchar()总和);//printf(u%o4f**\n",市泰泽TYZ[0]);getchar();//printf("%.4f**,%.4f**,%.4f**\n",tyze,tyz[O],tyz[l])jgetchar0;对于(i=0;i<;GM;++)语=语+战俘((TYZ[我]-市泰泽),2);tysz=SQRT(战俘(suml,2)/(GM-1));Tyr=0.1*tysz;sum=0.0;suml=0.0;对于(i=0;i<;GM;++)I总和=0;对于(j=0;j;(rij=fabs(tyz[i]-tyz[j]);if((tyr-rij)<0)堤=0;其他的堤二1;sum=sum+(tyr-rij)*tyi;)语语+笔=;)//printf(u%o4f**\n",getchar()语);returntysz*suml;//(i—0;i;〃求和;//printf(X3f\n%.3f\n%.3f\n%.3f\n%.3faaaaaaaaaaaaaaaaaa",xl[0],xl[1],xl⑵,xl[3],xl[4],sum);getchar();/返回总和;)对每一个个体初始化/**/无效()int,j;doublesum4=0.0;srand((unsigned)时间(空));对于(i=0;i<p;++)(对于(j=0;jv;j+){个人的[我],[J]=R*(MAX-MIN)+min;}sum4=0;对于(j=0;jv;j+)sum4=sum4+个人[我],[J]*个人[我]和[J];sum4=SQRT(sum4);对于(j=0;jv;j个人的[我],[J]=个人[我],[J]/sum4;个体[我];个人[我]RZ=我;temp[i],rz=i;寺庙[我]RZ=我;//printf(//%.8f%.8f%.8f%.8f\n”,individual[i].d[0],individual[i].d[l],individual[i].d[2],individual[i].fitness);getchar();)为(i=0;i<P;i++)individualrz[我]=个人[我];个人=0;pxl=individual[0];PWO=个人[1];//******//******按照适应度降序对全部个体进行排序和族群划分/**/无效randswap()int,j;伟志[0]=(int)(RM);对于(i=1;i;m;i+)(伟志[我]=(int)(RM);对于(j=0;j〈i;j++)if(weizhi[i]==weizhi[j])(伟志[我]=(int)(RM);J=l;对于(i=0;i<p;++)//printf("%d",伟志[我]);〃如果((i+1)%10==0)printf("\n");)//getchar();}voidsort()iint,j,k;对于(i=1;i<p;++)Ifor(j=0;j<P-i;j++)如果(个体)j(Do个体=j;单个[j+1];个体[J=1];}))k=0;/*按照规则分组*///printf(“%d”,威志);对于(i=0;i<i;++)(if(C5==l)randswap();对于(j=0;j;m;j++)if(C5==l)popLweizhi[j]]Li]=individual[k];其他流行音乐[个人];钾+;))如果(健身〈个人[0]o健身)个人=0;PX1=个人[0];对于(i=0;i;m;i+)iPB[POP][我]0;PW[我]=流行[我][•];))随机交换若干分组同一级别的青蛙/**/对某个群组中的个体进行重新排序/**/无效sortpop(b)int,j;对于(i=l;i<i;++)[对于(j=0;j<我;J++)(如果(流行音乐),健身〈流行音乐[J+1]{波普;流行[流行音乐]=流行音乐[J+1];流行音乐[J+1]=透射电镜;群组内更新/**/无效update(){int,j,k,1,n;双A;双B;doublesum4=0.0;XM-C1+C1;XD=2/晶圆厂(2-xm-sqrt(战俘(XM,2)-4XXm));如果(El=l)IC3=0.4+(0.9-0.4)*((双)(g)-(双)(12))/(双)(G);C4=0.4+(0.9-0.4)*((double)(G)-(double)(i2))/(double)(G);对于(n=0;n<n;n++)对于(i=0;i;m;i+)a=0;b=0;对于(j=0;jv;j+)(temp[pw[i].rz].d[j]=B*aw[j]+C3*R*tempi[pw[i].rz].d[j]+C2*R*(pb[i].d[j]-pw[i].d[j])+C4*R*(individuallyLi].d[j]-pw[i].d[j]);)对于(j=0;jv;j+)【PW模板[我]。制],[J]=温度[密码[我]。制]D[J];对于(j=0;jv;j+)!临时[密码[我]。制],[J]+=PW[我]和[J];if(temp[pwLi],rz].d[j]<0)tempLpw[i].rz].d[j]==0;sum4=0.0;对于(j=0;jv;j+)sum4=sum4+温度[密码[我]。RZ]D[J]*温度[密码[我制]D[J];sum4=SQRT(sum4);对于(j=0;jv;j+)临时[密码[我]。制],[J]=温度[密码[我]。制],[J]/sum4;//printf("%。If%oIf%oIf%oIF",温度[密码[我]。制],[0],[我][私服温度。制],[1],[我][私服温度。制],[2],临时[密码[我]。制]和[3]);//printf("%.If”,temp[pw[i].rz].D[4]);getchar();//printfC%.3fandtemp[pw[i].rz].dL0]*temp[pw[i].rz].dL0]+tempLpw[i].rz].d[1]*temp[pw[i].rz].d[l]+tempLpw[i].rz].d[2]*temp[pw[i].rz].d[2]+temp[pw[i].rz].d[3]*temp[pw[i].rz].d[3]+temp[pw[i].rz].d[4]*temp[pw[i].rz].d[4]);(getchar);A=fitness(tempLpw[i].rz].d);//printf("a%.3f",a);(getchar);TempEpwLi].rz].fitness=a;If(a>pw[i].fitness)IPop[i]Ll-1]=temp[pw[i].rz];SortPop(I);Pb[i]=pop[i][0];Pw[i]=pop[i][1-1];)Else//logoIFor(k=0;k<V;k++)Temp[pw[i].rz].d[k]=B*aw[k]+C3*R*templ[pw[i].rz].d[k]+C2*R*(pxl.d[k]-pw[i].d[k])+C4*R*(individually[i].d[k]-pw[i].d[k]);Printf("%.If%.If%.If"%.If"temp[pw[i].rz].d[0],tempEpwLi].rz].d[1],temp[pw[i].rz].d[2],tempLpw[i].rz].d[3]);//printf(%.If,temp[pw[i].rz].d[4]);(getchar);//printfC%.3fandffff\n”,temp[pw[i].rz].d[O]*temp[pw[i].rz].d[O]+temp[pw[i].rz].d[1]*temp[pw[i].rz].d[l]+temp[pw[i].rz].d⑵*temp[pw[i].rz].d[2]+temp[pw[i].rz].d[3]*temp[pw[i].rz].d[3]+temp[pw[i].rz].d[41*tempLpw[i].rz].d[4]);(getchar);For(j=0;j<V;j++)Tempi[pw[i].rz].d[j]=temp[pw[i].rz].d[j];For(j=0;j<V;j++)(Temp[pw[i].rz].d[j]+=pw[i].d[j];If(temp[pw[i].rz].d[j]<0)temp[pw[i].rz].d[j]=O;Sum4=0.0;For(j=0;j<V;j++)Sum4=sum4+temp[pw[i].rz].d[j]*temp[pw[i].rz].d[j];Sum4=sqrt(sum4);For(j=0;j<V;j++)Temp[pw[i].rz].d[j]-temp[pw[i].rz].d[j]/sum4;A=fitness(temp[pw[i].rz].d);Temp[pw[i].rz].fitness=a;If(a>pw[i].fitness){Pop[i][I-l]=temp[pw[i].rz];SortPop(I);Pb[i]=pop[i][0];Pw[i]=pop[i][1-1];)Else{//////Flag-0;
If(flag==O)For(1=0;1<V;1++)[Pop[i][I-l].d[l]=R*(MAX-MIN)+MIN;)Sum4=0.0;For(1=0;1<V;1++)Sum4=sum4+pop[i][1-1].d[l]*pop[i][1-1].d[l];Sum4=sqrt(sum4);对于(1=0;1v;1+)流行的[我][・]。D[1]=流行[我][•],[我]/sum4;〃如果(岳叔(临时[密码][我]。RZoD)<yueshul){//yueshul=月舒(临时[密码][我]。R。D);流行的[我]健身=健身(流行[我]oD);sortpop(我);PB[POP][我]0;PW[我]=流行[我][•];))}//////})三=0;对于(ii=0;;ii;m;ii++)I如果(PB)。三=II;如果(健身)PX=PB[iii];fztop[III]=fztop[III]+1;}如果(PXlo健身〈铅[HI]。健身)[PX1=铅[皿;/*将流行[M][我]复制到个人*/无效copy()[inti,j,JI,K;我=0;对于(j=0;j;m;j++)对于(k=0;k<i;k++)个人[POP];++;)}//获得个体历史极值;对于(i=0;i<p;++)对于(j=0;jP;j++)如果(个人[我RZ==individualrz[J]。RZ)如果(个人[我健身<individualrz[J]。健身)(individualrz[j]=individual[i];个别[个别];//获得个体邻域极值;为(i=1;i<P-1;i++)为(J=i-banj;J〈我+银行+1;j++)(if(individually[i].fitness<individualrz[(j+P)%P].fitness);单独的[我]=individualrz[J].;))无效report()Iint,j;双2=0;*文件f=fopen(“结果(综合SFLA).txt"、"W”);printf("试验最好值为%.3f\n\n",px.fitness);fprintf(f,"试验最好值为%.3f\n”,px.fitness);fprintf(F,“投影向量是\n");为(i=0;iprintf(“%3f\n”,px.d[i]);fprintf(F,“%。6楼”,PX。D[我]);}(i=0;i<v;++)//2=2+PX。D[我]*PX。D[我];fprintf(F,uaaaaaaa\n");//printf("和是%。3f\n\n”,PX。健身);//printf("和是%。3f\n",2);为(i=0;i〈通用;i++)TYZ[我]=0;对于(i=0;i<;GM;++)I对于(j=0;jv;j+)TYZ[我]=TYZ[我]+PXoD[J]*nongchanggy[我][J];printf("第%d个是机3f\n”,我+1,TYZ[我]);fprintf(F,“%。6楼",TYZ[我]);双sigma()IntJ;双f=O;doublefitness_avg=O.0;对于(j=0;jS;j++)I//printf("极值e为%16f\n”,temx[j].fitness);fitness_avg=fitness_avg+temx[j].fitness;}fitness_avg=fitness_avg/s;printf("平均值为%.16f\n”,fitness_avg);//printfC%d极值e为%.16f\n”,j,temx[j].fitness);for(j=0,j<s;j++)f-f+fabs(temx[j].fitness-fitness_avg)*fabs(temx[j].fitness-fitness_avg);//printf("极值e为%.16f\n",(f);f=sqrt(f/(s-1));returnf;)voidmain(){clock_tstartthan;doubletj[s+1][g+1];doubletj2[s+1];doubleave,avel,sigmax;intdymin,dymax,dycount=0,dysum=0,dyes=0;for(i=0;0<s;i++){dayou[il].tf=0;dayou[il].cs=0;}file*f=fopen("result(综合sfla).txt","w");ave=0.0;start=clock();guiyi();for(i=0;0<s;il++)(practice();tj2[i1]=px.fitness;//for(i7=0;i7<s;i7++)avel=avel+px.fitness;//fprintf(f,"迭代0次试验30次平均极值为%.16f\n",avel/s);for(i2=0;p<g;i2++)iblack();update();copy();if(px.fitness<precision){dayou[i1].tf=1;dayou[il].cs=i2;//break;tj[i1][i2]=px.fitness;}report();temx[i1]=px;ave=ave+px.fitness;)ave=ave/s;than=clock();//固定次数printf("**************************[[)sigmax=sigma();//printf("平均极值为\n%.16f\ncompleted!,z,ave);printf("30次试验标准差为%.16e\n”,sigmax);printf(“30次试验平均运行时间=%.2fseconds\n”(double)(start)/(s*(double)clocks_per_sec));printf("30次试验的平均极值为的16e\n",ave);for(ia=0;ia<m;ia++)printf("%d"n",fztop[ia]);getchar();// fprintf (f, "30次试验平均极值为%.6e\n",ave);// fprintf (f, “30次试验标准差为%.6e\n",sigmax);// fprintf (f, “30次试验平均运行时间=%.2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 眼视光验光技术练习试题
- 运动练习测试卷
- 2025年辽宁省建筑安全员B证考试题库附答案
- 2025四川省安全员-A证考试题库及答案
- 2025年湖南省建筑安全员《B证》考试题库及答案
- 2025年广东科学技术职业学院单招职业倾向性测试题库完整版
- 种植除草合同范本
- 急危重症护理学(山东联盟-山东第一医科大学)知到智慧树章节测试课后答案2024年秋山东第一医科大学
- Unit+12+Innovation+Lesson+2 3+知识点及默写 高中英语北师大版(2019)选择性必修第四册
- 2025年呼和浩特职业学院单招职业适应性测试题库及答案1套
- 第10课《自定主题活动一:用养乐多瓶子做花瓶》(教学实录)-2023-2024学年三年级下册综合实践活动浙教版
- 热点主题作文写作指导:提出问题与解决问题(审题指导与例文)
- 糖尿病肌少症
- 江苏书记员考试历年题库
- 2024年浙江省中考数学试卷含答案
- 激光切割价格报价表
- 友情 创可贴 课件 综合实践活动四年级下册
- 红楼梦阅读单选题100道及答案解析
- 2024年知识竞赛-中小学财务管理知识考试近5年真题集锦(频考类试题)带答案
- 产后康复课件完整版
- 牧场物语-矿石镇的伙伴们-完全攻略
评论
0/150
提交评论