ConstrainedOptPack: C++ Tools for Constrained (and Unconstrained) Optimization
Version of the Day
|
Represents the extra constraints in the QP to be satisfied by the schur complement QP solver QPSchur {abstract}. More...
#include <ConstrainedOptPack_QPSchur.hpp>
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. More... | |
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. More... | |
virtual void | ignore (size_type j)=0 |
Inform to ignore the jth constraint the next time pick_violated(...) is called. More... | |
virtual value_type | get_bnd (size_type j, EBounds bnd) const =0 |
Return the bound for a constraint. More... | |
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 328 of file ConstrainedOptPack_QPSchur.hpp.
Definition at line 332 of file ConstrainedOptPack_QPSchur.hpp.
|
inlinevirtual |
Definition at line 335 of file ConstrainedOptPack_QPSchur.hpp.
|
pure virtual |
Implemented in ConstrainedOptPack::QPSchurPack::ConstraintsRelaxedStd.
|
pure virtual |
Implemented in ConstrainedOptPack::QPSchurPack::ConstraintsRelaxedStd.
|
pure virtual |
Implemented in ConstrainedOptPack::QPSchurPack::ConstraintsRelaxedStd.
|
pure virtual |
Set the policy used to pick a violated constraint.
Implemented in ConstrainedOptPack::QPSchurPack::ConstraintsRelaxedStd.
|
pure virtual |
Implemented in ConstrainedOptPack::QPSchurPack::ConstraintsRelaxedStd.
|
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.
Inform to ignore the jth constraint the next time pick_violated(...) is called.
Implemented in ConstrainedOptPack::QPSchurPack::ConstraintsRelaxedStd.
|
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). |
Implemented in ConstrainedOptPack::QPSchurPack::ConstraintsRelaxedStd.