#include <BonBranchingTQP.hpp>
Inheritance diagram for Bonmin::BranchingTQP:
Public Member Functions | |
Constructors/Destructors | |
BranchingTQP (SmartPtr< TMINLP2TNLP > tminlp2tnlp) | |
virtual | ~BranchingTQP () |
Default destructor. | |
methods to gather information about the NLP, only those | |
that need to be overloaded from TNLP | |
virtual bool | get_nlp_info (Index &n, Index &m, Index &nnz_jac_g, Index &nnz_h_lag, IndexStyleEnum &index_style) |
virtual bool | get_bounds_info (Index n, Number *x_l, Number *x_u, Index m, Number *g_l, Number *g_u) |
overload this method to return the information about the bound on the variables and constraints. | |
virtual bool | get_constraints_linearity (Index m, LinearityType *const_types) |
Returns the constraint linearity. | |
virtual bool | get_starting_point (Index n, bool init_x, Number *x, bool init_z, Number *z_L, Number *z_U, Index m, bool init_lambda, Number *lambda) |
Method called by Ipopt to get the starting point. | |
virtual bool | eval_f (Index n, const Number *x, bool new_x, Number &obj_value) |
Returns the value of the objective function in x. | |
virtual bool | eval_grad_f (Index n, const Number *x, bool new_x, Number *grad_f) |
Returns the vector of the gradient of the objective w.r.t. | |
virtual bool | eval_g (Index n, const Number *x, bool new_x, Index m, Number *g) |
Returns the vector of constraint values in x. | |
virtual bool | eval_jac_g (Index n, const Number *x, bool new_x, Index m, Index nele_jac, Index *iRow, Index *jCol, Number *values) |
Returns the jacobian of the constraints. | |
virtual bool | eval_h (Index n, const Number *x, bool new_x, Number obj_factor, Index m, const Number *lambda, bool new_lambda, Index nele_hess, Index *iRow, Index *jCol, Number *values) |
Return the hessian of the lagrangian. | |
virtual void | finalize_solution (SolverReturn status, Index n, const Number *x, const Number *z_L, const Number *z_U, Index m, const Number *g, const Number *lambda, Number obj_value, const IpoptData *ip_data, IpoptCalculatedQuantities *ip_cq) |
This method is called when the algorithm is complete so the TNLP can store/write the solution. | |
const Number | ObjVal () |
Accessor Methods for QP data. | |
const Number * | ObjGrad () |
Accessor Methods for QP data. | |
const Number * | ObjHessVals () |
Accessor Methods for QP data. | |
const Index * | ObjHessIRow () |
Accessor Methods for QP data. | |
const Index * | ObjHessJCol () |
Accessor Methods for QP data. | |
const Number * | ConstrRhs () |
Accessor Methods for QP data. | |
const Number * | ConstrJacVals () |
Accessor Methods for QP data. | |
const Index * | ConstrJacIRow () |
Accessor Methods for QP data. | |
const Index * | ConstrJacJCol () |
Accessor Methods for QP data. | |
Private Member Functions | |
Default Compiler Generated Methods | |
(Hidden to avoid implicit creation/calling). These methods are not implemented and we do not want the compiler to implement them for us, so we declare them private and do not define them. This ensures that they will not be implicitly created/called. | |
BranchingTQP () | |
Default Constructor. | |
BranchingTQP (const BranchingTQP &) | |
Copy Constructor. | |
void | operator= (const BranchingTQP &) |
Overloaded Equals Operator. | |
Private Attributes | |
Number * | x_sol_copy_ |
Copy of original x_sol_. | |
Number * | duals_sol_copy_ |
Copy of original duals_sol_. | |
SmartPtr< TMINLP2TNLP > | tminlp2tnlp_ |
Pointer to the TMINLP2TNLP model which stores the bounds information. | |
static information about the QP's constraints and | |
objective function | |
Number | obj_val_ |
Number * | obj_grad_ |
Number * | obj_hess_ |
Index * | obj_hess_irow_ |
Index * | obj_hess_jcol_ |
Number * | g_vals_ |
Number * | g_jac_ |
Index * | g_jac_irow_ |
Index * | g_jac_jcol_ |
Data from the MINLP | |
Index | n_ |
Index | m_ |
Index | nnz_jac_g_ |
Index | nnz_h_lag_ |
IndexStyleEnum | index_style_ |
The QP is the linear quadratic of the TNLP at the optimal point. The purpose of the BranchingTQP is that it is used in a strong-branching framework, strong branching is only done for the QP approximation of the TNLP, not on the TNLP itself. The variables of the QP are the displacement from the reference point.
Definition at line 25 of file BonBranchingTQP.hpp.
Bonmin::BranchingTQP::BranchingTQP | ( | SmartPtr< TMINLP2TNLP > | tminlp2tnlp | ) |
virtual Bonmin::BranchingTQP::~BranchingTQP | ( | ) | [virtual] |
Default destructor.
Bonmin::BranchingTQP::BranchingTQP | ( | ) | [private] |
Default Constructor.
Bonmin::BranchingTQP::BranchingTQP | ( | const BranchingTQP & | ) | [private] |
Copy Constructor.
virtual bool Bonmin::BranchingTQP::get_nlp_info | ( | Index & | n, | |
Index & | m, | |||
Index & | nnz_jac_g, | |||
Index & | nnz_h_lag, | |||
IndexStyleEnum & | index_style | |||
) | [virtual] |
virtual bool Bonmin::BranchingTQP::get_bounds_info | ( | Index | n, | |
Number * | x_l, | |||
Number * | x_u, | |||
Index | m, | |||
Number * | g_l, | |||
Number * | g_u | |||
) | [virtual] |
overload this method to return the information about the bound on the variables and constraints.
The value that indicates that a bound does not exist is specified in the parameters nlp_lower_bound_inf and nlp_upper_bound_inf. By default, nlp_lower_bound_inf is -1e19 and nlp_upper_bound_inf is 1e19. (see TNLPAdapter)
Implements Ipopt::TNLP.
virtual bool Bonmin::BranchingTQP::get_constraints_linearity | ( | Index | m, | |
LinearityType * | const_types | |||
) | [virtual] |
Returns the constraint linearity.
array should be alocated with length at least n. Since this is a QP, all constraints are linear.
virtual bool Bonmin::BranchingTQP::get_starting_point | ( | Index | n, | |
bool | init_x, | |||
Number * | x, | |||
bool | init_z, | |||
Number * | z_L, | |||
Number * | z_U, | |||
Index | m, | |||
bool | init_lambda, | |||
Number * | lambda | |||
) | [virtual] |
Method called by Ipopt to get the starting point.
The bools init_x and init_lambda are both inputs and outputs. As inputs, they indicate whether or not the algorithm wants you to initialize x and lambda respectively. If, for some reason, the algorithm wants you to initialize these and you cannot, set the respective bool to false.
Implements Ipopt::TNLP.
virtual bool Bonmin::BranchingTQP::eval_jac_g | ( | Index | n, | |
const Number * | x, | |||
bool | new_x, | |||
Index | m, | |||
Index | nele_jac, | |||
Index * | iRow, | |||
Index * | jCol, | |||
Number * | values | |||
) | [virtual] |
Returns the jacobian of the constraints.
The vectors iRow and jCol only need to be set once. The first call is used to set the structure only (iRow and jCol will be non-NULL, and values will be NULL) For subsequent calls, iRow and jCol will be NULL.
Implements Ipopt::TNLP.
virtual bool Bonmin::BranchingTQP::eval_h | ( | Index | n, | |
const Number * | x, | |||
bool | new_x, | |||
Number | obj_factor, | |||
Index | m, | |||
const Number * | lambda, | |||
bool | new_lambda, | |||
Index | nele_hess, | |||
Index * | iRow, | |||
Index * | jCol, | |||
Number * | values | |||
) | [virtual] |
Return the hessian of the lagrangian.
The vectors iRow and jCol only need to be set once (during the first call). The first call is used to set the structure only (iRow and jCol will be non-NULL, and values will be NULL) For subsequent calls, iRow and jCol will be NULL. This matrix is symmetric - specify the lower diagonal only
Reimplemented from Ipopt::TNLP.
virtual void Bonmin::BranchingTQP::finalize_solution | ( | SolverReturn | status, | |
Index | n, | |||
const Number * | x, | |||
const Number * | z_L, | |||
const Number * | z_U, | |||
Index | m, | |||
const Number * | g, | |||
const Number * | lambda, | |||
Number | obj_value, | |||
const IpoptData * | ip_data, | |||
IpoptCalculatedQuantities * | ip_cq | |||
) | [virtual] |
This method is called when the algorithm is complete so the TNLP can store/write the solution.
Implements Ipopt::TNLP.
const Number Bonmin::BranchingTQP::ObjVal | ( | ) | [inline] |
Accessor Methods for QP data.
Definition at line 102 of file BonBranchingTQP.hpp.
References obj_val_.
const Number* Bonmin::BranchingTQP::ObjGrad | ( | ) | [inline] |
Accessor Methods for QP data.
Definition at line 106 of file BonBranchingTQP.hpp.
References obj_grad_.
const Number* Bonmin::BranchingTQP::ObjHessVals | ( | ) | [inline] |
Accessor Methods for QP data.
Definition at line 110 of file BonBranchingTQP.hpp.
References obj_hess_.
const Index* Bonmin::BranchingTQP::ObjHessIRow | ( | ) | [inline] |
Accessor Methods for QP data.
Definition at line 114 of file BonBranchingTQP.hpp.
References obj_hess_irow_.
const Index* Bonmin::BranchingTQP::ObjHessJCol | ( | ) | [inline] |
Accessor Methods for QP data.
Definition at line 118 of file BonBranchingTQP.hpp.
References obj_hess_jcol_.
const Number* Bonmin::BranchingTQP::ConstrRhs | ( | ) | [inline] |
Accessor Methods for QP data.
Definition at line 122 of file BonBranchingTQP.hpp.
References g_vals_.
const Number* Bonmin::BranchingTQP::ConstrJacVals | ( | ) | [inline] |
Accessor Methods for QP data.
Definition at line 126 of file BonBranchingTQP.hpp.
References g_jac_.
const Index* Bonmin::BranchingTQP::ConstrJacIRow | ( | ) | [inline] |
Accessor Methods for QP data.
Definition at line 130 of file BonBranchingTQP.hpp.
References g_jac_irow_.
const Index* Bonmin::BranchingTQP::ConstrJacJCol | ( | ) | [inline] |
Accessor Methods for QP data.
Definition at line 134 of file BonBranchingTQP.hpp.
References g_jac_jcol_.
void Bonmin::BranchingTQP::operator= | ( | const BranchingTQP & | ) | [private] |
Overloaded Equals Operator.
Number Bonmin::BranchingTQP::obj_val_ [private] |
Number* Bonmin::BranchingTQP::obj_grad_ [private] |
Number* Bonmin::BranchingTQP::obj_hess_ [private] |
Index* Bonmin::BranchingTQP::obj_hess_irow_ [private] |
Index* Bonmin::BranchingTQP::obj_hess_jcol_ [private] |
Number* Bonmin::BranchingTQP::g_vals_ [private] |
Number* Bonmin::BranchingTQP::g_jac_ [private] |
Index* Bonmin::BranchingTQP::g_jac_irow_ [private] |
Index* Bonmin::BranchingTQP::g_jac_jcol_ [private] |
Index Bonmin::BranchingTQP::n_ [private] |
Definition at line 175 of file BonBranchingTQP.hpp.
Index Bonmin::BranchingTQP::m_ [private] |
Definition at line 176 of file BonBranchingTQP.hpp.
Index Bonmin::BranchingTQP::nnz_jac_g_ [private] |
Definition at line 177 of file BonBranchingTQP.hpp.
Index Bonmin::BranchingTQP::nnz_h_lag_ [private] |
Definition at line 178 of file BonBranchingTQP.hpp.
Definition at line 179 of file BonBranchingTQP.hpp.
Number* Bonmin::BranchingTQP::x_sol_copy_ [private] |
Copy of original x_sol_.
x_sol_ is changed after the first QP has been solved once.
Definition at line 184 of file BonBranchingTQP.hpp.
Number* Bonmin::BranchingTQP::duals_sol_copy_ [private] |
Copy of original duals_sol_.
duals_sol_ is changed after the first QP has been solved once.
Definition at line 188 of file BonBranchingTQP.hpp.
Pointer to the TMINLP2TNLP model which stores the bounds information.
Definition at line 192 of file BonBranchingTQP.hpp.