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
[legend]
List of all members.

Public Types

 ANY_VIOLATED
 MOST_VIOLATED
enum  EPickPolicy { ANY_VIOLATED, MOST_VIOLATED }
  More...

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

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

These constraints are also partitioned as:

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

  where:
    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 315 of file ConstrainedOptPack_QPSchur.hpp.


Member Enumeration Documentation

enum ConstrainedOptPack::QPSchurPack::Constraints::EPickPolicy

Enumerator:
ANY_VIOLATED 
MOST_VIOLATED 

Definition at line 319 of file ConstrainedOptPack_QPSchur.hpp.


Constructor & Destructor Documentation

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

Definition at line 322 of file ConstrainedOptPack_QPSchur.hpp.


Member Function Documentation

virtual size_type ConstrainedOptPack::QPSchurPack::Constraints::n (  )  const [pure virtual]

Implemented in ConstrainedOptPack::QPSchurPack::ConstraintsRelaxedStd.

virtual size_type ConstrainedOptPack::QPSchurPack::Constraints::m_breve (  )  const [pure virtual]

Implemented in ConstrainedOptPack::QPSchurPack::ConstraintsRelaxedStd.

virtual const MatrixOp& ConstrainedOptPack::QPSchurPack::Constraints::A_bar (  )  const [pure virtual]

Implemented in ConstrainedOptPack::QPSchurPack::ConstraintsRelaxedStd.

virtual void ConstrainedOptPack::QPSchurPack::Constraints::pick_violated_policy ( EPickPolicy  pick_policy  )  [pure virtual]

Set the policy used to pick a violated constraint.

virtual EPickPolicy ConstrainedOptPack::QPSchurPack::Constraints::pick_violated_policy (  )  const [pure virtual]

Implemented in ConstrainedOptPack::QPSchurPack::ConstraintsRelaxedStd.

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.

Parameters:
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.

Parameters:
j [in] Indice of the constraint of the bound to obtain.
bnd [in] Which bound to obtain (UPPER or LOWER).
Returns:
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:
Generated on Wed May 12 21:57:17 2010 for MOOCHO (Single Doxygen Collection) by  doxygen 1.4.7