proxsuite-nlp  0.10.0
A primal-dual augmented Lagrangian-type solver for nonlinear programming on manifolds.
Loading...
Searching...
No Matches
proxsuite::nlp::ALMeritFunctionTpl< _Scalar > Struct Template Reference

Primal-dual augmented Lagrangian-type merit function. More...

#include <proxsuite-nlp/pdal.hpp>

Public Types

using Scalar = _Scalar
 
using Problem = ProblemTpl<Scalar>
 
using Workspace = WorkspaceTpl<Scalar>
 
using ConstraintObject = ConstraintObjectTpl<Scalar>
 

Public Member Functions

 ALMeritFunctionTpl (const Problem &prob, const Scalar &beta)
 
Scalar evaluate (const ConstVectorRef &x, const std::vector< VectorRef > &lams, Workspace &workspace) const
 
void computeGradient (const std::vector< VectorRef > &lams, Workspace &workspace) const
 

Public Attributes

 Scalar
 

Detailed Description

template<typename _Scalar>
struct proxsuite::nlp::ALMeritFunctionTpl< _Scalar >

Primal-dual augmented Lagrangian-type merit function.

Primal-dual Augmented Lagrangian function, extending the function from Gill & Robinson (2012) to inequality constraints. For inequality constraints of the form \( c(x) \in \calC \) and an objective function \( f\colon\calX \to \RR \),

\[ \calM_{\mu}(x, \lambda; \lambda_e) = f(x) + \frac{1}{2\mu} \dist(\proj_\calC(c(x) + \mu (\lambda_e - \lambda/2))^2 + \frac{\mu}{4}\|\lambda\|^2. \]

Definition at line 23 of file pdal.hpp.

Member Typedef Documentation

◆ Scalar

template<typename _Scalar >
using proxsuite::nlp::ALMeritFunctionTpl< _Scalar >::Scalar = _Scalar

Definition at line 25 of file pdal.hpp.

◆ Problem

template<typename _Scalar >
using proxsuite::nlp::ALMeritFunctionTpl< _Scalar >::Problem = ProblemTpl<Scalar>

Definition at line 27 of file pdal.hpp.

◆ Workspace

template<typename _Scalar >
using proxsuite::nlp::ALMeritFunctionTpl< _Scalar >::Workspace = WorkspaceTpl<Scalar>

Definition at line 28 of file pdal.hpp.

◆ ConstraintObject

template<typename _Scalar >
using proxsuite::nlp::ALMeritFunctionTpl< _Scalar >::ConstraintObject = ConstraintObjectTpl<Scalar>

Definition at line 29 of file pdal.hpp.

Constructor & Destructor Documentation

◆ ALMeritFunctionTpl()

template<typename _Scalar >
proxsuite::nlp::ALMeritFunctionTpl< _Scalar >::ALMeritFunctionTpl ( const Problem & prob,
const Scalar & beta )

Member Function Documentation

◆ evaluate()

template<typename _Scalar >
Scalar proxsuite::nlp::ALMeritFunctionTpl< _Scalar >::evaluate ( const ConstVectorRef & x,
const std::vector< VectorRef > & lams,
Workspace & workspace ) const

◆ computeGradient()

template<typename _Scalar >
void proxsuite::nlp::ALMeritFunctionTpl< _Scalar >::computeGradient ( const std::vector< VectorRef > & lams,
Workspace & workspace ) const

Member Data Documentation

◆ Scalar

template<typename _Scalar >
proxsuite::nlp::ALMeritFunctionTpl< _Scalar >::Scalar

Definition at line 26 of file pdal.hpp.


The documentation for this struct was generated from the following file: