42 #ifndef QP_SOLVER_RELAXED_QP_SCHUR_H
43 #define QP_SOLVER_RELAXED_QP_SCHUR_H
55 namespace ConstrainedOptPack {
216 ,inequality_pick_policy
334 inequality_pick_policy
351 ,
bool iter_refine_at_solution =
true
355 ,
bool add_equalities_initially=
true
379 ,
const Vector& g,
const MatrixSymOp& G
381 ,
const Vector* dL,
const Vector* dU
383 ,
const Vector* eL,
const Vector* eU
388 ,VectorMutable* mu, VectorMutable* Ed
389 ,VectorMutable* lambda, VectorMutable* Fd
414 #endif // QP_SOLVER_RELAXED_QP_SCHUR_H
AbstractLinAlgPack::size_type size_type
ERunTests
Enumeration for if to run internal tests or not.
QPSolverStats::ESolutionType imp_solve_qp(std::ostream *out, EOutputLevel olevel, ERunTests test_what, const Vector &g, const MatrixSymOp &G, value_type etaL, const Vector *dL, const Vector *dU, const MatrixOp *E, BLAS_Cpp::Transp trans_E, const Vector *b, const Vector *eL, const Vector *eU, const MatrixOp *F, BLAS_Cpp::Transp trans_F, const Vector *f, value_type *obj_d, value_type *eta, VectorMutable *d, VectorMutable *nu, VectorMutable *mu, VectorMutable *Ed, VectorMutable *lambda, VectorMutable *Fd)
VectorMutableDense bigM_vec_
QPSchurPack::QPInitFixedFreeStd qp_
Solves Quadratic Programs (QPs) of several different forms while allowing a relaxation of the constra...
~QPSolverRelaxedQPSchur()
virtual 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 =0
Initializes the KKT system.
InitKKTSystem::Ko_ptr_t Ko_
Teuchos::RCP< const MatrixSymOpNonsing > Ko_ptr_t
std::vector< EBounds > bnd_fixed_t
Solves Quadratic Programming (QP) problems using QPSchur.
MatrixSymHessianRelaxNonSing G_relaxed_
This class maintains the factorization of symmetric indefinite matrix using a Bunch & Kaufman factori...
MatrixSymAddDelBunchKaufman schur_comp_
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
Interface for the object that can reform an initial KKT system dynamically {abstract}.
QPSolverStats get_qp_stats() const
Matrix class for non-singular Hessian matrix augmented with a terms for "Big M" relaxation variables...
Class for storing statistics about a run of a (active set?) QP solver.
ELocalOutputLevel
Output level.
Constraints subclass that is used to represent generic varaible bounds, and general inequality and eq...
EOutputLevel
Enumeration for the amount of output to create from solve_qp().
STANDARD_MEMBER_COMPOSITION_MEMBERS(value_type, max_qp_iter_frac)
Set the maximum number of QP iterations as max_itr = max_qp_iter_frac * n.
AbstractLinAlgPack::value_type value_type
std::vector< size_type > i_x_fixed_t
General (and flexible) implementation class for a QPSchur QP problem.
std::vector< size_type > j_f_decomp_t
STANDARD_COMPOSITION_MEMBERS(InitKKTSystem, init_kkt_sys)
Strategy object that sets up the initial KKT system.
Solves a Quadratic Program with a dual QP method using a schur complement factorization.
std::vector< size_type > i_x_free_t
ESolutionType
Enumeration for the type of point returned from solve_qp(...).
Interface for the object that forms the initial KKT system {abstract}.
QPSolverRelaxedQPSchur(const init_kkt_sys_ptr_t &init_kkt_sys=Teuchos::null, const constraints_ptr_t &constraints=Teuchos::rcp(new QPSchurPack::ConstraintsRelaxedStd), value_type max_qp_iter_frac=10.0, value_type max_real_runtime=1e+20, QPSchurPack::ConstraintsRelaxedStd::EInequalityPickPolicy inequality_pick_policy=QPSchurPack::ConstraintsRelaxedStd::ADD_BOUNDS_THEN_MOST_VIOLATED_INEQUALITY, ELocalOutputLevel print_level=USE_INPUT_ARG, value_type bounds_tol=-1.0, value_type inequality_tol=-1.0, value_type equality_tol=-1.0, value_type loose_feas_tol=-1.0, value_type dual_infeas_tol=-1.0, value_type huge_primal_step=-1.0, value_type huge_dual_step=-1.0, value_type bigM=1e+10, value_type warning_tol=1e-10, value_type error_tol=1e-5, size_type iter_refine_min_iter=1, size_type iter_refine_max_iter=3, value_type iter_refine_opt_tol=1e-12, value_type iter_refine_feas_tol=1e-12, bool iter_refine_at_solution=true, value_type pivot_warning_tol=1e-8, value_type pivot_singular_tol=1e-11, value_type pivot_wrong_inertia_tol=1e-11, bool add_equalities_initially=true)