Couenne 0.5.8
|
Class for handling NLPs using CouenneProblem. More...
#include <CouenneTNLP.hpp>
Public Member Functions | |
CouenneTNLP () | |
Empty constructor. | |
CouenneTNLP (CouenneProblem *) | |
Constructor. | |
CouenneTNLP (const CouenneTNLP &) | |
Copy constructor. | |
CouenneTNLP & | operator= (const CouenneTNLP &rhs) |
Assignment. | |
CouenneTNLP * | clone () |
Clone. | |
virtual | ~CouenneTNLP () |
Destructor. | |
void | setInitSol (const double *sol) |
set initial solution | |
CouNumber * | getSolution () |
returns best solution (if it exists) | |
CouNumber | getSolValue () |
returns value of the best solution | |
virtual bool | get_nlp_info (Ipopt::Index &n, Ipopt::Index &m, Ipopt::Index &nnz_jac_g, Ipopt::Index &nnz_h_lag, enum Ipopt::TNLP::IndexStyleEnum &index_style) |
return the number of variables and constraints, and the number of non-zeros in the jacobian and the hessian. | |
virtual bool | get_bounds_info (Ipopt::Index n, Ipopt::Number *x_l, Ipopt::Number *x_u, Ipopt::Index m, Ipopt::Number *g_l, Ipopt::Number *g_u) |
return the information about the bound on the variables and constraints. | |
virtual bool | get_variables_linearity (Ipopt::Index n, Ipopt::TNLP::LinearityType *var_types) |
return the variables linearity (TNLP::Linear or TNLP::NonLinear). | |
virtual bool | get_constraints_linearity (Ipopt::Index m, Ipopt::TNLP::LinearityType *const_types) |
return the constraint linearity. | |
virtual bool | get_starting_point (Ipopt::Index n, bool init_x, Ipopt::Number *x, bool init_z, Ipopt::Number *z_L, Ipopt::Number *z_U, Ipopt::Index m, bool init_lambda, Ipopt::Number *lambda) |
return the starting point. | |
virtual bool | eval_f (Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Number &obj_value) |
return the value of the objective function | |
virtual bool | eval_grad_f (Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Number *grad_f) |
return the vector of the gradient of the objective w.r.t. x | |
virtual bool | eval_g (Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Index m, Ipopt::Number *g) |
return the vector of constraint values | |
virtual bool | eval_jac_g (Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Index m, Ipopt::Index nele_jac, Ipopt::Index *iRow, Ipopt::Index *jCol, Ipopt::Number *values) |
return the jacobian of the constraints. | |
virtual bool | eval_h (Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Number obj_factor, Ipopt::Index m, const Ipopt::Number *lambda, bool new_lambda, Ipopt::Index nele_hess, Ipopt::Index *iRow, Ipopt::Index *jCol, Ipopt::Number *values) |
return the hessian of the lagrangian. | |
virtual void | finalize_solution (Ipopt::SolverReturn status, Ipopt::Index n, const Ipopt::Number *x, const Ipopt::Number *z_L, const Ipopt::Number *z_U, Ipopt::Index m, const Ipopt::Number *g, const Ipopt::Number *lambda, Ipopt::Number obj_value, const Ipopt::IpoptData *ip_data, Ipopt::IpoptCalculatedQuantities *ip_cq) |
This method is called when the algorithm is complete so the TNLP can store/write the solution. | |
virtual bool | intermediate_callback (Ipopt::AlgorithmMode mode, Ipopt::Index iter, Ipopt::Number obj_value, Ipopt::Number inf_pr, Ipopt::Number inf_du, Ipopt::Number mu, Ipopt::Number d_norm, Ipopt::Number regularization_size, Ipopt::Number alpha_du, Ipopt::Number alpha_pr, Ipopt::Index ls_trials, const Ipopt::IpoptData *ip_data, Ipopt::IpoptCalculatedQuantities *ip_cq) |
Intermediate Callback method for the user. | |
![]() | |
DECLARE_STD_EXCEPTION (INVALID_TNLP) | |
TNLP () | |
virtual | ~TNLP () |
virtual bool | get_var_con_metadata (Index n, StringMetaDataMapType &var_string_md, IntegerMetaDataMapType &var_integer_md, NumericMetaDataMapType &var_numeric_md, Index m, StringMetaDataMapType &con_string_md, IntegerMetaDataMapType &con_integer_md, NumericMetaDataMapType &con_numeric_md) |
virtual bool | get_scaling_parameters (Number &obj_scaling, bool &use_x_scaling, Index n, Number *x_scaling, bool &use_g_scaling, Index m, Number *g_scaling) |
virtual bool | get_warm_start_iterate (IteratesVector &warm_start_iterate) |
virtual void | finalize_metadata (Index n, const StringMetaDataMapType &var_string_md, const IntegerMetaDataMapType &var_integer_md, const NumericMetaDataMapType &var_numeric_md, Index m, const StringMetaDataMapType &con_string_md, const IntegerMetaDataMapType &con_integer_md, const NumericMetaDataMapType &con_numeric_md) |
virtual bool | intermediate_callback (AlgorithmMode mode, Index iter, Number obj_value, Number inf_pr, Number inf_du, Number mu, Number d_norm, Number regularization_size, Number alpha_du, Number alpha_pr, Index ls_trials, const IpoptData *ip_data, IpoptCalculatedQuantities *ip_cq) |
bool | get_curr_iterate (const IpoptData *ip_data, IpoptCalculatedQuantities *ip_cq, bool scaled, Index n, Number *x, Number *z_L, Number *z_U, Index m, Number *g, Number *lambda) const |
bool | get_curr_violations (const IpoptData *ip_data, IpoptCalculatedQuantities *ip_cq, bool scaled, Index n, Number *x_L_violation, Number *x_U_violation, Number *compl_x_L, Number *compl_x_U, Number *grad_lag_x, Index m, Number *nlp_constraint_violation, Number *compl_g) const |
TNLP () | |
virtual | ~TNLP () |
virtual bool | get_var_con_metadata (Index n, StringMetaDataMapType &var_string_md, IntegerMetaDataMapType &var_integer_md, NumericMetaDataMapType &var_numeric_md, Index m, StringMetaDataMapType &con_string_md, IntegerMetaDataMapType &con_integer_md, NumericMetaDataMapType &con_numeric_md) |
virtual bool | get_scaling_parameters (Number &obj_scaling, bool &use_x_scaling, Index n, Number *x_scaling, bool &use_g_scaling, Index m, Number *g_scaling) |
virtual bool | get_warm_start_iterate (IteratesVector &warm_start_iterate) |
virtual void | finalize_metadata (Index n, const StringMetaDataMapType &var_string_md, const IntegerMetaDataMapType &var_integer_md, const NumericMetaDataMapType &var_numeric_md, Index m, const StringMetaDataMapType &con_string_md, const IntegerMetaDataMapType &con_integer_md, const NumericMetaDataMapType &con_numeric_md) |
virtual bool | intermediate_callback (AlgorithmMode mode, Index iter, Number obj_value, Number inf_pr, Number inf_du, Number mu, Number d_norm, Number regularization_size, Number alpha_du, Number alpha_pr, Index ls_trials, const IpoptData *ip_data, IpoptCalculatedQuantities *ip_cq) |
bool | get_curr_iterate (const IpoptData *ip_data, IpoptCalculatedQuantities *ip_cq, bool scaled, Index n, Number *x, Number *z_L, Number *z_U, Index m, Number *g, Number *lambda) const |
bool | get_curr_violations (const IpoptData *ip_data, IpoptCalculatedQuantities *ip_cq, bool scaled, Index n, Number *x_L_violation, Number *x_U_violation, Number *compl_x_L, Number *compl_x_U, Number *grad_lag_x, Index m, Number *nlp_constraint_violation, Number *compl_g) const |
![]() | |
ReferencedObject () | |
virtual | ~ReferencedObject () |
Index | ReferenceCount () const |
void | AddRef (const Referencer *referencer) const |
void | ReleaseRef (const Referencer *referencer) const |
Methods for quasi-Newton approximation. If the second | |
derivatives are approximated by Ipopt, it is better to do this only in the space of nonlinear variables. The following methods are call by Ipopt if the quasi-Newton approximation is selected. If -1 is returned as number of nonlinear variables, Ipopt assumes that all variables are nonlinear. Otherwise, it calls get_list_of_nonlinear_variables with an array into which the indices of the nonlinear variables should be written - the array has the lengths num_nonlin_vars, which is identical with the return value of get_number_of_nonlinear_variables (). It is assumed that the indices are counted starting with 1 in the FORTRAN_STYLE, and 0 for the C_STYLE. | |
virtual Ipopt::Index | get_number_of_nonlinear_variables () |
virtual bool | get_list_of_nonlinear_variables (Ipopt::Index num_nonlin_vars, Ipopt::Index *pos_nonlin_vars) |
get real list | |
virtual void | setObjective (expression *newObj) |
Change objective function and modify gradient expressions accordingly. | |
CouenneSparseMatrix *& | optHessian () |
Get methods. | |
bool & | getSaveOptHessian () |
set and get saveOptHessian_ | |
Additional Inherited Members | |
![]() | |
enum | LinearityType |
enum | IndexStyleEnum |
typedef std::map< std::string, std::vector< std::string > > | StringMetaDataMapType |
typedef std::map< std::string, std::vector< Index > > | IntegerMetaDataMapType |
typedef std::map< std::string, std::vector< Number > > | NumericMetaDataMapType |
![]() | |
LINEAR | |
NON_LINEAR | |
C_STYLE | |
FORTRAN_STYLE | |
Class for handling NLPs using CouenneProblem.
Definition at line 27 of file CouenneTNLP.hpp.
Couenne::CouenneTNLP::CouenneTNLP | ( | ) |
Empty constructor.
Couenne::CouenneTNLP::CouenneTNLP | ( | CouenneProblem * | ) |
Constructor.
Couenne::CouenneTNLP::CouenneTNLP | ( | const CouenneTNLP & | ) |
Copy constructor.
|
virtual |
Destructor.
CouenneTNLP & Couenne::CouenneTNLP::operator= | ( | const CouenneTNLP & | rhs | ) |
Assignment.
CouenneTNLP * Couenne::CouenneTNLP::clone | ( | ) |
Clone.
void Couenne::CouenneTNLP::setInitSol | ( | const double * | sol | ) |
set initial solution
|
inline |
returns best solution (if it exists)
Definition at line 53 of file CouenneTNLP.hpp.
|
inline |
returns value of the best solution
Definition at line 57 of file CouenneTNLP.hpp.
|
virtual |
return the number of variables and constraints, and the number of non-zeros in the jacobian and the hessian.
The index_style parameter lets you specify C or Fortran style indexing for the sparse matrix iRow and jCol parameters. C_STYLE is 0-based, and FORTRAN_STYLE is 1-based.
Implements Ipopt::TNLP.
|
virtual |
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 |
return the variables linearity (TNLP::Linear or TNLP::NonLinear).
The var_types array should be allocated with length at least n. (default implementation just return false and does not fill the array).
Reimplemented from Ipopt::TNLP.
|
virtual |
return the constraint linearity.
array should be alocated with length at least n. (default implementation just return false and does not fill the array).
Reimplemented from Ipopt::TNLP.
|
virtual |
return the starting point.
The bool variables indicate whether the algorithm wants you to initialize x, z_L/z_u, and lambda, respectively. If, for some reason, the algorithm wants you to initialize these and you cannot, return false, which will cause Ipopt to stop. You will have to run Ipopt with different options then.
Implements Ipopt::TNLP.
|
virtual |
return the value of the objective function
Implements Ipopt::TNLP.
|
virtual |
return the vector of the gradient of the objective w.r.t. x
Implements Ipopt::TNLP.
|
virtual |
return the vector of constraint values
Implements Ipopt::TNLP.
|
virtual |
return 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 |
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. A default implementation is provided, in case the user wants to se quasi-Newton approximations to estimate the second derivatives and doesn't not neet to implement this method.
Reimplemented from Ipopt::TNLP.
|
virtual |
This method is called when the algorithm is complete so the TNLP can store/write the solution.
Implements Ipopt::TNLP.
|
virtual |
Intermediate Callback method for the user.
Providing dummy default implementation. For details see IntermediateCallBack in IpNLP.hpp.
|
virtual |
Reimplemented from Ipopt::TNLP.
|
virtual |
get real list
Reimplemented from Ipopt::TNLP.
|
virtual |
Change objective function and modify gradient expressions accordingly.
|
inline |
Get methods.
Definition at line 182 of file CouenneTNLP.hpp.
|
inline |
set and get saveOptHessian_
Definition at line 186 of file CouenneTNLP.hpp.