![]() |
SG++-Doxygen-Documentation
|
Abstract class for solving constrained optimization problems. More...
#include <ConstrainedOptimizer.hpp>
Protected Attributes | |
std::unique_ptr< base::VectorFunction > | g |
inequality constraint function | |
std::unique_ptr< base::VectorFunctionGradient > | gGradient |
inequality constraint function gradient | |
std::unique_ptr< base::VectorFunction > | h |
equality constraint function | |
std::unique_ptr< base::VectorFunctionGradient > | hGradient |
equality constraint function gradient | |
std::unique_ptr< UnconstrainedOptimizer > | unconstrainedOptimizer |
unconstrained optimization algorithm | |
![]() | |
std::unique_ptr< base::ScalarFunction > | f |
objective function | |
std::unique_ptr< base::ScalarFunctionGradient > | fGradient |
objective function gradient | |
std::unique_ptr< base::ScalarFunctionHessian > | fHessian |
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) | |
Additional Inherited Members | |
![]() | |
static const size_t | DEFAULT_N = 1000 |
default maximal number of iterations or function evaluations | |
Abstract class for solving constrained optimization problems.
|
inline |
Constructor.
By default, Nelder-Mead is used as optimization algorithm (gradient-free). The starting point is set to \((0.5, \dotsc, 0.5)^{\mathrm{T}}\). Depending on the implementation $g$ and/or $h$ may be ignored (if only equality or inequality constraints can be handled by the underlying algorithm).
f | function to optimize |
g | inequality constraint function ( \(g(\vec{x}) \le 0\)) |
h | equality constraint function ( \(h(\vec{x}) = 0\)) |
N | maximal number of iterations or objective function evaluations (depending on the implementation) |
References sgpp::optimization::optimizer::UnconstrainedOptimizer::clone(), g, and h.
|
inline |
Constructor.
By default, adaptive gradient descent is used as optimization algorithm (gradient-based). The starting point is set to \((0.5, \dotsc, 0.5)^{\mathrm{T}}\). Depending on the implementation $g$ and/or $h$ may be ignored (if only equality or inequality constraints can be handled by the underlying algorithm).
f | function to optimize |
fGradient | gradient of f |
g | inequality constraint function ( \(g(\vec{x}) \le 0\)) |
gGradient | gradient of g |
h | equality constraint function ( \(h(\vec{x}) = 0\)) |
hGradient | gradient of h |
N | maximal number of iterations or objective function evaluations (depending on the implementation) |
References sgpp::optimization::optimizer::UnconstrainedOptimizer::clone(), g, gGradient, h, and hGradient.
|
inline |
Constructor with custom unconstrained optimization algorithm (gradient-free or gradient-based).
The starting point is set to \((0.5, \dotsc, 0.5)^{\mathrm{T}}\). Depending on the implementation $g$ and/or $h$ may be ignored (if only equality or inequality constraints can be handled by the underlying algorithm).
unconstrainedOptimizer | unconstrained optimizer |
g | inequality constraint function ( \(g(\vec{x}) \le 0\)) |
gGradient | gradient of g (nullptr to omit) |
h | equality constraint function ( \(h(\vec{x}) = 0\)) |
hGradient | gradient of h (nullptr to omit) |
N | maximal number of iterations or objective function evaluations (depending on the implementation) |
References sgpp::optimization::optimizer::UnconstrainedOptimizer::clone(), and unconstrainedOptimizer.
|
inline |
Copy constructor.
other | optimizer to be copied |
|
inlineoverride |
Destructor.
|
inline |
References h.
|
inline |
References hGradient.
|
inline |
References g.
|
inline |
References gGradient.
|
inline |
h | equality constraint function |
References h.
|
inline |
hGradient | equality constraint function gradient |
References hGradient.
|
inline |
g | inequality constraint function |
References g.
|
inline |
gGradient | inequality constraint function gradient |
References gGradient.
|
protected |
inequality constraint function
Referenced by ConstrainedOptimizer(), ConstrainedOptimizer(), sgpp::optimization::optimizer::AugmentedLagrangian::findFeasiblePoint(), getInequalityConstraintFunction(), sgpp::optimization::optimizer::AugmentedLagrangian::optimize(), sgpp::optimization::optimizer::LogBarrier::optimize(), sgpp::optimization::optimizer::SquaredPenalty::optimize(), and setInequalityConstraintFunction().
|
protected |
inequality constraint function gradient
Referenced by ConstrainedOptimizer(), sgpp::optimization::optimizer::AugmentedLagrangian::findFeasiblePoint(), getInequalityConstraintGradient(), sgpp::optimization::optimizer::AugmentedLagrangian::optimize(), sgpp::optimization::optimizer::LogBarrier::optimize(), sgpp::optimization::optimizer::SquaredPenalty::optimize(), and setInequalityConstraintGradient().
|
protected |
equality constraint function
Referenced by ConstrainedOptimizer(), ConstrainedOptimizer(), sgpp::optimization::optimizer::AugmentedLagrangian::findFeasiblePoint(), getEqualityConstraintFunction(), sgpp::optimization::optimizer::AugmentedLagrangian::optimize(), sgpp::optimization::optimizer::SquaredPenalty::optimize(), and setEqualityConstraintFunction().
|
protected |
equality constraint function gradient
Referenced by ConstrainedOptimizer(), sgpp::optimization::optimizer::AugmentedLagrangian::findFeasiblePoint(), getEqualityConstraintGradient(), sgpp::optimization::optimizer::AugmentedLagrangian::optimize(), sgpp::optimization::optimizer::SquaredPenalty::optimize(), and setEqualityConstraintGradient().
|
protected |
unconstrained optimization algorithm
Referenced by sgpp::optimization::optimizer::AugmentedLagrangian::AugmentedLagrangian(), ConstrainedOptimizer(), sgpp::optimization::optimizer::LogBarrier::LogBarrier(), sgpp::optimization::optimizer::AugmentedLagrangian::optimize(), sgpp::optimization::optimizer::LogBarrier::optimize(), sgpp::optimization::optimizer::SquaredPenalty::optimize(), and sgpp::optimization::optimizer::SquaredPenalty::SquaredPenalty().