|
mlpack
master
|
This is a utility class used by AugLagrangian, meant to wrap a LagrangianFunction into a function usable by a simple optimizer like L-BFGS. More...

Public Member Functions | |
| AugLagrangianFunction (LagrangianFunction &function) | |
| Initialize the AugLagrangianFunction, but don't set the Lagrange multipliers or penalty parameters yet. More... | |
| AugLagrangianFunction (LagrangianFunction &function, const arma::vec &lambda, const double sigma) | |
| Initialize the AugLagrangianFunction with the given LagrangianFunction, Lagrange multipliers, and initial penalty parameter. More... | |
| double | 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. More... | |
| template<> | |
| double | Evaluate (const arma::mat &coordinates) const |
| template<> | |
| double | Evaluate (const arma::mat &coordinates) const |
| const LagrangianFunction & | Function () const |
| Get the Lagrangian function. More... | |
| LagrangianFunction & | Function () |
| Modify the Lagrangian function. More... | |
| const arma::mat & | GetInitialPoint () const |
| Get the initial point of the optimization (supplied by the LagrangianFunction). More... | |
| void | Gradient (const arma::mat &coordinates, arma::mat &gradient) const |
| Evaluate the gradient of the Augmented Lagrangian function. More... | |
| template<> | |
| void | Gradient (const arma::mat &coordinates, arma::mat &gradient) const |
| template<> | |
| void | Gradient (const arma::mat &coordinates, arma::mat &gradient) const |
| const arma::vec & | Lambda () const |
| Get the Lagrange multipliers. More... | |
| arma::vec & | Lambda () |
| Modify the Lagrange multipliers. More... | |
| double | Sigma () const |
| Get sigma (the penalty parameter). More... | |
| double & | Sigma () |
| Modify sigma (the penalty parameter). More... | |
Private Attributes | |
| LagrangianFunction & | function |
| Instantiation of the function to be optimized. More... | |
| arma::vec | lambda |
| The Lagrange multipliers. More... | |
| double | sigma |
| The penalty parameter. More... | |
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).
| LagrangianFunction | Lagrangian function to be used. |
Definition at line 38 of file aug_lagrangian_function.hpp.
| 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...
| function | Lagrangian function. |
| mlpack::optimization::AugLagrangianFunction< LagrangianFunction >::AugLagrangianFunction | ( | LagrangianFunction & | function, |
| const arma::vec & | lambda, | ||
| const double | sigma | ||
| ) |
Initialize the AugLagrangianFunction with the given LagrangianFunction, Lagrange multipliers, and initial penalty parameter.
| function | Lagrangian function. |
| lambda | Initial Lagrange multipliers. |
| sigma | Initial penalty parameter. |
| 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.
| coordinates | Coordinates to evaluate function at. |
|
inline |
|
inline |
|
inline |
Get the Lagrangian function.
Definition at line 98 of file aug_lagrangian_function.hpp.
|
inline |
Modify the Lagrangian function.
Definition at line 100 of file aug_lagrangian_function.hpp.
| const arma::mat& mlpack::optimization::AugLagrangianFunction< LagrangianFunction >::GetInitialPoint | ( | ) | const |
Get the initial point of the optimization (supplied by the LagrangianFunction).
| void mlpack::optimization::AugLagrangianFunction< LagrangianFunction >::Gradient | ( | const arma::mat & | coordinates, |
| arma::mat & | gradient | ||
| ) | const |
Evaluate the gradient of the Augmented Lagrangian function.
| coordinates | Coordinates to evaluate gradient at. |
| gradient | Matrix to store gradient into. |
|
inline |
|
inline |
|
inline |
Get the Lagrange multipliers.
Definition at line 88 of file aug_lagrangian_function.hpp.
|
inline |
Modify the Lagrange multipliers.
Definition at line 90 of file aug_lagrangian_function.hpp.
|
inline |
Get sigma (the penalty parameter).
Definition at line 93 of file aug_lagrangian_function.hpp.
|
inline |
Modify sigma (the penalty parameter).
Definition at line 95 of file aug_lagrangian_function.hpp.
|
private |
Instantiation of the function to be optimized.
Definition at line 104 of file aug_lagrangian_function.hpp.
|
private |
The Lagrange multipliers.
Definition at line 107 of file aug_lagrangian_function.hpp.
Referenced by mlpack::optimization::AugLagrangianFunction< mlpack::optimization::LRSDPFunction< optimization::SDP< arma::sp_mat > > >::Lambda().
|
private |
The penalty parameter.
Definition at line 109 of file aug_lagrangian_function.hpp.
Referenced by mlpack::optimization::AugLagrangianFunction< mlpack::optimization::LRSDPFunction< optimization::SDP< arma::sp_mat > > >::Sigma().
1.8.11