12 #ifndef MLPACK_CORE_OPTIMIZERS_AUG_LAGRANGIAN_AUG_LAGRANGIAN_FUNCTION_HPP 13 #define MLPACK_CORE_OPTIMIZERS_AUG_LAGRANGIAN_AUG_LAGRANGIAN_FUNCTION_HPP 18 namespace optimization {
37 template<
typename LagrangianFunction>
69 double Evaluate(
const arma::mat& coordinates)
const;
77 void Gradient(
const arma::mat& coordinates, arma::mat& gradient)
const;
98 const LagrangianFunction&
Function()
const {
return function; }
100 LagrangianFunction&
Function() {
return function; }
104 LagrangianFunction&
function;
116 #include "aug_lagrangian_function_impl.hpp" 118 #endif // MLPACK_CORE_OPTIMIZERS_AUG_LAGRANGIAN_AUG_LAGRANGIAN_FUNCTION_HPP double & Sigma()
Modify sigma (the penalty parameter).
double Evaluate(const arma::mat &coordinates) const
Evaluate the objective function of the Augmented Lagrangian function, which is the standard Lagrangia...
double sigma
The penalty parameter.
const LagrangianFunction & Function() const
Get the Lagrangian function.
Linear algebra utility functions, generally performed on matrices or vectors.
const arma::vec & Lambda() const
Get the Lagrange multipliers.
The core includes that mlpack expects; standard C++ includes and Armadillo.
void Gradient(const arma::mat &coordinates, arma::mat &gradient) const
Evaluate the gradient of the Augmented Lagrangian function.
double Sigma() const
Get sigma (the penalty parameter).
AugLagrangianFunction(LagrangianFunction &function)
Initialize the AugLagrangianFunction, but don't set the Lagrange multipliers or penalty parameters ye...
arma::vec & Lambda()
Modify the Lagrange multipliers.
arma::vec lambda
The Lagrange multipliers.
This is a utility class used by AugLagrangian, meant to wrap a LagrangianFunction into a function usa...
const arma::mat & GetInitialPoint() const
Get the initial point of the optimization (supplied by the LagrangianFunction).
LagrangianFunction & Function()
Modify the Lagrangian function.