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

Composite \(\ell_1\)-penalty function \( \|c(x)\|_1 \). More...

#include <proxsuite-nlp/modelling/constraints/l1-penalty.hpp>

Inheritance diagram for proxsuite::nlp::NonsmoothPenaltyL1Tpl< _Scalar >:
[legend]
Collaboration diagram for proxsuite::nlp::NonsmoothPenaltyL1Tpl< _Scalar >:
[legend]

Public Types

using Scalar = _Scalar
 
using Base = ConstraintSetTpl<Scalar>
 
using ActiveType = typename Base::ActiveType
 
- Public Types inherited from proxsuite::nlp::ConstraintSetTpl< _Scalar >
using Scalar = _Scalar
 
using ActiveType = Eigen::Matrix<bool, Eigen::Dynamic, 1>
 

Public Member Functions

 NonsmoothPenaltyL1Tpl (const NonsmoothPenaltyL1Tpl &)=default
 
NonsmoothPenaltyL1Tploperator= (const NonsmoothPenaltyL1Tpl &)=default
 
 NonsmoothPenaltyL1Tpl (NonsmoothPenaltyL1Tpl &&)=default
 
NonsmoothPenaltyL1Tploperator= (NonsmoothPenaltyL1Tpl &&)=default
 
Scalar evaluate (const ConstVectorRef &zproj) const
 
decltype(auto) projection_impl (const ConstVectorRef &z) const
 
void projection (const ConstVectorRef &z, VectorRef zout) const
 Compute projection of variable z onto the constraint set.
 
void normalConeProjection (const ConstVectorRef &z, VectorRef zout) const
 Compute projection of z onto the normal cone to the set. The default implementation is just \( \mathrm{id} - P\).
 
void computeActiveSet (const ConstVectorRef &z, Eigen::Ref< ActiveType > out) const
 
- Public Member Functions inherited from proxsuite::nlp::ConstraintSetTpl< _Scalar >
virtual bool disableGaussNewton () const
 
virtual void applyProjectionJacobian (const ConstVectorRef &z, MatrixRef Jout) const
 Apply a jacobian of the projection/proximal operator to a matrix.
 
virtual void applyNormalConeProjectionJacobian (const ConstVectorRef &z, MatrixRef Jout) const
 Apply the jacobian of the projection on the normal cone.
 
void setProxParameter (const Scalar mu) const
 Update proximal parameter; this applies to when this class is a proximal operator that isn't a projection (e.g. \( \ell_1 \)).
 
bool operator== (const ConstraintSetTpl< Scalar > &rhs)
 
Scalar evaluateMoreauEnvelope (const ConstVectorRef &zin, const ConstVectorRef &zproj) const
 Evaluate the Moreau envelope with parameter mu for the given contraint set or nonsmooth penalty \(g\) at point zin.
 
Scalar computeMoreauEnvelope (const ConstVectorRef &zin, VectorRef zprojout) const
 Evaluate the Moreau envelope with parameter mu for the given contraint set or nonsmooth penalty \(g\) at point zin. This variant evaluates the prox map.
 
Scalar mu () const
 
Scalar mu_inv () const
 

Public Attributes

 Scalar
 
Scalar mu_
 
- Public Attributes inherited from proxsuite::nlp::ConstraintSetTpl< _Scalar >
 Scalar
 

Additional Inherited Members

- Protected Attributes inherited from proxsuite::nlp::ConstraintSetTpl< _Scalar >
Scalar mu_ = 0.
 
Scalar mu_inv_
 

Detailed Description

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

Composite \(\ell_1\)-penalty function \( \|c(x)\|_1 \).

The composite \(\ell_1\)-penalty penalizes the norm \( \| r(x) \|_1\) of a residual function. This class implements the proximity operator (soft-thresholding) and an appropriate generalized Jacobian.

Definition at line 18 of file l1-penalty.hpp.

Member Typedef Documentation

◆ Scalar

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

Definition at line 19 of file l1-penalty.hpp.

◆ Base

template<typename _Scalar>
using proxsuite::nlp::NonsmoothPenaltyL1Tpl< _Scalar >::Base = ConstraintSetTpl<Scalar>

Definition at line 28 of file l1-penalty.hpp.

◆ ActiveType

template<typename _Scalar>
using proxsuite::nlp::NonsmoothPenaltyL1Tpl< _Scalar >::ActiveType = typename Base::ActiveType

Definition at line 29 of file l1-penalty.hpp.

Member Function Documentation

◆ evaluate()

template<typename _Scalar>
Scalar proxsuite::nlp::NonsmoothPenaltyL1Tpl< _Scalar >::evaluate ( const ConstVectorRef & ) const
inlinevirtual

Provided the image zproj by the proximal/projection map, evaluate the nonsmooth penalty or constraint set indicator function.

Note
This will be 0 for projection operators.

Reimplemented from proxsuite::nlp::ConstraintSetTpl< _Scalar >.

Definition at line 32 of file l1-penalty.hpp.

◆ projection_impl()

template<typename _Scalar>
decltype(auto) proxsuite::nlp::NonsmoothPenaltyL1Tpl< _Scalar >::projection_impl ( const ConstVectorRef & z) const
inline

Definition at line 36 of file l1-penalty.hpp.

◆ projection()

template<typename _Scalar>
void proxsuite::nlp::NonsmoothPenaltyL1Tpl< _Scalar >::projection ( const ConstVectorRef & z,
VectorRef zout ) const
inlinevirtual

Compute projection of variable z onto the constraint set.

Parameters
[in]zInput vector
[out]zoutOutput projection

Implements proxsuite::nlp::ConstraintSetTpl< _Scalar >.

Definition at line 41 of file l1-penalty.hpp.

◆ normalConeProjection()

template<typename _Scalar>
void proxsuite::nlp::NonsmoothPenaltyL1Tpl< _Scalar >::normalConeProjection ( const ConstVectorRef & z,
VectorRef zout ) const
inlinevirtual

Compute projection of z onto the normal cone to the set. The default implementation is just \( \mathrm{id} - P\).

Parameters
[in]zInput vector
[out]zoutOutput projection on the normal projection

Implements proxsuite::nlp::ConstraintSetTpl< _Scalar >.

Definition at line 45 of file l1-penalty.hpp.

◆ computeActiveSet()

template<typename _Scalar>
void proxsuite::nlp::NonsmoothPenaltyL1Tpl< _Scalar >::computeActiveSet ( const ConstVectorRef & z,
Eigen::Ref< ActiveType > out ) const
inlinevirtual

Compute the active set of the constraint. Active means the Jacobian of the proximal operator is nonzero.

Implements proxsuite::nlp::ConstraintSetTpl< _Scalar >.

Definition at line 49 of file l1-penalty.hpp.

Member Data Documentation

◆ Scalar

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

Definition at line 20 of file l1-penalty.hpp.

◆ mu_

template<typename _Scalar>
Scalar proxsuite::nlp::ConstraintSetTpl< Scalar >::mu_
mutable

Definition at line 114 of file constraint-set.hpp.


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