SOT
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
sot::DDS Class Reference

The Dynamically Dimensioned Search optimization algorithm. More...

#include <dds.h>

Public Member Functions

 DDS (std::shared_ptr< Problem > &data, std::shared_ptr< ExpDesign > &expDes, int maxEvals)
 Constructor. More...
 
 DDS (std::shared_ptr< Problem > &data, std::shared_ptr< ExpDesign > &expDes, 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< ProblemmData
 
std::shared_ptr< ExpDesignmExpDes
 
int mMaxEvals
 
int mNumEvals
 
int mInitPoints
 
int mDim
 
vec mxLow
 
vec mxUp
 
std::string mName = "DDS"
 
int mNumThreads
 
int mEvalCount = 0
 
std::mutex mMutex
 

Detailed Description

The Dynamically Dimensioned Search optimization algorithm.

This is an implementation of the DDS algorithm. DDS generates a new point to evaluate by perturbing the best solution found so far. Each variable is perturbed with a probability that decreases with the number of evaluations carried out, which means that fewer and fewer variables are perturbed throughout the optimization process.

Author
David Eriksson, dme65.nosp@m.@cor.nosp@m.nell..nosp@m.edu

Constructor & Destructor Documentation

sot::DDS::DDS ( std::shared_ptr< Problem > &  data,
std::shared_ptr< ExpDesign > &  expDes,
int  maxEvals 
)
inline

Constructor.

Parameters
dataA shared pointer to the optimization problem
expDesA shared pointer to the experimental design
maxEvalsEvaluation budget
sot::DDS::DDS ( std::shared_ptr< Problem > &  data,
std::shared_ptr< ExpDesign > &  expDes,
int  maxEvals,
int  numThreads 
)
inline

Constructor.

Parameters
dataA shared pointer to the optimization problem
expDesA shared pointer to the experimental design
maxEvalsEvaluation budget
numThreadsNumber of threads

Member Function Documentation

void sot::DDS::evalBatch ( const mat batch,
vec funVals 
)
inlineprotected

Evalaute a batch of points in parallel.

Parameters
batchBatch of points to be evaluated
funValsVector to write the function values to
Result sot::DDS::run ( )
inline

Runs the optimization algorithm.

Returns
A Result object with the results from the run

Member Data Documentation

std::shared_ptr<Problem> sot::DDS::mData
protected

A shared pointer to the optimization problem

int sot::DDS::mDim
protected

Number of dimensions (extracted from mData)

int sot::DDS::mEvalCount = 0
protected

Evaluation counter for evalauting batches

std::shared_ptr<ExpDesign> sot::DDS::mExpDes
protected

A shared pointer to the experimental design

int sot::DDS::mInitPoints
protected

Number of points in the experimental design (extracted from mExpDes)

int sot::DDS::mMaxEvals
protected

Evaluation budget

std::mutex sot::DDS::mMutex
protected

Mutex for assigning evaluations to the threads

std::string sot::DDS::mName = "DDS"
protected

Strategy name

int sot::DDS::mNumEvals
protected

Evaluation counter

int sot::DDS::mNumThreads
protected

Number of threads

vec sot::DDS::mxLow
protected

Lower variable bounds (extracted from mData)

vec sot::DDS::mxUp
protected

Upper variable bounds (extracted from mData)


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