14 #ifndef __MLPACK_CORE_OPTIMIZERS_AUG_LAGRANGIAN_AUG_LAGRANGIAN_FUNCTION_HPP 15 #define __MLPACK_CORE_OPTIMIZERS_AUG_LAGRANGIAN_AUG_LAGRANGIAN_FUNCTION_HPP 20 namespace optimization {
39 template<
typename LagrangianFunction>
71 double Evaluate(
const arma::mat& coordinates)
const;
79 void Gradient(
const arma::mat& coordinates, arma::mat& gradient)
const;
100 const LagrangianFunction&
Function()
const {
return function; }
102 LagrangianFunction&
Function() {
return function; }
106 LagrangianFunction&
function;
118 #include "aug_lagrangian_function_impl.hpp" 120 #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.
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...
Include all of the base components required to write MLPACK methods, and the main MLPACK Doxygen docu...
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.