![]()  | 
  
    SG++-Doxygen-Documentation
    
   | 
 
Augmented Lagrangian method for constrained optimization. More...
#include <AugmentedLagrangian.hpp>
  
 Static Public Attributes | |
| static constexpr double | DEFAULT_CONSTRAINT_TOLERANCE = 1e-6 | 
| default constraint tolerance  More... | |
| static constexpr double | DEFAULT_PENALTY_INCREASE_FACTOR = 1.0 | 
| default penalty increase factor  More... | |
| static constexpr double | DEFAULT_PENALTY_START_VALUE = 1.0 | 
| default penalty start value  More... | |
| static constexpr double | DEFAULT_X_TOLERANCE = 1e-6 | 
| default point tolerance  More... | |
  Static Public Attributes inherited from sgpp::optimization::optimizer::UnconstrainedOptimizer | |
| static const size_t | DEFAULT_N = 1000 | 
| default maximal number of iterations or function evaluations  More... | |
Protected Attributes | |
| double | epsilon | 
| constraint tolerance  More... | |
| std::unique_ptr< ScalarFunctionGradient > | fGradient | 
| objective function gradient  More... | |
| std::unique_ptr< VectorFunctionGradient > | gGradient | 
| inequality constraint function gradient  More... | |
| std::unique_ptr< VectorFunctionGradient > | hGradient | 
| equality constraint function gradient  More... | |
| std::vector< size_t > | kHistInner | 
| search history (number of inner iterations)  More... | |
| double | mu0 | 
| penalty start value  More... | |
| double | rhoMuPlus | 
| penalty increase factor  More... | |
| double | theta | 
| point tolerance  More... | |
| base::DataMatrix | xHistInner | 
| search history (inner iterations)  More... | |
  Protected Attributes inherited from sgpp::optimization::optimizer::ConstrainedOptimizer | |
| std::unique_ptr< VectorFunction > | g | 
| inequality constraint function  More... | |
| std::unique_ptr< VectorFunction > | h | 
| equality constraint function  More... | |
  Protected Attributes inherited from sgpp::optimization::optimizer::UnconstrainedOptimizer | |
| std::unique_ptr< ScalarFunction > | f | 
| objective function  More... | |
| base::DataVector | fHist | 
| search history vector (optimal values)  More... | |
| double | fOpt | 
| result of optimization (optimal function value)  More... | |
| size_t | N | 
| maximal number of iterations or function evaluations  More... | |
| base::DataVector | x0 | 
| starting point  More... | |
| base::DataMatrix | xHist | 
| search history matrix (optimal points)  More... | |
| base::DataVector | xOpt | 
| result of optimization (location of optimum)  More... | |
Augmented Lagrangian method for constrained optimization.
| sgpp::optimization::optimizer::AugmentedLagrangian::AugmentedLagrangian | ( | const ScalarFunction & | f, | 
| const ScalarFunctionGradient & | fGradient, | ||
| const VectorFunction & | g, | ||
| const VectorFunctionGradient & | gGradient, | ||
| const VectorFunction & | h, | ||
| const VectorFunctionGradient & | hGradient, | ||
| size_t | maxItCount = DEFAULT_N,  | 
        ||
| double | xTolerance = DEFAULT_X_TOLERANCE,  | 
        ||
| double | constraintTolerance = DEFAULT_CONSTRAINT_TOLERANCE,  | 
        ||
| double | penaltyStartValue = DEFAULT_PENALTY_START_VALUE,  | 
        ||
| double | penaltyIncreaseFactor = DEFAULT_PENALTY_INCREASE_FACTOR  | 
        ||
| ) | 
Constructor.
| f | objective function | 
| fGradient | objective function gradient | 
| g | inequality constraint | 
| gGradient | inequality constraint gradient | 
| h | equality constraint | 
| hGradient | equality constraint gradient | 
| maxItCount | maximal number of function evaluations | 
| xTolerance | point tolerance | 
| constraintTolerance | constraint tolerance | 
| penaltyStartValue | penalty start value | 
| penaltyIncreaseFactor | penalty increase factor | 
References sgpp::optimization::ScalarFunctionGradient::clone(), and sgpp::optimization::VectorFunctionGradient::clone().
Referenced by clone().
| sgpp::optimization::optimizer::AugmentedLagrangian::AugmentedLagrangian | ( | const AugmentedLagrangian & | other | ) | 
      
  | 
  override | 
Destructor.
      
  | 
  overridevirtual | 
