evaluate_objective.c

来自「多目标算法的DSP实现。可以直接在DSP平台上进行多目标优化」· C语言 代码 · 共 40 行

C
40
字号
# include <stdio.h>
# include <math.h>

# include "global.h"

// 计算群体适应度
void evaluate_pop (population *pop)
{
	int i;
	for (i=0; i<POPSIZE; i++)
	{
		evaluate_ind(&(pop->ind[i]));
	}
}

// 计算个体适应度
void evaluate_ind (individual *ind)
{
	evaluate_objective (ind->x, ind->obj);
}

// 适应度函数
void evaluate_objective (double *x, double *obj)
{
	int i;
	double f1,f2,sum,g;
	sum = 0.0;
    f1 = 1 - exp(-4*x[0])*pow(sin(6*PI*x[0]), 6.0);
	for(i=1; i<NX; i++)
	{
        sum = sum + x[i]/4;
	}
    g = 1 + 9*pow(sum, 0.25);
    f2 = g*(1 - pow(f1/g, 2.0));
	obj[0] = f1;
	obj[1] = f2;
    return;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?