double MyHCJob19::basic_func(int func_no, double *x,int length) {
	double result = 0.0;
	switch(func_no) {
		case 0:
		case 1:
			result = ackley(x,length);
			break;
		case 2:
		case 3:
			result = rastrigin(x,length);
			break;
		case 4:
		case 5:
			result = sphere(x,length);
			break;
		case 6:
		case 7:
			result = weierstrass(x,length);
			break;
		case 8:
		case 9:
			result = griewank(x,length);
			break;
		default:
			printf("func_no is out of range.");
			exit(-1);
	}
	return (result);
}
Exemplo n.º 2
0
double F11::compute(vector<double> x){
	int i,k;
	double result=0.0;

	if(Ovector==NULL)
	{
		Ovector=createShiftVector(dimension,minX,maxX);
		Pvector=createPermVector(dimension);
		RotMatrix=createRotMatrix1D(nonSeparableGroupSize);
	}

	for(i=0;i<dimension;i++)
	{
		anotherz[i]=x[i]-Ovector[i];
	}

	for(k=1;k<=dimension/(2*nonSeparableGroupSize);k++)
	{
		result+=rot_ackley(anotherz,nonSeparableGroupSize,k);

	}
//	printf("Rot Ackley = %1.16E\n", result);

	double sepSum = ackley(anotherz,dimension,2);
//	printf("Separable Ackley = %1.16E\n", sepSum);

	result+=sepSum;
	return(result);
}
Exemplo n.º 3
0
double F10::compute(double*x){
  int i;
  double result=0.0;

  if(Ovector==NULL)
    {
      Ovector = readOvector();
      Pvector = readPermVector();
      r25 = readR(25);
      r50 = readR(50);
      r100 = readR(100);
      s = readS(s_size);
      w = readW(s_size);
    }
  for(i=0;i<dimension;i++)
    {
      anotherz[i]=x[i]-Ovector[i];
    }
  
  // s_size non-separable part with rotation
  int c = 0;
  for (i = 0; i < s_size; i++)
    {
      // cout<<"c="<<c<<", i="<<i<<endl;
      anotherz1 = rotateVector(i, c);
      // cout<<"done rot"<<endl;
      result += w[i] * ackley(anotherz1, s[i]);
      delete []anotherz1;
      // cout<<result<<endl;
    }

  update(result);
  return(result);
}
double MyHCJob24::basic_func(int func_no, double *x,int length) {
	double result = 0.0;
	// This part is according to Matlab reference code
	switch(func_no) {
		case 0:
			result = weierstrass(x,length);
			break;
		case 1:
			result = EScafferF6(x,length);
			break;
		case 2:
			result = F8F2(x,length);
			break;
		case 3:
			result = ackley(x,length);
			break;
		case 4:
			result = rastrigin(x,length);
			break;
		case 5:
			result = griewank(x,length);
			break;
		case 6:
			result = EScafferF6NonCont(x,length);
			break;
		case 7:
			result = rastriginNonCont(x,length);
			break;
		case 8:
			result = elliptic(x,length);
			break;
		case 9:
			result = sphere_noise(x,length);
			break;
		default:
			puts("func_no is out of range.");
			exit(-1);
	}
	return (result);
}