SG++-Doxygen-Documentation
sgpp::optimization::test_problems::TremblingParabolaObjective Class Reference

Trembling parabola objective function. More...

#include <TremblingParabola.hpp>

Inheritance diagram for sgpp::optimization::test_problems::TremblingParabolaObjective:
sgpp::optimization::test_problems::TestScalarFunction sgpp::optimization::ScalarFunction

Public Member Functions

void clone (std::unique_ptr< ScalarFunction > &clone) const override
 
double evalUndisplaced (const base::DataVector &x) override
 
 TremblingParabolaObjective (size_t d, size_t p)
 Constructor. More...
 
 ~TremblingParabolaObjective () override
 Destructor. More...
 
- Public Member Functions inherited from sgpp::optimization::test_problems::TestScalarFunction
double eval (const base::DataVector &x) override
 Evaluate displaced function. More...
 
const base::DataVectorgetDisplacement () const
 
void setDisplacement (const base::DataVector &displacement)
 
 TestScalarFunction (size_t d)
 Constructor. More...
 
 ~TestScalarFunction () override
 Destructor. More...
 
- Public Member Functions inherited from sgpp::optimization::ScalarFunction
size_t getNumberOfParameters () const
 
 ScalarFunction (size_t d)
 Constructor. More...
 
virtual ~ScalarFunction ()
 Destructor. More...
 

Protected Member Functions

double splineTrembling (double x) const
 

Protected Attributes

const base::SBsplineBase bSplineBasis
 
const double g0
 
const size_t p
 
- Protected Attributes inherited from sgpp::optimization::test_problems::TestScalarFunction
base::DataVector displacement
 displacement vector More...
 
base::DataVector xTmp
 temporary vector for displacing More...
 
- Protected Attributes inherited from sgpp::optimization::ScalarFunction
size_t d
 dimension of the domain More...
 

Detailed Description

Trembling parabola objective function.

Definition:

\[\bar{f}(\bar{\vec{x}}) := \sum_{t=1}^d \left(\bar{x}_t^2/10 + \frac{|\bar{x}_t|}{2} \left(\frac{g^p(\bar{x}_t)}{g^p(0)} + 1\right)\right),\qquad g^p(x) := \sum_{k \sim x} (-1)^k b^p(x - k + (p+1)/2)\]

with \(b^p\) being the B-spline with knots \((0, 1, \dotsc, p + 1)\) (degree \(p\)) and the sum running over all \(k\) for which the summand doesn't vanish

Constructor & Destructor Documentation

◆ TremblingParabolaObjective()

sgpp::optimization::test_problems::TremblingParabolaObjective::TremblingParabolaObjective ( size_t  d,
size_t  p 
)

Constructor.

Parameters
ddimension of the domain
psmoothness of the function ( \(p\) times continuously differentiable)

Referenced by clone().

◆ ~TremblingParabolaObjective()

sgpp::optimization::test_problems::TremblingParabolaObjective::~TremblingParabolaObjective ( )
override

Destructor.

Member Function Documentation

◆ clone()

void sgpp::optimization::test_problems::TremblingParabolaObjective::clone ( std::unique_ptr< ScalarFunction > &  clone) const
overridevirtual
Parameters
[out]clonepointer to cloned object

Implements sgpp::optimization::ScalarFunction.

References TremblingParabolaObjective().

◆ evalUndisplaced()

double sgpp::optimization::test_problems::TremblingParabolaObjective::evalUndisplaced ( const base::DataVector x)
overridevirtual
Parameters
xpoint \(\vec{x} \in [0, 1]^d\)
Returns
\(f(\vec{x})\)

Implements sgpp::optimization::test_problems::TestScalarFunction.

References sgpp::optimization::ScalarFunction::d, g0, and splineTrembling().

◆ splineTrembling()

double sgpp::optimization::test_problems::TremblingParabolaObjective::splineTrembling ( double  x) const
inlineprotected

Member Data Documentation

◆ bSplineBasis

const base::SBsplineBase sgpp::optimization::test_problems::TremblingParabolaObjective::bSplineBasis
protected

Referenced by splineTrembling().

◆ g0

const double sgpp::optimization::test_problems::TremblingParabolaObjective::g0
protected

Referenced by evalUndisplaced().

◆ p

const size_t sgpp::optimization::test_problems::TremblingParabolaObjective::p
protected

Referenced by splineTrembling().


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