other versions
- jessie 1.0.10-1
mlpack::optimization::AugLagrangianFunction< LagrangianFunction >(3) | MLPACK | mlpack::optimization::AugLagrangianFunction< LagrangianFunction >(3) |
NAME¶
mlpack::optimization::AugLagrangianFunction< LagrangianFunction > - This is a utility class used by AugLagrangian, meant to wrap a LagrangianFunction into a function usable by a simple optimizer like L-BFGS.SYNOPSIS¶
Public Member Functions¶
AugLagrangianFunction (LagrangianFunction &function)
Private Attributes¶
LagrangianFunction & function
Detailed Description¶
template<typename LagrangianFunction>class mlpack::optimization::AugLagrangianFunction< LagrangianFunction >¶
This is a utility class used by AugLagrangian, meant to wrap a LagrangianFunction into a function usable by a simple optimizer like L-BFGS. Given a LagrangianFunction which follows the format outlined in the documentation for AugLagrangian, this class provides Evaluate(), Gradient(), and GetInitialPoint() functions which allow this class to be used with a simple optimizer like L-BFGS. This class can be specialized for your particular implementation -- commonly, a faster method for computing the overall objective and gradient of the augmented Lagrangian function can be implemented than the naive, default implementation given. Use class template specialization and re-implement all of the methods (unfortunately, C++ specialization rules mean you have to re-implement everything). Template Parameters:LagrangianFunction Lagrangian function to be
used.
Definition at line 48 of file aug_lagrangian_function.hpp.
Constructor & Destructor Documentation¶
template<typename LagrangianFunction> mlpack::optimization::AugLagrangianFunction< LagrangianFunction >:: AugLagrangianFunction (LagrangianFunction &function)¶
Initialize the AugLagrangianFunction, but don't set the Lagrange multipliers or penalty parameters yet. Make sure you set the Lagrange multipliers before you use this... Parameters:function Lagrangian function.
template<typename LagrangianFunction> mlpack::optimization::AugLagrangianFunction< LagrangianFunction >:: AugLagrangianFunction (LagrangianFunction &function, const arma::vec &lambda, const doublesigma)¶
Initialize the AugLagrangianFunction with the given LagrangianFunction, Lagrange multipliers, and initial penalty parameter. Parameters:function Lagrangian function.
lambda Initial Lagrange multipliers.
sigma Initial penalty parameter.
Member Function Documentation¶
template<typename LagrangianFunction> double mlpack::optimization::AugLagrangianFunction< LagrangianFunction >::Evaluate (const arma::mat &coordinates) const¶
Evaluate the objective function of the Augmented Lagrangian function, which is the standard Lagrangian function evaluation plus a penalty term, which penalizes unsatisfied constraints. Parameters:coordinates Coordinates to evaluate function
at.
Returns:
Objective function.
template<typename LagrangianFunction> const LagrangianFunction& mlpack::optimization::AugLagrangianFunction< LagrangianFunction >::Function () const [inline]¶
Get the Lagrangian function. Definition at line 108 of file aug_lagrangian_function.hpp.template<typename LagrangianFunction> LagrangianFunction& mlpack::optimization::AugLagrangianFunction< LagrangianFunction >::Function () [inline]¶
Modify the Lagrangian function. Definition at line 110 of file aug_lagrangian_function.hpp.template<typename LagrangianFunction> const arma::mat& mlpack::optimization::AugLagrangianFunction< LagrangianFunction >::GetInitialPoint () const¶
Get the initial point of the optimization (supplied by the LagrangianFunction). Returns:Initial point.
template<typename LagrangianFunction> void mlpack::optimization::AugLagrangianFunction< LagrangianFunction >::Gradient (const arma::mat &coordinates, arma::mat &gradient) const¶
Evaluate the gradient of the Augmented Lagrangian function. Parameters:coordinates Coordinates to evaluate gradient at.
gradient Matrix to store gradient into.
template<typename LagrangianFunction> const arma::vec& mlpack::optimization::AugLagrangianFunction< LagrangianFunction >::Lambda () const [inline]¶
Get the Lagrange multipliers. Definition at line 98 of file aug_lagrangian_function.hpp.template<typename LagrangianFunction> arma::vec& mlpack::optimization::AugLagrangianFunction< LagrangianFunction >::Lambda () [inline]¶
Modify the Lagrange multipliers. Definition at line 100 of file aug_lagrangian_function.hpp.template<typename LagrangianFunction> double mlpack::optimization::AugLagrangianFunction< LagrangianFunction >::Sigma () const [inline]¶
Get sigma (the penalty parameter). Definition at line 103 of file aug_lagrangian_function.hpp.template<typename LagrangianFunction> double& mlpack::optimization::AugLagrangianFunction< LagrangianFunction >::Sigma () [inline]¶
Modify sigma (the penalty parameter). Definition at line 105 of file aug_lagrangian_function.hpp.template<typename LagrangianFunction> std::string mlpack::optimization::AugLagrangianFunction< LagrangianFunction >::ToString () const¶
Member Data Documentation¶
template<typename LagrangianFunction> LagrangianFunction& mlpack::optimization::AugLagrangianFunction< LagrangianFunction >::function [private]¶
Instantiation of the function to be optimized. Definition at line 117 of file aug_lagrangian_function.hpp.template<typename LagrangianFunction> arma::vec mlpack::optimization::AugLagrangianFunction< LagrangianFunction >::lambda [private]¶
The Lagrange multipliers. Definition at line 120 of file aug_lagrangian_function.hpp. Referenced by mlpack::optimization::AugLagrangianFunction< mlpack::optimization::LRSDPFunction >::Lambda().template<typename LagrangianFunction> double mlpack::optimization::AugLagrangianFunction< LagrangianFunction >::sigma [private]¶
The penalty parameter. Definition at line 122 of file aug_lagrangian_function.hpp. Referenced by mlpack::optimization::AugLagrangianFunction< mlpack::optimization::LRSDPFunction >::Sigma().Author¶
Generated automatically by Doxygen for MLPACK from the source code.Tue Sep 9 2014 | Version 1.0.10 |