您好,欢迎访问三七文档
//F1函数Spheredoublecalculation(double*sol){inti;doubleresult=0;fit++;//标记评估次数for(i=0;idim;i++){result+=sol[i]*sol[i];}returnresult;}//***********************************//F2函数Schwefel'sP2.22doublecalculation(double*sol){inti;fit++;doubleresult=0;doubletmp1=0,tmp2=1.0;for(i=0;idim;i++){doubletemp=fabs(sol[i]);tmp1+=temp;tmp2*=temp;}result=tmp1+tmp2;returnresult;}//***********************************//F3函ˉ数簓Quadricdoublecalculation(double*sol){inti,j;fit++;doubleresult=0;doubletmp2=0.0;for(i=0;idim;i++){doubletmp1=0.0;for(j=0;ji+1;j++){tmp1+=sol[j];}tmp2+=tmp1*tmp1;}result=tmp2;returnresult;}//***********************************//F4函ˉ数簓doublecalculation(double*sol){inti,j;doubleresult=fabs(sol[0]);fit++;for(i=1;idim;i++){if(resultfabs(sol[i])){result=fabs(sol[i]);}}returnresult;}//***********************************//F5函ˉ数簓Rosenbrockdoublecalculation(double*sol){inti,j;fit++;doubleresult=0;doubletmp1=0,tmp2=0;for(i=0;idim-1;i++){tmp1=100*(sol[i]*sol[i]-sol[i+1])*(sol[i]*sol[i]-sol[i+1]);tmp2=(sol[i]-1)*(sol[i]-1);result+=tmp1+tmp2;}returnresult;}//***********************************//F6函ˉ数簓Stepdoublecalculation(double*sol){inti;fit++;doubleresult=0;for(i=0;idim;i++){result+=(floor(sol[i]+0.5))*(floor(sol[i]+0.5));}returnresult;}//***********************************//F7函ˉ数簓QuadricNoisedoublecalculation(double*sol){inti;fit++;doubleresult=0;for(i=0;idim;i++){result+=(i+1)*sol[i]*sol[i]*sol[i]*sol[i];}result=result+1.0*rand()/RAND_MAX;returnresult;}//***********************************//F8函ˉ数簓Schwefeldoublecalculation(double*sol){inti;fit++;doubleresult=0;for(i=0;idim;i++){result+=(-1*sol[i])*sin(sqrt(fabs(sol[i])));}returnresult;}//***********************************//F9函ˉ数簓Rastrigrindoublecalculation(double*sol){inti;fit++;doubleresult=0;for(i=0;idim;i++){result+=(sol[i]*sol[i]-10*cos(2*pi*sol[i])+10);}returnresult;}//***********************************//F10函ˉ数簓Ackley函ˉ数簓doublecalculation(double*sol){inti;fit++;doubleresult=0;doubletmp1=0.0,tmp2=0.0;for(i=0;idim;i++){tmp1+=sol[i]*sol[i];tmp2+=cos(2*pi*sol[i]);}result=20+exp(1)-20*exp(-0.2*sqrt(tmp1/dim))-exp(tmp2/dim);returnresult;}//***********************************//F11函ˉ数簓griewangdoublecalculation(double*sol){inti;fit++;doubleresult=0;doubletemp1=0.0,temp2=1.0;for(i=0;idim;i++){temp1+=(sol[i]*sol[i])/4000;temp2*=cos(sol[i]/sqrt(i+1));}result=temp1-temp2+1;returnresult;}//***********************************//F12函ˉ数簓GeneralizedPenalizeddoublecalculation(double*sol){inti;fit++;doublex[dim];doubleresult=0;doubletemp1=0.0,temp2=0.0;for(i=0;idim;i++){x[i]=1+(sol[i]+1)/4;if(sol[i]10){temp1=100*(sol[i]-10)*(sol[i]-10)*(sol[i]-10)*(sol[i]-10);}else{if(sol[i]-10){temp1=100*(-sol[i]-10)*(-sol[i]-10)*(-sol[i]-10)*(-sol[i]-10);}elsetemp1=0;}temp2+=temp1;}for(i=0;idim-1;i++){result+=(x[i]-1)*(x[i]-1)*(1+10*sin(pi*x[i+1])*sin(pi*x[i+1]));}result=pi/dim*(10*sin(pi*x[0])*sin(pi*x[0])+result+(x[dim-1]-1)*(x[dim-1]-1))+temp2;returnresult;}//***********************************//F13函ˉ数簓doublecalculation(double*sol){inti;doubleresult=0;doubletemp1=0.0,temp2=0.0;fit++;for(i=0;idim;i++){if(sol[i]5){temp1=100*(sol[i]-5)*(sol[i]-5)*(sol[i]-5)*(sol[i]-5);}else{if(sol[i]-5){temp1=100*(-sol[i]-5)*(-sol[i]-5)*(-sol[i]-5)*(-sol[i]-5);}elsetemp1=0;}temp2+=temp1;}for(i=0;idim-1;i++){result+=(sol[i]-1)*(sol[i]-1)*(1+sin(3.0*pi*sol[i+1])*sin(3.0*pi*sol[i+1]));}result=0.1*(sin(3.0*pi*sol[0])*sin(3.0*pi*sol[0])+result+(sol[dim-1]-1)*(1.0+1.0*sin(2.0*pi*sol[dim-1])))+temp2;returnresult;}//***********************************//F14函ˉ数簓doublecalculation(doublesol[2]){inti,j;doubletop=0.0,tmp1=0.0,tmp2=0.0;fit++;doublea[2][25]={{-32,-16,0,16,32,-32,-16,0,16,32,-32,-16,0,16,32,-32,-16,0,16,32,-32,-16,0,16,32},{-32,-32,-32,-32,-32,-16,-16,-16,-16,-16,0,0,0,0,0,16,16,16,16,16,32,32,32,32,32}};for(j=0;j25;j++){top=0.0;for(i=0;iD;i++)//这a里?D=2{tmp1=sol[i]-a[i][j];tmp1=pow(tmp1,(double)6);top=top+tmp1;}top=(j+1)+top;top=1.0/top;tmp2=tmp2+top;}top=1.0/500+tmp2;top=1.0/top;returntop;}//***********************************//F15函ˉ数簓doublecalculation(doublesol[4]){inti;fit++;doubletop=0.0,tmp1=0.0,tmp2=0.0;doublea[11]={0.1957,0.1947,0.1735,0.1600,0.0844,0.0627,0.0456,0.0342,0.0323,0.0235,0.0246};doubleb[11]={4.0,2.0,1.0,0.5,0.25,1.0/6,1.0/8,1.0/10,1.0/12,1.0/14,1.0/16};for(i=0;i11;i++){tmp1=sol[0]*(b[i]*b[i]+b[i]*sol[1]);tmp2=1.0*tmp1/(b[i]*b[i]+b[i]*sol[2]+sol[3]);top=top+(a[i]-tmp2)*(a[i]-tmp2);}returntop;}//***********************************//F16函ˉ数簓doublecalculation(doublesol[2]){doubletop=0;fit++;top=4*pow(sol[0],(double)2)-2.1*pow(sol[0],(double)4)+1.0*pow(sol[0],(double)6)/3+sol[0]*sol[1]-4*pow(sol[1],(double)2)+4*pow(sol[1],(double)4);returntop;}//***********************************//F17函ˉ数簓doublecalculation(doublesol[2]){doubletop=0;fit++;top=sol[1]-(5.1/(4*pi*pi))*pow(sol[0],(double)2)+(5.0/pi)*sol[0]-6;top=pow(top,(double)2);top=top+10.0*(1.0-1.0/(8*pi))*cos(sol[0])+10.0;returntop;}//***********************************//F18函ˉ数簓doublecalculation(doublesol[2]){fit++;doubletop=
本文标题:23个测试函数C语言代码(23个函数来自论文:Evolutionary-Programming-Ma
链接地址:https://www.777doc.com/doc-5582977 .html