SOT
Public Member Functions | Protected Attributes | List of all members
sot::DYCORS< MeritFunction > Class Template Reference

DYnamic COordinate search using Response Surface models. More...

#include <adaptive_sampling.h>

Inheritance diagram for sot::DYCORS< MeritFunction >:
sot::Sampling

Public Member Functions

 DYCORS (const std::shared_ptr< Problem > &data, const std::shared_ptr< Surrogate > &surf, int numCand, int budget)
 Constructor. More...
 
void reset (int budget)
 Resets the object for a new budget (useful if a strategy restarts) More...
 
mat makePoints (const vec &xBest, const mat &points, const vec &sigma, int newPoints)
 Proposes new evaluations. More...
 

Protected Attributes

std::shared_ptr< ProblemmData
 
std::shared_ptr< SurrogatemSurf
 
int mNumCand
 
int mDim
 
vec mxLow
 
vec mxUp
 
double mDistTol
 
int mNumEvals = 0
 
int mBudget
 
MeritFunction mMerit
 

Detailed Description

template<class MeritFunction = MeritWeightedDistance>
class sot::DYCORS< MeritFunction >

DYnamic COordinate search using Response Surface models.

This is an implementation of the DYCORS method that perturbs fewer and fewer variables as the optimization proceeds. The candidate points are generated by perturbing each variable using the probability proposed by DYCORS.

Template Parameters
MeritFunctionThe merit function is used to pick the most promising out of the generated candidate points.
Todo:
Should use SRBF as a Base class
Author
David Eriksson, dme65.nosp@m.@cor.nosp@m.nell..nosp@m.edu

Constructor & Destructor Documentation

template<class MeritFunction = MeritWeightedDistance>
sot::DYCORS< MeritFunction >::DYCORS ( const std::shared_ptr< Problem > &  data,
const std::shared_ptr< Surrogate > &  surf,
int  numCand,
int  budget 
)
inline

Constructor.

Parameters
dataA shared pointer to the optimization problem
surfA shared pointer to the surrogate model
numCandNumber of candidate points that are generated in makePoints
budgetEvaluation budget for the adaptive sampling phase

Member Function Documentation

template<class MeritFunction = MeritWeightedDistance>
mat sot::DYCORS< MeritFunction >::makePoints ( const vec xBest,
const mat points,
const vec sigma,
int  newPoints 
)
inlinevirtual

Proposes new evaluations.

Parameters
xBestThe best solution found so far
pointsPreviously evaluated points
sigmaThe sampling radius
newPointsNumber of new evaluations to be generated
Returns
The proposed points

Implements sot::Sampling.

template<class MeritFunction = MeritWeightedDistance>
void sot::DYCORS< MeritFunction >::reset ( int  budget)
inlinevirtual

Resets the object for a new budget (useful if a strategy restarts)

Parameters
budgetNew evaluation budget

Implements sot::Sampling.

Member Data Documentation

template<class MeritFunction = MeritWeightedDistance>
int sot::DYCORS< MeritFunction >::mBudget
protected

Evaluation budget for the adaptive sampling phase

template<class MeritFunction = MeritWeightedDistance>
std::shared_ptr<Problem> sot::DYCORS< MeritFunction >::mData
protected

A shared pointer to the optimization problem

template<class MeritFunction = MeritWeightedDistance>
int sot::DYCORS< MeritFunction >::mDim
protected

Number of dimensions (extracted from mData)

template<class MeritFunction = MeritWeightedDistance>
double sot::DYCORS< MeritFunction >::mDistTol
protected

Distance tolerance

template<class MeritFunction = MeritWeightedDistance>
MeritFunction sot::DYCORS< MeritFunction >::mMerit
protected

Merit function that is used for picking candidate points

template<class MeritFunction = MeritWeightedDistance>
int sot::DYCORS< MeritFunction >::mNumCand
protected

Number of candidate points that are generated in makePoints

template<class MeritFunction = MeritWeightedDistance>
int sot::DYCORS< MeritFunction >::mNumEvals = 0
protected

Current evaluation count

template<class MeritFunction = MeritWeightedDistance>
std::shared_ptr<Surrogate> sot::DYCORS< MeritFunction >::mSurf
protected

A shared pointer to the surrogate model

template<class MeritFunction = MeritWeightedDistance>
vec sot::DYCORS< MeritFunction >::mxLow
protected

Lower variable bounds (extracted from mData)

template<class MeritFunction = MeritWeightedDistance>
vec sot::DYCORS< MeritFunction >::mxUp
protected

Upper variable bounds (extracted from mData)


The documentation for this class was generated from the following file: