Bonmin  1.7
Public Member Functions | Private Member Functions | Private Attributes
Bonmin::CutStrengthener::StrengtheningTNLP Class Reference

Class implementing the TNLP for strengthening one cut. More...

List of all members.

Public Member Functions

 StrengtheningTNLP (Ipopt::SmartPtr< TMINLP > tminlp, const CoinPackedVector &cut, bool lower_bound, Ipopt::Index n, const Ipopt::Number *starting_point, const double *x_l_orig, const double *x_u_orig, Ipopt::Index constr_index, Ipopt::Index nvar_constr, const Ipopt::Index *jCol)
 Contructor.
 ~StrengtheningTNLP ()
 Destructor.
Ipopt::Number StrengthenedBound () const
 Method for asking for the strengthened bound.
Overloaded from TNLP
virtual bool get_nlp_info (Ipopt::Index &n, Ipopt::Index &m, Ipopt::Index &nnz_jac_g, Ipopt::Index &nnz_h_lag, Ipopt::TNLP::IndexStyleEnum &index_style)
 Method to return some info about the nlp.
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)
 Method to return the bounds for my problem.
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)
 Method to return the starting point for the algorithm.
virtual bool eval_f (Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Number &obj_value)
 Method to return the objective value.
virtual bool eval_grad_f (Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Number *grad_f)
 Method to return the gradient of the objective.
virtual bool eval_g (Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Index m, Ipopt::Number *g)
 Method to return the constraint residuals.
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)
 Method to return: 1) The structure of the jacobian (if "values" is NULL) 2) The values of the jacobian (if "values" is not NULL)
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)
 Method to return: 1) The structure of the hessian of the lagrangian (if "values" is NULL) 2) The values of the hessian of the lagrangian (if "values" is not NULL)
Solution Methods
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.

Private Member Functions

void update_x_full (const Ipopt::Number *x)
 Auxilliary method for updating the full x variable.
Methods to block default compiler methods.
 StrengtheningTNLP ()
 StrengtheningTNLP (const StrengtheningTNLP &)
StrengtheningTNLPoperator= (const StrengtheningTNLP &)

Private Attributes

const Ipopt::SmartPtr< TMINLPtminlp_
 TMINLP (with current bounds) for which the cut it to be generated.
Ipopt::Number * obj_grad_
 Gradient of the (linear) objective function.
const Ipopt::Index n_orig_
 Dimension of original problem.
Ipopt::Index m_orig_
 Ipopt::Number of constraints in original problem.
Ipopt::Number * starting_point_
 Starting point.
Ipopt::Number * x_full_
 Full dimentional x which is used to call the TMINLP evaluation routines.
Ipopt::Number * x_l_
 Lower bounds for constraint variables.
Ipopt::Number * x_u_
 Upper bounds for constraint variables.
const Ipopt::Index constr_index_
 Ipopt::Index of the constraint.
const Ipopt::Index nvar_constr_
 Ipopt::Number of variables appearing in the constraint.
Ipopt::Index * var_indices_
 List of variables appearing on the constraints.
bool lower_bound_
 Flag indicating if the cut has a lower or upper bound.
bool have_final_bound_
 Flag indicating if we TNLP has been solved successfully.
Ipopt::Number strengthened_bound_
 Final strengthened bound.
Ipopt::Number * grad_f_
 space for original gradient if objective function is handled

Detailed Description

Class implementing the TNLP for strengthening one cut.

We assume that the cut has a lower bound.

Definition at line 36 of file BonCutStrengthener.hpp.


Constructor & Destructor Documentation

Bonmin::CutStrengthener::StrengtheningTNLP::StrengtheningTNLP ( Ipopt::SmartPtr< TMINLP tminlp,
const CoinPackedVector &  cut,
bool  lower_bound,
Ipopt::Index  n,
const Ipopt::Number *  starting_point,
const double *  x_l_orig,
const double *  x_u_orig,
Ipopt::Index  constr_index,
Ipopt::Index  nvar_constr,
const Ipopt::Index *  jCol 
)

Contructor.

Parameters:
nvar_constrIpopt::Number of variables in constraint
Bonmin::CutStrengthener::StrengtheningTNLP::~StrengtheningTNLP ( )

Destructor.

Bonmin::CutStrengthener::StrengtheningTNLP::StrengtheningTNLP ( ) [private]
Bonmin::CutStrengthener::StrengtheningTNLP::StrengtheningTNLP ( const StrengtheningTNLP ) [private]

Member Function Documentation

virtual bool Bonmin::CutStrengthener::StrengtheningTNLP::get_nlp_info ( Ipopt::Index &  n,
Ipopt::Index &  m,
Ipopt::Index &  nnz_jac_g,
Ipopt::Index &  nnz_h_lag,
Ipopt::TNLP::IndexStyleEnum &  index_style 
) [virtual]

Method to return some info about the nlp.

virtual bool Bonmin::CutStrengthener::StrengtheningTNLP::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 
) [virtual]

Method to return the bounds for my problem.

virtual bool Bonmin::CutStrengthener::StrengtheningTNLP::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 
) [virtual]

Method to return the starting point for the algorithm.

virtual bool Bonmin::CutStrengthener::StrengtheningTNLP::eval_f ( Ipopt::Index  n,
const Ipopt::Number *  x,
bool  new_x,
Ipopt::Number &  obj_value 
) [virtual]

Method to return the objective value.

virtual bool Bonmin::CutStrengthener::StrengtheningTNLP::eval_grad_f ( Ipopt::Index  n,
const Ipopt::Number *  x,
bool  new_x,
Ipopt::Number *  grad_f 
) [virtual]

Method to return the gradient of the objective.

virtual bool Bonmin::CutStrengthener::StrengtheningTNLP::eval_g ( Ipopt::Index  n,
const Ipopt::Number *  x,
bool  new_x,
Ipopt::Index  m,
Ipopt::Number *  g 
) [virtual]

Method to return the constraint residuals.

virtual bool Bonmin::CutStrengthener::StrengtheningTNLP::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 
) [virtual]

Method to return: 1) The structure of the jacobian (if "values" is NULL) 2) The values of the jacobian (if "values" is not NULL)

virtual bool Bonmin::CutStrengthener::StrengtheningTNLP::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 
) [virtual]

Method to return: 1) The structure of the hessian of the lagrangian (if "values" is NULL) 2) The values of the hessian of the lagrangian (if "values" is not NULL)

virtual void Bonmin::CutStrengthener::StrengtheningTNLP::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 
) [virtual]

This method is called when the algorithm is complete so the TNLP can store/write the solution.

Ipopt::Number Bonmin::CutStrengthener::StrengtheningTNLP::StrengthenedBound ( ) const

Method for asking for the strengthened bound.

StrengtheningTNLP& Bonmin::CutStrengthener::StrengtheningTNLP::operator= ( const StrengtheningTNLP ) [private]
void Bonmin::CutStrengthener::StrengtheningTNLP::update_x_full ( const Ipopt::Number *  x) [private]

Auxilliary method for updating the full x variable.


Member Data Documentation

TMINLP (with current bounds) for which the cut it to be generated.

Definition at line 120 of file BonCutStrengthener.hpp.

Gradient of the (linear) objective function.

Definition at line 123 of file BonCutStrengthener.hpp.

Dimension of original problem.

Definition at line 126 of file BonCutStrengthener.hpp.

Ipopt::Number of constraints in original problem.

Definition at line 129 of file BonCutStrengthener.hpp.

Starting point.

Definition at line 132 of file BonCutStrengthener.hpp.

Full dimentional x which is used to call the TMINLP evaluation routines.

Definition at line 136 of file BonCutStrengthener.hpp.

Lower bounds for constraint variables.

Definition at line 139 of file BonCutStrengthener.hpp.

Upper bounds for constraint variables.

Definition at line 142 of file BonCutStrengthener.hpp.

Ipopt::Index of the constraint.

Definition at line 145 of file BonCutStrengthener.hpp.

Ipopt::Number of variables appearing in the constraint.

Definition at line 148 of file BonCutStrengthener.hpp.

List of variables appearing on the constraints.

Definition at line 151 of file BonCutStrengthener.hpp.

Flag indicating if the cut has a lower or upper bound.

Definition at line 154 of file BonCutStrengthener.hpp.

Flag indicating if we TNLP has been solved successfully.

Definition at line 157 of file BonCutStrengthener.hpp.

Final strengthened bound.

Definition at line 160 of file BonCutStrengthener.hpp.

space for original gradient if objective function is handled

Definition at line 163 of file BonCutStrengthener.hpp.


The documentation for this class was generated from the following file: