资源简介

PSO测试函数代码,CEC 2010代码。包括shifted rotated generated函数

资源截图

代码片段和文件信息

/*
 * Copyright (c) 2011 Wenxiang Chen 
 * http://cs-chen.net
 * chenwx.ustc@gmail.com
 *
 * GNU LESSER GENERAL PUBLIC LICENSE (Version 2.1 February 1999)
 */

#include “Benchmarks.h“

Benchmarks::Benchmarks(RunParameter* runParam){
cout<<“Benchmarks Class initialization“< dimension = runParam->dimension;
nonSeparableGroupSize = runParam->nonSeparableGroupSize;
MASK = ((L(1)) << (L(48))) - (L(1));
m_havenextGaussian = false;

if (dimension cerr<<“ERROR: In configuration file dimension is smaller than the non-separable part“< exit(-1);
}

// allocate the memory
anotherz = new double[dimension];
anotherz1= new double[nonSeparableGroupSize];
anotherz2= new double[dimension - nonSeparableGroupSize];

// Runtime Parameters setting
setOvectorToZero = false;

functionInitRandomSeed = L(runParam->initRandomSeed);
m_seed= functionInitRandomSeed;
M  = 0x5DEECE66D;
A  = 0xB;

minX = -100;
maxX = 100;
}

Benchmarks::~Benchmarks(){
delete[] anotherz;
delete[] anotherz1;
delete[] anotherz2;
cout<<“Benchmarks Class Destroyed“<}

int Benchmarks::next(int bits) {
int64_t s;
int64_t result;
m_seed = s = (((m_seed * M) + A) & MASK);
result = (s >> (L(48 - bits)));
return((int)result);
}

int Benchmarks::nextInt(int n) {
int bits val;

if ((n & (-n)) == n) {
return((int) ((n * L(next(31))) >> L(31)));
}

do {
bits = next(31);
val  = bits % n;
} while (bits - val + (n - 1) < 0);

return(val);
}

double Benchmarks::nextDouble(){
return ((((L(next(26))) <<
(L(27))) + (L(next(27)))) / (double) ((L(1)) << (L(53))));
}

double Benchmarks::nextGaussian(){
double multiplier v1 v2 s;

if (m_havenextGaussian) {
m_havenextGaussian = false;
return(m_nextGaussian) ;
}

do {
v1 = ((D(2.0) * nextDouble()) - D(1.0));
v2 = ((D(2.0) * nextDouble()) - D(1.0));
s  = ((v1 * v1) + (v2 * v2));
} while ((s >= D(1.0)) || (s <= D(0.0)));

multiplier = sqrt(D(-2.0) * log(s) / s);
m_nextGaussian    = (v2 * multiplier);
m_havenextGaussian = true;
return (v1 * multiplier);
}

double* Benchmarks::createShiftVector(int dim double mindouble max) {

double* d;
double  hw middle;
double  s;
int     i;
hw     = (D(0.5) * (max - min));
middle = (min + hw);
d      = (double*)malloc(sizeof(double) * dim);

// printf(“middle = %1.20E\n“middle);
// printf(“hw = %1.20E\n“hw);

for (i = (dim - 1); i >= 0; i--) {
if (setOvectorToZero == true){
d[i] = 0;
}else{
do {
double tempGauss = nextGaussian();
s = (middle + (tempGauss * hw));
// printf(“nextGaussian = %1.20E\n“tempGauss);
/*
   s = (middle + (nextGaussian() * hw));
   */
} while ((s < min) || (s > max));
d[i] = s;
// printf(“shift vector = %1.20E\n“ d[i]);
}
}
return(d);
}

int* Benchmarks::createPermVector(int dim){
int* d;
int  i j k t;
d = (int*)malloc(sizeof(int) * dim);

for (i = (dim - 1); i >= 0; i--) {
d[i] = i;
}

for (i = (dim << 3); i >= 0; i--) {
j

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      11211  2011-01-28 14:31  CEC‘2010\files\Benchmark-CPP\Benchmarks.cpp

     文件       2264  2011-01-28 14:31  CEC‘2010\files\Benchmark-CPP\Benchmarks.h

     文件        738  2011-01-28 14:32  CEC‘2010\files\Benchmark-CPP\configure.ini

     文件       1578  2011-01-28 14:33  CEC‘2010\files\Benchmark-CPP\F1.cpp

     文件        363  2011-01-28 14:33  CEC‘2010\files\Benchmark-CPP\F1.h

     文件       2294  2011-01-28 14:41  CEC‘2010\files\Benchmark-CPP\F10.cpp

     文件        380  2011-01-28 14:35  CEC‘2010\files\Benchmark-CPP\F10.h

     文件       2422  2011-01-28 14:40  CEC‘2010\files\Benchmark-CPP\F11.cpp

     文件        380  2011-01-28 14:35  CEC‘2010\files\Benchmark-CPP\F11.h

     文件       1833  2011-01-28 14:40  CEC‘2010\files\Benchmark-CPP\F12.cpp

     文件        380  2011-01-28 14:35  CEC‘2010\files\Benchmark-CPP\F12.h

     文件       2057  2011-01-28 14:40  CEC‘2010\files\Benchmark-CPP\F13.cpp

     文件        381  2011-01-28 14:36  CEC‘2010\files\Benchmark-CPP\F13.h

     文件       2490  2011-01-28 14:40  CEC‘2010\files\Benchmark-CPP\F14.cpp

     文件        381  2011-01-28 14:36  CEC‘2010\files\Benchmark-CPP\F14.h

     文件       2095  2011-01-28 14:39  CEC‘2010\files\Benchmark-CPP\F15.cpp

     文件        380  2011-01-28 14:36  CEC‘2010\files\Benchmark-CPP\F15.h

     文件       2093  2011-01-28 14:39  CEC‘2010\files\Benchmark-CPP\F16.cpp

     文件        381  2011-01-28 14:36  CEC‘2010\files\Benchmark-CPP\F16.h

     文件       1773  2011-01-28 14:39  CEC‘2010\files\Benchmark-CPP\F17.cpp

     文件        381  2011-01-28 14:36  CEC‘2010\files\Benchmark-CPP\F17.h

     文件       1798  2011-01-28 14:39  CEC‘2010\files\Benchmark-CPP\F18.cpp

     文件        381  2011-01-28 14:36  CEC‘2010\files\Benchmark-CPP\F18.h

     文件       1475  2011-01-28 14:38  CEC‘2010\files\Benchmark-CPP\F19.cpp

     文件        382  2011-01-28 14:36  CEC‘2010\files\Benchmark-CPP\F19.h

     文件       1500  2011-01-28 14:33  CEC‘2010\files\Benchmark-CPP\F2.cpp

     文件        376  2011-01-28 14:33  CEC‘2010\files\Benchmark-CPP\F2.h

     文件       1490  2011-01-28 14:38  CEC‘2010\files\Benchmark-CPP\F20.cpp

     文件        381  2011-01-28 14:37  CEC‘2010\files\Benchmark-CPP\F20.h

     文件       1504  2011-01-28 14:43  CEC‘2010\files\Benchmark-CPP\F3.cpp

............此处省略1608个文件信息

评论

共有 条评论