SG++-Doxygen-Documentation
sgpp::optimization::test_problems::UnconstrainedTestProblem Class Referenceabstract

Base class for analytical, unconstrained test problems. More...

#include <UnconstrainedTestProblem.hpp>

Inheritance diagram for sgpp::optimization::test_problems::UnconstrainedTestProblem:

## Public Member Functions

void generateDisplacement ()
Generate normally distributed pseudorandom displacement with default standard deviation. More...

void generateDisplacement (double stdDev)
Generate normally distributed pseudorandom displacement. More...

const base::DataVectorgetDisplacement () const

virtual TestScalarFunctiongetObjectiveFunction ()=0

double getOptimalPoint (base::DataVector &x)
Returns the minimal point of the displaced function. More...

virtual double getOptimalPointUndisplaced (base::DataVector &x)=0
Pure virtual method returning the minimal point (or one of the minimal points, if there are multiple of them) of the test function. More...

void setDisplacement (const base::DataVector &displacement)
Sets the displacement vector. More...

UnconstrainedTestProblem (size_t d)
Constructor. More...

virtual ~UnconstrainedTestProblem ()
Destructor. More...

## Static Public Attributes

static constexpr double DEFAULT_STANDARD_DEVIATION = 0.01
default standard deviation for the displacement vector More...

## Protected Member Functions

virtual bool isDisplacementFeasible ()
Checks if the current displacement is ok for the specific objective function. More...

## Protected Attributes

size_t d
number of parameters More...

base::DataVector displacement
displacement vector More...

## Detailed Description

Base class for analytical, unconstrained test problems.

This class essentially manages an objective function, generates a Gaussian displacement vector, and contains the location of the optimal point.

## Constructor & Destructor Documentation

 sgpp::optimization::test_problems::UnconstrainedTestProblem::UnconstrainedTestProblem ( size_t d )
explicit

Constructor.

The displacement is set to all zeros, so to displace the function call generateDisplacement() afterwards.

Parameters
 d dimension of the domain
 sgpp::optimization::test_problems::UnconstrainedTestProblem::~UnconstrainedTestProblem ( )
virtual

Destructor.

## Member Function Documentation

 void sgpp::optimization::test_problems::UnconstrainedTestProblem::generateDisplacement ( )

Generate normally distributed pseudorandom displacement with default standard deviation.

This method also sets the new displacement in the objective function.

References DEFAULT_STANDARD_DEVIATION.

 void sgpp::optimization::test_problems::UnconstrainedTestProblem::generateDisplacement ( double stdDev )

Generate normally distributed pseudorandom displacement.

This method also sets the new displacement in the objective function.

Parameters
 stdDev standard deviation of the displacement coordinates
 const base::DataVector & sgpp::optimization::test_problems::UnconstrainedTestProblem::getDisplacement ( ) const
Returns
currently used displacement

References displacement.

 virtual TestScalarFunction& sgpp::optimization::test_problems::UnconstrainedTestProblem::getObjectiveFunction ( )
pure virtual
 double sgpp::optimization::test_problems::UnconstrainedTestProblem::getOptimalPoint ( base::DataVector & x )

Returns the minimal point of the displaced function.

Parameters
 [out] x reverse displaced minimal point $$\vec{x}_\opt - \vec{d}$$
Returns
minimal function value $$f(\vec{x}_\opt)$$

Referenced by isDisplacementFeasible().

 virtual double sgpp::optimization::test_problems::UnconstrainedTestProblem::getOptimalPointUndisplaced ( base::DataVector & x )
pure virtual

Pure virtual method returning the minimal point (or one of the minimal points, if there are multiple of them) of the test function.

Parameters
 [out] x minimal point $$\vec{x}_\opt$$
Returns
minimal function value $$f(\vec{x}_\opt)$$

Referenced by getOptimalPoint().

 bool sgpp::optimization::test_problems::UnconstrainedTestProblem::isDisplacementFeasible ( )
protectedvirtual

Checks if the current displacement is ok for the specific objective function.

An infeasible displacement would be one for which one of the following happens:

1. The optimal point is displaced out of $$[0, 1]^d$$.
2. Singularities, where the function is not well-defined, are displaced into $$[0, 1]^d$$.

This function is called by generateDisplacement to check the feasibility of the new displacement. Only 1. will be checked by default. For additional constraints on the displacement, override this function.

Returns
whether the current displacement is feasible

References d, and getOptimalPoint().

 void sgpp::optimization::test_problems::UnconstrainedTestProblem::setDisplacement ( const base::DataVector & displacement )

Sets the displacement vector.

This method also sets the new displacement in the objective function.

Parameters
 displacement currently used displacement

## Member Data Documentation

 constexpr double sgpp::optimization::test_problems::UnconstrainedTestProblem::DEFAULT_STANDARD_DEVIATION = 0.01
static

default standard deviation for the displacement vector

Referenced by generateDisplacement().

 base::DataVector sgpp::optimization::test_problems::UnconstrainedTestProblem::displacement
protected

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