資源簡介
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??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個文件信息
- 上一篇:異步電機矢量控制變頻調速系統+弱磁控制仿真
- 下一篇:PSO測試函數代碼
評論
共有 條評論