proxsuite-nlp
0.10.0
A primal-dual augmented Lagrangian-type solver for nonlinear programming on manifolds.
|
Base constraint set type. More...
#include <proxsuite-nlp/constraint-set.hpp>
Public Types | |
using | Scalar = _Scalar |
using | ActiveType = Eigen::Matrix<bool, Eigen::Dynamic, 1> |
Public Member Functions | |
ConstraintSetTpl ()=default | |
virtual bool | disableGaussNewton () const |
virtual Scalar | evaluate (const ConstVectorRef &) const |
virtual void | projection (const ConstVectorRef &z, VectorRef zout) const =0 |
Compute projection of variable z onto the constraint set. | |
virtual void | normalConeProjection (const ConstVectorRef &z, VectorRef zout) const =0 |
Compute projection of z onto the normal cone to the set. The default implementation is just \( \mathrm{id} - P\). | |
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 \)). | |
virtual void | computeActiveSet (const ConstVectorRef &z, Eigen::Ref< ActiveType > out) const =0 |
virtual | ~ConstraintSetTpl ()=default |
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 | |
Protected Attributes | |
Scalar | mu_ = 0. |
Scalar | mu_inv_ |
Base constraint set type.
Constraint sets can be the negative or positive orthant, the \(\{0\}\) singleton, cones, etc... The expected inputs are constraint values or shifted constraint values (as in ALM-type algorithms).
using proxsuite::nlp::ConstraintSetTpl< Scalar >::Scalar = _Scalar |
Definition at line 20 of file constraint-set.hpp.
using proxsuite::nlp::ConstraintSetTpl< Scalar >::ActiveType = Eigen::Matrix<bool, Eigen::Dynamic, 1> |
Definition at line 22 of file constraint-set.hpp.
|
default |
|
virtualdefault |
|
inlinevirtual |
Do not use the vector-Hessian product in the Hessian for Gauss Newton.
Reimplemented in proxsuite::nlp::EqualityConstraintTpl< _Scalar >.
Definition at line 28 of file constraint-set.hpp.
|
inlinevirtual |
Provided the image zproj
by the proximal/projection map, evaluate the nonsmooth penalty or constraint set indicator function.
Reimplemented in proxsuite::nlp::ConstraintSetProductTpl< Scalar >, and proxsuite::nlp::NonsmoothPenaltyL1Tpl< _Scalar >.
Definition at line 33 of file constraint-set.hpp.
|
pure virtual |
Compute projection of variable z
onto the constraint set.
[in] | z | Input vector |
[out] | zout | Output projection |
Implemented in proxsuite::nlp::BoxConstraintTpl< Scalar >, proxsuite::nlp::ConstraintSetProductTpl< Scalar >, proxsuite::nlp::EqualityConstraintTpl< _Scalar >, proxsuite::nlp::NegativeOrthantTpl< _Scalar >, and proxsuite::nlp::NonsmoothPenaltyL1Tpl< _Scalar >.
|
pure virtual |
Compute projection of z
onto the normal cone to the set. The default implementation is just \( \mathrm{id} - P\).
[in] | z | Input vector |
[out] | zout | Output projection on the normal projection |
Implemented in proxsuite::nlp::BoxConstraintTpl< Scalar >, proxsuite::nlp::ConstraintSetProductTpl< Scalar >, proxsuite::nlp::EqualityConstraintTpl< _Scalar >, proxsuite::nlp::NegativeOrthantTpl< _Scalar >, and proxsuite::nlp::NonsmoothPenaltyL1Tpl< _Scalar >.
|
virtual |
Apply a jacobian of the projection/proximal operator to a matrix.
This carries out the product \(PJ\), where \( P \in\partial_B\prox(z)\).
[in] | z | Input vector (multiplier estimate) |
[out] | Jout | Output Jacobian matrix, which will be modifed in-place and returned. |
Reimplemented in proxsuite::nlp::ConstraintSetProductTpl< Scalar >, and proxsuite::nlp::EqualityConstraintTpl< _Scalar >.
|
virtual |
Apply the jacobian of the projection on the normal cone.
[in] | z | Input vector |
[out] | Jout | Output Jacobian matrix of shape \((nr, ndx)\), which will be modified in place. The modification should be a row-wise operation. |
Reimplemented in proxsuite::nlp::ConstraintSetProductTpl< Scalar >, and proxsuite::nlp::EqualityConstraintTpl< _Scalar >.
|
inline |
Update proximal parameter; this applies to when this class is a proximal operator that isn't a projection (e.g. \( \ell_1 \)).
Definition at line 70 of file constraint-set.hpp.
|
pure virtual |
Compute the active set of the constraint. Active means the Jacobian of the proximal operator is nonzero.
Implemented in proxsuite::nlp::BoxConstraintTpl< Scalar >, proxsuite::nlp::ConstraintSetProductTpl< Scalar >, proxsuite::nlp::EqualityConstraintTpl< _Scalar >, proxsuite::nlp::NegativeOrthantTpl< _Scalar >, and proxsuite::nlp::NonsmoothPenaltyL1Tpl< _Scalar >.
|
inline |
Definition at line 82 of file constraint-set.hpp.
|
inline |
Evaluate the Moreau envelope with parameter mu
for the given contraint set or nonsmooth penalty \(g\) at point zin
.
The envelope is
\[ M_{\mu g}(z) := g(\prox_{\mu g}(z)) + \frac{1}{2\mu} \| z - \prox_{\mu g}(z) \|^2. \]
zin | The input. |
zproj | Projection of the input to the normal. |
Definition at line 95 of file constraint-set.hpp.
|
inline |
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.
The envelope is
\[ M_{\mu g}(z) := g(\prox_{\mu g}(z)) + \frac{1}{2\mu} \| z - \prox_{\mu g}(z) \|^2. \]
zin | The input. |
zproj | Projection of the input to the normal. |
Definition at line 104 of file constraint-set.hpp.
|
inline |
Definition at line 110 of file constraint-set.hpp.
|
inline |
Definition at line 111 of file constraint-set.hpp.
proxsuite::nlp::ConstraintSetTpl< Scalar >::Scalar |
Definition at line 21 of file constraint-set.hpp.
|
mutableprotected |
Definition at line 114 of file constraint-set.hpp.
|
mutableprotected |
Definition at line 115 of file constraint-set.hpp.