SG++-Doxygen-Documentation
Loading...
Searching...
No Matches
sgpp::optimization::optimizer::LogBarrier Class Reference

Log Barrier method for constrained optimization. More...

#include <LogBarrier.hpp>

Inheritance diagram for sgpp::optimization::optimizer::LogBarrier:
sgpp::optimization::optimizer::ConstrainedOptimizer sgpp::optimization::optimizer::UnconstrainedOptimizer

Public Member Functions

void clone (std::unique_ptr< UnconstrainedOptimizer > &clone) const override
 
double getBarrierDecreaseFactor () const
 
double getBarrierStartValue () const
 
const std::vector< size_t > & getHistoryOfInnerIterationNumbers () const
 
const base::DataMatrixgetHistoryOfInnerIterationPoints () const
 
double getTolerance () const
 
 LogBarrier (const base::ScalarFunction &f, const base::ScalarFunctionGradient &fGradient, const base::VectorFunction &g, const base::VectorFunctionGradient &gGradient, size_t maxItCount=DEFAULT_N, double tolerance=DEFAULT_TOLERANCE, double barrierStartValue=DEFAULT_BARRIER_START_VALUE, double barrierDecreaseFactor=DEFAULT_BARRIER_DECREASE_FACTOR)
 Constructor with adaptive gradient descent as optimization algorithm (gradient-based).
 
 LogBarrier (const base::ScalarFunction &f, const base::VectorFunction &g, size_t maxItCount=DEFAULT_N, double tolerance=DEFAULT_TOLERANCE, double barrierStartValue=DEFAULT_BARRIER_START_VALUE, double barrierDecreaseFactor=DEFAULT_BARRIER_DECREASE_FACTOR)
 Constructor with Nelder-Mead as optimization algorithm (gradient-free).
 
 LogBarrier (const LogBarrier &other)
 Copy constructor.
 
 LogBarrier (const UnconstrainedOptimizer &unconstrainedOptimizer, const base::VectorFunction &g, const base::VectorFunctionGradient *gGradient, size_t maxItCount=DEFAULT_N, double tolerance=DEFAULT_TOLERANCE, double barrierStartValue=DEFAULT_BARRIER_START_VALUE, double barrierDecreaseFactor=DEFAULT_BARRIER_DECREASE_FACTOR)
 Constructor with custom unconstrained optimization algorithm (gradient-free or gradient-based).
 
void optimize () override
 Pure virtual method for optimization of the objective function.
 
void setBarrierDecreaseFactor (double barrierDecreaseFactor)
 
void setBarrierStartValue (double barrierStartValue)
 
void setTolerance (double tolerance)
 
 ~LogBarrier () override
 Destructor.
 
- Public Member Functions inherited from sgpp::optimization::optimizer::ConstrainedOptimizer
 ConstrainedOptimizer (const base::ScalarFunction &f, const base::ScalarFunctionGradient &fGradient, const base::VectorFunction &g, const base::VectorFunctionGradient &gGradient, const base::VectorFunction &h, const base::VectorFunctionGradient &hGradient, size_t N=DEFAULT_N)
 Constructor.
 
 ConstrainedOptimizer (const base::ScalarFunction &f, const base::VectorFunction &g, const base::VectorFunction &h, size_t N=DEFAULT_N)
 Constructor.
 
 ConstrainedOptimizer (const ConstrainedOptimizer &other)
 Copy constructor.
 
 ConstrainedOptimizer (const UnconstrainedOptimizer &unconstrainedOptimizer, const base::VectorFunction &g, const base::VectorFunctionGradient *gGradient, const base::VectorFunction &h, const base::VectorFunctionGradient *hGradient, size_t N=DEFAULT_N)
 Constructor with custom unconstrained optimization algorithm (gradient-free or gradient-based).
 
base::VectorFunctiongetEqualityConstraintFunction () const
 
base::VectorFunctionGradientgetEqualityConstraintGradient () const
 
base::VectorFunctiongetInequalityConstraintFunction () const
 
base::VectorFunctionGradientgetInequalityConstraintGradient () const
 
void setEqualityConstraintFunction (const base::VectorFunction &h)
 
void setEqualityConstraintGradient (const base::VectorFunctionGradient *hGradient)
 
void setInequalityConstraintFunction (const base::VectorFunction &g)
 
