SOT
|
The surrogate optimization algorithm. More...
#include <optimizer.h>
Public Member Functions | |
Optimizer (std::shared_ptr< Problem > &data, std::shared_ptr< ExpDesign > &expDes, std::shared_ptr< Surrogate > &surf, std::shared_ptr< Sampling > &sampling, int maxEvals) | |
Constructor. More... | |
Optimizer (std::shared_ptr< Problem > &data, std::shared_ptr< ExpDesign > &expDes, std::shared_ptr< Surrogate > &surf, std::shared_ptr< Sampling > &sampling, int maxEvals, int numThreads) | |
Constructor. More... | |
Result | run () |
Runs the optimization algorithm. More... | |
Protected Member Functions | |
void | evalBatch (const mat &batch, vec &funVals) |
Evalaute a batch of points in parallel. More... | |
Protected Attributes | |
std::shared_ptr< Problem > | mData |
std::shared_ptr< ExpDesign > | mExpDes |
std::shared_ptr< Surrogate > | mSurf |
std::shared_ptr< Sampling > | mSampling |
const double | mSigmaMax = 0.2 |
const double | mSigmaMin = 0.005 |
int | mSuccTol = 3 |
int | mFailTol |
int | mMaxEvals |
int | mNumEvals |
int | mInitPoints |
int | mDim |
vec | mxLow |
vec | mxUp |
std::string | mName = "Surrogate Optimizer" |
int | mNumThreads |
int | mEvalCount = 0 |
std::mutex | mMutex |
The surrogate optimization algorithm.
This is a general surrogate optimization algorithm that uses the supplied experimental design, surrogate model, and adaptive sampling to minimize the given optimization problem. The optimization algorithm starts by searching far from previously generated points and start searching closer and closer to the best solution found so far when not enough improvement is made. The algorithm restarts with a new experimental design when the search radius gets too small.
|
inline |
Constructor.
data | A shared pointer to the optimization problem |
expDes | A shared pointer to the experimental design |
surf | A shared pointer to the surrogate model |
sampling | A shared pointer to the adaptive sampling |
maxEvals | Evaluation budget |
std::logic_error | If size of experimental design exceeds the evaluation budget |
|
inline |
Constructor.
data | A shared pointer to the optimization problem |
expDes | A shared pointer to the experimental design |
surf | A shared pointer to the surrogate model |
sampling | A shared pointer to the adaptive sampling |
maxEvals | Evaluation budget |
numThreads | Number of threads to use for parallel evaluations |
std::logic_error | If size of experimental design exceeds the evaluation budget |
Evalaute a batch of points in parallel.
batch | Batch of points to be evaluated |
funVals | Vector to write the function values to |
|
inline |
Runs the optimization algorithm.
|
protected |
A shared pointer to the optimization problem
|
protected |
Number of dimensions (extracted from mData)
|
protected |
Evaluation counter for evalauting batches
|
protected |
A shared pointer to the experimental design
|
protected |
After mSuccTol consecutive iteration without improvement the search radius is decreased
|
protected |
Points in the initial design (extracted from mExpDes)
|
protected |
Evaluation budget
|
protected |
Mutex for assigning evaluations to the threads
|
protected |
Strategy name
|
protected |
Evaluations carried out
|
protected |
Number of threads
|
protected |
A shared pointer to the adpative sampling
|
protected |
Largest search radius w.r.t. the unix box
|
protected |
Smallest search radius w.r.t. the unix box
|
protected |
After mSuccTol consecutive improvements the search radius is increased
|
protected |
A shared pointer to the surrogate model
|
protected |
Lower variable bounds (extracted from mData)
|
protected |
Upper variable bounds (extracted from mData)