This is an adapter class that converts a TMINLP to a TNLP to be solved by Ipopt. More...
#include <BonTMINLP2TNLP.hpp>
Public Member Functions | |
void | outputDiffs (const std::string &probName, const std::string *varNames) |
Procedure to ouptut relevant informations to reproduce a sub-problem. | |
virtual bool | hasUpperBoundingObjective () |
Say if has a specific function to compute upper bounds. | |
Constructors/Destructors | |
TMINLP2TNLP (const Ipopt::SmartPtr< TMINLP > tminlp) | |
Copy Constructor. | |
TMINLP2TNLP (const TMINLP2TNLP &) | |
Copy Constructor. | |
virtual TMINLP2TNLP * | clone () const |
virtual copy . | |
virtual | ~TMINLP2TNLP () |
Default destructor. | |
Methods to modify the MINLP and form the NLP | |
Ipopt::Index | num_variables () const |
Get the number of variables. | |
Ipopt::Index | num_constraints () const |
Get the number of constraints. | |
Ipopt::Index | nnz_h_lag () |
Get the nomber of nz in hessian. | |
const TMINLP::VariableType * | var_types () |
Get the variable types. | |
const Ipopt::Number * | x_l () |
Get the current values for the lower bounds. | |
const Ipopt::Number * | x_u () |
Get the current values for the upper bounds. | |
const Ipopt::Number * | orig_x_l () const |
Get the original values for the lower bounds. | |
const Ipopt::Number * | orig_x_u () const |
Get the original values for the upper bounds. | |
const Ipopt::Number * | g_l () |
Get the current values for constraints lower bounds. | |
const Ipopt::Number * | g_u () |
Get the current values for constraints upper bounds. | |
const Ipopt::Number * | x_init () const |
get the starting primal point | |
const Ipopt::Number * | x_init_user () const |
get the user provided starting primal point | |
const Ipopt::Number * | duals_init () const |
get the starting dual point | |
const Ipopt::Number * | x_sol () const |
get the solution values | |
const Ipopt::Number * | g_sol () const |
get the g solution (activities) | |
const Ipopt::Number * | duals_sol () const |
get the dual values | |
Ipopt::SolverReturn | optimization_status () const |
Get Optimization status. | |
Ipopt::Number | obj_value () const |
Get the objective value. | |
void | set_obj_value (Ipopt::Number value) |
Manually set objective value. | |
void | force_fractionnal_sol () |
force solution to be fractionnal. | |
void | SetVariablesBounds (Ipopt::Index n, const Ipopt::Number *x_l, const Ipopt::Number *x_u) |
Change the bounds on the variables. | |
void | SetVariablesLowerBounds (Ipopt::Index n, const Ipopt::Number *x_l) |
Change the lower bound on the variables. | |
void | SetVariablesUpperBounds (Ipopt::Index n, const Ipopt::Number *x_u) |
Change the upper bound on the variable. | |
void | SetVariableBounds (Ipopt::Index var_no, Ipopt::Number x_l, Ipopt::Number x_u) |
Change the bounds on the variable. | |
void | SetVariableLowerBound (Ipopt::Index var_no, Ipopt::Number x_l) |
Change the lower bound on the variable. | |
void | SetVariableUpperBound (Ipopt::Index var_no, Ipopt::Number x_u) |
Change the upper bound on the variable. | |
void | resetStartingPoint () |
reset the starting point to original one. | |
void | setxInit (Ipopt::Index n, const Ipopt::Number *x_init) |
set the starting point to x_init | |
void | setDualsInit (Ipopt::Index n, const Ipopt::Number *duals_init) |
set the dual starting point to duals_init | |
int | has_x_init () |
xInit has been set? | |
void | Set_x_sol (Ipopt::Index n, const Ipopt::Number *x_sol) |
Set the contiuous solution. | |
void | Set_dual_sol (Ipopt::Index n, const Ipopt::Number *dual_sol) |
Set the contiuous dual solution. | |
void | SetVariableType (Ipopt::Index n, TMINLP::VariableType type) |
Change the type of the variable. | |
methods to gather information about the NLP | |
virtual bool | get_nlp_info (Ipopt::Index &n, Ipopt::Index &m, Ipopt::Index &nnz_jac_g, Ipopt::Index &nnz_h_lag, TNLP::IndexStyleEnum &index_style) |
This call is just passed onto the TMINLP object. | |
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) |
The caller is allowed to modify the bounds, so this method returns the internal bounds information. | |
virtual bool | get_constraints_linearity (Ipopt::Index m, LinearityType *const_types) |
Returns the constraint linearity. | |
virtual bool | hasLinearObjective () |
returns true if objective is linear. | |
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 called by Ipopt to get the starting point. | |
virtual bool | get_scaling_parameters (Ipopt::Number &obj_scaling, bool &use_x_scaling, Ipopt::Index n, Ipopt::Number *x_scaling, bool &use_g_scaling, Ipopt::Index m, Ipopt::Number *g_scaling) |
Method that returns scaling parameters. | |
virtual bool | get_warm_start_iterate (Ipopt::IteratesVector &warm_start_iterate) |
Methat that returns an Ipopt IteratesVector that has the starting point for all internal varibles. | |
virtual bool | eval_f (Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Number &obj_value) |
Returns the value of the objective function in x. | |
virtual bool | eval_grad_f (Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Number *grad_f) |
Returns the vector of the gradient of the objective w.r.t. | |
virtual bool | eval_g (Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Index m, Ipopt::Number *g) |
Returns the vector of constraint values in x. | |
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) |
Returns the jacobian of the constraints. | |
virtual bool | eval_gi (Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Index i, Ipopt::Number &gi) |
compute the value of a single constraint | |
virtual bool | eval_grad_gi (Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Index i, Ipopt::Index &nele_grad_gi, Ipopt::Index *jCol, Ipopt::Number *values) |
compute the structure or values of the gradient for one constraint | |
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. | |
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. | |
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. | |
Methods for setting and getting the warm starter | |
void | SetWarmStarter (Ipopt::SmartPtr< IpoptInteriorWarmStarter > warm_starter) |
Ipopt::SmartPtr < IpoptInteriorWarmStarter > | GetWarmStarter () |
Methods for setting and getting the warm starter | |
double | evaluateUpperBoundingFunction (const double *x) |
Evaluate the upper bounding function at given point and store the result. | |
double | check_solution (OsiObject **objects=0, int nObjects=-1) |
Round and check the current solution, return norm inf of constraint violation. | |
Cuts management. | |
virtual void | addCuts (unsigned int numberCuts, const OsiRowCut **cuts) |
Methods are not implemented at this point. | |
virtual void | addCuts (const OsiCuts &cuts) |
Add some cuts to the problem formulaiton (handles Quadratics). | |
virtual void | removeCuts (unsigned int number, const int *toRemove) |
Remove some cuts to the formulation. | |
Protected Member Functions | |
Ipopt::Index | nnz_h_lag () const |
Access number of entries in tminlp_ hessian. | |
Ipopt::Index | nnz_jac_g () const |
Access number of entries in tminlp_ hessian. | |
TNLP::IndexStyleEnum | index_style () const |
Acces index_style. | |
Protected Attributes | |
These should be modified in derived class to always maintain there corecteness. | |
vector< TMINLP::VariableType > | var_types_ |
Types of the variable (TMINLP::CONTINUOUS, TMINLP::INTEGER, TMINLP::BINARY). | |
vector< Ipopt::Number > | x_l_ |
Current lower bounds on variables. | |
vector< Ipopt::Number > | x_u_ |
Current upper bounds on variables. | |
vector< Ipopt::Number > | orig_x_l_ |
Original lower bounds on variables. | |
vector< Ipopt::Number > | orig_x_u_ |
Original upper bounds on variables. | |
vector< Ipopt::Number > | g_l_ |
Lower bounds on constraints values. | |
vector< Ipopt::Number > | g_u_ |
Upper bounds on constraints values. | |
vector< Ipopt::Number > | x_init_ |
Initial primal point. | |
Ipopt::Number * | duals_init_ |
Initial values for all dual multipliers (constraints then lower bounds then upper bounds). | |
vector< Ipopt::Number > | x_init_user_ |
User-provideed initial prmal point. | |
vector< Ipopt::Number > | x_sol_ |
Optimal solution. | |
vector< Ipopt::Number > | g_sol_ |
Activities of constraint g( x_sol_). | |
vector< Ipopt::Number > | duals_sol_ |
Dual multipliers of constraints and bounds. | |
Private Member Functions | |
void | throw_exception_on_bad_variable_bound (Ipopt::Index i) |
Private method that throws an exception if the variable bounds are not consistent with the variable type. | |
void | gutsOfDelete () |
void | gutsOfCopy (const TMINLP2TNLP &source) |
Copies all the arrays. | |
Default Compiler Generated Methods | |
TMINLP2TNLP () | |
Default Constructor. | |
TMINLP2TNLP & | operator= (const TMINLP2TNLP &) |
Overloaded Equals Operator. | |
Private Attributes | |
Ipopt::SmartPtr< TMINLP > | tminlp_ |
pointer to the tminlp that is being adapted | |
Internal copies of data allowing caller to modify the MINLP | |
Ipopt::Index | nnz_jac_g_ |
Number of non-zeroes in the constraints jacobian. | |
Ipopt::Index | nnz_h_lag_ |
Number of non-zeroes in the lagrangian hessian. | |
TNLP::IndexStyleEnum | index_style_ |
index style (fortran or C) | |
Ipopt::SolverReturn | return_status_ |
Return status of the optimization process. | |
Ipopt::Number | obj_value_ |
Value of the optimal solution found by Ipopt. | |
Warmstart object and related data | |
Ipopt::SmartPtr < IpoptInteriorWarmStarter > | curr_warm_starter_ |
Pointer to object that holds warmstart information. | |
Ipopt::Number | nlp_lower_bound_inf_ |
Value for a lower bound that denotes -infinity. | |
Ipopt::Number | nlp_upper_bound_inf_ |
Value for a upper bound that denotes infinity. | |
bool | warm_start_entire_iterate_ |
Option from Ipopt - we currently use it to see if we want to use some clever warm start or just the last iterate from the previous run. | |
bool | need_new_warm_starter_ |
Do we need a new warm starter object. |
This is an adapter class that converts a TMINLP to a TNLP to be solved by Ipopt.
It allows an external caller to modify the bounds of variables, allowing the treatment of binary and integer variables as relaxed, or fixed
Definition at line 32 of file BonTMINLP2TNLP.hpp.
Bonmin::TMINLP2TNLP::TMINLP2TNLP | ( | const Ipopt::SmartPtr< TMINLP > | tminlp | ) |
Copy Constructor.
Bonmin::TMINLP2TNLP::TMINLP2TNLP | ( | const TMINLP2TNLP & | other | ) |
Copy Constructor.
Definition at line 113 of file BonTMINLP2TNLP.cpp.
Bonmin::TMINLP2TNLP::~TMINLP2TNLP | ( | ) | [virtual] |
Default destructor.
Definition at line 166 of file BonTMINLP2TNLP.cpp.
Bonmin::TMINLP2TNLP::TMINLP2TNLP | ( | ) | [private] |
Default Constructor.
virtual TMINLP2TNLP* Bonmin::TMINLP2TNLP::clone | ( | ) | const [inline, virtual] |
virtual copy .
Reimplemented in Bonmin::TMINLP2TNLPQuadCuts.
Definition at line 50 of file BonTMINLP2TNLP.hpp.
Ipopt::Index Bonmin::TMINLP2TNLP::num_variables | ( | ) | const [inline] |
Get the number of variables.
Definition at line 61 of file BonTMINLP2TNLP.hpp.
Ipopt::Index Bonmin::TMINLP2TNLP::num_constraints | ( | ) | const [inline] |
Get the number of constraints.
Definition at line 68 of file BonTMINLP2TNLP.hpp.
Ipopt::Index Bonmin::TMINLP2TNLP::nnz_h_lag | ( | ) | [inline] |
Get the nomber of nz in hessian.
Definition at line 74 of file BonTMINLP2TNLP.hpp.
const TMINLP::VariableType* Bonmin::TMINLP2TNLP::var_types | ( | ) | [inline] |
Get the variable types.
Definition at line 79 of file BonTMINLP2TNLP.hpp.
const Ipopt::Number* Bonmin::TMINLP2TNLP::x_l | ( | ) | [inline] |
Get the current values for the lower bounds.
Definition at line 85 of file BonTMINLP2TNLP.hpp.
const Ipopt::Number* Bonmin::TMINLP2TNLP::x_u | ( | ) | [inline] |
Get the current values for the upper bounds.
Definition at line 90 of file BonTMINLP2TNLP.hpp.
const Ipopt::Number* Bonmin::TMINLP2TNLP::orig_x_l | ( | ) | const [inline] |
Get the original values for the lower bounds.
Definition at line 96 of file BonTMINLP2TNLP.hpp.
const Ipopt::Number* Bonmin::TMINLP2TNLP::orig_x_u | ( | ) | const [inline] |
Get the original values for the upper bounds.
Definition at line 101 of file BonTMINLP2TNLP.hpp.
const Ipopt::Number* Bonmin::TMINLP2TNLP::g_l | ( | ) | [inline] |
Get the current values for constraints lower bounds.
Definition at line 107 of file BonTMINLP2TNLP.hpp.
const Ipopt::Number* Bonmin::TMINLP2TNLP::g_u | ( | ) | [inline] |
Get the current values for constraints upper bounds.
Definition at line 112 of file BonTMINLP2TNLP.hpp.
const Ipopt::Number* Bonmin::TMINLP2TNLP::x_init | ( | ) | const [inline] |
get the starting primal point
Definition at line 118 of file BonTMINLP2TNLP.hpp.
const Ipopt::Number* Bonmin::TMINLP2TNLP::x_init_user | ( | ) | const [inline] |
get the user provided starting primal point
Definition at line 124 of file BonTMINLP2TNLP.hpp.
const Ipopt::Number* Bonmin::TMINLP2TNLP::duals_init | ( | ) | const [inline] |
get the starting dual point
Definition at line 130 of file BonTMINLP2TNLP.hpp.
const Ipopt::Number* Bonmin::TMINLP2TNLP::x_sol | ( | ) | const [inline] |
get the solution values
Definition at line 136 of file BonTMINLP2TNLP.hpp.
const Ipopt::Number* Bonmin::TMINLP2TNLP::g_sol | ( | ) | const [inline] |
get the g solution (activities)
Definition at line 142 of file BonTMINLP2TNLP.hpp.
const Ipopt::Number* Bonmin::TMINLP2TNLP::duals_sol | ( | ) | const [inline] |
get the dual values
Definition at line 148 of file BonTMINLP2TNLP.hpp.
Ipopt::SolverReturn Bonmin::TMINLP2TNLP::optimization_status | ( | ) | const [inline] |
Get Optimization status.
Definition at line 154 of file BonTMINLP2TNLP.hpp.
Ipopt::Number Bonmin::TMINLP2TNLP::obj_value | ( | ) | const [inline] |
Get the objective value.
Definition at line 160 of file BonTMINLP2TNLP.hpp.
void Bonmin::TMINLP2TNLP::set_obj_value | ( | Ipopt::Number | value | ) | [inline] |
Manually set objective value.
Definition at line 166 of file BonTMINLP2TNLP.hpp.
void Bonmin::TMINLP2TNLP::force_fractionnal_sol | ( | ) |
force solution to be fractionnal.
Definition at line 618 of file BonTMINLP2TNLP.cpp.
void Bonmin::TMINLP2TNLP::SetVariablesBounds | ( | Ipopt::Index | n, | |
const Ipopt::Number * | x_l, | |||
const Ipopt::Number * | x_u | |||
) |
Change the bounds on the variables.
void Bonmin::TMINLP2TNLP::SetVariablesLowerBounds | ( | Ipopt::Index | n, | |
const Ipopt::Number * | x_l | |||
) |
Change the lower bound on the variables.
void Bonmin::TMINLP2TNLP::SetVariablesUpperBounds | ( | Ipopt::Index | n, | |
const Ipopt::Number * | x_u | |||
) |
Change the upper bound on the variable.
void Bonmin::TMINLP2TNLP::SetVariableBounds | ( | Ipopt::Index | var_no, | |
Ipopt::Number | x_l, | |||
Ipopt::Number | x_u | |||
) |
Change the bounds on the variable.
void Bonmin::TMINLP2TNLP::SetVariableLowerBound | ( | Ipopt::Index | var_no, | |
Ipopt::Number | x_l | |||
) |
Change the lower bound on the variable.
void Bonmin::TMINLP2TNLP::SetVariableUpperBound | ( | Ipopt::Index | var_no, | |
Ipopt::Number | x_u | |||
) |
Change the upper bound on the variable.
void Bonmin::TMINLP2TNLP::resetStartingPoint | ( | ) |
reset the starting point to original one.
Definition at line 279 of file BonTMINLP2TNLP.cpp.
void Bonmin::TMINLP2TNLP::setxInit | ( | Ipopt::Index | n, | |
const Ipopt::Number * | x_init | |||
) |
set the starting point to x_init
void Bonmin::TMINLP2TNLP::setDualsInit | ( | Ipopt::Index | n, | |
const Ipopt::Number * | duals_init | |||
) |
set the dual starting point to duals_init
int Bonmin::TMINLP2TNLP::has_x_init | ( | ) | [inline] |
xInit has been set?
Definition at line 207 of file BonTMINLP2TNLP.hpp.
void Bonmin::TMINLP2TNLP::Set_x_sol | ( | Ipopt::Index | n, | |
const Ipopt::Number * | x_sol | |||
) |
Set the contiuous solution.
void Bonmin::TMINLP2TNLP::Set_dual_sol | ( | Ipopt::Index | n, | |
const Ipopt::Number * | dual_sol | |||
) |
Set the contiuous dual solution.
void Bonmin::TMINLP2TNLP::SetVariableType | ( | Ipopt::Index | n, | |
TMINLP::VariableType | type | |||
) |
Change the type of the variable.
void Bonmin::TMINLP2TNLP::outputDiffs | ( | const std::string & | probName, | |
const std::string * | varNames | |||
) |
Procedure to ouptut relevant informations to reproduce a sub-problem.
Compare the current problem to the problem to solve and writes files with bounds which have changed and current starting point.
Definition at line 551 of file BonTMINLP2TNLP.cpp.
virtual bool Bonmin::TMINLP2TNLP::get_nlp_info | ( | Ipopt::Index & | n, | |
Ipopt::Index & | m, | |||
Ipopt::Index & | nnz_jac_g, | |||
Ipopt::Index & | nnz_h_lag, | |||
TNLP::IndexStyleEnum & | index_style | |||
) | [virtual] |
This call is just passed onto the TMINLP object.
virtual bool Bonmin::TMINLP2TNLP::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] |
The caller is allowed to modify the bounds, so this method returns the internal bounds information.
Reimplemented in Bonmin::TMINLP2TNLPQuadCuts.
virtual bool Bonmin::TMINLP2TNLP::get_constraints_linearity | ( | Ipopt::Index | m, | |
LinearityType * | const_types | |||
) | [inline, virtual] |
Returns the constraint linearity.
array should be alocated with length at least n. (default implementation just return false and does not fill the array).
Definition at line 243 of file BonTMINLP2TNLP.hpp.
virtual bool Bonmin::TMINLP2TNLP::hasLinearObjective | ( | ) | [inline, virtual] |
returns true if objective is linear.
Definition at line 249 of file BonTMINLP2TNLP.hpp.
virtual bool Bonmin::TMINLP2TNLP::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 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.
Reimplemented in Bonmin::TMINLP2TNLPQuadCuts.
virtual bool Bonmin::TMINLP2TNLP::get_scaling_parameters | ( | Ipopt::Number & | obj_scaling, | |
bool & | use_x_scaling, | |||
Ipopt::Index | n, | |||
Ipopt::Number * | x_scaling, | |||
bool & | use_g_scaling, | |||
Ipopt::Index | m, | |||
Ipopt::Number * | g_scaling | |||
) | [virtual] |
Method that returns scaling parameters.
Reimplemented in Bonmin::TMINLP2TNLPQuadCuts.
virtual bool Bonmin::TMINLP2TNLP::get_warm_start_iterate | ( | Ipopt::IteratesVector & | warm_start_iterate | ) | [virtual] |
Methat that returns an Ipopt IteratesVector that has the starting point for all internal varibles.
virtual bool Bonmin::TMINLP2TNLP::eval_f | ( | Ipopt::Index | n, | |
const Ipopt::Number * | x, | |||
bool | new_x, | |||
Ipopt::Number & | obj_value | |||
) | [virtual] |
Returns the value of the objective function in x.
Reimplemented in Bonmin::TMINLP2TNLPQuadCuts.
virtual bool Bonmin::TMINLP2TNLP::eval_grad_f | ( | Ipopt::Index | n, | |
const Ipopt::Number * | x, | |||
bool | new_x, | |||
Ipopt::Number * | grad_f | |||
) | [virtual] |
Returns the vector of the gradient of the objective w.r.t.
x
Reimplemented in Bonmin::TMINLP2TNLPQuadCuts.
virtual bool Bonmin::TMINLP2TNLP::eval_g | ( | Ipopt::Index | n, | |
const Ipopt::Number * | x, | |||
bool | new_x, | |||
Ipopt::Index | m, | |||
Ipopt::Number * | g | |||
) | [virtual] |
Returns the vector of constraint values in x.
Reimplemented in Bonmin::TMINLP2TNLPQuadCuts.
virtual bool Bonmin::TMINLP2TNLP::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] |
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.
Reimplemented in Bonmin::TMINLP2TNLPQuadCuts.
virtual bool Bonmin::TMINLP2TNLP::eval_gi | ( | Ipopt::Index | n, | |
const Ipopt::Number * | x, | |||
bool | new_x, | |||
Ipopt::Index | i, | |||
Ipopt::Number & | gi | |||
) | [virtual] |
compute the value of a single constraint
Reimplemented in Bonmin::TMINLP2TNLPQuadCuts.
virtual bool Bonmin::TMINLP2TNLP::eval_grad_gi | ( | Ipopt::Index | n, | |
const Ipopt::Number * | x, | |||
bool | new_x, | |||
Ipopt::Index | i, | |||
Ipopt::Index & | nele_grad_gi, | |||
Ipopt::Index * | jCol, | |||
Ipopt::Number * | values | |||
) | [virtual] |
compute the structure or values of the gradient for one constraint
Reimplemented in Bonmin::TMINLP2TNLPQuadCuts.
virtual bool Bonmin::TMINLP2TNLP::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] |
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 in Bonmin::TMINLP2TNLPQuadCuts.
virtual void Bonmin::TMINLP2TNLP::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.
virtual bool Bonmin::TMINLP2TNLP::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 | |||
) | [virtual] |
Intermediate Callback method for the user.
Providing dummy default implementation. For details see IntermediateCallBack in IpNLP.hpp.
void Bonmin::TMINLP2TNLP::SetWarmStarter | ( | Ipopt::SmartPtr< IpoptInteriorWarmStarter > | warm_starter | ) |
SmartPtr< IpoptInteriorWarmStarter > Bonmin::TMINLP2TNLP::GetWarmStarter | ( | ) |
Definition at line 653 of file BonTMINLP2TNLP.cpp.
virtual bool Bonmin::TMINLP2TNLP::hasUpperBoundingObjective | ( | ) | [inline, virtual] |
Say if has a specific function to compute upper bounds.
Definition at line 354 of file BonTMINLP2TNLP.hpp.
double Bonmin::TMINLP2TNLP::evaluateUpperBoundingFunction | ( | const double * | x | ) |
Evaluate the upper bounding function at given point and store the result.
Definition at line 661 of file BonTMINLP2TNLP.cpp.
virtual void Bonmin::TMINLP2TNLP::addCuts | ( | unsigned int | numberCuts, | |
const OsiRowCut ** | cuts | |||
) | [inline, virtual] |
Methods are not implemented at this point.
But I need the interface. Add some linear cuts to the problem formulation (not implemented yet in base class).
Reimplemented in Bonmin::TMINLP2TNLPQuadCuts.
Definition at line 366 of file BonTMINLP2TNLP.hpp.
virtual void Bonmin::TMINLP2TNLP::addCuts | ( | const OsiCuts & | cuts | ) | [inline, virtual] |
Add some cuts to the problem formulaiton (handles Quadratics).
Reimplemented in Bonmin::TMINLP2TNLPQuadCuts.
Definition at line 372 of file BonTMINLP2TNLP.hpp.
virtual void Bonmin::TMINLP2TNLP::removeCuts | ( | unsigned int | number, | |
const int * | toRemove | |||
) | [inline, virtual] |
Remove some cuts to the formulation.
Reimplemented in Bonmin::TMINLP2TNLPQuadCuts.
Definition at line 377 of file BonTMINLP2TNLP.hpp.
double Bonmin::TMINLP2TNLP::check_solution | ( | OsiObject ** | objects = 0 , |
|
int | nObjects = -1 | |||
) |
Round and check the current solution, return norm inf of constraint violation.
Definition at line 668 of file BonTMINLP2TNLP.cpp.
Ipopt::Index Bonmin::TMINLP2TNLP::nnz_h_lag | ( | ) | const [inline, protected] |
Access number of entries in tminlp_ hessian.
Definition at line 419 of file BonTMINLP2TNLP.hpp.
Ipopt::Index Bonmin::TMINLP2TNLP::nnz_jac_g | ( | ) | const [inline, protected] |
Access number of entries in tminlp_ hessian.
Definition at line 422 of file BonTMINLP2TNLP.hpp.
TNLP::IndexStyleEnum Bonmin::TMINLP2TNLP::index_style | ( | ) | const [inline, protected] |
Acces index_style.
Definition at line 426 of file BonTMINLP2TNLP.hpp.
TMINLP2TNLP & Bonmin::TMINLP2TNLP::operator= | ( | const TMINLP2TNLP & | rhs | ) | [private] |
Overloaded Equals Operator.
Definition at line 145 of file BonTMINLP2TNLP.cpp.
void Bonmin::TMINLP2TNLP::throw_exception_on_bad_variable_bound | ( | Ipopt::Index | i | ) | [private] |
Private method that throws an exception if the variable bounds are not consistent with the variable type.
void Bonmin::TMINLP2TNLP::gutsOfDelete | ( | ) | [private] |
Definition at line 172 of file BonTMINLP2TNLP.cpp.
void Bonmin::TMINLP2TNLP::gutsOfCopy | ( | const TMINLP2TNLP & | other | ) | [private] |
Copies all the arrays.
Definition at line 181 of file BonTMINLP2TNLP.cpp.
vector<TMINLP::VariableType> Bonmin::TMINLP2TNLP::var_types_ [protected] |
Types of the variable (TMINLP::CONTINUOUS, TMINLP::INTEGER, TMINLP::BINARY).
Definition at line 391 of file BonTMINLP2TNLP.hpp.
vector<Ipopt::Number> Bonmin::TMINLP2TNLP::x_l_ [protected] |
Current lower bounds on variables.
Definition at line 393 of file BonTMINLP2TNLP.hpp.
vector<Ipopt::Number> Bonmin::TMINLP2TNLP::x_u_ [protected] |
Current upper bounds on variables.
Definition at line 395 of file BonTMINLP2TNLP.hpp.
vector<Ipopt::Number> Bonmin::TMINLP2TNLP::orig_x_l_ [protected] |
Original lower bounds on variables.
Definition at line 397 of file BonTMINLP2TNLP.hpp.
vector<Ipopt::Number> Bonmin::TMINLP2TNLP::orig_x_u_ [protected] |
Original upper bounds on variables.
Definition at line 399 of file BonTMINLP2TNLP.hpp.
vector<Ipopt::Number> Bonmin::TMINLP2TNLP::g_l_ [protected] |
Lower bounds on constraints values.
Definition at line 401 of file BonTMINLP2TNLP.hpp.
vector<Ipopt::Number> Bonmin::TMINLP2TNLP::g_u_ [protected] |
Upper bounds on constraints values.
Definition at line 403 of file BonTMINLP2TNLP.hpp.
vector<Ipopt::Number> Bonmin::TMINLP2TNLP::x_init_ [protected] |
Initial primal point.
Definition at line 405 of file BonTMINLP2TNLP.hpp.
Ipopt::Number* Bonmin::TMINLP2TNLP::duals_init_ [protected] |
Initial values for all dual multipliers (constraints then lower bounds then upper bounds).
Definition at line 407 of file BonTMINLP2TNLP.hpp.
vector<Ipopt::Number> Bonmin::TMINLP2TNLP::x_init_user_ [protected] |
User-provideed initial prmal point.
Definition at line 409 of file BonTMINLP2TNLP.hpp.
vector<Ipopt::Number> Bonmin::TMINLP2TNLP::x_sol_ [protected] |
Optimal solution.
Definition at line 411 of file BonTMINLP2TNLP.hpp.
vector<Ipopt::Number> Bonmin::TMINLP2TNLP::g_sol_ [protected] |
Activities of constraint g( x_sol_).
Definition at line 413 of file BonTMINLP2TNLP.hpp.
vector<Ipopt::Number> Bonmin::TMINLP2TNLP::duals_sol_ [protected] |
Dual multipliers of constraints and bounds.
Definition at line 415 of file BonTMINLP2TNLP.hpp.
Ipopt::SmartPtr<TMINLP> Bonmin::TMINLP2TNLP::tminlp_ [private] |
pointer to the tminlp that is being adapted
Definition at line 445 of file BonTMINLP2TNLP.hpp.
Ipopt::Index Bonmin::TMINLP2TNLP::nnz_jac_g_ [private] |
Number of non-zeroes in the constraints jacobian.
Definition at line 450 of file BonTMINLP2TNLP.hpp.
Ipopt::Index Bonmin::TMINLP2TNLP::nnz_h_lag_ [private] |
Number of non-zeroes in the lagrangian hessian.
Definition at line 452 of file BonTMINLP2TNLP.hpp.
TNLP::IndexStyleEnum Bonmin::TMINLP2TNLP::index_style_ [private] |
index style (fortran or C)
Definition at line 454 of file BonTMINLP2TNLP.hpp.
Ipopt::SolverReturn Bonmin::TMINLP2TNLP::return_status_ [private] |
Return status of the optimization process.
Definition at line 457 of file BonTMINLP2TNLP.hpp.
Ipopt::Number Bonmin::TMINLP2TNLP::obj_value_ [private] |
Value of the optimal solution found by Ipopt.
Definition at line 459 of file BonTMINLP2TNLP.hpp.
Ipopt::SmartPtr<IpoptInteriorWarmStarter> Bonmin::TMINLP2TNLP::curr_warm_starter_ [private] |
Pointer to object that holds warmstart information.
Definition at line 465 of file BonTMINLP2TNLP.hpp.
Ipopt::Number Bonmin::TMINLP2TNLP::nlp_lower_bound_inf_ [private] |
Value for a lower bound that denotes -infinity.
Definition at line 467 of file BonTMINLP2TNLP.hpp.
Ipopt::Number Bonmin::TMINLP2TNLP::nlp_upper_bound_inf_ [private] |
Value for a upper bound that denotes infinity.
Definition at line 469 of file BonTMINLP2TNLP.hpp.
bool Bonmin::TMINLP2TNLP::warm_start_entire_iterate_ [private] |
Option from Ipopt - we currently use it to see if we want to use some clever warm start or just the last iterate from the previous run.
Definition at line 473 of file BonTMINLP2TNLP.hpp.
bool Bonmin::TMINLP2TNLP::need_new_warm_starter_ [private] |
Do we need a new warm starter object.
Definition at line 475 of file BonTMINLP2TNLP.hpp.