dj9.c
来自「一个比较有名的进化优化算法程序,是遗传算法的改进,差异进化算法,本程序经试用很好」· C语言 代码 · 共 43 行
C
43 行
# include "de.h"
double evaluate(int D, double tmp[], long *nfeval)
{
/* polynomial fitting problem */
int i, j;
int const M=60;
double px, x=-1, dx=(double)M, result=0;
(*nfeval)++;
/*dx = 2/dx;
for (i=0;i<=M;i++)
{
px = tmp[0];
for (j=1;j<D;j++)
{
px = x*px + tmp[j];
}
if (px<-1 || px>1) result+=(1-px)*(1-px);
x+=dx;
}
px = tmp[0];
for (j=1;j<D;j++) px=1.2*px+tmp[j];
px = px-72.661;
if (px<0) result+=px*px;
px = tmp[0];
for (j=1;j<D;j++) px=-1.2*px+tmp[j];
px =px-72.661;
if (px<0) result+=px*px;*/
if (tmp[0]>20)
tmp[0]=20;
if (tmp[0]<1)
tmp[0]=1;
if (tmp[1]>20)
tmp[1]=20;
if (tmp[1]<1)
tmp[1]=1;
result=abs(1/tmp[0]*tmp[0]+1/(sin(tmp[1])));
return result;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?