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; }
109 LagrangianFunction&
function;
121 #include "aug_lagrangian_function_impl.hpp"
123 #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.
std::string ToString() const
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...
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.