ConstrainedOptPack: C++ Tools for Constrained (and Unconstrained) Optimization Version of the Day
Public Types | Public Member Functions
ConstrainedOptPack::QPSchurPack::Constraints Class Reference

Represents the extra constraints in the QP to be satisfied by the schur complement QP solver QPSchur {abstract}. More...

#include <ConstrainedOptPack_QPSchur.hpp>

Inheritance diagram for ConstrainedOptPack::QPSchurPack::Constraints:
Inheritance graph

List of all members.

Public Types

enum  EPickPolicy

Public Member Functions

virtual ~Constraints ()
virtual size_type n () const =0
virtual size_type m_breve () const =0
virtual const MatrixOp & A_bar () const =0
virtual void pick_violated_policy (EPickPolicy pick_policy)=0
 Set the policy used to pick a violated constraint.
virtual EPickPolicy pick_violated_policy () const =0
virtual void pick_violated (const DVectorSlice &x, size_type *j_viol, value_type *constr_val, value_type *viol_bnd_val, value_type *norm_2_constr, EBounds *bnd, bool *can_ignore) const =0
 Pick a violated constraint.
virtual void ignore (size_type j)=0
 Inform to ignore the jth constraint the next time pick_violated(...) is called.
virtual value_type get_bnd (size_type j, EBounds bnd) const =0
 Return the bound for a constraint.

Detailed Description

Represents the extra constraints in the QP to be satisfied by the schur complement QP solver QPSchur {abstract}.

This class is only ment to be used in conjunction with the class QP and QPSchur. Its interface is designed to be minimal with respect to the needs of the QPSchur solver. However, this interface may be useful for any primal-dual QP solver.

These constraints are:

  (1.c)	cl_bar <= A_bar'*x <= cu_bar

    A_bar <: R^(n x m_bar)
    cl_bar, cu_bar <: R^m_bar

These constraints are also partitioned as:

    [     xl     ]    [   I       ]       [     xu     ]
    [  cl_breve  ] <= [  A_breve' ]*x  <= [  cu_breve  ]

    I <: R^(n x n)
    xl, xu <: R^n, are the variable bounds for variables that have bounds (sparse)
    A_breve <: R^(n x m_breve), is the Jacobian for the general constraints
    cl_breve, cu_breve <: R^m_breve, are bounds for general constraints

Here m_bar = n + m_breve

Above, some of the bounds in xl, xu, cl_breve, and cu_breve may be -inf or +inf and will therefore never be violated and never be added to the active set. Also, some of the lower and upper bounds may be equal which turns those inequality constraints into equality constraints (or fixed variables).

Definition at line 328 of file ConstrainedOptPack_QPSchur.hpp.

Member Enumeration Documentation

Definition at line 332 of file ConstrainedOptPack_QPSchur.hpp.

Constructor & Destructor Documentation

virtual ConstrainedOptPack::QPSchurPack::Constraints::~Constraints ( ) [inline, virtual]

Definition at line 335 of file ConstrainedOptPack_QPSchur.hpp.

Member Function Documentation

virtual size_type ConstrainedOptPack::QPSchurPack::Constraints::n ( ) const [pure virtual]
virtual size_type ConstrainedOptPack::QPSchurPack::Constraints::m_breve ( ) const [pure virtual]
virtual const MatrixOp& ConstrainedOptPack::QPSchurPack::Constraints::A_bar ( ) const [pure virtual]
virtual void ConstrainedOptPack::QPSchurPack::Constraints::pick_violated_policy ( EPickPolicy  pick_policy) [pure virtual]

Set the policy used to pick a violated constraint.

Implemented in ConstrainedOptPack::QPSchurPack::ConstraintsRelaxedStd.

virtual EPickPolicy ConstrainedOptPack::QPSchurPack::Constraints::pick_violated_policy ( ) const [pure virtual]
virtual void ConstrainedOptPack::QPSchurPack::Constraints::pick_violated ( const DVectorSlice &  x,
size_type j_viol,
value_type *  constr_val,
value_type *  viol_bnd_val,
value_type *  norm_2_constr,
EBounds *  bnd,
bool *  can_ignore 
) const [pure virtual]

Pick a violated constraint.

x[in] Trial point to pick a violated constraint at.
j_viol[out] Indice of violated constraint. j_viol = 0 if no constraint is violated by more that some tolerance.
constr_val[out] The value if the violated constraint a_bar(j)'*x.
viol_bnd_val[out] The value if the violated bound.
norm_2_constr[out]The 2 norm of the violated constraint ||a_bar(j)||2
bnd[out] Classification of the bound being violated.
can_ignore[out] True if the constraint can be ignored if it is linearly dependent.

Implemented in ConstrainedOptPack::QPSchurPack::ConstraintsRelaxedStd.

virtual void ConstrainedOptPack::QPSchurPack::Constraints::ignore ( size_type  j) [pure virtual]

Inform to ignore the jth constraint the next time pick_violated(...) is called.

Implemented in ConstrainedOptPack::QPSchurPack::ConstraintsRelaxedStd.

virtual value_type ConstrainedOptPack::QPSchurPack::Constraints::get_bnd ( size_type  j,
EBounds  bnd 
) const [pure virtual]

Return the bound for a constraint.

j[in] Indice of the constraint of the bound to obtain.
bnd[in] Which bound to obtain (UPPER or LOWER).
xl(j) [ 0 < j < n, bnd == LOWER ]
xu(j) [ 0 < j < n, bnd == UPPER ]
cl_breve(j - n) [ n + 1 < j < n + m_breve, bnd == LOWER ]
cu_breve(j - n) [ n + 1 < j < n + m_breve, bnd == UPPER ]

Implemented in ConstrainedOptPack::QPSchurPack::ConstraintsRelaxedStd.

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends