15 #ifndef MLPACK_CORE_OPTIMIZERS_AUG_LAGRANGIAN_AUG_LAGRANGIAN_HPP 16 #define MLPACK_CORE_OPTIMIZERS_AUG_LAGRANGIAN_AUG_LAGRANGIAN_HPP 24 namespace optimization {
76 template<
typename LagrangianFunctionType>
77 bool Optimize(LagrangianFunctionType&
function,
78 arma::mat& coordinates,
79 const size_t maxIterations = 1000);
96 template<
typename LagrangianFunctionType>
97 bool Optimize(LagrangianFunctionType&
function,
98 arma::mat& coordinates,
99 const arma::vec& initLambda,
100 const double initSigma,
101 const size_t maxIterations = 1000);
109 const arma::vec&
Lambda()
const {
return lambda; }
114 double Sigma()
const {
return sigma; }
134 template<
typename LagrangianFunctionType>
136 arma::mat& coordinates,
137 const size_t maxIterations);
143 #include "aug_lagrangian_impl.hpp" 145 #endif // MLPACK_CORE_OPTIMIZERS_AUG_LAGRANGIAN_AUG_LAGRANGIAN_HPP double & Sigma()
Modify the penalty parameter.
The core includes that mlpack expects; standard C++ includes and Armadillo.
L_BFGS & LBFGS()
Modify the L-BFGS object used for the actual optimization.
The AugLagrangian class implements the Augmented Lagrangian method of optimization.
AugLagrangian()
Initialize the Augmented Lagrangian with the default L-BFGS optimizer.
const arma::vec & Lambda() const
Get the Lagrange multipliers.
double Sigma() const
Get the penalty parameter.
const L_BFGS & LBFGS() const
Get the L-BFGS object used for the actual optimization.
This is a utility class used by AugLagrangian, meant to wrap a LagrangianFunction into a function usa...
The generic L-BFGS optimizer, which uses a back-tracking line search algorithm to minimize a function...
arma::vec & Lambda()
Modify the Lagrange multipliers (i.e. set them before optimization).
bool Optimize(LagrangianFunctionType &function, arma::mat &coordinates, const size_t maxIterations=1000)
Optimize the function.