void setInequalityConstraintGradient (const base::VectorFunctionGradient *gGradient)
 
 ~ConstrainedOptimizer () override
 Destructor.
 
- Public Member Functions inherited from sgpp::optimization::optimizer::UnconstrainedOptimizer
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
 
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 constexpr double DEFAULT_BARRIER_DECREASE_FACTOR = 0.5
 default barrier decrease factor
 
static constexpr double DEFAULT_BARRIER_START_VALUE = 1.0
 default barrier start value
 
static constexpr double DEFAULT_TOLERANCE = 1e-6
 default tolerance
 
- Static Public Attributes inherited from sgpp::optimization::optimizer::UnconstrainedOptimizer
static const size_t DEFAULT_N = 1000
 default maximal number of iterations or function evaluations
 

Protected Attributes

std::vector< size_t > kHistInner
 search history (number of inner iterations)
 
double mu0
 barrier start value
 
double rhoMuMinus
 barrier decrease factor
 
double theta
 tolerance
 
base::DataMatrix xHistInner
 search history (inner iterations)
 
- Protected Attributes inherited from sgpp::optimization::optimizer::ConstrainedOptimizer
std::unique_ptr< base::VectorFunctiong
 inequality constraint function
 
std::unique_ptr< base::VectorFunctionGradientgGradient
 inequality constraint function gradient
 
std::unique_ptr< base::VectorFunctionh
 equality constraint function
 
std::unique_ptr< base::VectorFunctionGradienthGradient
 equality constraint function gradient
 
std::unique_ptr< UnconstrainedOptimizerunconstrainedOptimizer
 unconstrained optimization algorithm
 
- Protected Attributes inherited from sgpp::optimization::optimizer::UnconstrainedOptimizer
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

Log Barrier method for constrained optimization.

Constructor & Destructor Documentation

◆ LogBarrier() [1/4]

sgpp::optimization::optimizer::LogBarrier::LogBarrier ( const base::ScalarFunction f,
const base::VectorFunction g,
size_t  maxItCount = DEFAULT_N,
double  tolerance = DEFAULT_TOLERANCE,
double  barrierStartValue = DEFAULT_BARRIER_START_VALUE,
double  barrierDecreaseFactor = DEFAULT_BARRIER_DECREASE_FACTOR 
)

Constructor with Nelder-Mead as optimization algorithm (gradient-free).

Parameters
fobjective function
ginequality constraint
maxItCountmaximal number of function evaluations
tolerancetolerance
barrierStartValuebarrier start value
barrierDecreaseFactorbarrier decrease factor

◆ LogBarrier() [2/4]

sgpp::optimization::optimizer::LogBarrier::LogBarrier ( const base::ScalarFunction f,
const base::ScalarFunctionGradient fGradient,
const base::VectorFunction g,
const base::VectorFunctionGradient gGradient,
size_t  maxItCount = DEFAULT_N,
double  tolerance = DEFAULT_TOLERANCE,
double  barrierStartValue = DEFAULT_BARRIER_START_VALUE,
double  barrierDecreaseFactor = DEFAULT_BARRIER_DECREASE_FACTOR 
)

Constructor with adaptive gradient descent as optimization algorithm (gradient-based).

Parameters
fobjective function
fGradientobjective function gradient
ginequality constraint
gGradientinequality constraint gradient
maxItCountmaximal number of function evaluations
tolerancetolerance
barrierStartValuebarrier start value
barrierDecreaseFactorbarrier decrease factor

References setTolerance(), theta, and sgpp::optimization::optimizer::ConstrainedOptimizer::unconstrainedOptimizer.

◆ LogBarrier() [3/4]

sgpp::optimization::optimizer::LogBarrier::LogBarrier ( const UnconstrainedOptimizer unconstrainedOptimizer,
const base::VectorFunction g,
const base::VectorFunctionGradient gGradient,
size_t  maxItCount = DEFAULT_N,
double  tolerance = DEFAULT_TOLERANCE,
double  barrierStartValue = DEFAULT_BARRIER_START_VALUE,
double  barrierDecreaseFactor = DEFAULT_BARRIER_DECREASE_FACTOR 
)

Constructor with custom unconstrained optimization algorithm (gradient-free or gradient-based).

Parameters
unconstrainedOptimizerunconstrained optimization algorithm
ginequality constraint
gGradientinequality constraint gradient (nullptr to omit)
maxItCountmaximal number of function evaluations
tolerancetolerance
barrierStartValuebarrier start value
barrierDecreaseFactorbarrier decrease factor