| [out] | clone | pointer to cloned object | 
Implements sgpp::optimization::optimizer::UnconstrainedOptimizer.
References AugmentedLagrangian().
| base::DataVector sgpp::optimization::optimizer::AugmentedLagrangian::findFeasiblePoint | ( | ) | const | 
Try to find a feasible initial point by solving an auxiliary problem.
However, it is not guaranteed that the method works, i.e., it should be checked afterwards that the returned point is actually feasible.
References sgpp::optimization::optimizer::UnconstrainedOptimizer::f, sgpp::optimization::optimizer::ConstrainedOptimizer::g, sgpp::optimization::EmptyVectorFunction::getInstance(), sgpp::optimization::EmptyVectorFunctionGradient::getInstance(), sgpp::optimization::optimizer::UnconstrainedOptimizer::getOptimalPoint(), gGradient, sgpp::optimization::optimizer::ConstrainedOptimizer::h, hGradient, sgpp::base::DataVector::max(), sgpp::base::DataVector::maxNorm(), mG, mH, optimize(), sgpp::optimization::optimizer::UnconstrainedOptimizer::setStartingPoint(), sMax, and sMin.
| double sgpp::optimization::optimizer::AugmentedLagrangian::getConstraintTolerance | ( | ) | const | 
References epsilon.
| VectorFunctionGradient & sgpp::optimization::optimizer::AugmentedLagrangian::getEqualityConstraintGradient | ( | ) | const | 
References hGradient.
| const std::vector< size_t > & sgpp::optimization::optimizer::AugmentedLagrangian::getHistoryOfInnerIterationNumbers | ( | ) | const | 
References kHistInner.
| const base::DataMatrix & sgpp::optimization::optimizer::AugmentedLagrangian::getHistoryOfInnerIterationPoints | ( | ) | const | 
References xHistInner.
| VectorFunctionGradient & sgpp::optimization::optimizer::AugmentedLagrangian::getInequalityConstraintGradient | ( | ) | const | 
References gGradient.
| ScalarFunctionGradient & sgpp::optimization::optimizer::AugmentedLagrangian::getObjectiveGradient | ( | ) | const | 
References fGradient.
| double sgpp::optimization::optimizer::AugmentedLagrangian::getPenaltyIncreaseFactor | ( | ) | const | 
References rhoMuPlus.
| double sgpp::optimization::optimizer::AugmentedLagrangian::getPenaltyStartValue | ( | ) | const | 
References mu0.
| double sgpp::optimization::optimizer::AugmentedLagrangian::getXTolerance | ( | ) | const | 
References theta.
      
  | 
  overridevirtual | 
Pure virtual method for optimization of the objective function.
The result of the optimization process can be obtained by member functions, e.g., getOptimalPoint() and getOptimalValue().
Implements sgpp::optimization::optimizer::UnconstrainedOptimizer.
References sgpp::base::DataVector::append(), sgpp::base::DataMatrix::appendRow(), epsilon, sgpp::optimization::optimizer::UnconstrainedOptimizer::f, fGradient, sgpp::optimization::optimizer::UnconstrainedOptimizer::fHist, sgpp::optimization::optimizer::UnconstrainedOptimizer::fOpt, sgpp::optimization::optimizer::ConstrainedOptimizer::g, sgpp::optimization::optimizer::UnconstrainedOptimizer::getHistoryOfOptimalPoints(), sgpp::optimization::Printer::getInstance(), sgpp::base::DataMatrix::getNrows(), sgpp::optimization::optimizer::UnconstrainedOptimizer::getOptimalPoint(), gGradient, sgpp::optimization::optimizer::ConstrainedOptimizer::h, hGradient, python.statsfileInfo::i, kHistInner, sgpp::base::DataVector::l2Norm(), lambda, sgpp::base::DataVector::max(), sgpp::base::DataVector::maxNorm(), mG, mH, mu, mu0, sgpp::optimization::optimizer::UnconstrainedOptimizer::N, sgpp::optimization::optimizer::AdaptiveGradientDescent::optimize(), sgpp::optimization::Printer::printStatusBegin(), sgpp::optimization::Printer::printStatusEnd(), sgpp::optimization::Printer::printStatusUpdate(), sgpp::base::DataMatrix::resize(), rhoMuPlus, sgpp::optimization::optimizer::UnconstrainedOptimizer::setStartingPoint(), sgpp::base::DataVector::sub(), theta, sgpp::base::DataVector::toString(), sgpp::optimization::optimizer::UnconstrainedOptimizer::x0, sgpp::optimization::optimizer::UnconstrainedOptimizer::xHist, xHistInner, and sgpp::optimization::optimizer::UnconstrainedOptimizer::xOpt.
Referenced by findFeasiblePoint().
| void sgpp::optimization::optimizer::AugmentedLagrangian::setConstraintTolerance | ( | double | constraintTolerance | ) | 
| constraintTolerance | constraint tolerance | 
References epsilon.
| void sgpp::optimization::optimizer::AugmentedLagrangian::setPenaltyIncreaseFactor | ( | double | penaltyIncreaseFactor | ) | 
| penaltyIncreaseFactor | penalty increase factor | 
References rhoMuPlus.
| void sgpp::optimization::optimizer::AugmentedLagrangian::setPenaltyStartValue | ( | double | penaltyStartValue | ) | 
| penaltyStartValue | penalty start value | 
References mu0.
| void sgpp::optimization::optimizer::AugmentedLagrangian::setXTolerance | ( | double | xTolerance | ) | 
| xTolerance | point tolerance | 
References theta.
      
  | 
  static | 
default constraint tolerance
      
  | 
  static | 
default penalty increase factor
      
  | 
  static | 
default penalty start value
      
  | 
  static | 
default point tolerance
      
  | 
  protected | 
constraint tolerance
Referenced by getConstraintTolerance(), optimize(), and setConstraintTolerance().
      
  | 
  protected | 
objective function gradient
Referenced by AugmentedLagrangian(), getObjectiveGradient(), and optimize().
      
  | 
  protected | 
inequality constraint function gradient
Referenced by AugmentedLagrangian(), findFeasiblePoint(), getInequalityConstraintGradient(), and optimize().
      
  | 
  protected | 
equality constraint function gradient
Referenced by AugmentedLagrangian(), findFeasiblePoint(), getEqualityConstraintGradient(), and optimize().
      
  | 
  protected | 
search history (number of inner iterations)
Referenced by getHistoryOfInnerIterationNumbers(), and optimize().
      
  | 
  protected | 
penalty start value
Referenced by getPenaltyStartValue(), optimize(), and setPenaltyStartValue().
      
  | 
  protected | 
penalty increase factor
Referenced by getPenaltyIncreaseFactor(), optimize(), and setPenaltyIncreaseFactor().
      
  | 
  protected | 
point tolerance
Referenced by getXTolerance(), optimize(), and setXTolerance().
      
  | 
  protected | 
search history (inner iterations)
Referenced by getHistoryOfInnerIterationPoints(), and optimize().