SOT
|
Rotated and translated problem. More...
#include <test_problems.h>
Public Member Functions | |
RotatedProblem (int dim) | |
Constructor. More... | |
mat | rotation () const |
Method that returns the rotation matrix. More... | |
vec | translation () const |
Method that returns the translation vector. More... | |
vec | lBounds () const |
Method for getting the lower variable bounds. More... | |
vec | uBounds () const |
Method for getting the upper variable bounds. More... | |
int | dim () const |
Method for getting the number of dimensions. More... | |
double | min () const |
Method for getting global minimum value. More... | |
vec | optimum () const |
Method for getting the global minimizer. More... | |
std::string | name () const |
Method for getting the name of the optimization problem. More... | |
double | eval (const vec &x) const |
Method for evaluating the objective function. More... | |
![]() | |
vec | evals (const mat &points) const |
Method for evaluating the objective function at multiple points. More... | |
Protected Member Functions | |
void | createTranslation () |
Generates a random translation vector. | |
void | createRotation () |
Generates a random rotation matrix. | |
Protected Attributes | |
std::shared_ptr< Problem > | mProblem |
vec | mTranslation |
mat | mRotation |
int | mDim |
vec | mxLow |
vec | mxUp |
vec | mOptimum |
double | mMinimum |
std::string | mName |
Rotated and translated problem.
Turns a possibly separable problem into a non-separable one. This is done by generating an orthogonal matrix \(Q\) and a vector \( t\), where \( t\) is in the domain of \( f(x)\). We define the new objective function
\(g(x) = f(x_{opt} + Q (x - t))\)
We can see that \(g(t) = f(x_{opt})\) so t is the global minimum of \( g\), and we can also see that \( g\) isn't separable as long as \( Q\) isn't.
OptProblem | The optimization problem (with Problem as a base class) that is rotated and translated into a non-separable optimization problem. |
|
inline |
Constructor.
dim | Number of dimensions |
|
inlinevirtual |
Method for getting the number of dimensions.
Implements sot::Problem.
|
inlinevirtual |
Method for evaluating the objective function.
point | Is the next point for which to evaluate the objective function |
Implements sot::Problem.
|
inlinevirtual |
|
inlinevirtual |
Method for getting global minimum value.
Implements sot::Problem.
|
inlinevirtual |
Method for getting the name of the optimization problem.
Implements sot::Problem.
|
inlinevirtual |
|
inline |
Method that returns the rotation matrix.
|
inline |
Method that returns the translation vector.
|
inlinevirtual |
|
protected |
Number of dimensions (extracted from mProblem)
|
protected |
Global minimum value
|
protected |
Optimization problem name
|
protected |
Global minimizer (same as mTranslation)
|
protected |
Shared pointer to the original optimization problem
|
protected |
Randomly generated rotation
|
protected |
Randomly generated translation
|
protected |
Lower variable bounds (extracted from mProblem)
|
protected |
Upper variable bounds (extracted from mProblem)