◆ LogBarrier() [4/4]

sgpp::optimization::optimizer::LogBarrier::LogBarrier ( const LogBarrier other)

Copy constructor.

Parameters
otheroptimizer to be copied

◆ ~LogBarrier()

sgpp::optimization::optimizer::LogBarrier::~LogBarrier ( )
override

Destructor.

Member Function Documentation

◆ clone()

void sgpp::optimization::optimizer::LogBarrier::clone ( std::unique_ptr< UnconstrainedOptimizer > &  clone) const
overridevirtual
Parameters
[out]clonepointer to cloned object

Implements sgpp::optimization::optimizer::UnconstrainedOptimizer.

References clone().

Referenced by clone().

◆ getBarrierDecreaseFactor()

double sgpp::optimization::optimizer::LogBarrier::getBarrierDecreaseFactor ( ) const
Returns
barrier decrease factor

References rhoMuMinus.

◆ getBarrierStartValue()

double sgpp::optimization::optimizer::LogBarrier::getBarrierStartValue ( ) const
Returns
barrier start value

References mu0.

◆ getHistoryOfInnerIterationNumbers()

const std::vector< size_t > & sgpp::optimization::optimizer::LogBarrier::getHistoryOfInnerIterationNumbers ( ) const
Returns
vector in which the k-th entry indicates the number of inner iterations in the k-th (outer) iteration, empty vector on error

References kHistInner.

◆ getHistoryOfInnerIterationPoints()

const base::DataMatrix & sgpp::optimization::optimizer::LogBarrier::getHistoryOfInnerIterationPoints ( ) const
Returns
tall matrix (d columns) in which the history of optimal points of the iterations are concatenated

References xHistInner.

◆ getTolerance()

double sgpp::optimization::optimizer::LogBarrier::getTolerance ( ) const
Returns
tolerance

References theta.

◆ optimize()

◆ setBarrierDecreaseFactor()

void sgpp::optimization::optimizer::LogBarrier::setBarrierDecreaseFactor ( double  barrierDecreaseFactor)
Parameters
barrierDecreaseFactorbarrier decrease factor

References rhoMuMinus.

◆ setBarrierStartValue()

void sgpp::optimization::optimizer::LogBarrier::setBarrierStartValue ( double  barrierStartValue)
Parameters
barrierStartValuebarrier start value

References mu0.

◆ setTolerance()

void sgpp::optimization::optimizer::LogBarrier::setTolerance ( double  tolerance)
Parameters
tolerancetolerance

References theta.

Referenced by LogBarrier().

Member Data Documentation

◆ DEFAULT_BARRIER_DECREASE_FACTOR

constexpr double sgpp::optimization::optimizer::LogBarrier::DEFAULT_BARRIER_DECREASE_FACTOR = 0.5
staticconstexpr

default barrier decrease factor

◆ DEFAULT_BARRIER_START_VALUE

constexpr double sgpp::optimization::optimizer::LogBarrier::DEFAULT_BARRIER_START_VALUE = 1.0
staticconstexpr

default barrier start value

◆ DEFAULT_TOLERANCE

constexpr double sgpp::optimization::optimizer::LogBarrier::DEFAULT_TOLERANCE = 1e-6
staticconstexpr

default tolerance

◆ kHistInner

std::vector<size_t> sgpp::optimization::optimizer::LogBarrier::kHistInner
protected

search history (number of inner iterations)

Referenced by getHistoryOfInnerIterationNumbers(), and optimize().

◆ mu0

double sgpp::optimization::optimizer::LogBarrier::mu0
protected

barrier start value

Referenced by getBarrierStartValue(), optimize(), and setBarrierStartValue().

◆ rhoMuMinus

double sgpp::optimization::optimizer::LogBarrier::rhoMuMinus
protected

barrier decrease factor

Referenced by getBarrierDecreaseFactor(), optimize(), and setBarrierDecreaseFactor().

◆ theta

double sgpp::optimization::optimizer::LogBarrier::theta
protected

tolerance

Referenced by getTolerance(), LogBarrier(), optimize(), and setTolerance().

◆ xHistInner

base::DataMatrix sgpp::optimization::optimizer::LogBarrier::xHistInner
protected

search history (inner iterations)

Referenced by getHistoryOfInnerIterationPoints(), and optimize().


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