|
MOOCHO (Single Doxygen Collection)
Version of the Day
|
Solves Quadratic Programming (QP) problems using QPSchur. More...
#include <ConstrainedOptPack_QPSolverRelaxedQPSchur.hpp>

Classes | |
| class | InitKKTSystem |
| Interface for the object that forms the initial KKT system {abstract}. More... | |
| class | ReinitKKTSystem |
| Interface for the object that can reform an initial KKT system dynamically {abstract}. More... | |
Public Types | |
| enum | ELocalOutputLevel { USE_INPUT_ARG = -1, NO_OUTPUT = 0, OUTPUT_BASIC_INFO = 1, OUTPUT_ITER_SUMMARY = 2, OUTPUT_ITER_STEPS = 3, OUTPUT_ACT_SET = 4, OUTPUT_ITER_QUANTITIES = 5 } |
| Output level. More... | |
Public Types inherited from ConstrainedOptPack::QPSolverRelaxed | |
| enum | EOutputLevel { PRINT_NONE = 0, PRINT_BASIC_INFO = 1, PRINT_ITER_SUMMARY = 2, PRINT_ITER_STEPS = 3, PRINT_ITER_ACT_SET = 4, PRINT_ITER_VECTORS = 5, PRINT_EVERY_THING = 6 } |
Enumeration for the amount of output to create from solve_qp(). More... | |
| enum | ERunTests { RUN_TESTS, NO_TESTS } |
| Enumeration for if to run internal tests or not. More... | |
Public Member Functions | |
| STANDARD_COMPOSITION_MEMBERS (InitKKTSystem, init_kkt_sys) | |
| Strategy object that sets up the initial KKT system. More... | |
| STANDARD_COMPOSITION_MEMBERS (QPSchurPack::ConstraintsRelaxedStd, constraints) | |
| Constraints object. More... | |
| 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. More... | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, max_real_runtime) | |
| Set the maximum real run-time in minutes. More... | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (QPSchurPack::ConstraintsRelaxedStd::EInequalityPickPolicy, inequality_pick_policy) | |
| Policy used to select a violated constraint. More... | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (ELocalOutputLevel, print_level) | |
| Set the output level for QPSchur. More... | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, bounds_tol) | |
| Set the feasibility tolerance for the bound constriants. More... | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, inequality_tol) | |
| Set the feasibility tolerance for the general inequality constraints. More... | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, equality_tol) | |
| Set the feasibility tolerance for the general equality constriants. More... | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, loose_feas_tol) | |
| Set a looser feasibility tolerance ( > feas_tol ) More... | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, dual_infeas_tol) | |
| Set the tolerence where a scaled Langrange multiplier is considered degenerate. More... | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, huge_primal_step) | |
| Set the tolerence for the size of the step in the primal space that is considered to be a near infinite step. This is used to determine if the KKT system is near singular. More... | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, huge_dual_step) | |
| Set the tolerence for the size of the step in the dual space that is considered to be a near infinite step. This is used to determine if the constriants are infeasible. More... | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, bigM) | |
| <<std member="" comp>="">> members for the Big M parameter used in the objective. More... | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, warning_tol) | |
| <<std member="" comp>="">> members for the warning tolerance for tests. More... | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, error_tol) | |
| <<std member="" comp>="">> members for the error tolerance for tests. More... | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (size_type, iter_refine_min_iter) | |
| Set the minimum number of refinement iterations to perform when using iterative refinement. More... | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (size_type, iter_refine_max_iter) | |
| Set the maximum number of refinement iterations to perform when using iterative refinement. More... | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, iter_refine_opt_tol) | |
| Set the maxinum scaled tolerance the residual of the optimality conditions must be before terminating iterative refinement. More... | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, iter_refine_feas_tol) | |
| Set the maxinum scaled tolerance the residual of the feasibility conditions must be before terminating iterative refinement. More... | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (bool, iter_refine_at_solution) | |
| Set whether iterative refinement is automatically used once the solution is found. More... | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, pivot_warning_tol) | |
| Set the relative tolerance for pivots in the schur complement under which a waning will be printed (see MatrixSymAddDelUpdateable) for near singular updates. More... | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, pivot_singular_tol) | |
| Set the relative tolerance for pivots in the schur complement under which a singularity exception will be thrown (see MatrixSymAddDelUpdateable) for singular updates. More... | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, pivot_wrong_inertia_tol) | |
| Set the relative tolerance for pivots in the schur complement over which a wrong inertia exception will be throw (see MatrixSymAddDelUpdateable) for updates with the wrong inertia. More... | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (bool, add_equalities_initially) | |
| Set whether equality constriants are to be added to the active set initialy to the schur complement or not. More... | |
| 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) | |
| ~QPSolverRelaxedQPSchur () | |
Public Member Functions inherited from ConstrainedOptPack::QPSolverRelaxed | |
| STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, infinite_bound) | |
| Set the scalar that will be used to identigy infinite bounds. More... | |
| QPSolverRelaxed () | |
| virtual | ~QPSolverRelaxed () |
| virtual QPSolverStats::ESolutionType | 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) |
| Solve the QP. More... | |
| virtual QPSolverStats::ESolutionType | 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, value_type *obj_d, value_type *eta, VectorMutable *d, VectorMutable *nu, VectorMutable *mu, VectorMutable *Ed) |
| Solve the QP without general equality constrants. More... | |
| virtual QPSolverStats::ESolutionType | 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 &F, BLAS_Cpp::Transp trans_F, const Vector &f, value_type *obj_d, value_type *eta, VectorMutable *d, VectorMutable *nu, VectorMutable *lambda, VectorMutable *Fd) |
| Solve the QP without general inequality constrants. More... | |
| virtual QPSolverStats::ESolutionType | solve_qp (std::ostream *out, EOutputLevel olevel, ERunTests test_what, const Vector &g, const MatrixSymOp &G, const Vector &dL, const Vector &dU, value_type *obj_d, VectorMutable *d, VectorMutable *nu) |
| Solve the QP without general equality or inequality constrants (no relaxation needed). More... | |
| virtual QPSolverStats::ESolutionType | 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) |
| This is a more flexible function where the client can set different constraints to be included. More... | |
Private Attributes | |
| QPSolverStats | qp_stats_ |
| QPSchur | qp_solver_ |
| QPSchurPack::QPInitFixedFreeStd | qp_ |
| MatrixSymHessianRelaxNonSing | G_relaxed_ |
| VectorMutableDense | bigM_vec_ |
| MatrixSymAddDelBunchKaufman | schur_comp_ |
| DVector | g_relaxed_ |
| DVector | b_X_ |
| InitKKTSystem::Ko_ptr_t | Ko_ |
| DVector | fo_ |
Overridden from QPSolverRelaxed | |
| QPSolverStats | get_qp_stats () const |
| void | release_memory () |
| 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) |
Solves Quadratic Programming (QP) problems using QPSchur.
This is the only subclass needed for QPSchur. All of the specifics of how the initial KKT system is formed is delegated to a strategy object of type InitKKTSystem (see below).
Definition at line 63 of file ConstrainedOptPack_QPSolverRelaxedQPSchur.hpp.
Output level.
| Enumerator | |
|---|---|
| USE_INPUT_ARG | |
| NO_OUTPUT | |
| OUTPUT_BASIC_INFO | |
| OUTPUT_ITER_SUMMARY | |
| OUTPUT_ITER_STEPS | |
| OUTPUT_ACT_SET | |
| OUTPUT_ITER_QUANTITIES | |
Definition at line 220 of file ConstrainedOptPack_QPSolverRelaxedQPSchur.hpp.
| ConstrainedOptPack::QPSolverRelaxedQPSchur::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 |
||
| ) |
Definition at line 60 of file ConstrainedOptPack_QPSolverRelaxedQPSchur.cpp.
| ConstrainedOptPack::QPSolverRelaxedQPSchur::~QPSolverRelaxedQPSchur | ( | ) |
Definition at line 115 of file ConstrainedOptPack_QPSolverRelaxedQPSchur.cpp.
| ConstrainedOptPack::QPSolverRelaxedQPSchur::STANDARD_COMPOSITION_MEMBERS | ( | InitKKTSystem | , |
| init_kkt_sys | |||
| ) |
Strategy object that sets up the initial KKT system.
| ConstrainedOptPack::QPSolverRelaxedQPSchur::STANDARD_COMPOSITION_MEMBERS | ( | QPSchurPack::ConstraintsRelaxedStd | , |
| constraints | |||
| ) |
Constraints object.
| ConstrainedOptPack::QPSolverRelaxedQPSchur::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.
| ConstrainedOptPack::QPSolverRelaxedQPSchur::STANDARD_MEMBER_COMPOSITION_MEMBERS | ( | value_type | , |
| max_real_runtime | |||
| ) |
Set the maximum real run-time in minutes.
| ConstrainedOptPack::QPSolverRelaxedQPSchur::STANDARD_MEMBER_COMPOSITION_MEMBERS | ( | QPSchurPack::ConstraintsRelaxedStd::EInequalityPickPolicy | , |
| inequality_pick_policy | |||
| ) |
Policy used to select a violated constraint.
| ConstrainedOptPack::QPSolverRelaxedQPSchur::STANDARD_MEMBER_COMPOSITION_MEMBERS | ( | ELocalOutputLevel | , |
| print_level | |||
| ) |
Set the output level for QPSchur.
| ConstrainedOptPack::QPSolverRelaxedQPSchur::STANDARD_MEMBER_COMPOSITION_MEMBERS | ( | value_type | , |
| bounds_tol | |||
| ) |
Set the feasibility tolerance for the bound constriants.
| ConstrainedOptPack::QPSolverRelaxedQPSchur::STANDARD_MEMBER_COMPOSITION_MEMBERS | ( | value_type | , |
| inequality_tol | |||
| ) |
Set the feasibility tolerance for the general inequality constraints.
| ConstrainedOptPack::QPSolverRelaxedQPSchur::STANDARD_MEMBER_COMPOSITION_MEMBERS | ( | value_type | , |
| equality_tol | |||
| ) |
Set the feasibility tolerance for the general equality constriants.
| ConstrainedOptPack::QPSolverRelaxedQPSchur::STANDARD_MEMBER_COMPOSITION_MEMBERS | ( | value_type | , |
| loose_feas_tol | |||
| ) |
Set a looser feasibility tolerance ( > feas_tol )
| ConstrainedOptPack::QPSolverRelaxedQPSchur::STANDARD_MEMBER_COMPOSITION_MEMBERS | ( | value_type | , |
| dual_infeas_tol | |||
| ) |
Set the tolerence where a scaled Langrange multiplier is considered degenerate.
| ConstrainedOptPack::QPSolverRelaxedQPSchur::STANDARD_MEMBER_COMPOSITION_MEMBERS | ( | value_type | , |
| huge_primal_step | |||
| ) |
Set the tolerence for the size of the step in the primal space that is considered to be a near infinite step. This is used to determine if the KKT system is near singular.
| ConstrainedOptPack::QPSolverRelaxedQPSchur::STANDARD_MEMBER_COMPOSITION_MEMBERS | ( | value_type | , |
| huge_dual_step | |||
| ) |
Set the tolerence for the size of the step in the dual space that is considered to be a near infinite step. This is used to determine if the constriants are infeasible.
| ConstrainedOptPack::QPSolverRelaxedQPSchur::STANDARD_MEMBER_COMPOSITION_MEMBERS | ( | value_type | , |
| bigM | |||
| ) |
<<std member="" comp>="">> members for the Big M parameter used in the objective.
| ConstrainedOptPack::QPSolverRelaxedQPSchur::STANDARD_MEMBER_COMPOSITION_MEMBERS | ( | value_type | , |
| warning_tol | |||
| ) |
<<std member="" comp>="">> members for the warning tolerance for tests.
| ConstrainedOptPack::QPSolverRelaxedQPSchur::STANDARD_MEMBER_COMPOSITION_MEMBERS | ( | value_type | , |
| error_tol | |||
| ) |
<<std member="" comp>="">> members for the error tolerance for tests.
| ConstrainedOptPack::QPSolverRelaxedQPSchur::STANDARD_MEMBER_COMPOSITION_MEMBERS | ( | size_type | , |
| iter_refine_min_iter | |||
| ) |
Set the minimum number of refinement iterations to perform when using iterative refinement.
| ConstrainedOptPack::QPSolverRelaxedQPSchur::STANDARD_MEMBER_COMPOSITION_MEMBERS | ( | size_type | , |
| iter_refine_max_iter | |||
| ) |
Set the maximum number of refinement iterations to perform when using iterative refinement.
| ConstrainedOptPack::QPSolverRelaxedQPSchur::STANDARD_MEMBER_COMPOSITION_MEMBERS | ( | value_type | , |
| iter_refine_opt_tol | |||
| ) |
Set the maxinum scaled tolerance the residual of the optimality conditions must be before terminating iterative refinement.
| ConstrainedOptPack::QPSolverRelaxedQPSchur::STANDARD_MEMBER_COMPOSITION_MEMBERS | ( | value_type | , |
| iter_refine_feas_tol | |||
| ) |
Set the maxinum scaled tolerance the residual of the feasibility conditions must be before terminating iterative refinement.
| ConstrainedOptPack::QPSolverRelaxedQPSchur::STANDARD_MEMBER_COMPOSITION_MEMBERS | ( | bool | , |
| iter_refine_at_solution | |||
| ) |
Set whether iterative refinement is automatically used once the solution is found.
| ConstrainedOptPack::QPSolverRelaxedQPSchur::STANDARD_MEMBER_COMPOSITION_MEMBERS | ( | value_type | , |
| pivot_warning_tol | |||
| ) |
Set the relative tolerance for pivots in the schur complement under which a waning will be printed (see MatrixSymAddDelUpdateable) for near singular updates.
| ConstrainedOptPack::QPSolverRelaxedQPSchur::STANDARD_MEMBER_COMPOSITION_MEMBERS | ( | value_type | , |
| pivot_singular_tol | |||
| ) |
Set the relative tolerance for pivots in the schur complement under which a singularity exception will be thrown (see MatrixSymAddDelUpdateable) for singular updates.
| ConstrainedOptPack::QPSolverRelaxedQPSchur::STANDARD_MEMBER_COMPOSITION_MEMBERS | ( | value_type | , |
| pivot_wrong_inertia_tol | |||
| ) |
Set the relative tolerance for pivots in the schur complement over which a wrong inertia exception will be throw (see MatrixSymAddDelUpdateable) for updates with the wrong inertia.
| ConstrainedOptPack::QPSolverRelaxedQPSchur::STANDARD_MEMBER_COMPOSITION_MEMBERS | ( | bool | , |
| add_equalities_initially | |||
| ) |
Set whether equality constriants are to be added to the active set initialy to the schur complement or not.
|
virtual |
Implements ConstrainedOptPack::QPSolverRelaxed.
Definition at line 123 of file ConstrainedOptPack_QPSolverRelaxedQPSchur.cpp.
|
virtual |
Implements ConstrainedOptPack::QPSolverRelaxed.
Definition at line 128 of file ConstrainedOptPack_QPSolverRelaxedQPSchur.cpp.
|
protectedvirtual |
Implements ConstrainedOptPack::QPSolverRelaxed.
Definition at line 134 of file ConstrainedOptPack_QPSolverRelaxedQPSchur.cpp.
|
private |
Definition at line 399 of file ConstrainedOptPack_QPSolverRelaxedQPSchur.hpp.
|
private |
Definition at line 400 of file ConstrainedOptPack_QPSolverRelaxedQPSchur.hpp.
|
private |
Definition at line 401 of file ConstrainedOptPack_QPSolverRelaxedQPSchur.hpp.
|
private |
Definition at line 402 of file ConstrainedOptPack_QPSolverRelaxedQPSchur.hpp.
|
private |
Definition at line 403 of file ConstrainedOptPack_QPSolverRelaxedQPSchur.hpp.
|
private |
Definition at line 404 of file ConstrainedOptPack_QPSolverRelaxedQPSchur.hpp.
|
private |
Definition at line 405 of file ConstrainedOptPack_QPSolverRelaxedQPSchur.hpp.
|
private |
Definition at line 406 of file ConstrainedOptPack_QPSolverRelaxedQPSchur.hpp.
|
private |
Definition at line 407 of file ConstrainedOptPack_QPSolverRelaxedQPSchur.hpp.
|
private |
Definition at line 408 of file ConstrainedOptPack_QPSolverRelaxedQPSchur.hpp.
1.8.6