ConstrainedOptPack: C++ Tools for Constrained (and Unconstrained) Optimization
Version of the Day
|
Implementation of initial KKT system where all original variables are free and all the relaxation variables are fixed. More...
#include <ConstrainedOptPack_QPSchurInitKKTSystemHessianRelaxed.hpp>
Public Member Functions | |
void | initialize_kkt_system (const DVectorSlice &g, const MatrixOp &G, value_type etaL, const SpVectorSlice &dL, const SpVectorSlice &dU, const MatrixOp *F, BLAS_Cpp::Transp trans_F, const DVectorSlice *f, const DVectorSlice &d, const SpVectorSlice &nu, size_type *n_R, i_x_free_t *i_x_free, i_x_fixed_t *i_x_fixed, bnd_fixed_t *bnd_fixed, j_f_decomp_t *j_f_decomp, DVector *b_X, Ko_ptr_t *Ko, DVector *fo) const |
Initialize the KKT system where the original variables are initiallly free and all the relaxation variables are fixed and their are no constraints in Ko. More... | |
Public Member Functions inherited from ConstrainedOptPack::QPSchurInitKKTSystemHessianFull | |
void | initialize_kkt_system (const Vector &g, const MatrixOp &G, value_type etaL, const Vector *dL, const Vector *dU, const MatrixOp *F, BLAS_Cpp::Transp trans_F, const Vector *f, const Vector *d, const Vector *nu, size_type *n_R, i_x_free_t *i_x_free, i_x_fixed_t *i_x_fixed, bnd_fixed_t *bnd_fixed, j_f_decomp_t *j_f_decomp, DVector *b_X, Ko_ptr_t *Ko, DVector *fo) const |
Initialize the KKT system where all variables (except the relaxation variable) are initially free and no constraints are in Ko. More... | |
Public Member Functions inherited from ConstrainedOptPack::QPSolverRelaxedQPSchur::InitKKTSystem | |
virtual | ~InitKKTSystem () |
Additional Inherited Members | |
Public Types inherited from ConstrainedOptPack::QPSolverRelaxedQPSchur::InitKKTSystem | |
typedef std::vector< size_type > | i_x_free_t |
typedef std::vector< size_type > | i_x_fixed_t |
typedef std::vector< EBounds > | bnd_fixed_t |
typedef std::vector< size_type > | j_f_decomp_t |
typedef Teuchos::RCP< const MatrixSymOpNonsing > | Ko_ptr_t |
Implementation of initial KKT system where all original variables are free and all the relaxation variables are fixed.
In this implementation, #G# should support the {MatrixSymHessianRelaxNonSing} interface. Otherwise, it will try the {MatrixSymWithOpFactorized} interface using the base implementation of {QPSchurInitKKTSystemHessianFull}.
Definition at line 57 of file ConstrainedOptPack_QPSchurInitKKTSystemHessianRelaxed.hpp.
void ConstrainedOptPack::QPSchurInitKKTSystemHessianRelaxed::initialize_kkt_system | ( | const DVectorSlice & | g, |
const MatrixOp & | G, | ||
value_type | etaL, | ||
const SpVectorSlice & | dL, | ||
const SpVectorSlice & | dU, | ||
const MatrixOp * | F, | ||
BLAS_Cpp::Transp | trans_F, | ||
const DVectorSlice * | f, | ||
const DVectorSlice & | d, | ||
const SpVectorSlice & | nu, | ||
size_type * | n_R, | ||
i_x_free_t * | i_x_free, | ||
i_x_fixed_t * | i_x_fixed, | ||
bnd_fixed_t * | bnd_fixed, | ||
j_f_decomp_t * | j_f_decomp, | ||
DVector * | b_X, | ||
Ko_ptr_t * | Ko, | ||
DVector * | fo | ||
) | const |
Initialize the KKT system where the original variables are initiallly free and all the relaxation variables are fixed and their are no constraints in Ko.
The Hessian for the QP without the relaxation #G# is represented as a {MatrixSymHessianRelaxNonSing} object and is: {verbatim} G = [ G_orig ] [ M ] {verbatim} If #G# does not support the interface #MatrixSymHessianRelaxNonSing# then the function #QPSchurInitKKTSystemHessianFull::initialize_kkt_system(...)# will be called.
Given the above parts of #G#, define: #[no,no] = size(G.G)# and #[nr,nr] = size(G.M)#. Then initial KKT system is defined as:
#n_R = no#\ #i_x_free.size() == 0# and #i_x_free is implicitly identity#\ #i_x_fixed[l-1] = no + l, l = 1...nr#\ #i_x_fixed[nr] = no+nr+1#\ #bnd_fixed[l-1] = LOWER, l = 1...nr#\ #bnd_fixed[nr] = LOWER#\ #j_f_decomp[] = empty#\ #b_X[l-1] = dL(no+l), l = 1...nr#\ #b_X[nr] = etaL#\ #Ko = G.G#\ #fo = - g(1:no)#\\