aligator  0.14.0
A primal-dual augmented Lagrangian-type solver for nonlinear trajectory optimization.
 
Loading...
Searching...
No Matches
aligator::EqualityConstraintTpl< _Scalar > Struct Template Reference

Equality constraints \(c(x) = 0\). More...

#include <aligator/modelling/constraints/equality-constraint.hpp>

Inheritance diagram for aligator::EqualityConstraintTpl< _Scalar >:
[legend]
Collaboration diagram for aligator::EqualityConstraintTpl< _Scalar >:
[legend]

Public Types

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

Public Member Functions

 ALIGATOR_DYNAMIC_TYPEDEFS (Scalar)
 
 EqualityConstraintTpl ()=default
 
 EqualityConstraintTpl (const EqualityConstraintTpl &)=default
 
EqualityConstraintTploperator= (const EqualityConstraintTpl &)=default
 
 EqualityConstraintTpl (EqualityConstraintTpl &&)=default
 
EqualityConstraintTploperator= (EqualityConstraintTpl &&)=default
 
bool disableGaussNewton () const
 
void projection (const ConstVectorRef &, 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 applyProjectionJacobian (const ConstVectorRef &, MatrixRef Jout) const
 Apply a jacobian of the projection/proximal operator to a matrix.
 
void applyNormalConeProjectionJacobian (const ConstVectorRef &, MatrixRef) const
 Apply the jacobian of the projection on the normal cone.
 
void computeActiveSet (const ConstVectorRef &, Eigen::Ref< ActiveType > out) const
 
- Public Member Functions inherited from aligator::ConstraintSetTpl< _Scalar >
 ALIGATOR_DYNAMIC_TYPEDEFS (Scalar)
 
 ConstraintSetTpl ()=default
 
virtual Scalar evaluate (const ConstVectorRef &) const
 
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 ~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
 

Additional Inherited Members

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

Detailed Description

template<typename _Scalar>
struct aligator::EqualityConstraintTpl< _Scalar >

Equality constraints \(c(x) = 0\).

This class implements the set associated with equality constraints \( c(x) = 0 \), where \(c : \calX \to \RR^p\) is a residual function.

Definition at line 17 of file equality-constraint.hpp.

Member Typedef Documentation

◆ Scalar

template<typename _Scalar>
using aligator::EqualityConstraintTpl< _Scalar >::Scalar = _Scalar

Definition at line 19 of file equality-constraint.hpp.

◆ Base

template<typename _Scalar>
using aligator::EqualityConstraintTpl< _Scalar >::Base = ConstraintSetTpl<Scalar>

Definition at line 28 of file equality-constraint.hpp.

◆ ActiveType

template<typename _Scalar>
using aligator::EqualityConstraintTpl< _Scalar >::ActiveType = typename Base::ActiveType

Definition at line 29 of file equality-constraint.hpp.

Constructor & Destructor Documentation

◆ EqualityConstraintTpl() [1/3]

template<typename _Scalar>
aligator::EqualityConstraintTpl< _Scalar >::EqualityConstraintTpl ( )
default

◆ EqualityConstraintTpl() [2/3]

template<typename _Scalar>
aligator::EqualityConstraintTpl< _Scalar >::EqualityConstraintTpl ( const EqualityConstraintTpl< _Scalar > & )
default

◆ EqualityConstraintTpl() [3/3]

template<typename _Scalar>
aligator::EqualityConstraintTpl< _Scalar >::EqualityConstraintTpl ( EqualityConstraintTpl< _Scalar > && )
default

Member Function Documentation

◆ ALIGATOR_DYNAMIC_TYPEDEFS()

template<typename _Scalar>
aligator::EqualityConstraintTpl< _Scalar >::ALIGATOR_DYNAMIC_TYPEDEFS ( Scalar )

◆ operator=() [1/2]

template<typename _Scalar>
EqualityConstraintTpl & aligator::EqualityConstraintTpl< _Scalar >::operator= ( const EqualityConstraintTpl< _Scalar > & )
default

◆ operator=() [2/2]

template<typename _Scalar>
EqualityConstraintTpl & aligator::EqualityConstraintTpl< _Scalar >::operator= ( EqualityConstraintTpl< _Scalar > && )
default

◆ disableGaussNewton()

template<typename _Scalar>
bool aligator::EqualityConstraintTpl< _Scalar >::disableGaussNewton ( ) const
inlinevirtual

Do not use the vector-Hessian product in the Hessian for Gauss Newton.

Reimplemented from aligator::ConstraintSetTpl< _Scalar >.

Definition at line 31 of file equality-constraint.hpp.

◆ projection()

template<typename _Scalar>
void aligator::EqualityConstraintTpl< _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 aligator::ConstraintSetTpl< _Scalar >.

Definition at line 33 of file equality-constraint.hpp.

◆ normalConeProjection()

template<typename _Scalar>
void aligator::EqualityConstraintTpl< _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 aligator::ConstraintSetTpl< _Scalar >.

Definition at line 37 of file equality-constraint.hpp.

◆ applyProjectionJacobian()

template<typename _Scalar>
void aligator::EqualityConstraintTpl< _Scalar >::applyProjectionJacobian ( const ConstVectorRef & z,
MatrixRef Jout ) const
inlinevirtual

Apply a jacobian of the projection/proximal operator to a matrix.

This carries out the product \(PJ\), where \( P \in\partial_B\prox(z)\).

Parameters
[in]zInput vector (multiplier estimate)
[out]JoutOutput Jacobian matrix, which will be modifed in-place and returned.

Reimplemented from aligator::ConstraintSetTpl< _Scalar >.

Definition at line 42 of file equality-constraint.hpp.

◆ applyNormalConeProjectionJacobian()

template<typename _Scalar>
void aligator::EqualityConstraintTpl< _Scalar >::applyNormalConeProjectionJacobian ( const ConstVectorRef & z,
MatrixRef Jout ) const
inlinevirtual

Apply the jacobian of the projection on the normal cone.

Parameters
[in]zInput vector
[out]JoutOutput Jacobian matrix of shape \((nr, ndx)\), which will be modified in place. The modification should be a row-wise operation.

Reimplemented from aligator::ConstraintSetTpl< _Scalar >.

Definition at line 47 of file equality-constraint.hpp.

◆ computeActiveSet()

template<typename _Scalar>
void aligator::EqualityConstraintTpl< _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 aligator::ConstraintSetTpl< _Scalar >.

Definition at line 52 of file equality-constraint.hpp.


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