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.
const L_BFGS & LBFGS() const
Get the L-BFGS object used for the actual optimization.
double Sigma() const
Get the penalty parameter.
The AugLagrangian class implements the Augmented Lagrangian method of optimization.
AugLagrangian()
Initialize the Augmented Lagrangian with the default L-BFGS optimizer.
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).
const arma::vec & Lambda() const
Get the Lagrange multipliers.
bool Optimize(LagrangianFunctionType &function, arma::mat &coordinates, const size_t maxIterations=1000)
Optimize the function.