SG++-Doxygen-Documentation
Loading...
Searching...
No Matches
sgpp::optimization::optimizer::UnconstrainedOptimizer Class Referenceabstract

Abstract class for optimizing objective functions. More...

#include <UnconstrainedOptimizer.hpp>

Inheritance diagram for sgpp::optimization::optimizer::UnconstrainedOptimizer:
sgpp::optimization::optimizer::AdaptiveGradientDescent sgpp::optimization::optimizer::AdaptiveNewton sgpp::optimization::optimizer::BFGS sgpp::optimization::optimizer::CMAES sgpp::optimization::optimizer::ConstrainedOptimizer sgpp::optimization::optimizer::DifferentialEvolution sgpp::optimization::optimizer::GradientDescent sgpp::optimization::optimizer::MultiStart sgpp::optimization::optimizer::NLCG sgpp::optimization::optimizer::NelderMead sgpp::optimization::optimizer::Newton sgpp::optimization::optimizer::Rprop

Public Member Functions

virtual void clone (std::unique_ptr< UnconstrainedOptimizer > &clone) const =0
 Pure virtual method for cloning the optimizer.
 
const base::DataMatrixgetHistoryOfOptimalPoints () const
 
const base::DataVectorgetHistoryOfOptimalValues () const
 
size_t getN () const
 
base::ScalarFunctiongetObjectiveFunction () const
 
base::ScalarFunctionGradientgetObjectiveGradient () const
 
base::ScalarFunctionHessiangetObjectiveHessian () const
 
const base::DataVectorgetOptimalPoint () const
 
double getOptimalValue () const
 
const base::DataVectorgetStartingPoint () const
 
virtual void optimize ()=0
 Pure virtual method for optimization of the objective function.
 
void setN (size_t N)
 
virtual void setObjectiveFunction (const base::ScalarFunction &f)
 
virtual void setObjectiveGradient (const base::ScalarFunctionGradient *fGradient)
 
virtual void setObjectiveHessian (const base::ScalarFunctionHessian *fHessian)
 
void setStartingPoint (const base::DataVector &startingPoint)
 
 UnconstrainedOptimizer (const base::ScalarFunction &f, const base::ScalarFunctionGradient *fGradient, const base::ScalarFunctionHessian *fHessian, size_t N=DEFAULT_N)
 Constructor.
 
 UnconstrainedOptimizer (const UnconstrainedOptimizer &other)
 Copy constructor.
 
virtual ~UnconstrainedOptimizer ()
 Destructor.
 

Static Public Attributes

static const size_t DEFAULT_N = 1000
 default maximal number of iterations or function evaluations
 

Protected Attributes

std::unique_ptr< base::ScalarFunctionf
 objective function
 
std::unique_ptr< base::ScalarFunctionGradientfGradient
 objective function gradient
 
std::unique_ptr< base::ScalarFunctionHessianfHessian
 objective function Hessian
 
base::DataVector fHist
 search history vector (optimal values)
 
double fOpt
 result of optimization (optimal function value)
 
size_t N
 maximal number of iterations or function evaluations
 
base::DataVector x0
 starting point
 
base::DataMatrix xHist
 search history matrix (optimal points)
 
base::DataVector xOpt
 result of optimization (location of optimum)
 

Detailed Description

Abstract class for optimizing objective functions.

Constructor & Destructor Documentation

◆ UnconstrainedOptimizer() [1/2]

sgpp::optimization::optimizer::UnconstrainedOptimizer::UnconstrainedOptimizer ( const base::ScalarFunction f,
const base::ScalarFunctionGradient fGradient,
const base::ScalarFunctionHessian fHessian,
size_t  N = DEFAULT_N 
)
inlineexplicit

Constructor.

The starting point is set to \((0.5, \dotsc, 0.5)^{\mathrm{T}}\).

Parameters
ffunction to optimize
fGradientgradient of f (nullptr to omit)
fHessianHessian of f (nullptr to omit)
Nmaximal number of iterations or function evaluations (depending on the implementation)

References f, fGradient, and fHessian.

◆ UnconstrainedOptimizer() [2/2]

sgpp::optimization::optimizer::UnconstrainedOptimizer::UnconstrainedOptimizer ( const UnconstrainedOptimizer other)
inline

Copy constructor.

Parameters
otheroptimizer to be copied

References fHist, fOpt, x0, xHist, and xOpt.

◆ ~UnconstrainedOptimizer()

virtual sgpp::optimization::optimizer::UnconstrainedOptimizer::~UnconstrainedOptimizer ( )
inlinevirtual

Destructor.

