9 #ifndef SOT_TEST_PROBLEMS_H 10 #define SOT_TEST_PROBLEMS_H 45 mOptimum = arma::zeros<vec>(
dim);
46 mxLow = -10.0 * arma::ones<vec>(
dim);
47 mxUp = 10.0 * arma::ones<vec>(
dim);
68 return arma::sum(x % x);
90 std::string
mName =
"Sum of Squares";
98 mOptimum = arma::zeros<vec>(
dim);
99 mxLow = -10.0 * arma::ones<vec>(
dim);
100 mxUp = 10.0 * arma::ones<vec>(
dim);
121 return arma::dot(arma::linspace(1, mDim, mDim), arma::square(x));
151 mOptimum = arma::zeros<vec>(
dim);
152 mxLow = -10.0 * arma::ones<vec>(
dim);
153 mxUp = 10.0 * arma::ones<vec>(
dim);
174 return arma::sum(arma::abs(x)) + arma::prod(arma::abs(x));
204 mOptimum = arma::zeros<vec>(
dim);
205 mxLow = -1.0 * arma::ones<vec>(
dim);
206 mxUp = 1.0 * arma::ones<vec>(
dim);
227 return - exp(-0.5 * arma::sum(x % x));
257 mOptimum = arma::zeros<vec>(
dim);
258 mxLow = -10.0 * arma::ones<vec>(
dim);
259 mxUp = 10.0 * arma::ones<vec>(
dim);
280 return 1e6 * (x(0) * x(0)) + arma::sum(arma::square(x.rows(1, mDim-1)));
310 mOptimum = arma::zeros<vec>(
dim);
311 mxLow = -10.0 * arma::ones<vec>(
dim);
312 mxUp = 10.0 * arma::ones<vec>(
dim);
333 return arma::sum(arma::square(arma::floor(x + 0.5)));
365 mOptimum = arma::zeros<vec>(
dim);
366 mxLow = -5.0 * arma::ones<vec>(
dim);
367 mxUp = 10.0 * arma::ones<vec>(
dim);
388 double term1 = arma::sum(arma::square(x));
389 double term2 = arma::sum(0.5 * arma::dot(arma::linspace(1, mDim, mDim), x));
390 return term1 + std::pow(term2, 2) + std::pow(term2, 4);
420 mOptimum = arma::ones<vec>(
dim);
421 mxLow = -2.0 * arma::ones<vec>(
dim);
422 mxUp = 2.0 * arma::ones<vec>(
dim);
444 for(
int i=0; i < mDim-1; i++) {
445 total += 100.0 * std::pow(x(i)*x(i) - x(i+1), 2) + std::pow(x(i) - 1, 2);
478 mOptimum = arma::zeros<vec>(
dim);
479 mxLow = -10.0 * arma::ones<vec>(
dim);
480 mxUp = 10.0 * arma::ones<vec>(
dim);
501 return 1.0 + (1.0/4000) * arma::sum(x % x) -
502 arma::prod(arma::cos(x / sqrt(arma::linspace(1, mDim, mDim))));
533 mOptimum = arma::zeros<vec>(
dim);
534 mxLow = -10.0 * arma::ones<vec>(
dim);
535 mxUp = 10.0 * arma::ones<vec>(
dim);
557 for(
int i=0; i < mDim - 1; i++) {
558 total += std::pow(x(i)*x(i) + x(i+1)*x(i+1), 0.25) *
559 (std::pow(std::sin(50*std::pow(x(i)*x(i) + x(i+1)*x(i+1), 0.1)), 2.0) + 1);
591 mOptimum = 420.968746 * arma::ones<vec>(
dim);
592 mxLow = -500.0 * arma::ones<vec>(
dim);
593 mxUp = 500.0 * arma::ones<vec>(
dim);
594 mMinimum = - 418.9829 *
dim;
615 return - arma::dot(x, arma::sin(arma::sqrt(arma::abs(x))));
646 mOptimum = -2.9035 * arma::ones<vec>(
dim);
647 mxLow = -10.0 * arma::ones<vec>(
dim);
648 mxUp = 10.0 * arma::ones<vec>(
dim);
669 return (1.0/mDim) * arma::sum( arma::pow(x, 4) - 16*arma::square(x) + 5*x);
700 mOptimum = arma::zeros<vec>(
dim);
701 mxLow = -15.0 * arma::ones<vec>(
dim);
702 mxUp = 20.0 * arma::ones<vec>(
dim);
723 return -20.0 * exp(-0.2 * sqrt(arma::sum(arma::square(x))/
double(mDim))) -
724 exp(arma::sum(arma::cos(2.0 * arma::datum::pi * x))/
double(mDim));
754 mOptimum = arma::zeros<vec>(
dim);
755 mxLow = -4.0 * arma::ones<vec>(
dim);
756 mxUp = 5.0 * arma::ones<vec>(
dim);
778 return arma::sum(arma::square(x) - arma::cos(2 * arma::datum::pi * x));
809 mxLow = arma::zeros<vec>(
dim);
810 mxUp = arma::datum::pi * arma::ones<vec>(
dim);
811 mMinimum = -0.966 *
dim;
832 return - arma::sum(arma::sin(x) % arma::pow(arma::sin(
833 ((arma::linspace(1, mDim, mDim) % arma::square(x))/arma::datum::pi)), 20));
865 mxLow = arma::ones<vec>(
dim);
866 mxUp = 10.0 * arma::ones<vec>(
dim);
888 double y1 = arma::sum((
vec)arma::pow(arma::cos(x), 4.0));
889 double y2 = arma::prod((
vec)arma::pow(arma::cos(x), 2.0));
890 double y3 = arma::sum(arma::linspace(1, mDim, mDim) % arma::square(x));
891 return -fabs((y1 - 2.0 * y2) / sqrt(y3));
923 mOptimum = arma::ones<vec>(
dim);
924 mxLow = -5.0 * arma::ones<vec>(
dim);
925 mxUp = 5.0 * arma::ones<vec>(
dim);
946 vec w = 1 + (x - 1)/4.0;
947 double term1 = std::pow(std::sin(arma::datum::pi*w(0)), 2);
948 double term3 = std::pow(w(mDim-1)-1, 2) * (1 + std::pow(std::sin(2*arma::datum::pi*w(mDim-1)), 2));
949 vec wMid = w.rows(1, mDim-2);
950 double term2 = arma::sum(arma::square(wMid-1) %
951 (1 + 10*arma::square(arma::sin(arma::datum::pi*wMid+1))));
952 return term1 + term2 + term3;
983 mOptimum = arma::zeros<vec>(
dim);
984 mxLow = -10.0 * arma::ones<vec>(
dim);
985 mxUp = 10.0 * arma::ones<vec>(
dim);
1006 return 1 - cos(2*arma::datum::pi*sqrt(arma::sum(arma::square(x)))) +
1007 0.1*sqrt(arma::sum(arma::square(x)));
1038 mxLow = -10.0 * arma::ones<vec>(
dim);
1039 mxUp = 10.0 * arma::ones<vec>(
dim);
1049 for(
int i=0; i <
mDim; i++) {
1050 for(
int j=1; j < 6; j++) {
1051 total += j*sin((j+1)*x(i)) + j;
1085 mOptimum = arma::zeros<vec>(
dim);
1086 mxLow = -20.0 * arma::ones<vec>(
dim);
1087 mxUp = 20.0 * arma::ones<vec>(
dim);
1109 for(
int i=0; i < mDim-1; i++) {
1110 total += (std::pow(std::sin(std::sqrt(x(i)*x(i) + x(i+1)*x(i+1))), 2.0) - 0.5)/
1111 (std::pow(0.001*(x(i)*x(i) + x(i+1)*x(i+1))+1, 2.0)) + 0.5;
1147 double mDistTol = 1e-10;
1160 mName =
"Schoen, k = " + std::to_string(k);
1163 mxLow = arma::zeros<vec>(
dim);
1164 mxUp = arma::ones<vec>(
dim);
1165 mf = 100 * arma::randu<vec>(k);
1167 mAlpha = 2 + arma::randu<vec>(k);
1168 mZ = arma::randu<mat>(
dim, k);
1169 mOptimum = this->mZ.col(0);
1190 vec dists = squaredPointSetDistance<mat,vec>(x, mZ);
1191 if (arma::min(dists) < mDistTol) {
1192 arma::uword closest;
1193 double scores = dists.min(closest);
1197 long double num = 0, den = 0, prodval = 0;
1198 for(
int i=0; i < mk; i++) {
1199 prodval = std::pow(std::sqrt(arma::sum(arma::square(mZ.col(i) - x))), mAlpha(i));
1200 num += mf(i) / prodval;
1234 mOptimum = arma::zeros<vec>(
dim);
1235 mxLow = -1.0 * arma::ones<vec>(
dim);
1236 mxUp = 1.0 * arma::ones<vec>(
dim);
1237 mMinimum = -0.1 *
dim;
1258 return -0.1*arma::sum(arma::cos(5*arma::datum::pi*x)) + arma::sum(arma::square(x));
1280 template<
class OptProb>
1293 void createTranslation() {
1295 mTranslation = mxLow + (mxUp -
mxLow) % arma::randu(mDim);
1310 mProblem = std::make_shared<OptProb>(
dim);
1311 if (mProblem->optimum().n_elem != mProblem->dim()) {
1312 throw std::logic_error(
"Optimum not specified for: " +
1313 mProblem->name() +
" so can't create a rotated version");
1315 mDim = mProblem->dim();
1316 mxLow = mProblem->lBounds();
1317 mxUp = mProblem->uBounds();
1318 mMinimum = mProblem->min();
1319 createTranslation();
1321 mOptimum = mTranslation;
1322 mName =
"Rotated + Translated " + mProblem->name();
1336 return mTranslation;
1357 vec xx = mProblem->optimum() + mRotation * (x - mTranslation);
1358 return mProblem->eval(xx);
1374 template<
class OptProb>
1391 mProblem = std::make_shared<OptProb>(
dim);
1393 mxLow = mProblem->lBounds();
1394 mxUp = mProblem->uBounds();
1395 mMinimum = mProblem->min();
1396 if(mProblem->optimum().n_elem ==
dim) {
1399 mName = mProblem->name() +
" scaled to the unit box";
1402 return arma::zeros(mDim);
1405 return arma::ones(mDim);
1421 return mProblem->eval(xx);
std::string name() const
Method for getting the name of the optimization problem.
Definition: test_problems.h:552
vec uBounds() const
Method for getting the upper variable bounds.
Definition: test_problems.h:762
vec mOptimum
Definition: test_problems.h:973
double eval(const vec &x) const
Method for evaluating the objective function.
Definition: test_problems.h:120
int mDim
Definition: test_problems.h:297
vec mOptimum
Definition: test_problems.h:855
vec mxLow
Definition: test_problems.h:86
vec mxUp
Definition: test_problems.h:1027
Schoen(int dim)
Constructor with k = max(2^dim, 500)
Definition: test_problems.h:1153
vec uBounds() const
Method for getting the upper variable bounds.
Definition: test_problems.h:1174
int dim() const
Method for getting the number of dimensions.
Definition: test_problems.h:993
int dim() const
Method for getting the number of dimensions.
Definition: test_problems.h:765
int dim() const
Method for getting the number of dimensions.
Definition: test_problems.h:214
vec lBounds() const
Method for getting the lower variable bounds.
Definition: test_problems.h:261
vec mOptimum
Definition: test_problems.h:300
Tablet(int dim)
Constructor.
Definition: test_problems.h:255
vec mxLow
Definition: test_problems.h:353
int mDim
Definition: test_problems.h:465
vec uBounds() const
Method for getting the upper variable bounds.
Definition: test_problems.h:264
std::string name() const
Method for getting the name of the optimization problem.
Definition: test_problems.h:828
int dim() const
Method for getting the number of dimensions.
Definition: test_problems.h:55
double min() const
Method for getting global minimum value.
Definition: test_problems.h:936
double eval(const vec &x) const
Method for evaluating the objective function.
Definition: test_problems.h:1107
int dim() const
Method for getting the number of dimensions.
Definition: test_problems.h:543
int dim() const
Method for getting the number of dimensions.
Definition: test_problems.h:1245
vec optimum() const
Method for getting the global minimizer.
Definition: test_problems.h:549
Step(int dim)
Constructor.
Definition: test_problems.h:308
int dim() const
Method for getting the number of dimensions.
Definition: test_problems.h:375
CosineMixture(int dim)
Constructor.
Definition: test_problems.h:1232
Exponential function
Definition: test_problems.h:189
vec uBounds() const
Method for getting the upper variable bounds.
Definition: test_problems.h:1341
arma::vec vec
Default (column) vector class.
Definition: common.h:17
double eval(const vec &x) const
Method for evaluating the objective function.
Definition: test_problems.h:1257
vec mOptimum
Definition: test_problems.h:1075
int dim() const
Method for getting the number of dimensions.
Definition: test_problems.h:710
int mDim
Definition: test_problems.h:852
int mDim
Definition: test_problems.h:85
vec uBounds() const
Method for getting the upper variable bounds.
Definition: test_problems.h:52
RotatedProblem(int dim)
Constructor.
Definition: test_problems.h:1309
std::string name() const
Method for getting the name of the optimization problem.
Definition: test_problems.h:439
vec mxUp
Definition: test_problems.h:635
int dim() const
Method for getting the number of dimensions.
Definition: test_problems.h:161
vec mxUp
Definition: test_problems.h:1288
double eval(const vec &x) const
Method for evaluating the objective function.
Definition: test_problems.h:831
vec optimum() const
Method for getting the global minimizer.
Definition: test_problems.h:494
std::string name() const
Method for getting the name of the optimization problem.
Definition: test_problems.h:1046
double mMinimum
Definition: test_problems.h:1382
vec mxLow
Definition: test_problems.h:1222
Schwefel26(int dim)
Constructor.
Definition: test_problems.h:589
vec mf
Definition: test_problems.h:1144
int mDim
Definition: test_problems.h:32
SumSquares(int dim)
Constructor.
Definition: test_problems.h:96
Sine Envelope function
Definition: test_problems.h:1070
int dim() const
Method for getting the number of dimensions.
Definition: test_problems.h:819
vec mxUp
Definition: test_problems.h:1139
Himmelblau(int dim)
Constructor.
Definition: test_problems.h:644
vec lBounds() const
Method for getting the lower variable bounds.
Definition: test_problems.h:1041
int dim() const
Method for getting the number of dimensions.
Definition: test_problems.h:430
double mMinimum
Definition: test_problems.h:36
double eval(const vec &x) const
Method for evaluating the objective function.
Definition: test_problems.h:67
double eval(const vec &x) const
Method for evaluating the objective function.
Definition: test_problems.h:777
vec mxLow
Definition: test_problems.h:688
vec mxLow
Definition: test_problems.h:742
vec mxUp
Definition: test_problems.h:246
void createRotation()
Generates a random rotation matrix.
Definition: test_problems.h:1298
vec uBounds() const
Method for getting the upper variable bounds.
Definition: test_problems.h:105
Salomon function
Definition: test_problems.h:968
vec mxUp
Definition: test_problems.h:1074
std::string name() const
Method for getting the name of the optimization problem.
Definition: test_problems.h:611
vec mxUp
Definition: test_problems.h:34
vec lBounds() const
Method for getting the lower variable bounds.
Definition: test_problems.h:869
int mDim
Definition: test_problems.h:1378
vec uBounds() const
Method for getting the upper variable bounds.
Definition: test_problems.h:211
Rastrigin function
Definition: test_problems.h:739
vec optimum() const
Method for getting the global minimizer.
Definition: test_problems.h:999
int dim() const
Method for getting the number of dimensions.
Definition: test_problems.h:1407
mat mZ
Definition: test_problems.h:1146
vec mAlpha
Definition: test_problems.h:1145
double mMinimum
Definition: test_problems.h:800
vec uBounds() const
Method for getting the upper variable bounds.
Definition: test_problems.h:872
std::shared_ptr< Problem > mProblem
Definition: test_problems.h:1283
int dim() const
Method for getting the number of dimensions.
Definition: test_problems.h:602
double eval(const vec &x) const
Method for evaluating the objective function.
Definition: test_problems.h:387
double min() const
Method for getting global minimum value.
Definition: test_problems.h:111
double min() const
Method for getting global minimum value.
Definition: test_problems.h:713
vec mxUp
Definition: test_problems.h:354
vec optimum() const
Method for getting the global minimizer.
Definition: test_problems.h:326
vec mOptimum
Definition: test_problems.h:247
std::string name() const
Method for getting the name of the optimization problem.
Definition: test_problems.h:329
double min() const
Method for getting global minimum value.
Definition: test_problems.h:270
int mDim
Definition: test_problems.h:1137
std::string mName
Definition: test_problems.h:37
vec mOptimum
Definition: test_problems.h:1289
vec uBounds() const
Method for getting the upper variable bounds.
Definition: test_problems.h:158
vec optimum() const
Method for getting the global minimizer.
Definition: test_problems.h:220
double min() const
Method for getting global minimum value.
Definition: test_problems.h:1410
std::string name() const
Method for getting the name of the optimization problem.
Definition: test_problems.h:497
vec mOptimum
Definition: test_problems.h:1140
Schwefel22(int dim)
Constructor.
Definition: test_problems.h:149
vec mOptimum
Definition: test_problems.h:1224
vec lBounds() const
Method for getting the lower variable bounds.
Definition: test_problems.h:102
vec mxLow
Definition: test_problems.h:1287
int mDim
Definition: test_problems.h:687
Schwefel22 function
Definition: test_problems.h:136
int mDim
Definition: test_problems.h:1025
vec optimum() const
Method for getting the global minimizer.
Definition: test_problems.h:1183
int mDim
Definition: test_problems.h:138
int dim() const
Method for getting the number of dimensions.
Definition: test_problems.h:488
double min() const
Method for getting global minimum value.
Definition: test_problems.h:164
Michalewicz function
Definition: test_problems.h:794
vec mxUp
Definition: test_problems.h:299
mat rotation() const
Method that returns the rotation matrix.
Definition: test_problems.h:1328
vec mxUp
Definition: test_problems.h:140
vec optimum() const
Method for getting the global minimizer.
Definition: test_problems.h:662
int dim() const
Method for getting the number of dimensions.
Definition: test_problems.h:1344
int dim() const
Method for getting the number of dimensions.
Definition: test_problems.h:267
vec optimum() const
Method for getting the global minimizer.
Definition: test_problems.h:61
vec optimum() const
Method for getting the global minimizer.
Definition: test_problems.h:114
vec mOptimum
Definition: test_problems.h:88
int dim() const
Method for getting the number of dimensions.
Definition: test_problems.h:1095
vec optimum() const
Method for getting the global minimizer.
Definition: test_problems.h:1045
double min() const
Method for getting global minimum value.
Definition: test_problems.h:659
double min() const
Method for getting global minimum value.
Definition: test_problems.h:546
double min() const
Method for getting global minimum value.
Definition: test_problems.h:768
Levy function
Definition: test_problems.h:908
vec uBounds() const
Method for getting the upper variable bounds.
Definition: test_problems.h:485
int dim() const
Method for getting the number of dimensions.
Definition: test_problems.h:656
double mMinimum
Definition: test_problems.h:1290
vec lBounds() const
Method for getting the lower variable bounds.
Definition: test_problems.h:813
int dim() const
Method for getting the number of dimensions.
Definition: test_problems.h:320
vec optimum() const
Method for getting the global minimizer.
Definition: test_problems.h:1413
vec mOptimum
Definition: test_problems.h:410
vec mxLow
Definition: test_problems.h:1379
vec optimum() const
Method for getting the global minimizer.
Definition: test_problems.h:771
vec mxLow
Definition: test_problems.h:1026
Rosenbrock(int dim)
Constructor.
Definition: test_problems.h:418
int mDim
Definition: test_problems.h:352
double min() const
Method for getting global minimum value.
Definition: test_problems.h:1347
mat mRotation
Definition: test_problems.h:1285
double min() const
Method for getting global minimum value.
Definition: test_problems.h:996
std::string name() const
Method for getting the name of the optimization problem.
Definition: test_problems.h:1254
std::shared_ptr< Problem > mProblem
Definition: test_problems.h:1377
double eval(const vec &x) const
Method for evaluating the objective function.
Definition: test_problems.h:1189
vec lBounds() const
Method for getting the lower variable bounds.
Definition: test_problems.h:369
vec mxUp
Definition: test_problems.h:193
vec uBounds() const
Method for getting the upper variable bounds.
Definition: test_problems.h:540
vec lBounds() const
Method for getting the lower variable bounds.
Definition: test_problems.h:650
double eval(const vec &x) const
Method for evaluating the objective function.
Definition: test_problems.h:226
vec optimum() const
Method for getting the global minimizer.
Definition: test_problems.h:167
Griewank(int dim)
Constructor.
Definition: test_problems.h:476
Schwefel26 function
Definition: test_problems.h:576
vec lBounds() const
Method for getting the lower variable bounds.
Definition: test_problems.h:1089
std::string name() const
Method for getting the name of the optimization problem.
Definition: test_problems.h:384
vec mxLow
Definition: test_problems.h:579
vec mxUp
Definition: test_problems.h:854
Cosine Mixture function
Definition: test_problems.h:1219
vec mOptimum
Definition: test_problems.h:799
Exponential(int dim)
Constructor.
Definition: test_problems.h:202
vec mxLow
Definition: test_problems.h:408
vec mxUp
Definition: test_problems.h:912
vec mOptimum
Definition: test_problems.h:523
int mk
Definition: test_problems.h:1143
vec mxLow
Definition: test_problems.h:466
Schubert3 function
Definition: test_problems.h:1023
vec optimum() const
Method for getting the global minimizer.
Definition: test_problems.h:381
double eval(const vec &x) const
Method for evaluating the objective function.
Definition: test_problems.h:332
Schaffer2 function
Definition: test_problems.h:518
vec uBounds() const
Method for getting the upper variable bounds.
Definition: test_problems.h:653
vec mxLow
Definition: test_problems.h:245
vec mOptimum
Definition: test_problems.h:744
double min() const
Method for getting global minimum value.
Definition: test_problems.h:1180
std::string name() const
Method for getting the name of the optimization problem.
Definition: test_problems.h:170
vec translation() const
Method that returns the translation vector.
Definition: test_problems.h:1335
int mDim
Definition: test_problems.h:633
vec lBounds() const
Method for getting the lower variable bounds.
Definition: test_problems.h:704
std::string name() const
Method for getting the name of the optimization problem.
Definition: test_problems.h:665
vec mxUp
Definition: test_problems.h:798
vec mOptimum
Definition: test_problems.h:35
double mMinimum
Definition: test_problems.h:856
Levy(int dim)
Constructor.
Definition: test_problems.h:921
vec mOptimum
Definition: test_problems.h:1028
Salomon(int dim)
Constructor.
Definition: test_problems.h:981
vec mOptimum
Definition: test_problems.h:194
double eval(const vec &x) const
Method for evaluating the objective function.
Definition: test_problems.h:279
vec mxUp
Definition: test_problems.h:1380
vec mxUp
Definition: test_problems.h:689
double eval(const vec &x) const
Method for evaluating the objective function.
Definition: test_problems.h:1047
vec mxLow
Definition: test_problems.h:192
vec lBounds() const
Method for getting the lower variable bounds.
Definition: test_problems.h:314
UnitBoxProblem(int dim)
Constructor.
Definition: test_problems.h:1390
std::string mName
Definition: test_problems.h:1383
vec lBounds() const
Method for getting the lower variable bounds.
Definition: test_problems.h:1239
vec toUnitBox(const vec &x, const vec &xLow, const vec &xUp)
Map one point to the unit box.
Definition: utils.h:66
double eval(const vec &x) const
Method for evaluating the objective function.
Definition: test_problems.h:1005
vec mxUp
Definition: test_problems.h:522
Zakharov function
Definition: test_problems.h:350
vec mxLow
Definition: test_problems.h:971
std::string name() const
Method for getting the name of the optimization problem.
Definition: test_problems.h:884
vec optimum() const
Method for getting the global minimizer.
Definition: test_problems.h:608
double min() const
Method for getting global minimum value.
Definition: test_problems.h:323
Sphere(int dim)
Constructor.
Definition: test_problems.h:43
int dim() const
Method for getting the number of dimensions.
Definition: test_problems.h:875
vec uBounds() const
Method for getting the upper variable bounds.
Definition: test_problems.h:930
std::string mName
Definition: test_problems.h:1142
double min() const
Method for getting global minimum value.
Definition: test_problems.h:58
double eval(const vec &x) const
Method for evaluating the objective function.
Definition: test_problems.h:945
int mDim
Definition: test_problems.h:1072
int dim() const
Method for getting the number of dimensions.
Definition: test_problems.h:1043
std::string name() const
Method for getting the name of the optimization problem.
Definition: test_problems.h:276
std::string name() const
Method for getting the name of the optimization problem.
Definition: test_problems.h:719
vec mxUp
Definition: test_problems.h:87
vec uBounds() const
Method for getting the upper variable bounds.
Definition: test_problems.h:816
double min() const
Method for getting global minimum value.
Definition: test_problems.h:1248
Himmelblau function
Definition: test_problems.h:631
vec lBounds() const
Method for getting the lower variable bounds.
Definition: test_problems.h:596
vec uBounds() const
Method for getting the upper variable bounds.
Definition: test_problems.h:427
int mDim
Definition: test_problems.h:796
vec lBounds() const
Method for getting the lower variable bounds.
Definition: test_problems.h:1171
std::string name() const
Method for getting the name of the optimization problem.
Definition: test_problems.h:1104
double mMinimum
Definition: test_problems.h:1225
vec mxLow
Definition: test_problems.h:797
vec uBounds() const
Method for getting the upper variable bounds.
Definition: test_problems.h:990
std::string name() const
Method for getting the name of the optimization problem.
Definition: test_problems.h:117
std::string name() const
Method for getting the name of the optimization problem.
Definition: test_problems.h:774
std::string name() const
Method for getting the name of the optimization problem.
Definition: test_problems.h:942
vec mOptimum
Definition: test_problems.h:355
vec lBounds() const
Method for getting the lower variable bounds.
Definition: test_problems.h:1338
vec lBounds() const
Method for getting the lower variable bounds.
Definition: test_problems.h:927
double eval(const vec &x) const
Method for evaluating the objective function.
Definition: test_problems.h:887
int mDim
Definition: test_problems.h:578
Ackley(int dim)
Constructor.
Definition: test_problems.h:698
double min() const
Method for getting global minimum value.
Definition: test_problems.h:605
Abstract class for a SOT test problem.
Definition: problem.h:62
double eval(const vec &x) const
Method for evaluating the objective function.
Definition: test_problems.h:500
double eval(const vec &x) const
Method for evaluating the objective function.
Definition: test_problems.h:668
vec optimum() const
Method for getting the global minimizer.
Definition: test_problems.h:1350
Schubert3(int dim)
Constructor.
Definition: test_problems.h:1036
vec mxLow
Definition: test_problems.h:521
vec mxUp
Definition: test_problems.h:972
vec mOptimum
Definition: test_problems.h:141
std::string name() const
Method for getting the name of the optimization problem.
Definition: test_problems.h:223
double min() const
Method for getting global minimum value.
Definition: test_problems.h:1044
Ackley function
Definition: test_problems.h:685
vec lBounds() const
Method for getting the lower variable bounds.
Definition: test_problems.h:482
vec mOptimum
Definition: test_problems.h:581
std::string name() const
Method for getting the name of the optimization problem.
Definition: test_problems.h:1002
int mDim
Definition: test_problems.h:407
int dim() const
Method for getting the number of dimensions.
Definition: test_problems.h:1177
Rastrigin(int dim)
Constructor.
Definition: test_problems.h:752
double min() const
Method for getting global minimum value.
Definition: test_problems.h:433
vec mOptimum
Definition: test_problems.h:636
vec mOptimum
Definition: test_problems.h:1381
int mDim
Definition: test_problems.h:970
vec mxLow
Definition: test_problems.h:853
vec mxLow
Definition: test_problems.h:911
vec fromUnitBox(const vec &x, const vec &xLow, const vec &xUp)
Map one point from the unit box to another hypercube.
Definition: utils.h:94
std::string name() const
Method for getting the name of the optimization problem.
Definition: test_problems.h:1186
SineEnvelope(int dim)
Constructor.
Definition: test_problems.h:1083
vec mOptimum
Definition: test_problems.h:913
vec lBounds() const
Method for getting the lower variable bounds.
Definition: test_problems.h:759
double eval(const vec &x) const
Method for evaluating the objective function.
Definition: test_problems.h:614
double eval(const vec &x) const
Method for evaluating the objective function.
Definition: test_problems.h:555
int mDim
Definition: test_problems.h:910
double min() const
Method for getting global minimum value.
Definition: test_problems.h:378
vec uBounds() const
Method for getting the upper variable bounds.
Definition: test_problems.h:372
vec lBounds() const
Method for getting the lower variable bounds.
Definition: test_problems.h:987
double eval(const vec &x) const
Method for evaluating the objective function.
Definition: test_problems.h:442
vec uBounds() const
Method for getting the upper variable bounds.
Definition: test_problems.h:1242
vec mxLow
Definition: test_problems.h:1138
vec uBounds() const
Method for getting the upper variable bounds.
Definition: test_problems.h:1042
vec optimum() const
Method for getting the global minimizer.
Definition: test_problems.h:881
Schaffer2(int dim)
Constructor.
Definition: test_problems.h:531
SOT namespace.
Definition: sot.h:27
vec mxUp
Definition: test_problems.h:743
Sphere function
Definition: test_problems.h:30
double mMinimum
Definition: test_problems.h:745
vec mxUp
Definition: test_problems.h:467
Keane(int dim)
Constructor.
Definition: test_problems.h:863
vec optimum() const
Method for getting the global minimizer.
Definition: test_problems.h:825
std::string name() const
Method for getting the name of the optimization problem.
Definition: test_problems.h:1353
Rosenbrock function
Definition: test_problems.h:405
vec lBounds() const
Method for getting the lower variable bounds.
Definition: test_problems.h:424
Tablet function
Definition: test_problems.h:242
vec mxUp
Definition: test_problems.h:1223
vec optimum() const
Method for getting the global minimizer.
Definition: test_problems.h:716
Rotated and translated problem.
Definition: test_problems.h:1281
std::string name() const
Method for getting the name of the optimization problem.
Definition: test_problems.h:1416
Schoen function
Definition: test_problems.h:1135
vec optimum() const
Method for getting the global minimizer.
Definition: test_problems.h:273
Griewank function
Definition: test_problems.h:463
int dim() const
Method for getting the number of dimensions.
Definition: test_problems.h:933
double eval(const vec &x) const
Method for evaluating the objective function.
Definition: test_problems.h:1419
vec mxLow
Definition: test_problems.h:1073
vec uBounds() const
Method for getting the upper variable bounds.
Definition: test_problems.h:317
double min() const
Method for getting global minimum value.
Definition: test_problems.h:491
arma::mat mat
Default matrix class.
Definition: common.h:16
int mDim
Definition: test_problems.h:191
vec mxLow
Definition: test_problems.h:634
Sum of Squares function.
Definition: test_problems.h:83
vec mxLow
Definition: test_problems.h:139
int mDim
Definition: test_problems.h:520
int mDim
Definition: test_problems.h:244
vec lBounds() const
Method for getting the lower variable bounds.
Definition: test_problems.h:1401
vec optimum() const
Method for getting the global minimizer.
Definition: test_problems.h:939
Michalewicz(int dim)
Constructor.
Definition: test_problems.h:807
Problem scaled to the unit box.
Definition: test_problems.h:1375
std::string name() const
Method for getting the name of the optimization problem.
Definition: test_problems.h:64
vec lBounds() const
Method for getting the lower variable bounds.
Definition: test_problems.h:208
Keane function
Definition: test_problems.h:850
double mMinimum
Definition: test_problems.h:582
int mDim
Definition: test_problems.h:1286
vec uBounds() const
Method for getting the upper variable bounds.
Definition: test_problems.h:1092
double min() const
Method for getting global minimum value.
Definition: test_problems.h:217
double min() const
Method for getting global minimum value.
Definition: test_problems.h:878
vec mOptimum
Definition: test_problems.h:468
vec lBounds() const
Method for getting the lower variable bounds.
Definition: test_problems.h:537
double eval(const vec &x) const
Method for evaluating the objective function.
Definition: test_problems.h:722
double min() const
Method for getting global minimum value.
Definition: test_problems.h:822
vec lBounds() const
Method for getting the lower variable bounds.
Definition: test_problems.h:155
Schoen(int dim, int k)
Constructor for given k.
Definition: test_problems.h:1159
vec uBounds() const
Method for getting the upper variable bounds.
Definition: test_problems.h:1404
vec mTranslation
Definition: test_problems.h:1284
Zakharov(int dim)
Constructor.
Definition: test_problems.h:363
vec mxUp
Definition: test_problems.h:409
vec optimum() const
Method for getting the global minimizer.
Definition: test_problems.h:436
Step function
Definition: test_problems.h:295
int mDim
Definition: test_problems.h:1221
vec optimum() const
Method for getting the global minimizer.
Definition: test_problems.h:1101
vec optimum() const
Method for getting the global minimizer.
Definition: test_problems.h:1251
double eval(const vec &x) const
Method for evaluating the objective function.
Definition: test_problems.h:1356
vec uBounds() const
Method for getting the upper variable bounds.
Definition: test_problems.h:599
int dim() const
Method for getting the number of dimensions.
Definition: test_problems.h:108
vec mxLow
Definition: test_problems.h:298
int mDim
Definition: test_problems.h:741
double min() const
Method for getting global minimum value.
Definition: test_problems.h:1098
vec mOptimum
Definition: test_problems.h:690
vec mxLow
Definition: test_problems.h:33
vec lBounds() const
Method for getting the lower variable bounds.
Definition: test_problems.h:49
vec uBounds() const
Method for getting the upper variable bounds.
Definition: test_problems.h:707
std::string mName
Definition: test_problems.h:1291
vec mxUp
Definition: test_problems.h:580
double eval(const vec &x) const
Method for evaluating the objective function.
Definition: test_problems.h:173