ConstrainedOptPack: C++ Tools for Constrained (and Unconstrained) Optimization
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 |
Output level. More... | |
Public Types inherited from ConstrainedOptPack::QPSolverRelaxed | |
enum | EOutputLevel |
Enumeration for the amount of output to create from solve_qp() . More... | |
enum | ERunTests |
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... | |
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.
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.