Member Function Documentation

◆ clone()

◆ getHistoryOfOptimalPoints()

const base::DataMatrix & sgpp::optimization::optimizer::UnconstrainedOptimizer::getHistoryOfOptimalPoints ( ) const
inline
Returns
tall matrix (d columns) in which the k-th row indicates the best point after k iterations of the optimization, empty matrix on error or if not supported

References xHist.

Referenced by sgpp::optimization::optimizer::MultiStart::optimize().

◆ getHistoryOfOptimalValues()

const base::DataVector & sgpp::optimization::optimizer::UnconstrainedOptimizer::getHistoryOfOptimalValues ( ) const
inline
Returns
vector in which the k-th entry indicates the best function value after k iterations of the optimization, empty vector on error or if not supported

References fHist.

◆ getN()

size_t sgpp::optimization::optimizer::UnconstrainedOptimizer::getN ( ) const
inline
Returns
maximal number of iterations or function evaluations

References N.

◆ getObjectiveFunction()

base::ScalarFunction & sgpp::optimization::optimizer::UnconstrainedOptimizer::getObjectiveFunction ( ) const
inline
Returns
objective function

References f.

◆ getObjectiveGradient()

base::ScalarFunctionGradient * sgpp::optimization::optimizer::UnconstrainedOptimizer::getObjectiveGradient ( ) const
inline
Returns
objective gradient

References fGradient.

◆ getObjectiveHessian()

base::ScalarFunctionHessian * sgpp::optimization::optimizer::UnconstrainedOptimizer::getObjectiveHessian ( ) const
inline
Returns
objective Hessian

References fHessian.

◆ getOptimalPoint()

const base::DataVector & sgpp::optimization::optimizer::UnconstrainedOptimizer::getOptimalPoint ( ) const
inline

◆ getOptimalValue()

double sgpp::optimization::optimizer::UnconstrainedOptimizer::getOptimalValue ( ) const
inline
Returns
result of optimization (optimal function value), NaN on error

References fOpt.

Referenced by sgpp::datadriven::BayesianOptimization::main(), and sgpp::optimization::optimizer::MultiStart::optimize().

◆ getStartingPoint()

const base::DataVector & sgpp::optimization::optimizer::UnconstrainedOptimizer::getStartingPoint ( ) const
inline
Returns
starting point

References x0.

◆ optimize()

◆ setN()

void sgpp::optimization::optimizer::UnconstrainedOptimizer::setN ( size_t  N)
inline
Parameters
Nmaximal number of iterations or function evaluations

References N.

Referenced by sgpp::optimization::optimizer::MultiStart::optimize().

◆ setObjectiveFunction()

virtual void sgpp::optimization::optimizer::UnconstrainedOptimizer::setObjectiveFunction ( const base::ScalarFunction f)
inlinevirtual
Parameters
fobjective function

Reimplemented in sgpp::optimization::optimizer::MultiStart.

References f.

Referenced by sgpp::optimization::optimizer::MultiStart::setObjectiveFunction().

◆ setObjectiveGradient()

virtual void sgpp::optimization::optimizer::UnconstrainedOptimizer::setObjectiveGradient ( const base::ScalarFunctionGradient fGradient)
inlinevirtual
Parameters
fGradientobjective gradient

Reimplemented in sgpp::optimization::optimizer::MultiStart.

References fGradient.

Referenced by sgpp::optimization::optimizer::MultiStart::setObjectiveGradient().

◆ setObjectiveHessian()

virtual void sgpp::optimization::optimizer::UnconstrainedOptimizer::setObjectiveHessian ( const base::ScalarFunctionHessian fHessian)
inlinevirtual
Parameters
fHessianobjective Hessian

Reimplemented in sgpp::optimization::optimizer::MultiStart.

References fHessian.

Referenced by sgpp::optimization::optimizer::MultiStart::setObjectiveHessian().

◆ setStartingPoint()

void sgpp::optimization::optimizer::UnconstrainedOptimizer::setStartingPoint ( const base::DataVector startingPoint)
inline
Parameters
startingPointstarting point

References x0.

Referenced by sgpp::optimization::SplineResponseSurface::optimize(), and sgpp::optimization::optimizer::MultiStart::optimize().

Member Data Documentation

◆ DEFAULT_N

const size_t sgpp::optimization::optimizer::UnconstrainedOptimizer::DEFAULT_N = 1000
static

default maximal number of iterations or function evaluations

◆ f

◆ fGradient

◆ fHessian

◆ fHist

◆ fOpt

◆ N

◆ x0

◆ xHist

◆ xOpt


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